]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALJetFinder.h
Phi propagation introduced in FillFromTracks.
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALJetFinder.h
1 #ifndef ALIEMCALJETFINDER_H
2 #define ALIEMCALJETFINDER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice     */
6
7 /* $Id$ */
8 //*-- Author:
9 //*-- Andreas Morsch (CERN)
10
11 #include <TTask.h>
12 #include "AliEMCALJet.h"
13
14 class TClonesArray;
15 class AliEMCALHadronCorrection;
16
17 class TH2F;
18
19 class AliEMCALJetFinder : public TTask {
20  public:
21     AliEMCALJetFinder();
22     AliEMCALJetFinder(const char* name, const char *title);
23     virtual ~AliEMCALJetFinder();
24     virtual void Find(Int_t ncell, Int_t ncell_tot, Float_t etc[30000], 
25                       Float_t etac[30000], Float_t phic[30000],
26                       Float_t min_move, Float_t max_move, Int_t mode,
27                       Float_t prec_bg, Int_t ierror);
28     virtual void Find();
29     virtual void FindTracksInJetCone();
30     virtual void Test();
31     virtual void  BuildTrackFlagTable();
32     virtual Int_t SetTrackFlag(Float_t radius, Int_t pdgCode, Double_t charge);
33     // Geometry
34     virtual void SetCellSize(Float_t eta, Float_t phi);
35     // Parameters
36     virtual void SetDebug(Int_t flag = 0) {fDebug = flag;}
37     virtual void SetConeRadius(Float_t par);
38     virtual void SetEtSeed(Float_t par);
39     virtual void SetMinJetEt(Float_t par);
40     virtual void SetMinCellEt(Float_t par);
41     virtual void SetPtCut(Float_t par = 1.);
42     virtual void SetMomentumSmearing(Bool_t flag = kFALSE) {fSmear = flag;}
43     virtual void SetEfficiencySim(Bool_t flag = kFALSE)    {fEffic = flag;}
44     virtual void SetSamplingFraction(Float_t par = 12.9) {fSamplingF = par;}
45     // Correction of hadronic energy
46     virtual void SetHadronCorrector(AliEMCALHadronCorrection* corr)
47         {fHadronCorrector = corr;}
48     virtual void SetHadronCorrection(Int_t flag = 1) {fHCorrection = flag;}
49     // Results
50     virtual Int_t   Njets();
51     virtual Float_t JetEnergy(Int_t);
52     virtual Float_t JetPhiL(Int_t);
53     virtual Float_t JetPhiW(Int_t);
54     virtual Float_t JetEtaL(Int_t);  
55     virtual Float_t JetEtaW(Int_t);
56     virtual TH2F* GetLego() {return fLego;}
57     // I/O
58     virtual void FillFromHits(Int_t flag = 0);
59     virtual void FillFromHitFlaggedTracks(Int_t flag = 0);
60     virtual void FillFromDigits(Int_t flag = 0);
61     virtual void FillFromTracks(Int_t flag = 0, Int_t ich = 0);
62     virtual void AddJet(const AliEMCALJet& jet);
63     virtual void WriteJets();
64     virtual void ResetJets();
65     virtual TClonesArray* Jets() {return fJets;}
66  private:
67     virtual void BookLego();
68     virtual void DumpLego();
69     virtual void ResetMap();
70     virtual Float_t PropagatePhi(Float_t pt, Float_t charge, Bool_t& curls);
71  protected:
72     TClonesArray*                  fJets;            //! List of Jets
73     TH2F*                          fLego;            //! Lego Histo
74     AliEMCALJet*                   fJetT[10];        //! Jet temporary storage
75     AliEMCALHadronCorrection*      fHadronCorrector; //! Pointer to hadronic correction
76     Int_t                          fHCorrection;     //  Hadron correction flag
77     Int_t                          fDebug;           //! Debug flag
78     Float_t                        fConeRadius;      //  Cone radius
79     Float_t                        fPtCut;           //  Pt cut on charged tracks
80     Float_t                        fEtSeed;          //  Min. Et for seed
81     Float_t                        fMinJetEt;        //  Min Et of jet
82     Float_t                        fMinCellEt;       //  Min Et in one cell
83     Float_t                        fSamplingF;
84     Bool_t                         fSmear;           //  Flag for momentum smearing
85     Bool_t                         fEffic;           //  Flag for efficiency simulation
86     Int_t                          fNjets;           //! Number of Jets
87     Float_t                        fDeta;            //! eta cell size 
88     Float_t                        fDphi;            //! phi cell size
89     Int_t                          fNcell;           //! number of cells
90     Int_t                          fNtot;            //! total number of cells
91     Int_t                          fNbinEta;         //! number of cells in eta
92     Int_t                          fNbinPhi;         //! number of cells in phi
93     Float_t                        fEtCell[30000];   //! Cell Energy
94     Float_t                        fEtaCell[30000];  //! Cell eta
95     Float_t                        fPhiCell[30000];  //! Cell phi
96     Int_t*                         fTrackList;       //! List of selected tracks
97     Int_t                          fNt;              //! number of tracks
98     Float_t*                       fPtT;             //! Pt   of tracks in jet cone
99     Float_t*                       fEtaT;            //! Eta  of tracks in jet cone
100     Float_t*                       fPhiT;            //! Phi  of tracks in jet cone
101     ClassDef(AliEMCALJetFinder,2)        // JetFinder for EMCAL
102 }
103 ;
104 #endif // ALIEMCALJetFinder_H
105
106