Adding TestSuite
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALJetFinderAlgoUA1Revised.h
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() 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 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,2)
101
102 };
103 #endif
104