]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraAODEventCuts.h
adding proper destructors and some small changes in analysis macro
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / AliSpectraAODEventCuts.h
1 #ifndef ALISPECTRAAODEVENTCUTS_H
2 #define ALISPECTRAAODEVENTCUTS_H
3
4 /*  See cxx source for full Copyright notice */
5
6 //-------------------------------------------------------------------------
7 //                      AliSpectraAODEventCuts
8 //
9 //
10 //
11 //
12 // Authors: Michele Floris, CERN, Philip Versteeg, UU, Redmer Bertens, UU
13 //-------------------------------------------------------------------------
14
15 class AliAODEvent;
16 class AliSpectraAODTrackCuts;
17 //class AliSpectraAODHistoManager;
18
19 #include "TH1I.h"
20 #include "TNamed.h"
21
22 class AliSpectraAODEventCuts : public TNamed
23 {
24  public:
25   enum {  kProcessedEvents = 0,kPhysSelEvents,kAcceptedEvents, kVtxRange, kVtxCentral, kVtxNoEvent, kQVector, kNVtxCuts};
26
27   // Constructors
28  AliSpectraAODEventCuts() : TNamed(), fAOD(0), fTrackBits(0), fIsMC(0), fCentFromV0(0), fUseCentPatchAOD049(0),fTrackCuts(0), fIsSelected(0), fCentralityCutMin(0), fCentralityCutMax(0), fQVectorCutMin(0), fQVectorCutMax(0), fVertexCutMin(0), fVertexCutMax(0), fMultiplicityCutMin(0), fMultiplicityCutMax(0), fHistoCuts(0),fHistoVtxBefSel(0),fHistoVtxAftSel(0),fHistoEtaBefSel(0),fHistoEtaAftSel(0),fHistoNChAftSel(0),fHistoQVector(0),fHistoEP(0) {}
29   AliSpectraAODEventCuts(const char *name);
30   virtual  ~AliSpectraAODEventCuts() {}
31   
32   void SetIsMC(Bool_t isMC = kFALSE)    {fIsMC = isMC; };
33   Bool_t GetIsMC()           const           { return fIsMC;};
34   void SetCentFromV0(Bool_t centFromV0 = kFALSE)    {fCentFromV0 = centFromV0; };
35   Bool_t GetCentFromV0()           const           { return fCentFromV0;};
36   
37   void SetUseCentPatchAOD049(Bool_t useCentPatchAOD049 = kFALSE)    {fUseCentPatchAOD049 = useCentPatchAOD049; };
38   Bool_t GetUseCentPatchAOD049()           const           { return fUseCentPatchAOD049;};
39   
40   // Methods
41   Bool_t IsSelected(AliAODEvent * aod,AliSpectraAODTrackCuts     *trackcuts);
42   Bool_t CheckVtxRange();
43   Bool_t CheckCentralityCut();
44   Bool_t CheckMultiplicityCut();
45   Bool_t CheckQVectorCut();
46   void  SetCentralityCutMin(Float_t cut)  { fCentralityCutMin = cut; }
47   void  SetCentralityCutMax(Float_t cut)  { fCentralityCutMax = cut; }
48   //void  SetQVectorPosCut(Float_t min,Float_t max)  { fQVectorPosCutMin = min; fQVectorPosCutMax = max; }
49   //void  SetQVectorNegCut(Float_t min,Float_t max)  { fQVectorNegCutMin = min; fQVectorNegCutMax = max; }
50   void  SetQVectorCut(Float_t min,Float_t max)  { fQVectorCutMin = min; fQVectorCutMax = max; }
51   void  SetVertexCut(Float_t min,Float_t max)  { fVertexCutMin = min; fVertexCutMax = max; }
52   void  SetMultiplicityCut(Float_t min,Float_t max)  { fMultiplicityCutMin = min; fMultiplicityCutMax = max; }
53   void SetTrackBits(UInt_t TrackBits) {fTrackBits=TrackBits;}
54
55   UInt_t GetTrackType()  const    { return fTrackBits;}
56   TH1I * GetHistoCuts()         {  return fHistoCuts; }
57   TH1F * GetHistoVtxBefSel()         {  return fHistoVtxBefSel; }
58   TH1F * GetHistoVtxAftSel()         {  return fHistoVtxAftSel; }
59   TH1F * GetHistoEtaBefSel()         {  return fHistoEtaBefSel; }
60   TH1F * GetHistoEtaAftSel()         {  return fHistoEtaAftSel; }
61   TH1F * GetHistoNChAftSel()         {  return fHistoNChAftSel; }
62   /* TH1F * GetHistoQVectorPos()         {  return fHistoQVectorPos; } */
63   /* TH1F * GetHistoQVectorNeg()         {  return fHistoQVectorNeg; } */
64   TH1F * GetHistoQVector()         {  return fHistoQVector; }
65   TH1F * GetHistoEP()         {  return fHistoEP; }
66   Float_t  GetCentralityMin()  const {  return fCentralityCutMin; }
67   Float_t  GetCentralityMax()  const {  return fCentralityCutMax; }
68   //Float_t  GetQVectorPosCutMin()  const {  return fQVectorPosCutMin; }
69   //Float_t  GetQVectorPosCutMax()  const {  return fQVectorPosCutMax; }
70   //Float_t  GetQVectorNegCutMin()  const {  return fQVectorNegCutMin; }
71   //Float_t  GetQVectorNegCutMax()  const {  return fQVectorNegCutMax; }
72   Float_t  GetQVectorCutMin()  const {  return fQVectorCutMin; }
73   Float_t  GetQVectorCutMax()  const {  return fQVectorCutMax; }
74   Float_t  GetVertexCutMin()  const {  return fVertexCutMin; }
75   Float_t  GetVertexCutMax()  const {  return fVertexCutMax; }
76   Float_t  GetMultiplicityCutMin()  const {  return fMultiplicityCutMin; }
77   Float_t  GetMultiplicityCutMax()  const {  return fMultiplicityCutMax; }
78   void   PrintCuts();
79   Double_t ApplyCentralityPatchAOD049();
80
81   Float_t  NumberOfEvents()     { return fHistoCuts->GetBinContent(kAcceptedEvents+1); }
82   Float_t  NumberOfProcessedEvents()     { return fHistoCuts->GetBinContent(kProcessedEvents+1); }
83   Float_t  NumberOfPhysSelEvents()     { return fHistoCuts->GetBinContent(kPhysSelEvents+1); }
84
85   Long64_t Merge(TCollection* list);
86
87
88  private:
89   
90   AliAODEvent     *fAOD;              //! AOD event
91   UInt_t           fTrackBits;       // Type of track to be used in the Qvector calculation
92   Bool_t          fIsMC;// true if processing MC
93   Bool_t          fCentFromV0;// default centrality with tracks
94   Bool_t          fUseCentPatchAOD049;// Patch for centrality selection on AOD049
95   AliSpectraAODTrackCuts     *fTrackCuts;              //! track cuts
96   Bool_t          fIsSelected;        // True if cuts are selected
97   Float_t         fCentralityCutMin;     // minimum centrality percentile
98   Float_t         fCentralityCutMax;     // maximum centrality percentile
99   /* Float_t         fQVectorPosCutMin;     // minimum qvecPos */
100   /* Float_t         fQVectorPosCutMax;     // maximum qvecPos */
101   /* Float_t         fQVectorNegCutMin;     // minimum qvecNeg */
102   /* Float_t         fQVectorNegCutMax;     // maximum qvecNeg */
103   Float_t         fQVectorCutMin;     // minimum qvecPos
104   Float_t         fQVectorCutMax;     // maximum qvecPos
105   Float_t         fVertexCutMin;     // minimum vertex position
106   Float_t         fVertexCutMax;     // maximum vertex position
107   Float_t         fMultiplicityCutMin;     // minimum multiplicity position
108   Float_t         fMultiplicityCutMax;     // maximum multiplicity position
109   TH1I            *fHistoCuts;        // Cuts statistics
110   TH1F            *fHistoVtxBefSel;        // Vtx distr before event selection
111   TH1F            *fHistoVtxAftSel;        // Vtx distr after event selection
112   TH1F            *fHistoEtaBefSel;        // Eta distr before event selection
113   TH1F            *fHistoEtaAftSel;        // Eta distr after event selection
114   TH1F            *fHistoNChAftSel;        // NCh distr after event selection
115   //TH1F            *fHistoQVectorPos;        // QVectorPos
116   //TH1F            *fHistoQVectorNeg;        // QVectorNeg
117   TH1F            *fHistoQVector;        // QVector
118   TH1F            *fHistoEP;        // EP
119   AliSpectraAODEventCuts(const AliSpectraAODEventCuts&);
120   AliSpectraAODEventCuts& operator=(const AliSpectraAODEventCuts&);
121   
122   ClassDef(AliSpectraAODEventCuts, 2);
123   
124 };
125 #endif
126