AliPhysics  66e96a0 (66e96a0)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliHadCorrTask.h
Go to the documentation of this file.
1 #ifndef ALIHADCORRTASK_H
2 #define ALIHADCORRTASK_H
3 
4 class TClonesArray;
5 class TList;
6 class TH1;
7 class TH2;
8 class AliVCluster;
9 class TString;
10 
11 #include "AliAnalysisTaskEmcal.h"
12 
14 
15  public:
17  AliHadCorrTask(const char *name, Bool_t histo=kFALSE);
18  virtual ~AliHadCorrTask();
19 
21 
22  void SetEexcl(Double_t Emin) { fEexclCell = Emin ; }
23  void SetEtaMatch(Double_t eta) { fEtaMatch = eta ; }
24  void SetHadCorr(Double_t c) { fHadCorr = c ; }
25  void SetOutClusName(const char *n) { fOutCaloName = n ; }
26  void SetPhiMatch(Double_t phi) { fPhiMatch = phi ; }
27  void SetTrackClus(Int_t c) { fDoTrackClus = c ; }
28  void SetDoExact(Bool_t d) { fDoExact = d ; }
29 
30  protected:
31  Double_t ApplyHadCorrOneTrack(Int_t icluster, Double_t hadCorr);
32  Double_t ApplyHadCorrAllTracks(Int_t icluster, Double_t hadCorr);
33  void DoMatchedTracksLoop(Int_t icluster, Double_t &totalTrkP, Int_t &Nmatches, Double_t &trkPMCfrac, Int_t &NMCmatches);
34  void DoTrackLoop();
35  Double_t GetEtaSigma(Int_t pbin) const;
36  UInt_t GetMomBin(Double_t pt) const;
37  Double_t GetPhiMean(Int_t pbin, Int_t centbin) const;
38  Double_t GetPhiSigma(Int_t pbin, Int_t centbin) const;
39  Bool_t Run() ;
40  void ExecOnce() ;
41 
42  // Task configuration
43  TString fOutCaloName; // name of output clusters
44  Double_t fPhiMatch; // phi match value (pp=0.050)
45  Double_t fEtaMatch; // eta match value (pp=0.025)
46  Int_t fDoTrackClus; // loop over tracks first
47  Double_t fHadCorr; // hadronic correction (fraction)
48  Double_t fEexclCell; // energy/cell that we cannot subtract from the clusters
49  Bool_t fDoExact; // do exact correction (embedding only)
50 
51  // Service fields (non-streamed)
52  Bool_t fEsdMode;
53  TClonesArray *fOutClusters;
54 
55  // QA plots
56  TH2 *fHistMatchEtaPhi[8][9][2];
60  TH2 *fHistMatchEvsP[4];
62  TH2 *fHistNCellsEnergy[4][4];
63  TH2 *fHistMatchdRvsEP[4];
66  TH1 *fHistEbefore;
67  TH1 *fHistEafter;
68  TH2 *fHistEoPCent;
71  TH1 *fHistEsubPch[8];
72  TH2 *fHistEsubPchRat[8];
78  TH2 *fHistOversub[4];
79 
80  private:
81  AliHadCorrTask(const AliHadCorrTask&); // not implemented
82  AliHadCorrTask &operator=(const AliHadCorrTask&); // not implemented
83 
84  ClassDef(AliHadCorrTask, 14) // Hadronic correction task
85 };
86 #endif
TH2 * fHistNonEmbTrackMatchesOversub[4]
Over-subtracted energy / cluster energy with embedded track matches (non-embedded matches < 5%) ...
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
Base task in the EMCAL framework.
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)
void DoTrackLoop()
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%)
Double_t ApplyHadCorrAllTracks(Int_t icluster, Double_t hadCorr)
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 ApplyHadCorrOneTrack(Int_t icluster, Double_t hadCorr)
Double_t fEexclCell
Double_t GetPhiSigma(Int_t pbin, Int_t centbin) const
void DoMatchedTracksLoop(Int_t icluster, Double_t &totalTrkP, Int_t &Nmatches, Double_t &trkPMCfrac, Int_t &NMCmatches)
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
TH1 * fHistNclusvsCent
matching distance vs. E/P