]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/AliJetAODReader.h
New AliPoissonCalculator class
[u/mrichter/AliRoot.git] / JETAN / AliJetAODReader.h
1 #ifndef ALIJETAODREADER_H
2 #define ALIJETAODREADER_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 AOD Reader
9 // AOD reader for jet analysis
10 // Author: Davide Perrino (davide.perrino@cern.ch)
11 //---------------------------------------------------------------------
12
13 #include "AliJetReader.h"
14 #include "AliJetUnitArray.h"
15 #include "AliJetGrid.h"
16 class AliJetUnitArray;
17 class AliEMCALGeometry;
18 class AliJetHadronCorrection;
19 class AliJetAODReaderHeader;
20 class AliJetReaderHeader;
21 class AliAODMCParticle;
22 class AliAODEvent;
23 class TRefArray;
24
25 class AliJetAODReader : public AliJetReader
26 {
27  public: 
28   AliJetAODReader();
29   virtual ~AliJetAODReader();
30
31   TRefArray*   GetReferences() const {return fRef;}
32
33   Bool_t FillMomentumArray(); 
34   static Bool_t AcceptAODMCParticle(AliAODMCParticle *mcP,Short_t flag);
35
36   void   OpenInputFiles();
37   void   ConnectTree(TTree* tree, TObject* data);
38   void   InitUnitArray();
39   void   CreateTasks(TChain* tree);
40   Bool_t ExecTasks(Bool_t procid, TRefArray* refArray);
41
42   void SetInputEvent(const TObject* /*esd*/, const TObject* aod, const TObject* /*mc*/) {fAOD = (AliAODEvent*) aod;}
43   void SetTPCGrid(AliJetGrid *grid)   {fTpcGrid = grid;}
44   void SetEMCalGrid(AliJetGrid *grid) {fEmcalGrid = grid;}
45   // Correction of hadronic energy
46   void SetHadronCorrection(const Int_t flag = 1) {fHCorrection = flag;}
47   void SetHadronCorrector(AliJetHadronCorrection* corr) {fHadCorr = corr;}
48   void SetApplyElectronCorrection(const Int_t flag = 1) {fECorrection = flag; fEFlag=kTRUE;}
49   void SetApplyMIPCorrection(const Bool_t val);
50   void SetApplyFractionHadronicCorrection(Bool_t val);
51   void SetFractionHadronicCorrection(Double_t val);
52
53
54  private:
55   Bool_t SetEMCALGeometry();
56   Bool_t FillMomentumArrayMC();
57
58
59   void InitParameters();
60   AliJetAODReader(const AliJetAODReader &det);
61   AliJetAODReader &operator=(const AliJetAODReader &det);
62
63  private:
64   AliAODEvent                *fAOD;    //! pointer to aod
65   TRefArray                  *fRef;    //! pointer to array of references to tracks
66   Int_t                       fDebug;  // Debug option
67   Int_t                       fOpt;    // Detector to be used for jet reconstruction
68   AliJetHadronCorrection     *fHadCorr;          //! Pointer to Hadron Correction Object
69   AliJetGrid                 *fTpcGrid;          //! Pointer to grid object
70   AliJetGrid                 *fEmcalGrid;        //! Pointer to grid object
71   AliJetGrid                 *fGrid0;            // Pointer to grid object
72   AliJetGrid                 *fGrid1;            // Pointer to grid object
73   AliJetGrid                 *fGrid2;            // Pointer to grid object
74   AliJetGrid                 *fGrid3;            // Pointer to grid object
75   AliJetGrid                 *fGrid4;            // Pointer to grid object
76   Int_t                       fApplyElectronCorrection;      // Electron correction flag
77   Bool_t                      fApplyMIPCorrection; // Apply MIP or not ? Exclusive with fApplyFractionHadronicCorrection
78   Bool_t                      fApplyFractionHadronicCorrection; // Another type of charged particle energy deposition in EMC
79   Double_t                    fFractionHadronicCorrection; // Fraction of momentum of the TPC track to be subtracted from EMC tower
80   Int_t                       fNumUnits;         // Number of units in the unit object array
81                                                  // (same as num towers in EMCAL)
82   Float_t                     fMass;             // Particle mass
83   Int_t                       fSign;             // Particle sign
84   Int_t                       fNIn;              // Number of Array filled in UnitArray
85   Bool_t                      fDZ;               // Use or not dead zones
86   Int_t                       fNeta;             // Number of bins in eta of tpc grid
87   Int_t                       fNphi;             // Number of bins in phi of tpc grid
88   TRefArray                  *fRefArray;         // array of digit position and energy
89   Bool_t                      fProcId;           // Bool_t for TProcessID synchronization
90   ClassDef(AliJetAODReader,2)
91 };
92  
93 #endif