]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/EMCAL/AliHadCorrTask.h
use AliVCluster in example tasks
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliHadCorrTask.h
CommitLineData
8417a2aa 1#ifndef ALIHADCORRTASK_H
2#define ALIHADCORRTASK_H
3
4// $Id$
5
6class TClonesArray;
7class TList;
8class TH1;
9class TH2;
10class AliEmcalParticle;
11class TString;
12
13#include "AliAnalysisTaskEmcal.h"
14
15class 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