f7d5860b |
1 | |
2 | #ifndef ALIEMCALJETFINDERALGOUA1REVISED_H |
3 | #define ALIEMCALJETFINDERALGOUA1REVISED_H |
4 | |
5 | //THIS IS SARAH'S REVISED UA1 CODE WITH CHANGES FOR ETA/PHI ITERATION INCLUDED!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
6 | |
7 | |
8 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
9 | * * * See cxx source for full Copyright notice */ |
10 | |
11 | /* $Id$ */ |
12 | |
13 | //*--Author: Sarah Blyth (LBL) |
14 | //*--Based on UA1 jet algorithm from LUND JETSET called from EMC-erj |
15 | |
16 | |
17 | #include "TTask.h" |
18 | #include "AliEMCALJetFinderInput.h" |
19 | #include "AliEMCALJetFinderOutput.h" |
20 | #include "AliEMCALJetFinderAlgo.h" |
21 | #include "AliEMCALJetFinderAlgoUA1Unit.h" |
22 | #include "AliEMCALJet.h" |
23 | #include "AliEMCALHadronCorrectionv1.h" |
24 | |
25 | |
26 | class AliEMCALJetFinderAlgoUA1Revised : public AliEMCALJetFinderAlgo |
27 | { |
28 | |
29 | public: |
30 | AliEMCALJetFinderAlgoUA1Revised(); |
31 | ~AliEMCALJetFinderAlgoUA1Revised(); |
32 | void InitUnitArray(); |
33 | void SetNumUnits(Int_t numUnits) {fNumUnits = numUnits;} |
34 | Int_t GetNumUnits() {return fNumUnits;} |
35 | void SetJetESeed(Float_t eSeed) {fESeed = eSeed;} |
36 | Float_t GetJetESeed() {return fESeed;} |
37 | void SetConeRad(Float_t coneRad) {fConeRad = coneRad;} |
38 | Float_t GetConeRad() {return fConeRad;} |
39 | void SetJetEMin(Float_t jetEMin) {fJetEMin = jetEMin;} |
40 | Float_t GetJetEMin() {return fJetEMin;} |
41 | void SetEtMin(Float_t etMin) {fEtMin = etMin;} |
42 | Float_t GetEtMin() {return fEtMin;} |
43 | void SetMinMove(Float_t minMove) {fMinMove = minMove;} |
44 | void SetMaxMove(Float_t maxMove) {fMaxMove = maxMove;} |
45 | void SetBGMaxMove(Float_t bgMaxMove) {fBGMaxMove = bgMaxMove;} |
46 | void SetPtCut(Float_t ptCut) {fPtCut = ptCut;} |
47 | Float_t GetPtCut() {return fPtCut;} |
48 | void SetHadronCorrection(AliEMCALHadronCorrectionv1 *hadCorr) {fHadCorr = hadCorr;} |
49 | AliEMCALHadronCorrectionv1* GetHadronCorrection() {return fHadCorr;} |
50 | void SetJetFindingParameters(Int_t numUnits, Float_t eSeed, Float_t coneRad, Float_t jetEMin, Float_t etMin, |
51 | Float_t minMove, Float_t maxMove, Float_t bgMaxMove); |
52 | void SetJetFindingParameters(Int_t numUnits, Float_t eSeed, Float_t coneRad, Float_t jetEMin, Float_t etMin); |
53 | void FillUnitArray(AliEMCALJetFinderAlgoUA1FillUnitFlagType_t flag); |
54 | void Sort(AliEMCALJetFinderAlgoUA1Unit* unit,Int_t integer); |
55 | void FindBG(); |
56 | void FindJetEtaPhi(Int_t counter); |
57 | void FindJetEnergy(); |
58 | void StoreJetInfo(); |
59 | void FindJets(); |
60 | void QS(AliEMCALJetFinderAlgoUA1Unit *unit, Int_t left, Int_t right); |
61 | |
62 | protected: |
63 | AliEMCALJetFinderAlgoUA1Unit *fUnit; //Array of JetFinder Unit objects (treated as the cells) |
64 | AliEMCALHadronCorrectionv1 *fHadCorr; //Pointer to Hadron Correction Object |
65 | AliEMCALJet fJet; //Jet object |
66 | Int_t fNumIter; //Number of iterations for entire algorithm |
67 | Int_t fNumUnits; //Number of units in the unit object array (same as num towers in EMCAL) |
68 | Float_t fESeed; //Minimum energy a cell must have to be considered a jet seed |
69 | Float_t fConeRad; //Size of cone radius |
70 | Float_t fJetEMin; //Minimum energy a cluster must have to be considered a jet |
71 | Float_t fEtMin; //Minimum cell Et cut |
72 | Float_t fMinMove; //Minimum move of jet centre from its previous position |
73 | Float_t fMaxMove; //Maximum move allowed of jet centre from its initiator cell position |
74 | Float_t fBGMaxMove; //Maximum allowed change in background energy between iterations |
75 | Float_t fPtCut; //Pt cut for tracks to minimise background contribution |
76 | |
77 | Float_t fEBGTotal; //Total background energy |
78 | Float_t fEBGTotalOld; //Old total background energy |
79 | Float_t fEBGAve; //Average background energy |
80 | Float_t fEnergy; //Energy |
81 | Float_t fJetEta; //Jet eta value |
82 | Float_t fJetPhi; //Jet phi value |
83 | Float_t fEtaInit; //Jet initiate cell eta |
84 | Float_t fPhiInit; //Jet initiate cell phi |
85 | Float_t fEtaB; //Value of jet eta Before |
86 | Float_t fPhiB; //Value of jet phi Before |
87 | Float_t fJetESum; //Sum of weighted jet energy |
88 | Float_t fJetEtaSum; //Sum of weighted jet eta |
89 | Float_t fJetPhiSum; //Sum of weighted jet phi |
90 | Float_t fDEta; //Offset of unit from jet eta value |
91 | Float_t fDPhi; //Offset of unit from jet phi value |
92 | Float_t fDistP; //Distance of new jet axis position from Previous position |
93 | Float_t fDistI; //Distance of new jet axis position from Initiator cell position |
94 | Float_t fTempE; //Temp E for comparing with JetEMin |
95 | Float_t fRad; //Distance of cell from jet cone centre |
96 | Int_t fNumInCone; //Number of units in the jet cone |
97 | Int_t fNumJets; //Number of jets in an event |
98 | Bool_t fArrayInitialised; //To check that array of units is initialised |
99 | |
100 | ClassDef(AliEMCALJetFinderAlgoUA1Revised,1) |
101 | |
102 | }; |
103 | #endif |
104 | |