Made more robust
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALJetFinderAlgoOmni.h
CommitLineData
f7d5860b 1
2#ifndef ALIEMCALJETFINDERALGOOMNI_H
3#define ALIEMCALJETFINDERALGOOMNI_H
4
5//THIS IS SARAH'S REVISED UA1 CODE WITH CHANGES FOR ETA/PHI ITERATION INCLUDED!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6//THIS Also includes summing ALL cells in the jetcone towards the jet energy NOT just those above threshold!!!!!
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
26class AliEMCALJetFinderAlgoOmni : public AliEMCALJetFinderAlgo
27{
28
29public:
30 AliEMCALJetFinderAlgoOmni();
31 ~AliEMCALJetFinderAlgoOmni();
32 void InitUnitArray();
33 void SetNumUnits(Int_t numUnits) {fNumUnits = numUnits;}
41d06268 34 Int_t GetNumUnits() const {return fNumUnits;}
f7d5860b 35 void SetJetESeed(Float_t eSeed) {fESeed = eSeed;}
41d06268 36 Float_t GetJetESeed() const {return fESeed;}
f7d5860b 37 void SetConeRad(Float_t coneRad) {fConeRad = coneRad;}
41d06268 38 Float_t GetConeRad() const {return fConeRad;}
f7d5860b 39 void SetJetEMin(Float_t jetEMin) {fJetEMin = jetEMin;}
41d06268 40 Float_t GetJetEMin() const {return fJetEMin;}
f7d5860b 41 void SetEtMin(Float_t etMin) {fEtMin = etMin;}
41d06268 42 Float_t GetEtMin() const {return fEtMin;}
f7d5860b 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;}
41d06268 47 Float_t GetPtCut() const {return fPtCut;}
f7d5860b 48 void SetHadronCorrection(AliEMCALHadronCorrectionv1 *hadCorr) {fHadCorr = hadCorr;}
41d06268 49 AliEMCALHadronCorrectionv1* GetHadronCorrection() const {return fHadCorr;}
f7d5860b 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 SetBGCalcType(AliEMCALJetFinderAlgoBGCalcType_t flag2, Float_t bgPar = -1) {fBGType = flag2; fBGPar = bgPar;}
55 void Sort(AliEMCALJetFinderAlgoUA1Unit* unit,Int_t integer);
56 void FindBG();
57 void RatioBG();
58 void ConeBG();
59 void ConstantBG();
60 void FindJetEtaPhi(Int_t counter);
61 void FindJetEnergy();
62 void StoreJetInfo();
63 void FindJets();
64 void QS(AliEMCALJetFinderAlgoUA1Unit *unit, Int_t left, Int_t right);
41d06268 65 AliEMCALJetFinderAlgoUA1Unit* GetUnitArrayPointer() const {return fUnit;}
66 AliEMCALJetFinderAlgoUA1Unit* GetUnitArrayPointerNoCuts() const {return fUnitNoCuts;}
f7d5860b 67
68protected:
69 AliEMCALJetFinderAlgoUA1Unit *fUnit; //Array of JetFinder Unit objects (treated as the cells)
70 AliEMCALJetFinderAlgoUA1Unit *fUnitNoCuts; //Second array of JetFinder Unit objects ('raw data')
71 AliEMCALHadronCorrectionv1 *fHadCorr; //Pointer to Hadron Correction Object
72 AliEMCALJet fJet; //Jet object
73 AliEMCALJetFinderAlgoBGCalcType_t fBGType; //Method of background calculation to be used
74 Int_t fNumIter; //Number of iterations for entire algorithm
75 Int_t fNumUnits; //Number of units in the unit object array (same as num towers in EMCAL)
76 Float_t fESeed; //Minimum energy a cell must have to be considered a jet seed
77 Float_t fConeRad; //Size of cone radius
78 Float_t fJetEMin; //Minimum energy a cluster must have to be considered a jet
79 Float_t fEtMin; //Minimum cell Et cut
80 Float_t fMinMove; //Minimum move of jet centre from its previous position
81 Float_t fMaxMove; //Maximum move allowed of jet centre from its initiator cell position
82 Float_t fBGMaxMove; //Maximum allowed change in background energy between iterations
83 Float_t fPtCut; //Pt cut for tracks to minimise background contribution
84 Float_t fBGPar; //Parameter to be used for method of background calculation
85
86 Float_t fEBGTotal; //Total background energy
87 Float_t fEBGTotalOld; //Old total background energy
88 Float_t fEBGAve; //Average background energy
89 Float_t fEnergy; //Energy
90 Float_t fJetEta; //Jet eta value
91 Float_t fJetPhi; //Jet phi value
92 Float_t fEtaInit; //Jet initiate cell eta
93 Float_t fPhiInit; //Jet initiate cell phi
94 Float_t fEtaB; //Value of jet eta Before
95 Float_t fPhiB; //Value of jet phi Before
96 Float_t fJetESum; //Sum of weighted jet energy
97 Float_t fJetEtaSum; //Sum of weighted jet eta
98 Float_t fJetPhiSum; //Sum of weighted jet phi
99 Float_t fDEta; //Offset of unit from jet eta value
100 Float_t fDPhi; //Offset of unit from jet phi value
101 Float_t fDistP; //Distance of new jet axis position from Previous position
102 Float_t fDistI; //Distance of new jet axis position from Initiator cell position
103 Float_t fTempE; //Temp E for comparing with JetEMin
104 Float_t fRad; //Distance of cell from jet cone centre
105 Int_t fNumInCone; //Number of units in the jet cone
106 Int_t fNumJets; //Number of jets in an event
107 Bool_t fArrayInitialised; //To check that array of units is initialised
108
41d06268 109 ClassDef(AliEMCALJetFinderAlgoOmni,2)
f7d5860b 110
111};
112#endif
113