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