#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "AliLog.h"
#include "AliAnalysisTaskSE.h"
#include "AliTRDTriggerAnalysis.h"
#define ID(x) x, #x
class TList;
class AliAnalysisTaskJetsTriggerTRD :
public AliAnalysisTaskSE
{
public:
AliAnalysisTaskJetsTriggerTRD(const char *name = "jets_trg_trd");
~AliAnalysisTaskJetsTriggerTRD();
virtual void UserCreateOutputObjects();
virtual Bool_t Notify();
virtual void UserExec(Option_t *option);
virtual void Terminate(const Option_t *option);
void SetNumberOfJetPtBins(Int_t n) { fNoJetPtBins = n; }
Int_t GetNumberOfJetPtBins() const { return fNoJetPtBins; }
void SetJetPtBinMax(Float_t ptmax) { fJetPtBinMax = ptmax; }
Float_t GetJetPtBinMax() const { return fJetPtBinMax; }
void SetJetBranchName(const char* const branchName) { strncpy(fJetBranchName, branchName, fgkStringLength-1); }
const char* GetJetBranchName() const { return fJetBranchName; }
Bool_t HasMC() const { return fMCEventHandler != 0; }
Bool_t AcceptTrackMC(Int_t track) const;
enum Hist_t {
kHistStat = 0,
kHistXsection,
kHistPtHard,
kHistJetPtMC,
kHistJetEtaAvg,
kHistNoJets,
kHistTrackGTU,
kHistTrackEffGTU,
kHistTrackEffMC,
kHistNPtMin,
kHistLeadJetPt,
kHistLeadJetPtEta,
kHistLeadJetPtPhi,
kHistLeadJetEtaPhi,
kHistLeadJetPtTrackPt,
kHistLeadJetPtZ,
kHistLeadJetPtXi,
kHistJetPt,
kHistJetPtEta,
kHistJetPtPhi,
kHistJetEtaPhi,
kHistJetPtITS,
kHistJetPt3x3,
kHistJetPtTrackPt,
kHistJetPtZ,
kHistJetPtXi,
kHistJetPtNoTracks3,
kHistLast
};
enum Stat_t {
kStatSeen = 1,
kStatTrg,
kStatUsed,
kStatEvCuts,
kStatLast
};
enum Trigger_t {
kTrgMinBias = 1,
kTrgInt7,
kTrgInt8,
kTrgEMC7,
kTrgEMC8,
kTrgInt7WUHJT,
kTrgInt8WUHJT,
kTrgEMC7WUHJT,
kTrgEMC8WUHJT,
kTrgEMCEJE,
kTrgEMCEGA,
kTrgInt7_WU,
kTrgInt7_WUHJT,
kTrgEMCEJE_WU,
kTrgEMCEJE_WUHJT,
kTrgPbPb,
kTrgCentral,
kTrgSemiCentral,
kTrgLast
};
enum TriggerMC_t {
kTrgMC3x3Vtx = kTrgLast,
kTrgMC3x3TRD,
kTrgMC3x3TRDeff,
kTrgMC3x3TRDeffmap,
kTrgMCLast
};
protected:
UInt_t fTriggerMask;
AliTRDTriggerAnalysis fTrdTrg;
Bool_t DetectTriggers();
Bool_t DetectMCTriggers();
void MarkTrigger(Trigger_t trg) { fTriggerMask |= (1 << trg); }
void MarkTrigger(TriggerMC_t trg) { fTriggerMask |= (1 << trg); }
Bool_t IsTrigger(Trigger_t trg) const { return (fTriggerMask & (1 << trg)); }
Float_t GetEfficiencyTRD(Float_t , Float_t , Float_t ) { return 0.7; }
TList *fOutputList;
TH1 *fHist[kHistLast];
const char *fShortTaskId;
Int_t fNoTriggers;
TH1*& GetHistogram(Hist_t hist, Int_t idx = 0) { return fHist[hist + idx]; }
TH1* AddHistogram(Hist_t hist, const char *hid, TString title,
Int_t xbins, Float_t xmin, Float_t xmax, Int_t binType = 1);
TH2* AddHistogram(Hist_t hist, const char *hid, TString title,
Int_t xbins, Float_t xmin, Float_t xmax,
Int_t ybins, Float_t ymin, Float_t ymax, Int_t binType = 1);
TH3* AddHistogram(Hist_t hist, const char *hid, TString title,
Int_t xbins, Float_t xmin, Float_t xmax,
Int_t ybins, Float_t ymin, Float_t ymax,
Int_t zbins, Float_t zmin, Float_t zmax, Int_t binType = 1);
void FillH1(Hist_t hist, Float_t x, Float_t weight = 1., Int_t idx = 0)
{ GetHistogram(hist, idx)->Fill(x, weight); }
void FillH2(Hist_t hist, Float_t x, Float_t y, Float_t weight = 1., Int_t idx = 0)
{ ((TH2*) GetHistogram(hist, idx))->Fill(x, y, weight); }
void FillH3(Hist_t hist, Float_t x, Float_t y, Float_t z, Float_t weight = 1., Int_t idx = 0)
{ ((TH3*) GetHistogram(hist, idx))->Fill(x, y, z, weight); }
Int_t fNoJetPtBins;
Float_t fJetPtBinMax;
Float_t fAvgXsection;
Float_t fAvgTrials;
Float_t fPtHard;
Int_t fNTrials;
Float_t fGlobalEfficiencyGTU;
static const Int_t fgkStringLength = 100;
char fJetBranchName[fgkStringLength];
const Int_t fGtuLabel;
AliAnalysisTaskJetsTriggerTRD(const AliAnalysisTaskJetsTriggerTRD &rhs);
AliAnalysisTaskJetsTriggerTRD& operator=(const AliAnalysisTaskJetsTriggerTRD &rhs);
ClassDef(AliAnalysisTaskJetsTriggerTRD, 1);
};
AliAnalysisTaskJetsTriggerTRD.h:1 AliAnalysisTaskJetsTriggerTRD.h:2 AliAnalysisTaskJetsTriggerTRD.h:3 AliAnalysisTaskJetsTriggerTRD.h:4 AliAnalysisTaskJetsTriggerTRD.h:5 AliAnalysisTaskJetsTriggerTRD.h:6 AliAnalysisTaskJetsTriggerTRD.h:7 AliAnalysisTaskJetsTriggerTRD.h:8 AliAnalysisTaskJetsTriggerTRD.h:9 AliAnalysisTaskJetsTriggerTRD.h:10 AliAnalysisTaskJetsTriggerTRD.h:11 AliAnalysisTaskJetsTriggerTRD.h:12 AliAnalysisTaskJetsTriggerTRD.h:13 AliAnalysisTaskJetsTriggerTRD.h:14 AliAnalysisTaskJetsTriggerTRD.h:15 AliAnalysisTaskJetsTriggerTRD.h:16 AliAnalysisTaskJetsTriggerTRD.h:17 AliAnalysisTaskJetsTriggerTRD.h:18 AliAnalysisTaskJetsTriggerTRD.h:19 AliAnalysisTaskJetsTriggerTRD.h:20 AliAnalysisTaskJetsTriggerTRD.h:21 AliAnalysisTaskJetsTriggerTRD.h:22 AliAnalysisTaskJetsTriggerTRD.h:23 AliAnalysisTaskJetsTriggerTRD.h:24 AliAnalysisTaskJetsTriggerTRD.h:25 AliAnalysisTaskJetsTriggerTRD.h:26 AliAnalysisTaskJetsTriggerTRD.h:27 AliAnalysisTaskJetsTriggerTRD.h:28 AliAnalysisTaskJetsTriggerTRD.h:29 AliAnalysisTaskJetsTriggerTRD.h:30 AliAnalysisTaskJetsTriggerTRD.h:31 AliAnalysisTaskJetsTriggerTRD.h:32 AliAnalysisTaskJetsTriggerTRD.h:33 AliAnalysisTaskJetsTriggerTRD.h:34 AliAnalysisTaskJetsTriggerTRD.h:35 AliAnalysisTaskJetsTriggerTRD.h:36 AliAnalysisTaskJetsTriggerTRD.h:37 AliAnalysisTaskJetsTriggerTRD.h:38 AliAnalysisTaskJetsTriggerTRD.h:39 AliAnalysisTaskJetsTriggerTRD.h:40 AliAnalysisTaskJetsTriggerTRD.h:41 AliAnalysisTaskJetsTriggerTRD.h:42 AliAnalysisTaskJetsTriggerTRD.h:43 AliAnalysisTaskJetsTriggerTRD.h:44 AliAnalysisTaskJetsTriggerTRD.h:45 AliAnalysisTaskJetsTriggerTRD.h:46 AliAnalysisTaskJetsTriggerTRD.h:47 AliAnalysisTaskJetsTriggerTRD.h:48 AliAnalysisTaskJetsTriggerTRD.h:49 AliAnalysisTaskJetsTriggerTRD.h:50 AliAnalysisTaskJetsTriggerTRD.h:51 AliAnalysisTaskJetsTriggerTRD.h:52 AliAnalysisTaskJetsTriggerTRD.h:53 AliAnalysisTaskJetsTriggerTRD.h:54 AliAnalysisTaskJetsTriggerTRD.h:55 AliAnalysisTaskJetsTriggerTRD.h:56 AliAnalysisTaskJetsTriggerTRD.h:57 AliAnalysisTaskJetsTriggerTRD.h:58 AliAnalysisTaskJetsTriggerTRD.h:59 AliAnalysisTaskJetsTriggerTRD.h:60 AliAnalysisTaskJetsTriggerTRD.h:61 AliAnalysisTaskJetsTriggerTRD.h:62 AliAnalysisTaskJetsTriggerTRD.h:63 AliAnalysisTaskJetsTriggerTRD.h:64 AliAnalysisTaskJetsTriggerTRD.h:65 AliAnalysisTaskJetsTriggerTRD.h:66 AliAnalysisTaskJetsTriggerTRD.h:67 AliAnalysisTaskJetsTriggerTRD.h:68 AliAnalysisTaskJetsTriggerTRD.h:69 AliAnalysisTaskJetsTriggerTRD.h:70 AliAnalysisTaskJetsTriggerTRD.h:71 AliAnalysisTaskJetsTriggerTRD.h:72 AliAnalysisTaskJetsTriggerTRD.h:73 AliAnalysisTaskJetsTriggerTRD.h:74 AliAnalysisTaskJetsTriggerTRD.h:75 AliAnalysisTaskJetsTriggerTRD.h:76 AliAnalysisTaskJetsTriggerTRD.h:77 AliAnalysisTaskJetsTriggerTRD.h:78 AliAnalysisTaskJetsTriggerTRD.h:79 AliAnalysisTaskJetsTriggerTRD.h:80 AliAnalysisTaskJetsTriggerTRD.h:81 AliAnalysisTaskJetsTriggerTRD.h:82 AliAnalysisTaskJetsTriggerTRD.h:83 AliAnalysisTaskJetsTriggerTRD.h:84 AliAnalysisTaskJetsTriggerTRD.h:85 AliAnalysisTaskJetsTriggerTRD.h:86 AliAnalysisTaskJetsTriggerTRD.h:87 AliAnalysisTaskJetsTriggerTRD.h:88 AliAnalysisTaskJetsTriggerTRD.h:89 AliAnalysisTaskJetsTriggerTRD.h:90 AliAnalysisTaskJetsTriggerTRD.h:91 AliAnalysisTaskJetsTriggerTRD.h:92 AliAnalysisTaskJetsTriggerTRD.h:93 AliAnalysisTaskJetsTriggerTRD.h:94 AliAnalysisTaskJetsTriggerTRD.h:95 AliAnalysisTaskJetsTriggerTRD.h:96 AliAnalysisTaskJetsTriggerTRD.h:97 AliAnalysisTaskJetsTriggerTRD.h:98 AliAnalysisTaskJetsTriggerTRD.h:99 AliAnalysisTaskJetsTriggerTRD.h:100 AliAnalysisTaskJetsTriggerTRD.h:101 AliAnalysisTaskJetsTriggerTRD.h:102 AliAnalysisTaskJetsTriggerTRD.h:103 AliAnalysisTaskJetsTriggerTRD.h:104 AliAnalysisTaskJetsTriggerTRD.h:105 AliAnalysisTaskJetsTriggerTRD.h:106 AliAnalysisTaskJetsTriggerTRD.h:107 AliAnalysisTaskJetsTriggerTRD.h:108 AliAnalysisTaskJetsTriggerTRD.h:109 AliAnalysisTaskJetsTriggerTRD.h:110 AliAnalysisTaskJetsTriggerTRD.h:111 AliAnalysisTaskJetsTriggerTRD.h:112 AliAnalysisTaskJetsTriggerTRD.h:113 AliAnalysisTaskJetsTriggerTRD.h:114 AliAnalysisTaskJetsTriggerTRD.h:115 AliAnalysisTaskJetsTriggerTRD.h:116 AliAnalysisTaskJetsTriggerTRD.h:117 AliAnalysisTaskJetsTriggerTRD.h:118 AliAnalysisTaskJetsTriggerTRD.h:119 AliAnalysisTaskJetsTriggerTRD.h:120 AliAnalysisTaskJetsTriggerTRD.h:121 AliAnalysisTaskJetsTriggerTRD.h:122 AliAnalysisTaskJetsTriggerTRD.h:123 AliAnalysisTaskJetsTriggerTRD.h:124 AliAnalysisTaskJetsTriggerTRD.h:125 AliAnalysisTaskJetsTriggerTRD.h:126 AliAnalysisTaskJetsTriggerTRD.h:127 AliAnalysisTaskJetsTriggerTRD.h:128 AliAnalysisTaskJetsTriggerTRD.h:129 AliAnalysisTaskJetsTriggerTRD.h:130 AliAnalysisTaskJetsTriggerTRD.h:131 AliAnalysisTaskJetsTriggerTRD.h:132 AliAnalysisTaskJetsTriggerTRD.h:133 AliAnalysisTaskJetsTriggerTRD.h:134 AliAnalysisTaskJetsTriggerTRD.h:135 AliAnalysisTaskJetsTriggerTRD.h:136 AliAnalysisTaskJetsTriggerTRD.h:137 AliAnalysisTaskJetsTriggerTRD.h:138 AliAnalysisTaskJetsTriggerTRD.h:139 AliAnalysisTaskJetsTriggerTRD.h:140 AliAnalysisTaskJetsTriggerTRD.h:141 AliAnalysisTaskJetsTriggerTRD.h:142 AliAnalysisTaskJetsTriggerTRD.h:143 AliAnalysisTaskJetsTriggerTRD.h:144 AliAnalysisTaskJetsTriggerTRD.h:145 AliAnalysisTaskJetsTriggerTRD.h:146 AliAnalysisTaskJetsTriggerTRD.h:147 AliAnalysisTaskJetsTriggerTRD.h:148 AliAnalysisTaskJetsTriggerTRD.h:149 AliAnalysisTaskJetsTriggerTRD.h:150 AliAnalysisTaskJetsTriggerTRD.h:151 AliAnalysisTaskJetsTriggerTRD.h:152 AliAnalysisTaskJetsTriggerTRD.h:153 AliAnalysisTaskJetsTriggerTRD.h:154 AliAnalysisTaskJetsTriggerTRD.h:155 AliAnalysisTaskJetsTriggerTRD.h:156 AliAnalysisTaskJetsTriggerTRD.h:157 AliAnalysisTaskJetsTriggerTRD.h:158 AliAnalysisTaskJetsTriggerTRD.h:159 AliAnalysisTaskJetsTriggerTRD.h:160 AliAnalysisTaskJetsTriggerTRD.h:161 AliAnalysisTaskJetsTriggerTRD.h:162 AliAnalysisTaskJetsTriggerTRD.h:163 AliAnalysisTaskJetsTriggerTRD.h:164 AliAnalysisTaskJetsTriggerTRD.h:165 AliAnalysisTaskJetsTriggerTRD.h:166 AliAnalysisTaskJetsTriggerTRD.h:167 AliAnalysisTaskJetsTriggerTRD.h:168 AliAnalysisTaskJetsTriggerTRD.h:169 AliAnalysisTaskJetsTriggerTRD.h:170 AliAnalysisTaskJetsTriggerTRD.h:171 AliAnalysisTaskJetsTriggerTRD.h:172 AliAnalysisTaskJetsTriggerTRD.h:173 AliAnalysisTaskJetsTriggerTRD.h:174 AliAnalysisTaskJetsTriggerTRD.h:175 AliAnalysisTaskJetsTriggerTRD.h:176 AliAnalysisTaskJetsTriggerTRD.h:177 AliAnalysisTaskJetsTriggerTRD.h:178 AliAnalysisTaskJetsTriggerTRD.h:179