New data members: distance to bad channels from the center of a reconstructed cluster...
[u/mrichter/AliRoot.git] / PWG3 / AliQuarkoniaEfficiency.h
1 #ifndef ALIQUARKONIAEFFICIENCY_H
2 #define ALIQUARKONIAEFFICIENCY_H
3
4 //===================================================================
5 //  Class AliQuarkoniaEfficiency                               
6 //
7 //  This class will provide the quarkonia reconstruction efficiency 
8 //  in ALICE without acceptance consideration
9 //  for different resonances :
10 //    kJpsi
11 //    kPsiP
12 //    kUpsilon
13 //    kUpsilonP
14 //    kUpsilonPP
15 //  for some vector mesons :
16 //    kPhi
17 //    kOmega
18 //  different decay channels:
19 //    kDimuon
20 //    kDielectron
21 //  different trigger configurations:
22 //    kSinglePlusLpt, kSinglePlusHpt, kSinglePlusApt,
23 //    kSingleMinusLpt, kSingleMinusHpt, kSingleMinusApt,
24 //    kSingleUndefLpt, kSingleUndefHpt, kSingleUndefApt,
25 //    kPairUnlikeLpt, kPairUnlikeHpt, kPairUnlikeApt,
26 //    kPairLikeLpt, kPairLikeHpt, kPairLikeApt
27 //  different parameterizations:
28 //    kFlat
29 //    kCDFscaled
30 //    kCDFscaledPP
31 //
32 //
33 //  Reconstruction efficiency has been evaluated by means of a flat
34 //  y and pt distribution of quarkonia in -4 < y < -2.5, 
35 //  0 < pt < 20 GeV/c. Weights have been used to evaluate the
36 //  reconstruction efficiency in different parameterizations.
37 //                                                              
38 //  Subatech 2006
39 //===================================================================
40
41 #include "TNamed.h"
42
43 class TH2F;
44 class TString;
45
46 class AliQuarkoniaEfficiency : public TNamed{
47
48  public:
49
50   enum quarkonia{kJpsi, kPsiP, kUpsilon, kUpsilonP, kUpsilonPP, kOmega, kPhi};
51   enum decay{kDimuon, kDielectron};
52   enum parameterization{kFlat, kCDFscaled, kCDFscaledPP};
53   enum trigger{kSinglePlusLpt, kSinglePlusHpt, kSinglePlusApt,
54                kSingleMinusLpt, kSingleMinusHpt, kSingleMinusApt,
55                kSingleUndefLpt, kSingleUndefHpt, kSingleUndefApt,
56                kPairUnlikeLpt, kPairUnlikeHpt, kPairUnlikeApt,
57                kPairLikeLpt, kPairLikeHpt, kPairLikeApt };
58
59
60   AliQuarkoniaEfficiency(Int_t quarkoniaResonance=kJpsi, Int_t decayChannel=kDimuon, Int_t simParameterization=kCDFscaledPP);
61   virtual ~AliQuarkoniaEfficiency();    
62   void   Init(); 
63
64   TH2F*  GetEfficiencyHisto() const;
65   void   GetEfficiency(Float_t rap, Float_t pT, Double_t & eff, Double_t & error); 
66
67   void  SetEfficiencyFileName(char * efficiencyFileName) { fEfficiencyFileName = efficiencyFileName; }
68   void  SetQuarkoniaResonance(Int_t quarkoniaResonance = kJpsi) { fQuarkoniaResonance= quarkoniaResonance;}
69   void  SetDecayChannel(Int_t decayChannel = kDimuon) { fDecayChannel = decayChannel;}
70   void  SetSimulatedParameterization(Int_t simParameterization = kCDFscaledPP) { 
71     fParameterization = simParameterization;
72   }
73   void  SetTrigger(bool trigger = kFALSE, Int_t triggerType = kPairUnlikeApt){ 
74     fTrigger = trigger; fTriggerType = triggerType;
75   }
76   
77  private:
78
79   AliQuarkoniaEfficiency(const AliQuarkoniaEfficiency& rhs);
80   AliQuarkoniaEfficiency& operator=(const AliQuarkoniaEfficiency& rhs);
81
82   TString        fEfficiencyFileName;      // Name of the efficiency root file
83   Int_t          fQuarkoniaResonance;      // Resonance Acceptance
84   Int_t          fDecayChannel;            // Studied decay channel
85   Int_t          fParameterization;        // Quarkonia simulated parameterization  
86   Int_t          fTriggerType;             // Trigger type to be considered  
87   Bool_t         fTrigger;                 // Boolean to decide if consider or not trigger
88   TH2F *         fEfficiency;              // Efficiency histogram
89
90   ClassDef(AliQuarkoniaEfficiency,1)
91     };
92
93 #endif