]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/AliQuarkoniaEfficiency.h
Adding new classes to the library PWG3base
[u/mrichter/AliRoot.git] / PWG3 / AliQuarkoniaEfficiency.h
1 #ifndef ALIQUARKONIAEFFICENCY_H
2 #define ALIQUARKONIAEFFICENCY_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   inline void  SetEfficiencyFileName(char * efficiencyFileName) { fEfficiencyFileName = efficiencyFileName; }
68   inline void  SetQuarkoniaResonance(Int_t quarkoniaResonance = kJpsi) { fQuarkoniaResonance= quarkoniaResonance;}
69   inline void  SetDecayChannel(Int_t decayChannel = kDimuon) { fDecayChannel = decayChannel;}
70   inline void  SetSimulatedParameterization(Int_t simParameterization = kCDFscaledPP) { 
71     fParameterization = simParameterization;
72   }
73   inline void  SetTrigger(bool trigger = kFALSE, Int_t triggerType = kPairUnlikeApt){ 
74     fTrigger = trigger; fTriggerType = triggerType;
75   }
76   
77  private:
78
79   TString        fEfficiencyFileName;      // Name of the efficiency root file
80   Int_t          fQuarkoniaResonance;      // Resonance Acceptance
81   Int_t          fDecayChannel;            // Studied decay channel
82   Int_t          fParameterization;        // Quarkonia simulated parameterization  
83   Int_t          fTriggerType;             // Trigger type to be considered  
84   Bool_t         fTrigger;                 // Boolean to decide if consider or not trigger
85   TH2F *         fEfficiency;              // Efficiency histogram
86
87   ClassDef(AliQuarkoniaEfficiency,1)
88     };
89
90 #endif