AliPhysics  vAN-20150924 (e816f45)
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
AliHadCorrTask.h
Go to the documentation of this file.
1 #ifndef ALIHADCORRTASK_H
2 #define ALIHADCORRTASK_H
3 
4 // $Id$
5 
6 class TClonesArray;
7 class TList;
8 class TH1;
9 class TH2;
10 class AliEmcalParticle;
11 class TString;
12 
13 #include "AliAnalysisTaskEmcal.h"
14 
16 
17  public:
19  AliHadCorrTask(const char *name, Bool_t histo=kFALSE);
20  virtual ~AliHadCorrTask();
21 
23 
24  void SetEexcl(Double_t Emin) { fEexclCell = Emin ; }
25  void SetEtaMatch(Double_t eta) { fEtaMatch = eta ; }
26  void SetHadCorr(Double_t c) { fHadCorr = c ; }
27  void SetOutClusName(const char *n) { fOutCaloName = n ; }
28  void SetPhiMatch(Double_t phi) { fPhiMatch = phi ; }
29  void SetTrackClus(Int_t c) { fDoTrackClus = c ; }
30  void SetDoExact(Bool_t d) { fDoExact = d ; }
31 
32  protected:
33  Double_t ApplyHadCorrOneTrack(AliEmcalParticle *emccluster, Double_t hadCorr);
34  Double_t ApplyHadCorrAllTracks(AliEmcalParticle *emccluster, Double_t hadCorr);
35  void DoMatchedTracksLoop(AliEmcalParticle *emccluster, Double_t &totalTrkP, Int_t &Nmatches, Double_t &trkPMCfrac, Int_t &NMCmatches);
36  void DoTrackLoop();
37  Double_t GetEtaSigma(Int_t pbin) const;
38  UInt_t GetMomBin(Double_t pt) const;
39  Double_t GetPhiMean(Int_t pbin, Int_t centbin) const;
40  Double_t GetPhiSigma(Int_t pbin, Int_t centbin) const;
41  Bool_t Run() ;
42  void ExecOnce() ;
43 
44  // Task configuration
45  TString fOutCaloName; // name of output clusters
46  Double_t fPhiMatch; // phi match value (pp=0.050)
47  Double_t fEtaMatch; // eta match value (pp=0.025)
48  Int_t fDoTrackClus; // loop over tracks first
49  Double_t fHadCorr; // hadronic correction (fraction)
50  Double_t fEexclCell; // energy/cell that we cannot subtract from the clusters
51  Bool_t fDoExact; // do exact correction (embedding only)
52 
53  // Service fields (non-streamed)
54  Bool_t fEsdMode;
55  TClonesArray *fOutClusters;
56 
57  // QA plots
58  TH2 *fHistMatchEtaPhi[8][9][2];
62  TH2 *fHistMatchEvsP[4];
64  TH2 *fHistNCellsEnergy[4][4];
65  TH2 *fHistMatchdRvsEP[4];
68  TH1 *fHistEbefore;
69  TH1 *fHistEafter;
70  TH2 *fHistEoPCent;
73  TH1 *fHistEsubPch[8];
74  TH2 *fHistEsubPchRat[8];
80  TH2 *fHistOversub[4];
81 
82  private:
83  AliHadCorrTask(const AliHadCorrTask&); // not implemented
84  AliHadCorrTask &operator=(const AliHadCorrTask&); // not implemented
85 
86  ClassDef(AliHadCorrTask, 14) // Hadronic correction task
87 };
88 #endif
TH2 * fHistNonEmbTrackMatchesOversub[4]
Over-subtracted energy / cluster energy with embedded track matches (non-embedded matches < 5%) ...
Double_t ApplyHadCorrOneTrack(AliEmcalParticle *emccluster, Double_t hadCorr)
TH2 * fHistNClusMatchCent
n matches vs. centraity
TString fOutCaloName
TH2 * fHistOversubNonMCClusters[4]
Over-subtracted energy / cluster energy (cluster MC energy fraction > 95%)
TH2 * fHistEmbTrackMatchesOversub[4]
Esub/momentum of matched tracks vs. total momentum of matched tracks (all number of matches) ...
Double_t fHadCorr
Double_t GetEtaSigma(Int_t pbin) const
TH2 * fHistEsubPchRatAll[8]
Esub/momentum of matched tracks vs. total momentum of matched tracks (only 1 match) ...
void SetOutClusName(const char *n)
TH1 * fHistEafter
average energy of clusters before correction vs. centrality
void SetEtaMatch(Double_t eta)
void SetHadCorr(Double_t c)
Double_t GetPhiMean(Int_t pbin, Int_t centbin) const
TH2 * fHistNCellsEnergy[4][4]
n matches vs. cluster energy
TH2 * fHistOversub[4]
Over-subtracted energy / cluster energy (cluster MC energy fraction < 5%)
UInt_t GetMomBin(Double_t pt) const
Double_t fPhiMatch
TClonesArray * fOutClusters
ESD/AOD mode.
TH2 * fHistMatchEtaPhiAll
deta vs. dphi of matched cluster-track pairs
Double_t fEtaMatch
TH2 * fHistNMatchCent
E/P vs. centrality.
Double_t ApplyHadCorrAllTracks(AliEmcalParticle *emccluster, Double_t hadCorr)
Double_t fEexclCell
Double_t GetPhiSigma(Int_t pbin, Int_t centbin) const
TH1 * fHistNclusMatchvsCent
n clusters vs. centrality
TH2 * fHistMatchdRvsEP[4]
n cells vs. cluster energy
void SetTrackClus(Int_t c)
TH2 * fHistMatchEtaPhiAllCl
deta vs. dphi of all cluster-track pairs (tr loop)
TH2 * fHistOversubMCClusters[4]
Over-subtracted energy / cluster energy with non-embedded track matches (embedded matches < 5%) ...
TH2 * fHistEoPCent
average energy of clusters after correction vs. centrality
TH1 * fHistEsubPch[8]
n clusters macthed to some track (tracks allowed to match more than one cluster)
TH2 * fHistMatchEtaPhi[8][9][2]
output cluster collection
void SetPhiMatch(Double_t phi)
TH2 * fHistNMatchEnergy[4]
cluster energy vs. track momentum of matched pairs
TH2 * fHistMatchEtaPhiAllTr
deta vs. dphi of matched cluster-track pairs
void UserCreateOutputObjects()
virtual ~AliHadCorrTask()
TH2 * fHistMatchEvsP[4]
deta vs. dphi of all cluster-track pairs (cl loop)
AliHadCorrTask & operator=(const AliHadCorrTask &)
void SetDoExact(Bool_t d)
TH2 * fHistEsubPchRat[8]
Esub vs. total momentum of matched tracks (only 1 match)
void SetEexcl(Double_t Emin)
TH1 * fHistEbefore
n clusters matched to some track vs. centrality
void DoMatchedTracksLoop(AliEmcalParticle *emccluster, Double_t &totalTrkP, Int_t &Nmatches, Double_t &trkPMCfrac, Int_t &NMCmatches)
TH1 * fHistNclusvsCent
matching distance vs. E/P