]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/jetfinder/AliEMCALJetFinderAlgoOmni.h
updates for Effective C++ compiler flags
[u/mrichter/AliRoot.git] / EMCAL / jetfinder / AliEMCALJetFinderAlgoOmni.h
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
26 class AliEMCALJetFinderAlgoOmni : public AliEMCALJetFinderAlgo
27 {
28
29 public:
30   AliEMCALJetFinderAlgoOmni();
31   ~AliEMCALJetFinderAlgoOmni();
32   void InitUnitArray();                      
33   void SetNumUnits(Int_t numUnits)           {fNumUnits = numUnits;}
34   Int_t GetNumUnits() const                  {return fNumUnits;}
35   void SetJetESeed(Float_t eSeed)            {fESeed = eSeed;}
36   Float_t GetJetESeed() const                {return fESeed;}
37   void SetConeRad(Float_t coneRad)           {fConeRad = coneRad;}
38   Float_t GetConeRad() const                 {return fConeRad;}
39   void SetJetEMin(Float_t jetEMin)           {fJetEMin = jetEMin;}
40   Float_t GetJetEMin() const                 {return fJetEMin;}
41   void SetEtMin(Float_t etMin)               {fEtMin = etMin;}
42   Float_t GetEtMin() const                   {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() const                   {return fPtCut;}
48   void SetHadronCorrection(AliEMCALHadronCorrectionv1 *hadCorr) {fHadCorr = hadCorr;}
49   AliEMCALHadronCorrectionv1* GetHadronCorrection() const {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 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);
65   AliEMCALJetFinderAlgoUA1Unit* GetUnitArrayPointer() const {return fUnit;}
66   AliEMCALJetFinderAlgoUA1Unit* GetUnitArrayPointerNoCuts() const {return fUnitNoCuts;}
67
68   AliEMCALJetFinderAlgoOmni (const AliEMCALJetFinderAlgoOmni&);
69   AliEMCALJetFinderAlgoOmni & operator = (const AliEMCALJetFinderAlgoOmni & ) {
70     Fatal("operator =", "not implemented") ;
71     return *this ;
72   }
73
74 protected:
75   AliEMCALJetFinderAlgoUA1Unit   *fUnit; //Array of JetFinder Unit objects (treated as the cells)
76   AliEMCALJetFinderAlgoUA1Unit   *fUnitNoCuts; //Second array of JetFinder Unit objects ('raw data')
77   AliEMCALHadronCorrectionv1 *fHadCorr; //Pointer to Hadron Correction Object
78   AliEMCALJetFinderAlgoBGCalcType_t fBGType; //Method of background calculation to be used 
79   Int_t             fNumIter;          //Number of iterations for entire algorithm
80   Int_t             fNumUnits;         //Number of units in the unit object array (same as num towers in EMCAL)
81   Float_t           fESeed;            //Minimum energy a cell must have to be considered a jet seed
82   Float_t           fConeRad;          //Size of cone radius 
83   Float_t           fJetEMin;          //Minimum energy a cluster must have to be considered a jet
84   Float_t           fEtMin;            //Minimum cell Et cut
85   Float_t           fMinMove;          //Minimum move of jet centre from its previous position
86   Float_t           fMaxMove;          //Maximum move allowed of jet centre from its initiator cell position
87   Float_t           fBGMaxMove;        //Maximum allowed change in background energy between iterations 
88   Float_t           fPtCut;            //Pt cut for tracks to minimise background contribution
89   Float_t           fBGPar;            //Parameter to be used for method of background calculation  
90
91   Float_t           fEBGTotal;         //Total background energy
92   Float_t           fEBGTotalOld;      //Old total background energy
93   Float_t           fEBGAve;           //Average background energy
94   Float_t           fEnergy;           //Energy 
95   Float_t           fJetEta;           //Jet eta value
96   Float_t           fJetPhi;           //Jet phi value
97   Float_t           fEtaInit;          //Jet initiate cell eta
98   Float_t           fPhiInit;          //Jet initiate cell phi
99   Float_t           fEtaB;             //Value of jet eta Before
100   Float_t           fPhiB;             //Value of jet phi Before
101   Float_t           fJetESum;          //Sum of weighted jet energy
102   Float_t           fJetEtaSum;        //Sum of weighted jet eta
103   Float_t           fJetPhiSum;        //Sum of weighted jet phi
104   Float_t           fDEta;             //Offset of unit from jet eta value
105   Float_t           fDPhi;             //Offset of unit from jet phi value
106   Float_t           fDistP;            //Distance of new jet axis position from Previous position
107   Float_t           fDistI;            //Distance of new jet axis position from Initiator cell position
108   Float_t           fTempE;            //Temp E for comparing with JetEMin
109   Float_t           fRad;              //Distance of cell from jet cone centre
110   Int_t             fNumInCone;        //Number of units in the jet cone
111   Int_t             fNumJets;          //Number of jets in an event
112   Bool_t            fArrayInitialised; //To check that array of units is initialised
113
114   ClassDef(AliEMCALJetFinderAlgoOmni,3)
115
116 };
117 #endif
118