]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EMCAL/AliEMCALJetFinder.h
Smaller changes
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALJetFinder.h
CommitLineData
471f69dc 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
14class TClonesArray;
15class TH2F;
c44ecd4c 16class TH1F;
17class TCanvas;
b561574c 18class TList;
19class AliEMCALHadronCorrection;
471f69dc 20
21class AliEMCALJetFinder : public TTask {
22 public:
3bc109a9 23 AliEMCALJetFinder();
24 AliEMCALJetFinder(const char* name, const char *title);
25 virtual ~AliEMCALJetFinder();
08a3fb06 26 virtual void Init();
a942c029 27 virtual void Find(Int_t ncell, Int_t ncell_tot, Float_t etc[30000],
3bc109a9 28 Float_t etac[30000], Float_t phic[30000],
29 Float_t min_move, Float_t max_move, Int_t mode,
30 Float_t prec_bg, Int_t ierror);
a942c029 31 virtual void Find();
32 virtual void FindTracksInJetCone();
33 virtual void Test();
d594b22e 34 virtual void BuildTrackFlagTable();
35 virtual Int_t SetTrackFlag(Float_t radius, Int_t pdgCode, Double_t charge);
3bc109a9 36 // Geometry
37 virtual void SetCellSize(Float_t eta, Float_t phi);
38 // Parameters
d594b22e 39 virtual void SetDebug(Int_t flag = 0) {fDebug = flag;}
3bc109a9 40 virtual void SetConeRadius(Float_t par);
41 virtual void SetEtSeed(Float_t par);
42 virtual void SetMinJetEt(Float_t par);
43 virtual void SetMinCellEt(Float_t par);
d594b22e 44 virtual void SetPtCut(Float_t par = 1.);
45 virtual void SetMomentumSmearing(Bool_t flag = kFALSE) {fSmear = flag;}
46 virtual void SetEfficiencySim(Bool_t flag = kFALSE) {fEffic = flag;}
47 virtual void SetSamplingFraction(Float_t par = 12.9) {fSamplingF = par;}
d53b7b0b 48 virtual void SetIncludeK0andN(Bool_t flag = kFALSE) {fK0N = flag;}
d594b22e 49 // Correction of hadronic energy
50 virtual void SetHadronCorrector(AliEMCALHadronCorrection* corr)
51 {fHadronCorrector = corr;}
52 virtual void SetHadronCorrection(Int_t flag = 1) {fHCorrection = flag;}
b7a73953 53 // PAI
54 void SetWriteKey(Bool_t flag = kFALSE) {fWrite = flag;}
55 void SetMode(Int_t mode = 0) {fMode = mode;}
56 void SetMinMove(Float_t minMove = 0.05) {fMinMove = minMove;}
57 void SetMaxMove(Float_t maxMove = 0.15) {fMaxMove = maxMove;}
58 void SetPrecBg (Float_t precBg = 0.035) {fPrecBg = precBg;}
59 void SetParametersForBgSubtraction
60 (Int_t mode=0, Float_t minMove=0.05, Float_t maxMove=0.15, Float_t precBg=0.035);
61 // virtual void Print(Option_t* option="") const; // *MENU*
62
63 Bool_t GetWriteKey() {return fWrite;}
64 AliEMCALJet* GetJetT() {return fJetT[0];}
c44ecd4c 65 virtual void DrawHistsForTuning(Int_t mode=0); // *MENU*
66 virtual void PrintParameters(Int_t mode=0); // *MENU*
67 virtual const Char_t* GetFileNameForParameters(Char_t* dir="RES/");
b7a73953 68
a942c029 69 // Access to Results
3bc109a9 70 virtual Int_t Njets();
71 virtual Float_t JetEnergy(Int_t);
72 virtual Float_t JetPhiL(Int_t);
73 virtual Float_t JetPhiW(Int_t);
74 virtual Float_t JetEtaL(Int_t);
75 virtual Float_t JetEtaW(Int_t);
b561574c 76 TH2F* GetLego() {return fLego;}
77 TH2F* GetLegoB() {return fLegoB;}
c44ecd4c 78 TH2F* GetLegoEMCAL() {return fhLegoEMCAL;}
79 TH2F* GethEff() {return fhEff;}
80 TH1F* GetCellEt() {return fhCellEt;}
81 TH1F* GetCellEMCALEt() {return fhCellEMCALEt;}
82 TH1F* GetTrackPt() {return fhTrackPt;}
83 TH1F* GetTrackPtBcut() {return fhTrackPtBcut;}
b561574c 84 TList* GetHistsList() {return fHistsList;}
85 Int_t GetNChTpc() {return fNChTpc;}
c44ecd4c 86 void DrawLego(Char_t *opt="lego"); // *MENU*
87 void DrawLegoEMCAL(Char_t *opt="lego"); // *MENU*
88 void DrawLegos(); // *MENU*
b561574c 89 Bool_t IsThisPartonsOrDiQuark(Int_t pdg);
90 TString &GetPythiaParticleName(Int_t kf);
3bc109a9 91 // I/O
08a3fb06 92 virtual void SetOutputFileName(char* name) {fOutFileName = name;}
3bc109a9 93 virtual void FillFromHits(Int_t flag = 0);
d594b22e 94 virtual void FillFromHitFlaggedTracks(Int_t flag = 0);
95 virtual void FillFromDigits(Int_t flag = 0);
3bc109a9 96 virtual void FillFromTracks(Int_t flag = 0, Int_t ich = 0);
c44ecd4c 97 virtual void FillFromParticles();
b7a73953 98 virtual void FillFromPartons();
99
a942c029 100 virtual void SaveBackgroundEvent();
101 virtual void InitFromBackground();
3bc109a9 102 virtual void AddJet(const AliEMCALJet& jet);
103 virtual void WriteJets();
104 virtual void ResetJets();
105 virtual TClonesArray* Jets() {return fJets;}
471f69dc 106 private:
3bc109a9 107 virtual void BookLego();
108 virtual void DumpLego();
109 virtual void ResetMap();
26dadf3a 110 virtual Float_t PropagatePhi(Float_t pt, Float_t charge, Bool_t& curls);
c44ecd4c 111 virtual void RearrangeParticlesMemory(Int_t npart);
471f69dc 112 protected:
b7a73953 113 Bool_t fWrite; // Key for writing
d594b22e 114 TClonesArray* fJets; //! List of Jets
115 TH2F* fLego; //! Lego Histo
c44ecd4c 116 TH2F* fLegoB; //! Lego Histo Backg
117 TH2F* fhLegoTracks; //! Lego for Tracks
118 TH2F* fhLegoEMCAL; //! Lego for EMCAL itself
119 TH2F* fhLegoHadrCorr; //! Lego for hadron correction
120 TH2F* fhEff; //! Hist. for controling eff.
121 TH1F* fhCellEt; //! Et distr. for cells from fLego
122 TH1F* fhCellEMCALEt; //! Et distr. for cells from fLegoEMCAL
123 TH1F* fhTrackPt; //! Pt distr. for charge particles
124 TH1F* fhTrackPtBcut; //! Pt distr. for charge particles + cut due to magnetic field
b561574c 125 TH1F* fhChPartMultInTpc;//! Ch. part. multiplicity in TPC acceptance
c44ecd4c 126 TCanvas* fC1; //! first canvas for drawing
b561574c 127 TList* fHistsList; //! List of hists - 4-mar-2002
d594b22e 128 AliEMCALJet* fJetT[10]; //! Jet temporary storage
129 AliEMCALHadronCorrection* fHadronCorrector; //! Pointer to hadronic correction
130 Int_t fHCorrection; // Hadron correction flag
131 Int_t fDebug; //! Debug flag
a942c029 132 Int_t fBackground; //! Background flag
d594b22e 133 Float_t fConeRadius; // Cone radius
134 Float_t fPtCut; // Pt cut on charged tracks
135 Float_t fEtSeed; // Min. Et for seed
136 Float_t fMinJetEt; // Min Et of jet
137 Float_t fMinCellEt; // Min Et in one cell
a942c029 138 Float_t fSamplingF; // Sampling Fraction
d594b22e 139 Bool_t fSmear; // Flag for momentum smearing
140 Bool_t fEffic; // Flag for efficiency simulation
d53b7b0b 141 Bool_t fK0N; // Flag for efficiency simulation
b561574c 142 Int_t fNjets; //! Number of Jetsp
d594b22e 143 Float_t fDeta; //! eta cell size
144 Float_t fDphi; //! phi cell size
145 Int_t fNcell; //! number of cells
146 Int_t fNtot; //! total number of cells
147 Int_t fNbinEta; //! number of cells in eta
148 Int_t fNbinPhi; //! number of cells in phi
be9787fe 149 Float_t fEtaMin; //! minimum eta
150 Float_t fEtaMax; //! maximum eta
151 Float_t fPhiMin; //! minimun phi
152 Float_t fPhiMax; //! maximum phi
d594b22e 153 Float_t fEtCell[30000]; //! Cell Energy
154 Float_t fEtaCell[30000]; //! Cell eta
155 Float_t fPhiCell[30000]; //! Cell phi
d594b22e 156 Int_t fNt; //! number of tracks
b561574c 157 Int_t fNChTpc; //! number of ch.part in TPC
158
a942c029 159 Int_t fNtS; //! number of tracks selected
b561574c 160 Int_t* fTrackList; //! List of selected tracks
a942c029 161 Float_t* fPtT; //! Pt of tracks
162 Float_t* fEtaT; //! Eta of tracks
163 Float_t* fPhiT; //! Phi of tracks
975127ed 164 Int_t* fPdgT; //! PDG code of tracks
165
a942c029 166 Int_t fNtB; //! number of tracks in Bg
b561574c 167 Int_t* fTrackListB; //! List of selected tracks in Bg
a942c029 168 Float_t* fPtB; //! Pt of tracks in Bg
169 Float_t* fEtaB; //! Eta of tracks in Bg
170 Float_t* fPhiB; //! Phi of tracks in Bg
975127ed 171 Int_t* fPdgB; //! PDG of tracks in Bg
b7a73953 172
173 // parameter for jet_finder_ua1
c44ecd4c 174 Int_t fMode; // key for BG subtraction
b7a73953 175 Float_t fMinMove; // min cone move
176 Float_t fMaxMove; // max cone move
b7a73953 177 Float_t fPrecBg; // max value of change for BG (in %)
178 Int_t fError; // error variables
179
08a3fb06 180 char* fOutFileName; //! Output file name
181 TFile* fOutFile; //! Output file
182 TFile* fInFile; //! Output file
183 Int_t fEvent; //! Processed event
b7a73953 184
3bc109a9 185 ClassDef(AliEMCALJetFinder,2) // JetFinder for EMCAL
186}
187;
471f69dc 188#endif // ALIEMCALJetFinder_H