Protection to skip PYTHIA events with large jet energy compared to pTHard
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / AliFidutialCut.h
1 #ifndef ALIFIDUTIALCUT_H
2 #define ALIFIDUTIALCUT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5 /* $Id:  $ */
6
7 //_________________________________________________________________________
8 // Class for track/cluster acceptance selection
9 // Selection in Central barrel, EMCAL and PHOS
10 //
11 //*-- Author: Gustavo Conesa (INFN-LNF)
12
13 // --- ROOT system ---
14 #include <TObject.h> 
15 #include <TArrayF.h> 
16
17 class TString ;
18 class TLorentzVector ;
19
20 //--- AliRoot system ---
21
22
23 class AliFidutialCut : public TObject {
24
25 public: 
26
27   AliFidutialCut() ; // ctor
28   AliFidutialCut(const AliFidutialCut & g) ; // cpy ctor
29   AliFidutialCut & operator = (const AliFidutialCut & g) ;//cpy assignment
30   virtual ~AliFidutialCut() ;//virtual dtor
31
32   void InitParameters();
33   
34   void Print(const Option_t * opt)const;
35   
36   Bool_t IsInFidutialCut(TLorentzVector l, TString det) const ;
37   
38   void DoCTSFidutialCut(Bool_t b) {fCTSFidutialCut = b; }
39   void DoEMCALFidutialCut(Bool_t b) {fEMCALFidutialCut = b; }
40   void DoPHOSFidutialCut(Bool_t b) {fPHOSFidutialCut = b; }
41
42   Bool_t GetCTSFidutialCutStatus() const {return fCTSFidutialCut ; }
43   Bool_t GetEMCALFidutialCut() const {return fEMCALFidutialCut ; }
44   Bool_t GetPHOSFidutialCutStatus() const {return fPHOSFidutialCut ; }
45
46   void SetSimpleCTSFidutialCut(const Float_t abseta, const Float_t phimin, const Float_t phimax) ;
47   void SetSimpleEMCALFidutialCut(const Float_t abseta, const Float_t phimin, const Float_t phimax) ;
48   void SetSimplePHOSFidutialCut(const Float_t abseta, const Float_t phimin, const Float_t phimax) ;
49
50   void AddCTSFidCutMaxEtaArray(TArrayF & array)  
51   {  fCTSFidCutMaxEta  = new TArrayF(array) ; } 
52   TArrayF * GetCTSFidCutMaxEtaArray() const   {return   fCTSFidCutMaxEta;}
53   
54   void AddCTSFidCutMaxPhiArray(TArrayF & array)  
55   {  fCTSFidCutMaxPhi  = new TArrayF(array) ; }
56   TArrayF * GetCTSFidCutMaxPhiArray() const   {return   fCTSFidCutMaxPhi;}
57   
58   void AddCTSFidCutMinEtaArray(TArrayF & array)  
59   {  fCTSFidCutMinEta  = new TArrayF(array) ; } 
60   TArrayF * GetCTSFidCutMinEtaArray() const   {return   fCTSFidCutMinEta;}
61  
62   void AddCTSFidCutMinPhiArray(TArrayF & array)  
63   {  fCTSFidCutMinPhi  = new TArrayF(array) ; }
64   TArrayF * GetCTSFidCutMinPhiArray() const   {return   fCTSFidCutMinPhi;}
65   
66   void AddEMCALFidCutMaxEtaArray(TArrayF & array)  
67   {  fEMCALFidCutMaxEta  = new TArrayF(array) ; } 
68   TArrayF * GetEMCALFidCutMaxEtaArray() const   {return   fEMCALFidCutMaxEta;}
69   
70   void AddEMCALFidCutMaxPhiArray(TArrayF & array)  
71   {  fEMCALFidCutMaxPhi  = new TArrayF(array) ; }
72   TArrayF * GetEMCALFidCutMaxPhiArray() const   {return   fEMCALFidCutMaxPhi;}
73  
74   void AddEMCALFidCutMinEtaArray(TArrayF & array)  
75   {  fEMCALFidCutMinEta  = new TArrayF(array) ; } 
76   TArrayF * GetEMCALFidCutMinEtaArray() const   {return   fEMCALFidCutMinEta;}
77   
78   void AddEMCALFidCutMinPhiArray(TArrayF & array)  
79   {  fEMCALFidCutMinPhi  = new TArrayF(array) ; }
80   TArrayF * GetEMCALFidCutMinPhiArray() const   {return   fEMCALFidCutMinPhi;}
81   
82   void AddPHOSFidCutMaxEtaArray(TArrayF & array)  
83   {  fPHOSFidCutMaxEta  = new TArrayF(array) ; } 
84   TArrayF * GetPHOSFidCutMaxEtaArray() const   {return   fPHOSFidCutMaxEta;}
85   
86    void AddPHOSFidCutMaxPhiArray(TArrayF & array)  
87    {  fPHOSFidCutMaxPhi  = new TArrayF(array) ; }
88    TArrayF * GetPHOSFidCutMaxPhiArray() const   {return   fPHOSFidCutMaxPhi;}
89    
90    void AddPHOSFidCutMinEtaArray(TArrayF & array)  
91    {  fPHOSFidCutMinEta  = new TArrayF(array) ; } 
92    TArrayF * GetPHOSFidCutMinEtaArray() const   {return   fPHOSFidCutMinEta;}
93  
94    void AddPHOSFidCutMinPhiArray(TArrayF & array)  
95    {  fPHOSFidCutMinPhi  = new TArrayF(array) ; }
96    TArrayF * GetPHOSFidCutMinPhiArray() const   {return   fPHOSFidCutMinPhi;}
97    
98  
99    
100  protected:
101    
102    //Detector acceptance cuts
103    Bool_t     fEMCALFidutialCut ; // Apply fidutial cuts to EMCAL clusters
104    Bool_t     fPHOSFidutialCut ;// Apply fidutial cuts to PHOS clusters
105    Bool_t     fCTSFidutialCut ;//Apply fidutial cuts to  CTS tracks
106    
107    TArrayF * fCTSFidCutMinEta ; //Take particles in CTS with eta > fCTSFidCutMinEta
108    TArrayF * fCTSFidCutMinPhi ; //Take particles in CTS with phi > fCTSFidCutMinPhi
109    TArrayF * fCTSFidCutMaxEta ; //Take particles in CTS with eta < fCTSFidCutMaxEta
110    TArrayF * fCTSFidCutMaxPhi ; //Take particles in CTS with phi > fCTSFidCutMaxPhi
111    
112    TArrayF * fEMCALFidCutMinEta ; //Take particles in EMCAL with eta > fEMCALFidCutMinEta
113    TArrayF * fEMCALFidCutMinPhi ; //Take particles in EMCAL with phi > fEMCALFidCutMinPhi
114    TArrayF * fEMCALFidCutMaxEta ; //Take particles in EMCAL with eta < fEMCALFidCutMaxEta
115    TArrayF * fEMCALFidCutMaxPhi ; //Take particles in EMCAL with phi > fEMCALFidCutMaxPhi
116    
117    TArrayF * fPHOSFidCutMinEta ; //Take particles in PHOS with eta > fPHOSFidCutMinEta
118    TArrayF * fPHOSFidCutMinPhi ; //Take particles in PHOS with phi > fPHOSFidCutMinPhi
119    TArrayF * fPHOSFidCutMaxEta ; //Take particles in PHOS with eta < fPHOSFidCutMaxEta
120    TArrayF * fPHOSFidCutMaxPhi ; //Take particles in PHOS with phi > fPHOSFidCutMaxPhi
121   
122   ClassDef(AliFidutialCut,1)
123     } ;
124
125
126 #endif //ALIFIDUTIALCUT_H
127
128
129