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