]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSAnalyze.h
Reconstruction part now handle all geometry options
[u/mrichter/AliRoot.git] / PHOS / AliPHOSAnalyze.h
1 #ifndef ALIPHOSANALYZE_H
2 #define ALIPHOSANALYZE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //_________________________________________________________________________
9 // Algorythm class to analyze PHOSv1 events:
10 // Construct histograms and displays them.
11 // Use the macro EditorBar.C for best access to the functionnalities
12 //*--
13 //*-- Author : Yves Schutz (SUBATECH)
14
15 // --- ROOT system ---
16
17 #include "TFile.h"
18 #include "TH1.h"
19 #include "TH2.h"
20
21 // --- Standard library ---
22
23 // --- AliRoot header files ---
24
25 #include "AliPHOSv1.h"
26 #include "AliPHOSGeometry.h"
27 #include "AliPHOSPID.h"
28 #include "AliPHOSIndexToObject.h"
29
30 class AliPHOSAnalyze : public TObject {
31
32 public:
33
34   AliPHOSAnalyze() ;              // ctor
35   AliPHOSAnalyze(Text_t * name) ; // ctor
36   AliPHOSAnalyze(const AliPHOSAnalyze & ana) ; // cpy ctor                   
37   virtual ~AliPHOSAnalyze() ;     // dtor
38
39   void DrawRecon(Int_t Nevent= 0,Int_t Nmod = 1) ;  // draws positions of entering and 
40                                                     //reconstructed points in PHOS plain
41   void AnalyzeResolutions (Int_t Nevents) ; // analyzes Energy and Position resolutions   ;
42   void ReadAndPrintEMC(Int_t EvFirst=0, Int_t EvLast=0); // Read & print generated and reconstructed hits in EMC
43   void ReadAndPrintCPV(Int_t EvFirst=0, Int_t EvLast=0); // Read & print generated and reconstructed hits in CPV
44   void AnalyzeCPV(Int_t Nevents);           // analyzes various CPV characteristics
45   void AnalyzeEMC(Int_t Nevents);           // analyzes EMC resolution
46   void InvariantMass(Int_t Nevents = 100) ; 
47   void Reconstruct(Int_t Nevtents = 100,Int_t FirstEvent = 0) ;
48   void BookingHistograms() ;                // booking histograms for the ManyEvent analysis ;
49   void BookResolutionHistograms() ;         // booking histograms for the Resoluion analysis ;
50   void Copy(TObject & obj) ;                // copies an analysis into an other one   
51   Float_t CorrectEnergy(Float_t ERecPart) ;   //Corrects reconstracted energy
52   Bool_t OpenRootFile(Text_t * name) ;      // opens the root file
53   void SaveHistograms() ;                   // Save histograms in a root file
54   void ResetHistograms() ;                  // 
55   AliPHOSAnalyze & operator = (const AliPHOSAnalyze & rvalue)  {
56     // assignement operator requested by coding convention
57     // but not needed
58     assert(0==1) ;
59     return *this ; 
60   }
61   void SetDebugLevel(Int_t flag) { fDebugLevel = flag; }
62  
63  private:
64   
65   AliPHOSClusterizer * fClu ;         // a clusterizer 
66   Int_t fEvt ;                        // the evt number being processed 
67   AliPHOSGeometry * fGeom ;           // the PHOS Geometry object
68   AliPHOSIndexToObject * fObjGetter ; // provides methods to retrieve objects from their index in a list
69   AliPHOSv1 * fPHOS ;                 // the PHOS object from the root file 
70   AliPHOSPID * fPID ;                 // a particle identifier
71   AliPHOSReconstructioner * fRec ;    // a reconstructioner  
72   TFile * fRootFile ;                 // the root file that contains the data
73   AliPHOSTrackSegmentMaker * fTrs ;   // a tracksegmentmaker ;
74
75   Int_t fDebugLevel;                  // debug level for analysis
76
77   TH2F * fhEnergyCorrelations ;     //Energy correlations between Eloss in Convertor and PPSD(2)
78
79
80   TH1F * fhEmcDigit ;               // Histo of digit energies in the Emc 
81   TH1F * fhVetoDigit ;              // Histo of digit energies in the Veto 
82   TH1F * fhConvertorDigit ;         // Histo of digit energies in the Convertor
83   TH1F * fhEmcCluster ;             // Histo of Cluster energies in Emc
84   TH1F * fhVetoCluster ;            // Histo of Cluster energies in Veto
85   TH1F * fhConvertorCluster ;       // Histo of Cluster energies in Convertor
86   TH2F * fhConvertorEmc ;           // 2d Convertor versus Emc energies
87
88   TH2F * fhAllEnergy ;       // Spectrum of detected photons with photon primary
89   TH2F * fhPhotEnergy ;      // Total spectrum of detected photons
90   TH2F * fhEMEnergy ;        // Spectrum of detected neutral EM with EM primary
91   TH2F * fhPPSDEnergy ;      // 
92
93   TH2F * fhAllPosition ;     // Position Resolution of  photons with photon primary
94   TH2F * fhPhotPosition ;    // Position Resolution of  photons
95   TH2F * fhEMPosition ;      // Position Resolution of neutral EM with EM primary
96   TH2F * fhPPSDPosition ;    // Position Resolution of neutral EM
97
98   TH1F * fhAllPositionX ;    // X-Position Resolution of  photons with photon primary
99   TH1F * fhAllPositionZ ;    // Z-Position Resolution of  photons with photon primary
100
101   TH1F * fhPhotonPositionY ;        // Y distribution of detected photons
102   TH1F * fhElectronPositionY ;      // Y distribution of detected electrons
103   TH1F * fhNeutralHadronPositionY ; // Y distribution of detected neutral hadron
104   TH1F * fhNeutralEMPositionY ;     // Y distribution of detected neutral EM
105   TH1F * fhChargedHadronPositionY ; // Y distribution of detected charged
106   TH1F * fhPhotonHadronPositionY ;  // Y distribution of detected Photon-Hadron
107
108   TH1F * fhPhotReg ;          
109   TH1F * fhAllReg ;          
110   TH1F * fhNReg ;          
111   TH1F * fhNBarReg ;          
112   TH1F * fhChargedReg ;          
113   TH1F * fhPhotEM ;          
114   TH1F * fhAllEM ;          
115   TH1F * fhNEM ;          
116   TH1F * fhNBarEM ;          
117   TH1F * fhChargedEM ;          
118   TH1F * fhPhotPPSD ;          
119   TH1F * fhAllPPSD ;          
120   TH1F * fhNPPSD ;          
121   TH1F * fhNBarPPSD ;          
122   TH1F * fhChargedPPSD ;          
123
124   TH1F * fhPrimary ;          
125   TH1F * fhAllRP ;
126   TH1F * fhPPSD ;
127   TH1F * fhShape ;
128   TH1F * fhVeto ;
129
130   TH1F * fhPhotPhot ;
131   TH1F * fhPhotElec ;
132   TH1F * fhPhotNeuH ;
133   TH1F * fhPhotNuEM ; 
134   TH1F * fhPhotChHa ;
135   TH1F * fhPhotGaHa ;
136
137
138
139 ClassDef(AliPHOSAnalyze,1)  // PHOSv1 event analyzis algorithm
140
141 };
142
143 #endif // AliPHOSANALYZE_H