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