]>
Commit | Line | Data |
---|---|---|
0b777a09 | 1 | #ifndef ALIHADCORRTASK_H |
2 | #define ALIHADCORRTASK_H | |
3 | ||
4 | // $Id$ | |
5 | ||
6 | class TClonesArray; | |
0b777a09 | 7 | class TList; |
8c0d179d | 8 | class TH1; |
9 | class TH2; | |
1f6c8e39 | 10 | class AliEmcalParticle; |
1f6fff78 | 11 | class TString; |
0b777a09 | 12 | |
1f6c8e39 | 13 | #include "AliAnalysisTaskEmcal.h" |
14 | ||
15 | class AliHadCorrTask : public AliAnalysisTaskEmcal { | |
0b777a09 | 16 | |
0b777a09 | 17 | public: |
0b777a09 | 18 | AliHadCorrTask(); |
181a0a09 | 19 | AliHadCorrTask(const char *name, Bool_t histo=kFALSE); |
0b777a09 | 20 | virtual ~AliHadCorrTask(); |
21 | ||
c7d52659 | 22 | void UserCreateOutputObjects(); |
0b777a09 | 23 | |
c7d52659 | 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 ; } | |
8c0d179d | 30 | void SetDoExact(Bool_t d) { fDoExact = d ; } |
0b777a09 | 31 | |
32 | protected: | |
c7d52659 | 33 | Double_t ApplyHadCorrOneTrack(AliEmcalParticle *emccluster, Double_t hadCorr); |
34 | Double_t ApplyHadCorrAllTracks(AliEmcalParticle *emccluster, Double_t hadCorr); | |
8c0d179d | 35 | void DoMatchedTracksLoop(AliEmcalParticle *emccluster, Double_t &totalTrkP, Int_t &Nmatches, Double_t &trkPMCfrac, Int_t &NMCmatches); |
1b4db73a | 36 | void DoTrackLoop(); |
c7d52659 | 37 | Double_t GetEtaSigma(Int_t pbin) const; |
b8b1b9e1 | 38 | UInt_t GetMomBin(Double_t pt) const; |
c7d52659 | 39 | Double_t GetPhiMean(Int_t pbin, Int_t centbin) const; |
40 | Double_t GetPhiSigma(Int_t pbin, Int_t centbin) const; | |
8c0d179d | 41 | Bool_t Run() ; |
42 | void ExecOnce() ; | |
c7d52659 | 43 | |
8c0d179d | 44 | // Task configuration |
c7d52659 | 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 | |
8c0d179d | 51 | Bool_t fDoExact; // do exact correction (embedding only) |
52 | ||
53 | // Service fields (non-streamed) | |
1b4db73a | 54 | Bool_t fEsdMode; //!ESD/AOD mode |
c7d52659 | 55 | TClonesArray *fOutClusters; //!output cluster collection |
8c0d179d | 56 | |
57 | // QA plots | |
58 | TH2 *fHistMatchEtaPhi[8][9][2]; //!deta vs. dphi of matched cluster-track pairs | |
59 | TH2 *fHistMatchEvsP[4]; //!cluster energy vs. track momentum of matched pairs | |
60 | TH2 *fHistNMatchEnergy[4]; //!n matches vs. cluster energy | |
61 | TH2 *fHistNCellsEnergy[4][4]; //!n cells vs. cluster energy | |
62 | TH2 *fHistMatchdRvsEP[4]; //!matching distance vs. E/P | |
63 | TH1 *fHistNclusvsCent; //!n clusters vs. centrality | |
64 | TH1 *fHistNclusMatchvsCent; //!n clusters matched to some track vs. centrality | |
65 | TH1 *fHistEbefore; //!average energy of clusters before correction vs. centrality | |
66 | TH1 *fHistEafter; //!average energy of clusters after correction vs. centrality | |
67 | TH2 *fHistEoPCent; //!E/P vs. centrality | |
68 | TH2 *fHistNMatchCent; //!n matches vs. centraity | |
69 | TH2 *fHistNClusMatchCent; //!n clusters macthed to some track (tracks allowed to match more than one cluster) | |
70 | TH1 *fHistEsubPch[8]; //!Esub vs. total momentum of matched tracks (only 1 match) | |
71 | TH2 *fHistEsubPchRat[8]; //!Esub/momentum of matched tracks vs. total momentum of matched tracks (only 1 match) | |
72 | TH2 *fHistEsubPchRatAll[8]; //!Esub/momentum of matched tracks vs. total momentum of matched tracks (all number of matches) | |
73 | ||
74 | // Embedding QA plots | |
88646d1d | 75 | TH2 *fHistEmbTrackMatchesOversub[4]; //!Over-subtracted energy / cluster energy with embedded track matches (non-embedded matches < 5%) |
76 | TH2 *fHistNonEmbTrackMatchesOversub[4]; //!Over-subtracted energy / cluster energy with non-embedded track matches (embedded matches < 5%) | |
77 | TH2 *fHistOversubMCClusters[4]; //!Over-subtracted energy / cluster energy (cluster MC energy fraction > 95%) | |
78 | TH2 *fHistOversubNonMCClusters[4]; //!Over-subtracted energy / cluster energy (cluster MC energy fraction < 5%) | |
79 | TH2 *fHistOversub[4]; //!Over-subtracted energy / cluster energy | |
0b777a09 | 80 | |
81 | private: | |
82 | AliHadCorrTask(const AliHadCorrTask&); // not implemented | |
83 | AliHadCorrTask &operator=(const AliHadCorrTask&); // not implemented | |
84 | ||
8c0d179d | 85 | ClassDef(AliHadCorrTask, 12) // Hadronic correction task |
0b777a09 | 86 | }; |
87 | #endif |