]>
Commit | Line | Data |
---|---|---|
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; | |
15 | class AliEMCALHadronCorrection; | |
16 | ||
17 | class TH2F; | |
18 | ||
19 | class AliEMCALJetFinder : public TTask { | |
20 | public: | |
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(); | |
31 | virtual void BuildTrackFlagTable(); | |
32 | virtual Int_t SetTrackFlag(Float_t radius, Int_t pdgCode, Double_t charge); | |
33 | // Geometry | |
34 | virtual void SetCellSize(Float_t eta, Float_t phi); | |
35 | // Parameters | |
36 | virtual void SetDebug(Int_t flag = 0) {fDebug = flag;} | |
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); | |
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;} | |
45 | virtual void SetIncludeK0andN(Bool_t flag = kFALSE) {fK0N = flag;} | |
46 | // Correction of hadronic energy | |
47 | virtual void SetHadronCorrector(AliEMCALHadronCorrection* corr) | |
48 | {fHadronCorrector = corr;} | |
49 | virtual void SetHadronCorrection(Int_t flag = 1) {fHCorrection = flag;} | |
50 | // Access to 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); | |
60 | virtual void FillFromHitFlaggedTracks(Int_t flag = 0); | |
61 | virtual void FillFromDigits(Int_t flag = 0); | |
62 | virtual void FillFromTracks(Int_t flag = 0, Int_t ich = 0); | |
63 | virtual void SaveBackgroundEvent(); | |
64 | virtual void InitFromBackground(); | |
65 | virtual void AddJet(const AliEMCALJet& jet); | |
66 | virtual void WriteJets(); | |
67 | virtual void ResetJets(); | |
68 | virtual TClonesArray* Jets() {return fJets;} | |
69 | private: | |
70 | virtual void BookLego(); | |
71 | virtual void DumpLego(); | |
72 | virtual void ResetMap(); | |
73 | virtual Float_t PropagatePhi(Float_t pt, Float_t charge, Bool_t& curls); | |
74 | protected: | |
75 | TClonesArray* fJets; //! List of Jets | |
76 | TH2F* fLego; //! Lego Histo | |
77 | TH2F* fLegoB; //! Lego Histo Backg | |
78 | AliEMCALJet* fJetT[10]; //! Jet temporary storage | |
79 | AliEMCALHadronCorrection* fHadronCorrector; //! Pointer to hadronic correction | |
80 | Int_t fHCorrection; // Hadron correction flag | |
81 | Int_t fDebug; //! Debug flag | |
82 | Int_t fBackground; //! Background flag | |
83 | Float_t fConeRadius; // Cone radius | |
84 | Float_t fPtCut; // Pt cut on charged tracks | |
85 | Float_t fEtSeed; // Min. Et for seed | |
86 | Float_t fMinJetEt; // Min Et of jet | |
87 | Float_t fMinCellEt; // Min Et in one cell | |
88 | Float_t fSamplingF; // Sampling Fraction | |
89 | Bool_t fSmear; // Flag for momentum smearing | |
90 | Bool_t fEffic; // Flag for efficiency simulation | |
91 | Bool_t fK0N; // Flag for efficiency simulation | |
92 | Int_t fNjets; //! Number of Jets | |
93 | Float_t fDeta; //! eta cell size | |
94 | Float_t fDphi; //! phi cell size | |
95 | Int_t fNcell; //! number of cells | |
96 | Int_t fNtot; //! total number of cells | |
97 | Int_t fNbinEta; //! number of cells in eta | |
98 | Int_t fNbinPhi; //! number of cells in phi | |
99 | Float_t fEtaMin; //! minimum eta | |
100 | Float_t fEtaMax; //! maximum eta | |
101 | Float_t fPhiMin; //! minimun phi | |
102 | Float_t fPhiMax; //! maximum phi | |
103 | Float_t fEtCell[30000]; //! Cell Energy | |
104 | Float_t fEtaCell[30000]; //! Cell eta | |
105 | Float_t fPhiCell[30000]; //! Cell phi | |
106 | Int_t* fTrackList; //! List of selected tracks | |
107 | Int_t* fTrackListB; //! List of selected tracks in Bg | |
108 | Int_t fNt; //! number of tracks | |
109 | Int_t fNtS; //! number of tracks selected | |
110 | Float_t* fPtT; //! Pt of tracks | |
111 | Float_t* fEtaT; //! Eta of tracks | |
112 | Float_t* fPhiT; //! Phi of tracks | |
113 | Int_t fNtB; //! number of tracks in Bg | |
114 | Float_t* fPtB; //! Pt of tracks in Bg | |
115 | Float_t* fEtaB; //! Eta of tracks in Bg | |
116 | Float_t* fPhiB; //! Phi of tracks in Bg | |
117 | ||
118 | ClassDef(AliEMCALJetFinder,2) // JetFinder for EMCAL | |
119 | } | |
120 | ; | |
121 | #endif // ALIEMCALJetFinder_H | |
122 | ||
123 | ||
124 | ||
125 | ||
126 | ||
127 |