]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrDep/AliAnaPi0EbE.h
Coverity fixes in QA and Pi0EbE
[u/mrichter/AliRoot.git] / PWG4 / PartCorrDep / 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 /* $Id: AliAnaPi0EbE.h 27413 2008-07-18 13:28:12Z gconesab $ */
6
7 //_________________________________________________________________________
8 //
9 // Class for the analysis of high pT pi0 event by event
10 // Pi0 identified by one of the following:
11 //  -Invariant mass of 2 cluster in calorimeter
12 //  -Shower shape analysis in calorimeter
13 //  -Invariant mass of one cluster in calorimeter and one photon reconstructed in TPC (in near future)
14 //
15 //-- Author: Gustavo Conesa (INFN-LNF)  &  Raphaelle Ichou (SUBATECH)
16 //_________________________________________________________________________
17
18
19 // --- ROOT system ---
20 class TH3F ; 
21 class TList ;
22 class TObjString;
23
24 // --- ANALYSIS system ---
25 #include "AliAnaPartCorrBaseClass.h"
26
27 class AliAnaPi0EbE : public AliAnaPartCorrBaseClass {
28
29  public: 
30   AliAnaPi0EbE() ; // default ctor
31   virtual ~AliAnaPi0EbE() ; //virtual dtor
32  private:
33   AliAnaPi0EbE(const AliAnaPi0EbE & g) ; // cpy ctor
34   AliAnaPi0EbE & operator = (const AliAnaPi0EbE & g) ;//cpy assignment
35
36  public:  
37         
38   //General
39   
40   TObjString *   GetAnalysisCuts();
41   
42   TList      *   GetCreateOutputObjects();
43   
44   void           Init();
45   
46   void           InitParameters();
47
48   void           MakeAnalysisFillAOD()  ;
49    
50   void           MakeAnalysisFillHistograms() ; 
51   
52   void           Print(const Option_t * opt) const;
53   
54   // Main
55   
56   void           FillSelectedClusterHistograms(AliVCluster* cluster, const Int_t tag);
57     
58   void           FillWeightHistograms(AliVCluster *clus);
59   
60   void           MakeInvMassInCalorimeter() ;
61   
62   void           MakeInvMassInCalorimeterAndCTS() ;
63   
64   void           MakeShowerShapeIdentification() ;
65   
66   void           RecalibrateCellAmplitude(Float_t  & amp,  const Int_t absId);
67     
68   void           SwitchOnFillWeightHistograms()              { fFillWeightHistograms = kTRUE  ; }
69   void           SwitchOffFillWeightHistograms()             { fFillWeightHistograms = kFALSE ; }  
70   
71   //Setters Getters
72   
73   //Analysis types
74   enum anaTypes  {kIMCalo, kSSCalo, kIMCaloTracks};  
75   anaTypes       GetAnalysisType()                     const { return fAnaType                ; }
76   void           SetAnalysisType(anaTypes ana)               { fAnaType = ana                 ; }
77   
78   TString        GetInputAODGammaConvName()            const { return fInputAODGammaConvName  ; }
79   void           SetInputAODGammaConvName(TString name)      { fInputAODGammaConvName = name  ; }       
80   
81   //Only for pi0 SS identification case
82   void           SetCalorimeter(TString & det)               { fCalorimeter = det             ; }
83   
84   void           SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) {
85                   fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3                               ; }
86
87   //For histograms
88   enum mcTypes   { mcPhoton = 0, mcConversion = 1, mcPi0    = 2,  
89                    mcEta    = 3, mcElectron   = 4, mcHadron = 5 };
90
91  private:
92   
93   anaTypes       fAnaType; //Select analysis type
94   
95   //Only for pi0 SS identification case, kSSCalo
96   TString        fCalorimeter ;            // Calorimeter where the gamma is searched;
97   Float_t        fMinDist ;                // Minimal distance to bad channel to accept cluster
98   Float_t        fMinDist2;                // Cuts on Minimal distance to study acceptance evaluation
99   Float_t        fMinDist3;                // One more cut on distance used for acceptance-efficiency study
100   
101   Bool_t         fFillWeightHistograms ;   // Fill weigth histograms
102   
103   //Only for combination of calorimeter and conversion photons, kIMCaloTracks
104   TClonesArray * fInputAODGammaConv;       //! AOD array with conversion photons reconstructed in CTS
105   TString        fInputAODGammaConvName;   //  Name of AOD branch with conversion photons
106   
107   //Histograms
108   
109   TH1F         * fhPtPi0  ;                //! Number of identified  pi0 vs pT
110   TH1F         * fhEPi0   ;                //! Number of identified  pi0 vs E
111   TH3F         * fhEEtaPhiPi0  ;           //! E vs eta phi of identified  pi0 
112   
113   TH2F         * fhEDispersion ;           //! E vs disp of selected cluster
114   TH2F         * fhELambda0 ;              //! E vs lambda0 of selected cluster 
115   TH2F         * fhELambda1 ;              //! E vs lambda1 of selected cluster 
116   TH2F         * fhELambda0NoTRD ;         //! E vs lambda0 of selected cluster, not behind TRD 
117   TH2F         * fhELambda0FracMaxCellCut ;//! E vs lambda0 of selected cluster, fraction of cluster energy in max cell cut 
118   TH2F         * fhEFracMaxCell ;          //! E vs frac max cell of selected cluster 
119   TH2F         * fhEFracMaxCellNoTRD ;     //! E vs frac max cell of selected cluster, not behind TRD  
120   TH2F         * fhENCells;                //! E vs N cells in selected cluster
121   TH2F         * fhETime;                  //! E vs Time of selected cluster 
122   TH2F         * fhEPairDiffTime;          //! E vs Pair of clusters time difference vs E
123
124   //MC histograms
125   
126   TH2F         * fhEMCLambda0[6] ;         //! E vs lambda0 of pi0 pairs but really from MC particle
127   TH2F         * fhEMCLambda1[6] ;         //! E vs lambda1 of pi0 pairs but really from MC particle
128   TH2F         * fhEMCDispersion[6] ;      //! E vs dispersion of pi0 pairs but really from MC particle
129   TH2F         * fhEMCLambda0NoTRD[6] ;         //! E vs lambda0 of pi0 pairs but really from MC particle, not behind TRD
130   TH2F         * fhEMCLambda0FracMaxCellCut[6] ;//! E vs lambda0 of pi0 pairs but really from MC particle, fraction of cluster energy in max cell cut
131   TH2F         * fhEMCFracMaxCell[6] ;     //! E vs fraction of max cell 
132   
133   TH1F         * fhPtMCNoPi0;              //! Number of identified pi0, not coming from pi0
134   TH2F         * fhPhiMCNoPi0;             //! Phi of identified pi0, not coming from pi0
135   TH2F         * fhEtaMCNoPi0;             //! eta of identified  pi0, not coming from pi0
136   TH1F         * fhPtMCPi0;                //! Number of identified pi0, coming from pi0
137   TH2F         * fhPhiMCPi0;               //! Phi of identified pi0, coming from pi0
138   TH2F         * fhEtaMCPi0;               //! eta of identified pi0, coming from pi0
139   
140   // Weight studies
141   
142   TH2F         * fhECellClusterRatio;      //! e cell / e cluster vs e cluster for selected photons
143   TH2F         * fhECellClusterLogRatio;   //! log (e cell / e cluster)  vs e cluster for selected photons
144   TH2F         * fhEMaxCellClusterRatio;   //! e max cell / e cluster vs e cluster for selected photons
145   TH2F         * fhEMaxCellClusterLogRatio;//! log (e max cell / e cluster) vs e cluster for selected photons
146   TH2F         * fhLambda0ForW0[7];        //! L0 for 7 defined w0= 3, 3.5 ... 6 for selected photons
147   TH2F         * fhLambda1ForW0[7];        //! L1 for 7 defined w0= 3, 3.5 ... 6 for selected photons  
148   
149   ClassDef(AliAnaPi0EbE,9)
150 } ;
151
152
153 #endif //ALIANAPI0EBE_H
154
155
156