]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/macros/AddTaskJetSpectrum2.C
FastEmbedding: typo fix
[u/mrichter/AliRoot.git] / PWGJE / macros / AddTaskJetSpectrum2.C
1 Bool_t ConfigWithFlagsJetSpectrum2();\r
2 AliAnalysisTaskJetSpectrum2 *jetspec = 0;\r
3 \r
4 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec = "jets",const char* bGen = "jetsAODMC_UA104",const char* nonStdFile="",UInt_t filterMask = 32, Int_t iPhysicsSelectionFlag = AliVEvent::kMB,Int_t hjet=0, UInt_t iEventSelectionMask = 0,Int_t iCl = 0, Bool_t bRCSparseDimensions = kFALSE);\r
5 \r
6 \r
7 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2Delta(UInt_t filterMask = 32,Bool_t kUseAODMC = kFALSE,Int_t iPhysicsSelectionFlag = AliVEvent::kMB,Int_t hjet=0,UInt_t iFlag = 0xfffffff, UInt_t iEventSelectionMask = 0,char* back = ""){\r
8 \r
9   TString cBack = back;\r
10 \r
11   AliAnalysisTaskJetSpectrum2 *js = 0;\r
12   if(kUseAODMC){\r
13     if(iFlag&(1<<0)){ // UA104\r
14       js = AddTaskJetSpectrum2("jets","jetsAODMC_UA104",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);\r
15       js = AddTaskJetSpectrum2("jets","jetsAODMC2_UA104",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);\r
16     }\r
17     if(iFlag&(1<<1)){ // ANTIKT 04\r
18       js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);\r
19       js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04",cBack.Data(),filterMask,iPhysicsSelectionFlag,  iEventSelectionMask);\r
20       // cross check MC only background subtration\r
21       js = AddTaskJetSpectrum2("jetsAODMC2_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelectionFlag,  iEventSelectionMask);\r
22     }\r
23     if(iFlag&(1<<2)){ // KT 04\r
24       js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC_FASTKT04",cBack.Data(),filterMask,iPhysicsSelectionFlag,iEventSelectionMask);\r
25       js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC2_FASTKT04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);\r
26     }\r
27     if(iFlag&(1<<3)){ // SISCONE 04\r
28       js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","jetsAODMC_SISCONE04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);\r
29       js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","jetsAODMC2_SISCONE04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);\r
30     }\r
31     // here can go other radii\r
32   }\r
33   else { // only the data ... no MC\r
34     if(iFlag&(1<<0)){ // UA104\r
35       js = AddTaskJetSpectrum2("jets","",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask,1);\r
36     }\r
37     if(iFlag&(1<<1)){ // ANTIKT 04\r
38       js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);\r
39     }\r
40     if(iFlag&(1<<2)){ // KT 04\r
41       js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","",cBack.Data(),filterMask,iPhysicsSelectionFlag,iEventSelectionMask);\r
42     }\r
43     if(iFlag&(1<<3)){ // SISCONE 04\r
44       js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);\r
45     }\r
46   }\r
47   return js;\r
48 }\r
49 \r
50 \r
51 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec,const char* bGen ,const char* nonStdFile,UInt_t filterMask,Int_t iPhysicsSelectionFlag,Int_t hjet, UInt_t iEventSelectionMask,Int_t iCl, Bool_t bRCSparseDimensions)\r
52 {\r
53   // Creates a jet fider task, configures it and adds it to the analysis manager.\r
54   // Get the pointer to the existing analysis manager via the static access method.\r
55   //==============================================================================\r
56   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
57   if (!mgr) {\r
58      ::Error("AddTaskJetSpectrum2", "No analysis manager to connect to.");\r
59     return NULL;\r
60    }  \r
61   \r
62   // Check the analysis type using the event handlers connected to the analysis manager.\r
63   //==============================================================================\r
64   if (!mgr->GetInputEventHandler()) {\r
65     ::Error("AddTaskJetSpectrum2", "This task requires an input event handler");\r
66     return NULL;\r
67   }\r
68   \r
69   TString type = mgr->GetInputEventHandler()->GetDataType();\r
70   TString typeRec(bRec);\r
71   TString typeGen(bGen);\r
72   typeGen.ToUpper();\r
73   typeRec.ToUpper();\r
74   \r
75 \r
76    // Create the task and configure it.\r
77    //===========================================================================\r
78 \r
79    jetspec = new  AliAnalysisTaskJetSpectrum2(Form("JetSpectrum2%s-%s_%010d_Class%02d",bRec,bGen,iEventSelectionMask,iCl));\r
80    if(iCl)jetspec->SetEventClass(iCl);\r
81 \r
82    // add the filter mask for non default jets branches\r
83    TString cAdd("");\r
84    cAdd += Form("_Filter%05d",filterMask);\r
85 \r
86    \r
87    jetspec->SetTRP(hjet);\r
88    jetspec->SetBranchGen(bGen); \r
89    //  if(typeGen.Contains("JETSAOD")&&!typeGen.Contains("MC"))jetspec->SetBranchGen(Form("%s%s",bGen,cAdd.Data())); \r
90 \r
91    jetspec->SetBranchRec(bRec); \r
92    // if(typeRec.Contains("JETSAOD")&&!typeRec.Contains("MC"))     jetspec->SetBranchRec(Form("%s%s",bRec,cAdd.Data())); \r
93 \r
94 \r
95 \r
96    if(type == "AOD"){\r
97      // Assume all jets are not yet produced \r
98      //     jetspec->SetAODJetInput(kTRUE);\r
99      jetspec->SetAODTrackInput(kTRUE);\r
100      jetspec->SetAODMCInput(kTRUE);\r
101    }\r
102    else{\r
103      if(mgr->GetMCtruthEventHandler()){\r
104        jetspec-> SetAnalysisType(AliAnalysisTaskJetSpectrum2::kAnaMCESD);\r
105      }\r
106    }\r
107 \r
108    if(typeRec.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD\r
109      jetspec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);\r
110    }\r
111    else if (typeRec.Contains("AODMC2")){\r
112      jetspec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);\r
113    }\r
114    else if (typeRec.Contains("AODMC")){\r
115      jetspec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);\r
116    }\r
117    else { // catch akk use AOD\r
118      jetspec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAOD);\r
119    }\r
120 \r
121    if(typeGen.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD\r
122      jetspec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);\r
123    }\r
124    else if (typeGen.Contains("AODMC2")){\r
125      jetspec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);\r
126    }\r
127    else if (typeGen.Contains("AODMC")){\r
128      jetspec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);\r
129    }\r
130    else if (typeGen.Length()>0){ // catch all use AOD\r
131      jetspec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAOD);\r
132    }\r
133 \r
134    if(iEventSelectionMask)jetspec->SetEventSelectionMask(iEventSelectionMask);\r
135 \r
136    //   jetspec->SetDebugLevel(10);\r
137    if(!ConfigWithFlagsJetSpectrum2())return 0;\r
138 \r
139    jetspec->SetUseGlobalSelection(kTRUE); \r
140    jetspec->SetMinJetPt(-1.);//keep all jets \r
141 \r
142    if(bRCSparseDimensions) {\r
143      jetspec->SetNRPBins(100);\r
144      jetspec->SetNMultBins(1);\r
145      jetspec->SetNPtLeadingBins(1);\r
146    }\r
147    \r
148    // to fetch the AOD from the AOD extension ouput \r
149    if(strlen(nonStdFile))jetspec->SetNonStdFile(nonStdFile);\r
150    mgr->AddTask(jetspec);\r
151      \r
152    // Create ONLY the output containers for the data produced by the task.\r
153    // Get and connect other common input/output containers via the manager as below\r
154    //==============================================================================\r
155    AliAnalysisDataContainer *coutput1_Spec = ;\r
156    if(hjet>0)\r
157      coutput1_Spec = mgr->CreateContainer(Form("pwgje_spec2_%s_%s_%010d_Class%02d_HJ%d",bRec,bGen,iEventSelectionMask,iCl,hjet),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWGJE_spec2_%s_%s_%010d_Class%02d_HJ%d",AliAnalysisManager::GetCommonFileName(),bRec,bGen,iEventSelectionMask,iCl,hjet));\r
158    else\r
159      coutput1_Spec = mgr->CreateContainer(Form("pwgje_spec2_%s_%s_%010d_Class%02d",bRec,bGen,iEventSelectionMask,iCl),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWGJE_spec2_%s_%s_%010d_Class%02d",AliAnalysisManager::GetCommonFileName(),bRec,bGen,iEventSelectionMask,iCl));\r
160 \r
161    mgr->ConnectInput  (jetspec, 0, mgr->GetCommonInputContainer());\r
162    mgr->ConnectOutput (jetspec, 0, mgr->GetCommonOutputContainer());\r
163    mgr->ConnectOutput (jetspec,  1, coutput1_Spec );\r
164    \r
165    return jetspec;\r
166 }\r
167 \r
168 void SetAODInput(AliAnalysisTaskJetSpectrum2 *taskJetSpectrum){\r
169   taskJetSpectrum->SetAODJetInput(kTRUE);\r
170   taskJetSpectrum->SetAODTrackInput(kTRUE);\r
171   // taskJetSpectrum->SetUseGlobalSelection(kFALSE);\r
172 }\r
173 \r
174 Bool_t ConfigWithFlagsJetSpectrum2(){\r
175     \r
176   Bool_t bGood1 = kFALSE;\r
177   Bool_t bGood2 = kFALSE;\r
178 \r
179   \r
180   Int_t nTrigger = AliAnalysisManager::GetGlobalInt("kNTrigger",bGood1);\r
181   \r
182   if(bGood1){\r
183     jetspec->SetNTrigger(nTrigger);\r
184     for(int it = 0;it < nTrigger;it++){\r
185       jetspec->SetTrigger(it,\r
186                           AliAnalysisManager::GetGlobalInt(Form("kTriggerBit%d",it),bGood1),\r
187                           AliAnalysisManager::GetGlobalStr(Form("kTriggerName%d",it),bGood2));\r
188     }\r
189    }\r
190    else {\r
191      Printf("%s%d: kNTrigger not defined",(char*)__FILE__,__LINE__); return kFALSE; \r
192    }\r
193 \r
194 \r
195   Int_t nAcceptance = AliAnalysisManager::GetGlobalInt("kNAcceptanceSpec",bGood1);\r
196   \r
197   if(bGood1){\r
198     jetspec->SetNAcceptance(nAcceptance);\r
199     for(int ia = 0;ia < nAcceptance;ia++){\r
200       jetspec->SetAcceptance(ia,\r
201                              AliAnalysisManager::GetGlobalDbl(Form("kAcceptancePhiMinSpec%d",ia),bGood1),\r
202                              AliAnalysisManager::GetGlobalDbl(Form("kAcceptancePhiMaxSpec%d",ia),bGood1),\r
203                              AliAnalysisManager::GetGlobalDbl(Form("kAcceptanceEtaMinSpec%d",ia),bGood1),\r
204                              AliAnalysisManager::GetGlobalDbl(Form("kAcceptanceEtaMaxSpec%d",ia),bGood1));\r
205     }\r
206    }\r
207    else {\r
208      Printf("%s%d: kNAcceptance not defined",(char*)__FILE__,__LINE__); \r
209    }\r
210 \r
211      \r
212    AliAnalysisManager::GetGlobalInt("kPhysicsSelectionFlag",bGood1);if(bGood1){\r
213      jetspec->SelectCollisionCandidates(AliAnalysisManager::GetGlobalInt("kPhysicsSelectionFlag",bGood1));\r
214    }\r
215    else {Printf("%s%d: kPhysicsSelectionFlag not defined",(char*)__FILE__,__LINE__); return kFALSE; }\r
216 \r
217 \r
218    AliAnalysisManager::GetGlobalStr("kDeltaAODJetName",bGood1);if(bGood1)jetspec->SetNonStdFile(AliAnalysisManager::GetGlobalStr("kDeltaAODJetName",bGood1));\r
219    else {Printf("%s%d: kDeltaAODJetName not defined",(char*)__FILE__,__LINE__); return kFALSE; }\r
220 \r
221    AliAnalysisManager::GetGlobalDbl("kTrackEtaWindow",bGood1);if(bGood1)jetspec->SetTrackEtaWindow(AliAnalysisManager::GetGlobalDbl("kTrackEtaWindow",bGood1));\r
222    else {Printf("%s%d: kTrackEtaWindow not defined",(char*)__FILE__,__LINE__); return kFALSE; }\r
223 \r
224    AliAnalysisManager::GetGlobalDbl("kJetEtaWindow",bGood1);if(bGood1)jetspec->SetJetEtaWindow(AliAnalysisManager::GetGlobalDbl("kJetEtaWindow",bGood1));\r
225    else {Printf("%s%d: kJetEtaWindow not defined",(char*)__FILE__,__LINE__); return kFALSE; }\r
226 \r
227    \r
228    AliAnalysisManager::GetGlobalInt("kHighPtFilterMask",bGood1);if(bGood1)jetspec->SetFilterMask(AliAnalysisManager::GetGlobalInt("kHighPtFilterMask",bGood1));\r
229    else {Printf("%s%d: kHighPtFilterMask not defined",(char*)__FILE__,__LINE__); return kFALSE; }   \r
230    \r
231    return kTRUE;\r
232 \r
233 \r
234 }\r