2755fc8e7fc5ddc1cf34ee3a55e48df77669d15b
[u/mrichter/AliRoot.git] / JETAN / AliJetESDReader.h
1 #ifndef ALIJETESDREADER_H
2 #define ALIJETESDREADER_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6  
7 //---------------------------------------------------------------------
8 // Jet ESD Reader 
9 // ESD reader for jet analysis
10 // Author: Mercedes Lopez Noriega (mercedes.lopez.noriega@cern.ch)
11 //=========================================================================
12 // Modified in order to use a fUnitArray object instead of a fMomentumArray
13 // Includes EMCal Geometry, fUnitArray, grid objects and tools for Hadron correction
14 // Author : magali.estienne@subatech.in2p3.fr
15 //---------------------------------------------------------------------
16
17 #include "AliJetReader.h"
18 #include "AliJetUnitArray.h"
19 #include "AliJetGrid.h"
20
21 class TRefArray;
22 class AliJetESDReaderHeader;
23 class AliEMCALGeometry;
24 class AliEMCALGeometry;
25 class AliJetHadronCorrection;
26 class AliJetUnitArray;
27 class AliJetReaderHeader;
28 class AliESDEvent;
29
30 class AliJetESDReader : public AliJetReader
31 {
32  public: 
33   AliJetESDReader();
34   virtual ~AliJetESDReader();
35
36   Bool_t     FillMomentumArray(); 
37   void       OpenInputFiles();
38   void       InitUnitArray();
39   void       CreateTasks(TChain* tree);
40   Bool_t     ExecTasks(const Bool_t procid, TRefArray* refArray);
41
42   // Getters
43   Float_t    GetTrackMass() const {return fMass;}  // returns mass of the track
44   Int_t      GetTrackSign() const {return fSign;}  // returns sign of the track
45  
46   // Setters
47   void       SetInputEvent(const TObject* esd, const TObject* aod, const TObject* mc);
48   void       SetTPCGrid(AliJetGrid *grid)   {fTpcGrid = grid;}
49   void       SetEMCalGrid(AliJetGrid *grid) {fEmcalGrid = grid;}
50   // Correction of hadronic energy
51   void       SetHadronCorrector(AliJetHadronCorrection* corr) {fHadCorr = corr;}
52   void       SetApplyElectronCorrection(Int_t flag = 1) {fECorrection = flag; fEFlag=kTRUE;}
53   void       SetApplyMIPCorrection(Bool_t val);
54   void       SetApplyFractionHadronicCorrection(Bool_t val);
55   void       SetFractionHadronicCorrection(Double_t val);
56
57  protected:
58   AliJetHadronCorrection     *fHadCorr;          //! Pointer to Hadron Correction Object 
59   AliJetGrid                 *fTpcGrid;          //! Pointer to grid object
60   AliJetGrid                 *fEmcalGrid;        //! Pointer to grid object
61   AliJetGrid                 *fGrid0;            // Pointer to grid object
62   AliJetGrid                 *fGrid1;            // Pointer to grid object
63   AliJetGrid                 *fGrid2;            // Pointer to grid object
64   AliJetGrid                 *fGrid3;            // Pointer to grid object
65   AliJetGrid                 *fGrid4;            // Pointer to grid object
66   Int_t                       fApplyElectronCorrection;      // Electron correction flag
67   Bool_t                      fApplyMIPCorrection; // Apply MIP or not ? Exclusive with fApplyFractionHadronicCorrection
68   Bool_t                      fApplyFractionHadronicCorrection; // Another type of charged particle energy deposition in EMC
69   Double_t                    fFractionHadronicCorrection; // Fraction of momentum of the TPC track to be subtracted from EMC tower
70   Int_t                       fNumUnits;         // Number of units in the unit object array
71                                                  // (same as num towers in EMCAL)
72   Int_t                       fDebug;            //! Debug option
73   Float_t                     fMass;             // Particle mass
74   Int_t                       fSign;             // Particle sign
75   Int_t                       fNIn;              // Number of Array filled in UnitArray
76   Int_t                       fOpt;              // Detector to be used for jet reconstruction
77   Bool_t                      fDZ;               // Use or not dead zones
78   Int_t                       fNeta;             // Number of bins in eta of tpc grid
79   Int_t                       fNphi;             // Number of bins in phi of tpc grid
80   TRefArray                  *fRefArray;         // array of digit position and energy
81   Bool_t                      fProcId;           // Bool_t for TProcessID synchronization
82   void InitParameters();
83   AliJetESDReader(const AliJetESDReader &det);
84   AliJetESDReader &operator=(const AliJetESDReader &det);
85
86
87
88   ClassDef(AliJetESDReader,2)
89 };
90  
91 #endif