]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/AliJetReader.h
Extension to L0 and L1 trigger classes
[u/mrichter/AliRoot.git] / JETAN / AliJetReader.h
1 #ifndef ALIJETREADER_H
2 #define ALIJETREADER_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6  
7 // Jet reader base class
8 // manages the reading of input for jet algorithms
9 // Authors: jgcn@mda.cinvestav.mx
10 //          Magali Estienne <magali.estienne@subatech.in2p3.fr>  
11
12 #include <TObject.h>
13 #include <TChain.h>
14 #include <TArrayI.h>
15
16 class TTree;
17 class TChain;
18 class TTask;
19 class TClonesArray;
20 class TRefArray;
21 class AliJetReaderHeader;
22 class AliESDEvent;
23 class AliHeader;
24 class AliJetUnitArray;
25 class AliJetHadronCorrectionv1;
26 class AliJet;
27 class AliJetFillUnitArrayTracks;
28 class AliJetFillUnitArrayEMCalDigits;
29
30 class AliJetReader : public TObject 
31 {
32  public: 
33   AliJetReader();
34   virtual ~AliJetReader();
35
36   // Getters
37   virtual TClonesArray*       GetMomentumArray()     const {return fMomentumArray;}
38   virtual TRefArray*          GetReferences()        const {return 0;}   
39   virtual TClonesArray        *GetUnitArray() const {return fUnitArray;}  
40   virtual TClonesArray        *GetUnitArrayNoCuts()  const {return fUnitArrayNoCuts;} 
41
42   virtual AliJetReaderHeader* GetReaderHeader()      const {return fReaderHeader;}
43   virtual AliHeader           *GetAliHeader() const  {return fAliHeader;}
44   virtual Int_t               GetSignalFlag(Int_t i) const {return fSignalFlag[i];}
45   virtual Int_t               GetCutFlag(Int_t i)    const {return fCutFlag[i];}
46   virtual Int_t               GetArrayInitialised()  const {return fArrayInitialised;}
47   virtual Int_t               GetNumCandidate()      const {return fNumCandidate;} 
48   virtual Int_t               GetNumCandidateCut()   const {return fNumCandidateCut;}
49   
50   // Setters
51   virtual Bool_t FillMomentumArray() {return kTRUE;}
52   virtual Bool_t ReadEventLoader(Int_t) {return kTRUE;}
53   virtual void   FillUnitArrayFromTPCTracks(Int_t) {}     // temporarily not used
54   virtual void   FillUnitArrayFromEMCALHits() {}          // temporarily not used
55   virtual void   FillUnitArrayFromEMCALDigits(Int_t) {}   // temporarily not used
56   virtual void   InitUnitArray() {}
57   virtual void   InitParameters() {}
58   virtual void   CreateTasks(TChain* /*tree*/) {}
59   virtual Bool_t ExecTasks(Bool_t /*procid*/, TRefArray* /*refArray*/) {return kFALSE;}
60   // Correction of hadronic energy 
61   virtual void   SetHadronCorrector(AliJetHadronCorrectionv1*) {;} 
62   virtual void   SetHadronCorrection(Int_t) {;} 
63   virtual void   SetElectronCorrection(Int_t) {;} 
64   virtual void   SetReaderHeader(AliJetReaderHeader* header) 
65   {fReaderHeader = header;}
66   virtual void   SetESD(AliESDEvent* esd) { fESD = esd;}
67
68   // Others
69   virtual void   OpenInputFiles() {}
70   virtual void   SetInputEvent(TObject* /*esd*/, TObject* /*aod*/, TObject* /*mc*/) {;}
71   virtual void   ConnectTree(TTree* /*tree*/, TObject* /*data*/) {}
72   virtual Bool_t GetGenJets(AliJet* /*genJets*/) {return kFALSE;}
73   
74   void ClearArray();
75  
76  protected:
77   AliJetReader(const AliJetReader& rJetReader);
78   AliJetReader& operator = (const AliJetReader& rhsr);
79
80   TChain                          *fChain;                 // chain for reconstructed tracks
81   TChain                          *fTree;                  // tree for reconstructed tracks
82   TClonesArray                    *fMomentumArray;         // array of particle momenta
83   TClonesArray                    *fArrayMC;               //! array of mc particles
84   TTask                           *fFillUnitArray;         //! task list for filling the UnitArray
85   AliESDEvent                     *fESD;                   // pointer to esd
86   AliJetReaderHeader              *fReaderHeader;          // pointer to header
87   AliHeader                       *fAliHeader;             // AliHeader
88   TArrayI                          fSignalFlag;            // to flag if a particle comes from pythia or
89                                                            // from the underlying event
90   TArrayI                          fCutFlag;               // to flag if a particle passed the pt cut or not
91   TClonesArray                    *fUnitArray;             // array of digit position and energy 
92   TClonesArray                    *fUnitArrayNoCuts;       //|| array of digit position and energy 
93   Bool_t                           fArrayInitialised;      // To check that array of units is initialised  
94   AliJetFillUnitArrayTracks       *fFillUAFromTracks;      // For charged particle task
95   AliJetFillUnitArrayEMCalDigits  *fFillUAFromEMCalDigits; // For neutral particle task
96   Int_t                            fNumCandidate;          // Number of entries different from zero in unitarray
97   Int_t                            fNumCandidateCut;       // Number of entries different from zero in unitarray
98                                                            // which pass pt cut
99   AliJetHadronCorrectionv1        *fHadronCorrector;       //! Pointer to hadronic correction 
100   Int_t                            fHCorrection;           //  Hadron correction flag 
101   Int_t                            fECorrection;           //  Electron correction flag 
102   Bool_t                           fEFlag;                 //  Electron correction flag 
103
104
105   ClassDef(AliJetReader,1)
106 };
107  
108 #endif