]>
Commit | Line | Data |
---|---|---|
8417a2aa | 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 | ||
15 | class AliHadCorrTask : public AliAnalysisTaskEmcal { | |
16 | ||
17 | public: | |
18 | AliHadCorrTask(); | |
19 | AliHadCorrTask(const char *name, Bool_t histo=kFALSE); | |
20 | virtual ~AliHadCorrTask(); | |
21 | ||
22 | void UserCreateOutputObjects(); | |
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; //!ESD/AOD mode | |
55 | TClonesArray *fOutClusters; //!output cluster collection | |
56 | ||
57 | // QA plots | |
58 | TH2 *fHistMatchEtaPhi[8][9][2]; //!deta vs. dphi of matched cluster-track pairs | |
59 | TH2 *fHistMatchEtaPhiAll; //!deta vs. dphi of matched cluster-track pairs | |
60 | TH2 *fHistMatchEtaPhiAllTr; //!deta vs. dphi of all cluster-track pairs (tr loop) | |
61 | TH2 *fHistMatchEtaPhiAllCl; //!deta vs. dphi of all cluster-track pairs (cl loop) | |
62 | TH2 *fHistMatchEvsP[4]; //!cluster energy vs. track momentum of matched pairs | |
63 | TH2 *fHistNMatchEnergy[4]; //!n matches vs. cluster energy | |
64 | TH2 *fHistNCellsEnergy[4][4]; //!n cells vs. cluster energy | |
65 | TH2 *fHistMatchdRvsEP[4]; //!matching distance vs. E/P | |
66 | TH1 *fHistNclusvsCent; //!n clusters vs. centrality | |
67 | TH1 *fHistNclusMatchvsCent; //!n clusters matched to some track vs. centrality | |
68 | TH1 *fHistEbefore; //!average energy of clusters before correction vs. centrality | |
69 | TH1 *fHistEafter; //!average energy of clusters after correction vs. centrality | |
70 | TH2 *fHistEoPCent; //!E/P vs. centrality | |
71 | TH2 *fHistNMatchCent; //!n matches vs. centraity | |
72 | TH2 *fHistNClusMatchCent; //!n clusters macthed to some track (tracks allowed to match more than one cluster) | |
73 | TH1 *fHistEsubPch[8]; //!Esub vs. total momentum of matched tracks (only 1 match) | |
74 | TH2 *fHistEsubPchRat[8]; //!Esub/momentum of matched tracks vs. total momentum of matched tracks (only 1 match) | |
75 | TH2 *fHistEsubPchRatAll[8]; //!Esub/momentum of matched tracks vs. total momentum of matched tracks (all number of matches) | |
76 | TH2 *fHistEmbTrackMatchesOversub[4]; //!Over-subtracted energy / cluster energy with embedded track matches (non-embedded matches < 5%) | |
77 | TH2 *fHistNonEmbTrackMatchesOversub[4]; //!Over-subtracted energy / cluster energy with non-embedded track matches (embedded matches < 5%) | |
78 | TH2 *fHistOversubMCClusters[4]; //!Over-subtracted energy / cluster energy (cluster MC energy fraction > 95%) | |
79 | TH2 *fHistOversubNonMCClusters[4]; //!Over-subtracted energy / cluster energy (cluster MC energy fraction < 5%) | |
80 | TH2 *fHistOversub[4]; //!Over-subtracted energy / cluster energy | |
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 |