4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
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>
21 class AliJetReaderHeader;
24 class AliJetUnitArray;
25 class AliJetHadronCorrectionv1;
27 class AliJetFillUnitArrayTracks;
28 class AliJetFillUnitArrayEMCalDigits;
30 class AliJetReader : public TObject
34 virtual ~AliJetReader();
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;}
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;}
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;}
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;}
77 AliJetReader(const AliJetReader& rJetReader);
78 AliJetReader& operator = (const AliJetReader& rhsr);
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
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
105 ClassDef(AliJetReader,1)