]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/AddTaskJetSpectrum2.C
Setting rmaxcut for all extrem r cuts definitions, otherwise default value is not...
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskJetSpectrum2.C
1 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec = "jets",const char* bGen = "jetsAODMC_UA104",const char* bBkg="jeteventbackground_clustersAOD_KT06",UInt_t filterMask = 32, Int_t iPhysicsSelection = 1,UInt_t iEventSelectionMask = 0,Bool_t kBackground=kTRUE);\r
2 \r
3 \r
4 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2Delta(UInt_t filterMask = 32,Bool_t kUseAODMC = kFALSE,Int_t iPhysicsSelection = 1,UInt_t iFlag = 0xfffffff, UInt_t iEventSelectionMask = 0,Bool_t kBackground = kFALSE){\r
5   AliAnalysisTaskJetSpectrum2 *js = 0;\r
6 \r
7   TString cBack = "";\r
8   if(kBackground)cBack = "jeteventbackground_clustersAOD_KT06";\r
9 \r
10   if(kUseAODMC){\r
11     if(iFlag&(1<<0))js = AddTaskJetSpectrum2("jets","jetsAODMC_UA104",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
12     if(iFlag&(1<<1))js = AddTaskJetSpectrum2("jets","jetsAODMC2_UA104",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
13     \r
14     if(iFlag&(1<<2))js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
15     if(iFlag&(1<<3))js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection,  iEventSelectionMask,kBackground);\r
16     \r
17     if(iFlag&(1<<4)){\r
18       js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC_FASTKT04",cBack.Data(),filterMask,iPhysicsSelection,iEventSelectionMask,kBackground);\r
19     }\r
20     if(iFlag&(1<<5))js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC2_FASTKT04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
21     if(iFlag&(1<<6))js = AddTaskJetSpectrum2("jetsAOD_UA107","jetsAODMC_UA107",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
22   }\r
23   \r
24   if(iFlag&(1<<7))js = AddTaskJetSpectrum2("jets","jetsAOD_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
25   \r
26   if(iFlag&(1<<8))js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
27   if(iFlag&(1<<9))js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
28   if(iFlag&(1<<10))js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
29   \r
30   if(iFlag&(1<<11)){\r
31     js = AddTaskJetSpectrum2("jetsAOD_UA107","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
32     js->SetRecEtaWindow(0.2);\r
33   }\r
34   if(iFlag&(1<<12)){\r
35     js = AddTaskJetSpectrum2("jetsAOD_FASTJET07","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
36     js->SetRecEtaWindow(0.2);\r
37   }\r
38   if(iFlag&(1<<13)){\r
39     js = AddTaskJetSpectrum2("jetsAOD_FASTKT07","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
40     js->SetRecEtaWindow(0.2);\r
41   }\r
42   if(iFlag&(1<<14)){\r
43     js = AddTaskJetSpectrum2("jetsAOD_SISCONE07","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
44     js->SetRecEtaWindow(0.2);\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* bBkg,UInt_t filterMask,Int_t iPhysicsSelection,UInt_t iEventSelectionMask,Bool_t kBackground)\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    // Create the task and configure it.\r
75    //===========================================================================\r
76    \r
77    AliAnalysisTaskJetSpectrum2* pwg4spec = new  AliAnalysisTaskJetSpectrum2(Form("JetSpectrum2%s%s_%010d",bRec,bGen,iEventSelectionMask));\r
78       \r
79    // or a config file\r
80    // pwg4spec->SetAnalysisType(AliAnalysisTaskJetSpectrum2::kAnaMC);\r
81    // if(iAODanalysis)pwg4spec->SetAODInput(kTRUE);\r
82    // pwg4spec->SetDebugLevel(11); \r
83 \r
84    pwg4spec->SetBranchGen(bGen); \r
85    pwg4spec->SetBranchRec(bRec); \r
86    if(strlen(bBkg)>0)pwg4spec->SetBranchBkg(bBkg);\r
87 \r
88    pwg4spec->SetFilterMask(filterMask); \r
89    pwg4spec->SetUseGlobalSelection(kTRUE); \r
90    pwg4spec->SetMinJetPt(5.);\r
91    if(kBackground&&strlen(bBkg)>0){\r
92      pwg4spec->SetBkgSubtraction(kTRUE);\r
93    }  \r
94 \r
95    if(type == "AOD"){\r
96      // Assume all jet are produced already\r
97      pwg4spec->SetAODJetInput(kTRUE);\r
98      pwg4spec->SetAODTrackInput(kTRUE);\r
99      pwg4spec->SetAODMCInput(kTRUE);\r
100    }\r
101    else{\r
102      if(mgr->GetMCtruthEventHandler()){\r
103        pwg4spec-> SetAnalysisType(AliAnalysisTaskJetSpectrum2::kAnaMCESD);\r
104      }\r
105    }\r
106 \r
107    if(typeRec.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD\r
108      pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);\r
109    }\r
110    else if (typeRec.Contains("AODMC2")){\r
111      pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);\r
112    }\r
113    else if (typeRec.Contains("AODMC")){\r
114      pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);\r
115    }\r
116    else { // catch akk use AOD\r
117      pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAOD);\r
118    }\r
119 \r
120    if(typeGen.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD\r
121      pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);\r
122    }\r
123    else if (typeGen.Contains("AODMC2")){\r
124      pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);\r
125    }\r
126    else if (typeGen.Contains("AODMC")){\r
127      pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);\r
128    }\r
129    else if (typeGen.Length()>0){ // catch all use AOD\r
130      pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAOD);\r
131    }\r
132 \r
133    if(iPhysicsSelection)pwg4spec->SelectCollisionCandidates();\r
134    if(iEventSelectionMask)pwg4spec->SetEventSelectionMask(iEventSelectionMask);\r
135 \r
136    mgr->AddTask(pwg4spec);\r
137      \r
138    // Create ONLY the output containers for the data produced by the task.\r
139    // Get and connect other common input/output containers via the manager as below\r
140    //==============================================================================\r
141    AliAnalysisDataContainer *coutput1_Spec = mgr->CreateContainer(Form("pwg4spec2_%s_%s_%010d",bRec,bGen,iEventSelectionMask),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_spec2_%s_%s_%010d",AliAnalysisManager::GetCommonFileName(),bRec,bGen,iEventSelectionMask));\r
142 \r
143    mgr->ConnectInput  (pwg4spec, 0, mgr->GetCommonInputContainer());\r
144    mgr->ConnectOutput (pwg4spec, 0, mgr->GetCommonOutputContainer());\r
145    mgr->ConnectOutput (pwg4spec,  1, coutput1_Spec );\r
146    \r
147    return pwg4spec;\r
148 }\r