]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/AliJetReader.h
break when there is no input file for second run
[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@IReS.in2p3.fr>  
11
12 #include <TObject.h>
13 #include <TChain.h>
14 #include <TArrayI.h>
15
16 class TTree;
17 class TTask;
18 class TChain;
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 TRefArray           *GetRefArray()         const {return fRefArray;}
41   virtual TClonesArray        *GetUnitArrayNoCuts()  const {return fUnitArrayNoCuts;} 
42
43   virtual AliJetReaderHeader* GetReaderHeader()      const {return fReaderHeader;}
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 void   FillUnitArrayFromTPCTracks(Int_t) {}     // temporarily not used
53   virtual void   FillUnitArrayFromEMCALHits() {}          // temporarily not used
54   virtual void   FillUnitArrayFromEMCALDigits(Int_t) {}   // temporarily not used
55   virtual void   FillUnitArrayFromEMCALClusters(Int_t) {} // temporarily not used
56   virtual void   InitUnitArray() {}
57   virtual void   InitParameters() {}
58   virtual void   CreateTasks() {}
59   //  virtual void   ExecTasks(Int_t) {}
60   virtual Bool_t   ExecTasks(Int_t) {return kTRUE;}
61   /*   // Correction of hadronic energy 
62        virtual void SetHadronCorrector(AliEMCALHadronCorrectionv1* corr) {fHadronCorrector = corr;} 
63        virtual void SetHadronCorrection(Int_t flag = 1) {fHCorrection = flag;} */
64   virtual void   SetReaderHeader(AliJetReaderHeader* header) 
65       {fReaderHeader = header;}
66   virtual void   SetESD(AliESDEvent* esd) { fESD = esd;}
67   //  virtual Int_t  SetNumCandidate(Int_t cand) {fNumCandidate = cand;} 
68   //  virtual Int_t  SetNumCandidateCut(Int_t candcut) {fNumCandidateCut = candcut;}
69   
70
71   // Others
72   virtual void   OpenInputFiles() {}
73   virtual void   SetInputEvent(TObject* /*esd*/, TObject* /*aod*/, TObject* /*mc*/) {;}
74   virtual void   ConnectTree(TTree* /*tree*/, TObject* /*data*/) {}
75   virtual Bool_t GetGenJets(AliJet* /*genJets*/) {return kFALSE;}
76   
77   void ClearArray();
78  
79  protected:
80   AliJetReader(const AliJetReader& rJetReader);
81   AliJetReader& operator = (const AliJetReader& rhsr);
82   TChain                  *fChain;            // chain for reconstructed tracks
83   TClonesArray            *fMomentumArray;    // array of particle momenta
84   TClonesArray            *fArrayMC;          //! array of mc particles
85   TTask                   *fFillUnitArray;    //! task list for filling the UnitArray
86   AliESDEvent             *fESD;              // pointer to esd
87   AliJetReaderHeader      *fReaderHeader;     // pointer to header
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   TRefArray               *fRefArray;         // array of digit position and energy 
93   TClonesArray            *fUnitArrayNoCuts;  // array of digit position and energy 
94   Bool_t                   fArrayInitialised; // To check that array of units is initialised  
95   AliJetFillUnitArrayTracks        *fFillUAFromTracks;
96   AliJetFillUnitArrayEMCalDigits   *fFillUAFromEMCalDigits;
97   Int_t                    fNumCandidate;
98   Int_t                    fNumCandidateCut;
99   ClassDef(AliJetReader,1)
100 };
101  
102 #endif