471f69dc |
1 | #ifndef ALIEMCALJETFINDER_H |
2 | #define ALIEMCALJETFINDER_H |
3 | |
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
5 | * See cxx source for full Copyright notice */ |
6 | |
7 | /* $Id$ */ |
8 | //*-- Author: |
9 | //*-- Andreas Morsch (CERN) |
10 | |
11 | #include <TTask.h> |
12 | #include "AliEMCALJet.h" |
13 | |
14 | class TClonesArray; |
d594b22e |
15 | class AliEMCALHadronCorrection; |
16 | |
471f69dc |
17 | class TH2F; |
18 | |
19 | class AliEMCALJetFinder : public TTask { |
20 | public: |
3bc109a9 |
21 | AliEMCALJetFinder(); |
22 | AliEMCALJetFinder(const char* name, const char *title); |
23 | virtual ~AliEMCALJetFinder(); |
24 | virtual void Find(Int_t ncell, Int_t ncell_tot, Float_t etc[30000], |
25 | Float_t etac[30000], Float_t phic[30000], |
26 | Float_t min_move, Float_t max_move, Int_t mode, |
27 | Float_t prec_bg, Int_t ierror); |
28 | virtual void Find(); |
29 | virtual void FindTracksInJetCone(); |
30 | virtual void Test(); |
d594b22e |
31 | virtual void BuildTrackFlagTable(); |
32 | virtual Int_t SetTrackFlag(Float_t radius, Int_t pdgCode, Double_t charge); |
3bc109a9 |
33 | // Geometry |
34 | virtual void SetCellSize(Float_t eta, Float_t phi); |
35 | // Parameters |
d594b22e |
36 | virtual void SetDebug(Int_t flag = 0) {fDebug = flag;} |
3bc109a9 |
37 | virtual void SetConeRadius(Float_t par); |
38 | virtual void SetEtSeed(Float_t par); |
39 | virtual void SetMinJetEt(Float_t par); |
40 | virtual void SetMinCellEt(Float_t par); |
d594b22e |
41 | virtual void SetPtCut(Float_t par = 1.); |
42 | virtual void SetMomentumSmearing(Bool_t flag = kFALSE) {fSmear = flag;} |
43 | virtual void SetEfficiencySim(Bool_t flag = kFALSE) {fEffic = flag;} |
44 | virtual void SetSamplingFraction(Float_t par = 12.9) {fSamplingF = par;} |
d53b7b0b |
45 | virtual void SetIncludeK0andN(Bool_t flag = kFALSE) {fK0N = flag;} |
d594b22e |
46 | // Correction of hadronic energy |
47 | virtual void SetHadronCorrector(AliEMCALHadronCorrection* corr) |
48 | {fHadronCorrector = corr;} |
49 | virtual void SetHadronCorrection(Int_t flag = 1) {fHCorrection = flag;} |
3bc109a9 |
50 | // Results |
51 | virtual Int_t Njets(); |
52 | virtual Float_t JetEnergy(Int_t); |
53 | virtual Float_t JetPhiL(Int_t); |
54 | virtual Float_t JetPhiW(Int_t); |
55 | virtual Float_t JetEtaL(Int_t); |
56 | virtual Float_t JetEtaW(Int_t); |
57 | virtual TH2F* GetLego() {return fLego;} |
58 | // I/O |
59 | virtual void FillFromHits(Int_t flag = 0); |
d594b22e |
60 | virtual void FillFromHitFlaggedTracks(Int_t flag = 0); |
61 | virtual void FillFromDigits(Int_t flag = 0); |
3bc109a9 |
62 | virtual void FillFromTracks(Int_t flag = 0, Int_t ich = 0); |
63 | virtual void AddJet(const AliEMCALJet& jet); |
64 | virtual void WriteJets(); |
65 | virtual void ResetJets(); |
66 | virtual TClonesArray* Jets() {return fJets;} |
471f69dc |
67 | private: |
3bc109a9 |
68 | virtual void BookLego(); |
69 | virtual void DumpLego(); |
70 | virtual void ResetMap(); |
26dadf3a |
71 | virtual Float_t PropagatePhi(Float_t pt, Float_t charge, Bool_t& curls); |
471f69dc |
72 | protected: |
d594b22e |
73 | TClonesArray* fJets; //! List of Jets |
74 | TH2F* fLego; //! Lego Histo |
75 | AliEMCALJet* fJetT[10]; //! Jet temporary storage |
76 | AliEMCALHadronCorrection* fHadronCorrector; //! Pointer to hadronic correction |
77 | Int_t fHCorrection; // Hadron correction flag |
78 | Int_t fDebug; //! Debug flag |
79 | Float_t fConeRadius; // Cone radius |
80 | Float_t fPtCut; // Pt cut on charged tracks |
81 | Float_t fEtSeed; // Min. Et for seed |
82 | Float_t fMinJetEt; // Min Et of jet |
83 | Float_t fMinCellEt; // Min Et in one cell |
84 | Float_t fSamplingF; |
85 | Bool_t fSmear; // Flag for momentum smearing |
86 | Bool_t fEffic; // Flag for efficiency simulation |
d53b7b0b |
87 | Bool_t fK0N; // Flag for efficiency simulation |
d594b22e |
88 | Int_t fNjets; //! Number of Jets |
89 | Float_t fDeta; //! eta cell size |
90 | Float_t fDphi; //! phi cell size |
91 | Int_t fNcell; //! number of cells |
92 | Int_t fNtot; //! total number of cells |
93 | Int_t fNbinEta; //! number of cells in eta |
94 | Int_t fNbinPhi; //! number of cells in phi |
95 | Float_t fEtCell[30000]; //! Cell Energy |
96 | Float_t fEtaCell[30000]; //! Cell eta |
97 | Float_t fPhiCell[30000]; //! Cell phi |
98 | Int_t* fTrackList; //! List of selected tracks |
99 | Int_t fNt; //! number of tracks |
100 | Float_t* fPtT; //! Pt of tracks in jet cone |
101 | Float_t* fEtaT; //! Eta of tracks in jet cone |
102 | Float_t* fPhiT; //! Phi of tracks in jet cone |
3bc109a9 |
103 | ClassDef(AliEMCALJetFinder,2) // JetFinder for EMCAL |
104 | } |
105 | ; |
471f69dc |
106 | #endif // ALIEMCALJetFinder_H |
107 | |
3bc109a9 |
108 | |