043c91522862697010645b8461a315582ab88c0c
[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 //  Algorithm class to analyze PHOSv1 events    
10 //*-- Author : Yves Schutz (SUBATECH)
11
12 // --- ROOT system ---
13
14 #include "TFile.h"
15 #include "TH1.h"
16 #include "TH2.h"
17
18 // --- Standard library ---
19
20 // --- AliRoot header files ---
21
22 #include "AliPHOSv1.h"
23 #include "AliPHOSGeometry.h"
24 #include "AliPHOSPID.h"
25 #include "AliPHOSIndexToObject.h"
26
27 class AliPHOSAnalyze : public TObject {
28
29 public:
30
31   AliPHOSAnalyze() ;              // ctor
32   AliPHOSAnalyze(Text_t * name) ; // ctor
33   AliPHOSAnalyze(const AliPHOSAnalyze & ana) ; // cpy ctor                   
34   virtual ~AliPHOSAnalyze() ;     // dtor
35
36   void ActivePPSD(Int_t Nevents) ;
37   void AnalyzeManyEvents(Int_t Nevtents = 100, Int_t Module=0) ;  // analyzes many events   ;
38   void Reconstruct(Int_t Nevtents = 100) ;
39   void ReconstructCPV(Int_t Nevents = 1) ;  // reconstruct points in EMC and CPV
40   void AnalyzeResolutions(Int_t Nevtents) ; // analyzes Energy and Position resolutions   ;
41   void ReadAndPrintCPV(Int_t Nevents);      // Read & print generated and reconstructed hits in CPV
42   void AnalyzeCPV(Int_t Nevents);           // analyzes various CPV characteristics
43   void BookingHistograms() ;                // booking histograms for the ManyEvent analysis ;
44   void BookResolutionHistograms() ;         // booking histograms for the Resoluion analysis ;
45   void Copy(TObject & obj) ;                // copies an analysis into an other one   
46   Bool_t Init(Int_t evt) ;                  // does various initialisations
47   void DisplayKineEvent(Int_t evt = -999) ; // displays the Kine events in ALICE coordinate 
48   void DisplayRecParticles() ;              // displays RecParticles in ALICE coordinate  
49   void DisplayRecPoints() ;                 // displays RecPoints in module coordinate  
50   void DisplayTrackSegments() ;             // displays TrackSegments in module coordinate  
51   Bool_t OpenRootFile(Text_t * name) ;      // opens the root file
52   void SaveHistograms() ;                   // Save histograms in a root file
53   void ResetHistograms() ;                  // 
54   AliPHOSAnalyze & operator = (const AliPHOSAnalyze & rvalue)  {
55     // assignement operator requested by coding convention
56     // but not needed
57     assert(0==1) ;
58     return *this ; 
59   }
60   void SetDebugLevel(Int_t flag) { fDebugLevel = flag; }
61  
62  private:
63   
64   AliPHOSClusterizer * fClu ;         // a clusterizer 
65   Int_t fEvt ;                        // the evt number being processed 
66   AliPHOSGeometry * fGeom ;           // the PHOS Geometry object
67   AliPHOSIndexToObject * fObjGetter ; // provides methods to retrieve objects from their index in a list
68   AliPHOSv1 * fPHOS ;                 // the PHOS object from the root file 
69   AliPHOSPID * fPID ;                 // a particle identifier
70   AliPHOSReconstructioner * fRec ;    // a reconstructioner  
71   TFile * fRootFile ;                 // the root file that contains the data
72   AliPHOSTrackSegmentMaker * fTrs ;   // a tracksegmentmaker ;
73
74   Int_t fDebugLevel;                  // debug level for analysis
75
76   TH2F * fhEnergyCorrelations ;     //Energy correlations between Eloss in Convertor and PPSD(2)
77
78
79   TH1F * fhEmcDigit ;               // Histo of digit energies in the Emc 
80   TH1F * fhVetoDigit ;              // Histo of digit energies in the Veto 
81   TH1F * fhConvertorDigit ;         // Histo of digit energies in the Convertor
82   TH1F * fhEmcCluster ;             // Histo of Cluster energies in Emc
83   TH1F * fhVetoCluster ;            // Histo of Cluster energies in Veto
84   TH1F * fhConvertorCluster ;       // Histo of Cluster energies in Convertor
85   TH2F * fhConvertorEmc ;           // 2d Convertor versus Emc energies
86
87   TH2F * fhPhotonEnergy ;           // Spectrum of detected photons with photon primary
88   TH2F * fhPhotonAllEnergy ;        // Total spectrum of detected photons
89   TH2F * fhElectronEnergy ;         // Spectrum of detected electrons with electron primary
90   TH2F * fhElectronAllEnergy ;      // Total spectrum of detected electrons
91   TH2F * fhNeutralHadronEnergy ;    // Spectrum of detected neutral hadron
92   TH2F * fhNeutralEMEnergy ;        // Spectrum of detected neutral EM with EM primary
93   TH2F * fhNeutralEMAllEnergy ;     // Spectrum of detected neutral EM
94   TH2F * fhChargedHadronEnergy ;    // Spectrum of detected charged
95   TH2F * fhPhotonHadronEnergy ;     // Spectrum of detected Photon-Hadron
96   TH2F * fhPhotonPosition ;        // Position Resolution of  photons with photon primary
97   TH2F * fhPhotonAllPosition ;     // Position Resolution of  photons
98   TH2F * fhElectronPosition ;      // Position Resolution of electrons with electron primary
99   TH2F * fhElectronAllPosition ;   // Position Resolution of electrons
100   TH2F * fhNeutralHadronPosition ; // Position Resolution of neutral hadron
101   TH2F * fhNeutralEMPosition ;     // Position Resolution of neutral EM with EM primary
102   TH2F * fhNeutralEMAllPosition ;  // Position Resolution of neutral EM
103   TH2F * fhChargedHadronPosition ; // Position Resolution of charged
104   TH2F * fhPhotonHadronPosition ;  // Position Resolution of Photon-Hadron
105   TH1F * fhPhotonPositionY ;        // Y distribution of detected photons
106   TH1F * fhElectronPositionY ;      // Y distribution of detected electrons
107   TH1F * fhNeutralHadronPositionY ; // Y distribution of detected neutral hadron
108   TH1F * fhNeutralEMPositionY ;     // Y distribution of detected neutral EM
109   TH1F * fhChargedHadronPositionY ; // Y distribution of detected charged
110   TH1F * fhPhotonHadronPositionY ;  // Y distribution of detected Photon-Hadron
111   TH1F * fhPhotonReg ;          
112   TH1F * fhAllReg ;          
113   TH1F * fhNReg ;          
114   TH1F * fhNBarReg ;          
115   TH1F * fhChargedReg ;          
116   TH1F * fhPhotonEM ;          
117   TH1F * fhAllEM ;          
118   TH1F * fhNEM ;          
119   TH1F * fhNBarEM ;          
120   TH1F * fhChargedEM ;          
121   TH1F * fhPrimary ;          
122
123   TH1F * fhPhotPhot ;
124   TH1F * fhPhotElec ;
125   TH1F * fhPhotNeuH ;
126   TH1F * fhPhotNuEM ; 
127   TH1F * fhPhotChHa ;
128   TH1F * fhPhotGaHa ;
129
130
131
132 ClassDef(AliPHOSAnalyze,1)  // PHOSv1 event analyzis algorithm
133
134 };
135
136 #endif // AliPHOSANALYZE_H