]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/DPhi/DiHadronPID/AliAODEventCutsDiHadronPID.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / DiHadronPID / AliAODEventCutsDiHadronPID.h
1 #ifndef ALIAODEVENTCUTSDIHADRONPID_H 
2 #define ALIAODEVENTCUTSDIHADRONPID_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 #include "AliAODEvent.h"
8 #include "TString.h"
9 #include "TH1F.h"
10 #include "TList.h"
11
12 class AliAODEventCutsDiHadronPID : public TNamed 
13
14 {
15
16 public:
17         AliAODEventCutsDiHadronPID();                                                           // Default Constructor
18         AliAODEventCutsDiHadronPID(const char* name);                           // Named Constructor
19         virtual ~AliAODEventCutsDiHadronPID();                                          // Destructor
20         virtual Long64_t Merge(TCollection* list);                                      // Merger
21
22 private:
23         AliAODEventCutsDiHadronPID(const AliAODEventCutsDiHadronPID&);
24         AliAODEventCutsDiHadronPID& operator=(const AliAODEventCutsDiHadronPID&);
25
26 public:
27         void CreateHistos();                                    // Create QA histograms
28         Bool_t IsSelected(AliAODEvent* event);
29         void PrintCuts();
30
31 // Setters
32         void SetIsPbPb(Bool_t ispbpb = kTRUE) {fIsPbPb = ispbpb;}
33         void SetIsMC(Bool_t ismc = kTRUE) {fIsMC = ismc;}
34
35         void SetTrigger(UInt_t trigger) {
36                 fTrigger = trigger;
37                 fTestTrigger = kTRUE;
38         }
39
40         // Note that minCentrality is expected to be the biggest number.
41         void SetCentrality(Float_t maxCentrality, Float_t minCentrality) {
42                 if (minCentrality > maxCentrality) {
43                         fMinCentrality = minCentrality;
44                         fMaxCentrality = maxCentrality;
45                 } else {
46                         fMinCentrality = maxCentrality;
47                         fMaxCentrality = minCentrality;
48                 }
49                 fTestCentrality = kTRUE;
50         } 
51         
52         void SetCentralityEstimator(const char* centralityestimator) {
53                 fCentralityEstimator = centralityestimator;
54         }
55         void SetMaxVertexZ(Float_t maxVertexZ) {
56                 fMaxVertexZ = maxVertexZ;
57                 fTestVertexZ = kTRUE;
58         }
59         void SetDemandContributorsOrSPDVertex() {
60                 fTestContributorsOrSPDVertex = kTRUE;
61         }
62         void SetMinReferenceMultiplicity(Int_t minrefmult) {
63                 fMinRefMult = minrefmult;
64                 fTestMinRefMult = kTRUE;
65         }
66
67         void SetDebugLevel(Int_t debuglevel) {fDebug = debuglevel;}
68
69 // Getters
70         Bool_t GetIsPbPb() const {return fIsPbPb;} 
71         Bool_t GetIsMC() const {return fIsMC;}
72         UInt_t GetTrigger() const {return fTrigger;}
73         Float_t GetMinCentrality() const {return fMinCentrality;}
74         Float_t GetMaxCentrality() const {return fMaxCentrality;}
75         TString GetCentralityEstimator() const {return fCentralityEstimator;}
76         Float_t GetMaxVertexZ() const {return fMaxVertexZ;}
77
78         // Functions returning pointer data members aren't very safe.
79         TList* GetListOfSelectedEventQAHistos() {
80                 if (fSelectedEventQAHistos) return fSelectedEventQAHistos;
81                 else return 0x0;
82         }
83         TList* GetListOfAllEventQAHistos() {
84                 if (fAllEventQAHistos) return fAllEventQAHistos;
85                 else return 0x0;
86         }
87
88         TObject* GetHistSelectedEvents(const char* name) {return fSelectedEventQAHistos->FindObject(name);}
89         TObject* GetHistAllEvents(const char* name) {return fAllEventQAHistos->FindObject(name);}
90
91         // Cannot be made const because GetHistSelectedEvents() isn't safe.
92         Int_t GetNAcceptedEvents() {return (Int_t)((TH1F*)GetHistSelectedEvents("fHistTriggerSelected"))->GetEntries();}
93
94         Int_t GetDebugLevel() const {return fDebug;}
95
96 private:
97 // Expected Event Details.
98         Bool_t fIsPbPb;
99         Bool_t fIsMC;
100
101 // Event Cuts.
102         UInt_t fTrigger;
103         Float_t fMinCentrality;
104         Float_t fMaxCentrality;
105         TString fCentralityEstimator;
106         Float_t fMaxVertexZ;
107         Int_t fMinRefMult;
108
109 // Which cuts to be checked.
110         Bool_t fTestTrigger;
111         Bool_t fTestCentrality;
112         Bool_t fTestContributorsOrSPDVertex;
113         Bool_t fTestVertexZ;
114         Bool_t fTestMinRefMult;
115
116 // QA histograms (don't stream)
117         TList* fSelectedEventQAHistos;
118         TList* fAllEventQAHistos;
119         TH1F** fHistTrigger;                                            //! Trigger
120         TH1F** fHistRefMultiplicity;                            //! Number of tracks
121         TH1F** fHistCentrality;                                         //! Centrality
122         TH1F** fHistCentralityQuality;                          //! Centrality Quality
123         TH1F** fHistVertexZ;                                            //! VertexZ
124
125         Int_t fDebug;                                                           // Debug flag.
126
127         ClassDef(AliAODEventCutsDiHadronPID,3);
128
129 };
130
131 #endif