]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.h
Move cluster splitting method from AliAnaInsideClusterInvariantMass to AliCalorimeter...
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaPi0EbE.h
1 #ifndef ALIANAPI0EBE_H
2 #define ALIANAPI0EBE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5
6 //_________________________________________________________________________
7 //
8 // Class for the analysis of high pT pi0 event by event
9 // Pi0/Eta identified by one of the following:
10 //  -Invariant mass of 2 cluster in calorimeter
11 //  -Shower shape analysis in calorimeter
12 //  -Invariant mass of one cluster in calorimeter and one photon reconstructed in TPC (in near future)
13 //
14 //-- Author: Gustavo Conesa (INFN-LNF)  &  Raphaelle Ichou (SUBATECH)
15 //_________________________________________________________________________
16
17
18 // --- ROOT system ---
19 class TList ;
20 class TObjString;
21
22 // --- ANALYSIS system ---
23 #include "AliAnaCaloTrackCorrBaseClass.h"
24
25 class AliAnaPi0EbE : public AliAnaCaloTrackCorrBaseClass {
26
27  public: 
28   AliAnaPi0EbE() ; // default ctor
29   virtual ~AliAnaPi0EbE() { ; } //virtual dtor
30           
31   TObjString *   GetAnalysisCuts();
32   
33   TList      *   GetCreateOutputObjects();
34   
35   void           Init();
36   
37   void           InitParameters();
38
39   void           MakeAnalysisFillAOD()  ;
40    
41   void           MakeAnalysisFillHistograms() ; 
42   
43   void           Print(const Option_t * opt) const;
44   
45   // Main
46   
47   void           FillSelectedClusterHistograms(AliVCluster* cluster, 
48                                                const Int_t nLocMax,
49                                                const Int_t tag);
50     
51   void           FillWeightHistograms(AliVCluster *clus);
52     
53   void           HasPairSameMCMother(AliAODPWG4Particle * photon1, 
54                                      AliAODPWG4Particle * photon2, 
55                                      Int_t & label, Int_t & tag);
56   
57   void           MakeInvMassInCalorimeter() ;
58   
59   void           MakeInvMassInCalorimeterAndCTS() ;
60   
61   void           MakeShowerShapeIdentification() ;
62           
63   //Setters Getters
64   
65   //Analysis types
66   enum anaTypes  {kIMCalo, kSSCalo, kIMCaloTracks};  
67   anaTypes       GetAnalysisType()                     const { return fAnaType                ; }
68   void           SetAnalysisType(anaTypes ana)               { fAnaType = ana                 ; }
69   
70   TString        GetInputAODGammaConvName()            const { return fInputAODGammaConvName  ; }
71   void           SetInputAODGammaConvName(TString name)      { fInputAODGammaConvName = name  ; }       
72   
73   //Only for pi0 SS identification case
74   void           SetCalorimeter(TString & det)               { fCalorimeter = det             ; }
75   
76   void           SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) {
77                   fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3                               ; }
78
79   void           SwitchOnFillWeightHistograms()              { fFillWeightHistograms = kTRUE  ; }
80   void           SwitchOffFillWeightHistograms()             { fFillWeightHistograms = kFALSE ; }  
81   
82   void           SwitchOnTMHistoFill()                       { fFillTMHisto          = kTRUE  ; }
83   void           SwitchOffTMHistoFill()                      { fFillTMHisto          = kFALSE ; }
84
85   void           SwitchOnSelectedClusterHistoFill()          { fFillSelectClHisto    = kTRUE  ; }
86   void           SwitchOffSelectedClusterHistoFill()         { fFillSelectClHisto    = kFALSE ; }
87   
88   //For histograms
89   enum mcTypes   { kmcPhoton = 0, kmcConversion = 1, kmcPi0    = 2,  
90                    kmcEta    = 3, kmcElectron   = 4, kmcHadron = 5 };
91
92  private:
93   
94   anaTypes       fAnaType;                 // Select analysis type
95   
96   //Only for pi0 SS identification case, kSSCalo
97   TString        fCalorimeter ;            // Calorimeter where the gamma is searched;
98   Float_t        fMinDist ;                // Minimal distance to bad channel to accept cluster
99   Float_t        fMinDist2;                // Cuts on Minimal distance to study acceptance evaluation
100   Float_t        fMinDist3;                // One more cut on distance used for acceptance-efficiency study
101   
102   Bool_t         fFillWeightHistograms ;   // Fill weigth histograms
103   Bool_t         fFillTMHisto;             // Fill track matching plots
104   Bool_t         fFillSelectClHisto;       // Fill selected cluster histograms
105
106   //Only for combination of calorimeter and conversion photons, kIMCaloTracks
107   TString        fInputAODGammaConvName;   //  Name of AOD branch with conversion photons
108   
109   //Histograms
110   
111   TH1F         * fhPt  ;                   //! Number of identified  pi0/eta vs pT
112   TH1F         * fhE   ;                   //! Number of identified  pi0/eta vs E
113   TH2F         * fhEEta  ;                 //! E vs eta of identified  pi0/eta 
114   TH2F         * fhEPhi  ;                 //! E vs phi of identified  pi0/eta 
115   TH2F         * fhEtaPhi  ;               //! eta vs phi of identified  pi0/eta 
116
117   TH1F         * fhPtDecay  ;              //! Number of identified  pi0/eta decay photons vs pT
118   TH1F         * fhEDecay   ;              //! Number of identified  pi0/eta decay photons vs E
119   
120   TH2F         * fhEDispersion ;           //! E vs disp of selected cluster
121   TH2F         * fhELambda0 ;              //! E vs lambda0 of selected cluster 
122   TH2F         * fhELambda1 ;              //! E vs lambda1 of selected cluster 
123   TH2F         * fhELambda0NoTRD ;         //! E vs lambda0 of selected cluster, not behind TRD 
124   TH2F         * fhELambda0FracMaxCellCut ;//! E vs lambda0 of selected cluster, fraction of cluster energy in max cell cut 
125   TH2F         * fhEFracMaxCell ;          //! E vs frac max cell of selected cluster 
126   TH2F         * fhEFracMaxCellNoTRD ;     //! E vs frac max cell of selected cluster, not behind TRD  
127   TH2F         * fhENCells;                //! E vs N cells in selected cluster
128   TH2F         * fhETime;                  //! E vs Time of selected cluster 
129   TH2F         * fhEPairDiffTime;          //! E vs Pair of clusters time difference vs E
130   
131   //MC histograms
132   
133   TH2F         * fhEMCLambda0[6] ;         //! E vs lambda0 of pi0 pairs but really from MC particle
134   TH2F         * fhEMCLambda1[6] ;         //! E vs lambda1 of pi0 pairs but really from MC particle
135   TH2F         * fhEMCDispersion[6] ;      //! E vs dispersion of pi0 pairs but really from MC particle
136   TH2F         * fhEMCLambda0NoTRD[6] ;         //! E vs lambda0 of pi0 pairs but really from MC particle, not behind TRD
137   TH2F         * fhEMCLambda0FracMaxCellCut[6] ;//! E vs lambda0 of pi0 pairs but really from MC particle, fraction of cluster energy in max cell cut
138   TH2F         * fhEMCFracMaxCell[6] ;     //! E vs fraction of max cell 
139   
140   TH1F         * fhPtMCNo;                 //! Number of identified pi0, not coming from pi0/eta
141   TH2F         * fhPhiMCNo;                //! Phi of identified pi0, not coming from pi0/eta
142   TH2F         * fhEtaMCNo;                //! eta of identified  pi0, not coming from pi0/eta
143   TH1F         * fhPtMC;                   //! Number of identified pi0, coming from pi0/eta
144   TH2F         * fhPhiMC;                  //! Phi of identified pi0, coming from pi0/eta
145   TH2F         * fhEtaMC;                  //! eta of identified pi0, coming from pi0/eta
146
147   TH2F         * fhMassPairMCPi0;          //! pair mass, origin is same pi0
148   TH2F         * fhMassPairMCEta;          //! pair mass, origin is same eta
149   TH2F         * fhAnglePairMCPi0;         //! pair opening angle, origin is same pi0
150   TH2F         * fhAnglePairMCEta;         //! pair opening angle, origin is same eta
151   
152   // Weight studies
153   
154   TH2F         * fhECellClusterRatio;      //! e cell / e cluster vs e cluster for selected photons
155   TH2F         * fhECellClusterLogRatio;   //! log (e cell / e cluster)  vs e cluster for selected photons
156   TH2F         * fhEMaxCellClusterRatio;   //! e max cell / e cluster vs e cluster for selected photons
157   TH2F         * fhEMaxCellClusterLogRatio;//! log (e max cell / e cluster) vs e cluster for selected photons
158   TH2F         * fhLambda0ForW0[14];       //! L0 for 7 defined w0= 3, 3.5 ... 6 for selected photons
159   //TH2F         * fhLambda1ForW0[7];        //! L1 for 7 defined w0= 3, 3.5 ... 6 for selected photons  
160   
161   // Track Matching
162   TH2F         * fhTrackMatchedDEta     ;  //! Eta distance between track and cluster vs cluster E
163   TH2F         * fhTrackMatchedDPhi     ;  //! Phi distance between track and cluster vs cluster E
164   TH2F         * fhTrackMatchedDEtaDPhi ;  //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV
165   TH2F         * fhTrackMatchedMCParticle; //! Trace origin of matched particle
166   TH2F         * fhdEdx  ;                 //! matched track dEdx vs cluster E 
167   TH2F         * fhEOverP;                 //! matched track E cluster over P track vs cluster E
168   TH2F         * fhEOverPNoTRD;                 //! matched track E cluster over P track vs cluster E, not behind TRD 
169
170   // Local maxima
171   TH2F         * fhNLocMax;                //! number of maxima in selected clusters
172   TH2F         * fhELambda0LocMax1 ;       //! E vs lambda0 of selected cluster, 1 local maxima in cluster 
173   TH2F         * fhELambda1LocMax1 ;       //! E vs lambda1 of selected cluster, 1 local maxima in cluster 
174   TH2F         * fhELambda0LocMax2 ;       //! E vs lambda0 of selected cluster, 2 local maxima in cluster 
175   TH2F         * fhELambda1LocMax2 ;       //! E vs lambda1 of selected cluster, 2 local maxima in cluster
176   TH2F         * fhELambda0LocMaxN ;       //! E vs lambda0 of selected cluster, N>2 local maxima in cluster 
177   TH2F         * fhELambda1LocMaxN ;       //! E vs lambda1 of selected cluster, N>2 local maxima in cluster 
178   TH2F         * fhMassPairLocMax[8];      //! pair mass, origin is same pi0, combine clusters depending on number of maxima
179
180   AliAnaPi0EbE(              const AliAnaPi0EbE & g) ; // cpy ctor
181   AliAnaPi0EbE & operator = (const AliAnaPi0EbE & g) ; // cpy assignment
182   
183   ClassDef(AliAnaPi0EbE,15)
184 } ;
185
186
187 #endif //ALIANAPI0EBE_H
188
189
190