Coding violations corrected.
[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 AliJetDummyGeo;
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   AliJetDummyGeo             *fGeom;             //! EMCAL Geometry 
59   AliJetHadronCorrection     *fHadCorr;          //! Pointer to Hadron Correction Object 
60   AliJetGrid                 *fTpcGrid;          //! Pointer to grid object
61   AliJetGrid                 *fEmcalGrid;        //! Pointer to grid object
62   AliJetGrid                 *fGrid0;            // Pointer to grid object
63   AliJetGrid                 *fGrid1;            // Pointer to grid object
64   AliJetGrid                 *fGrid2;            // Pointer to grid object
65   AliJetGrid                 *fGrid3;            // Pointer to grid object
66   AliJetGrid                 *fGrid4;            // Pointer to grid object
67   Float_t                     fPtCut;            // Pt cut for tracks to minimise background contribution
68   Int_t                       fApplyElectronCorrection;      // Electron correction flag
69   Bool_t                      fApplyMIPCorrection; // Apply MIP or not ? Exclusive with fApplyFractionHadronicCorrection
70   Bool_t                      fApplyFractionHadronicCorrection; // Another type of charged particle energy deposition in EMC
71   Double_t                    fFractionHadronicCorrection; // Fraction of momentum of the TPC track to be subtracted from EMC tower
72   Int_t                       fNumUnits;         // Number of units in the unit object array
73                                                  // (same as num towers in EMCAL)
74   Int_t                       fDebug;            //! Debug option
75   Float_t                     fMass;             // Particle mass
76   Int_t                       fSign;             // Particle sign
77   Int_t                       fNIn;              // Number of Array filled in UnitArray
78   Int_t                       fOpt;              // Detector to be used for jet reconstruction
79   Bool_t                      fDZ;               // Use or not dead zones
80   Int_t                       fNeta;             // Number of bins in eta of tpc grid
81   Int_t                       fNphi;             // Number of bins in phi of tpc grid
82   TRefArray                  *fRefArray;         // array of digit position and energy
83   Bool_t                      fProcId;           // Bool_t for TProcessID synchronization
84   Bool_t SetEMCALGeometry();
85   void InitParameters();
86   AliJetESDReader(const AliJetESDReader &det);
87   AliJetESDReader &operator=(const AliJetESDReader &det);
88
89
90
91   ClassDef(AliJetESDReader,1)
92 };
93  
94 #endif