]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/AddTaskJetSpectrum2.C
global selection is on again
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskJetSpectrum2.C
1 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(char* bRec = "jets",char* bGen = "jetsAODMC_UA104",UInt_t filterMask = 16, Int_t iPhysicsSelection = 1);\r
2 \r
3 \r
4 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2Delta(UInt_t filterMask = 16,Bool_t kUseAODMC = kFALSE,Int_t iPhysicsSelection = 1,UInt_t iFlag){\r
5   AliAnalysisTaskJetSpectrum2 *js = 0;\r
6   if(kUseAODMC){\r
7     if(iFlag&(1<<0))js = AddTaskJetSpectrum2("jets","jetsAODMC_UA104",filterMask,iPhysicsSelection);\r
8     if(iFlag&(1<<1))js = AddTaskJetSpectrum2("jets","jetsAODMC2_UA104",filterMask,iPhysicsSelection);\r
9 \r
10     if(iFlag&(1<<2))js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04",filterMask,iPhysicsSelection);\r
11     if(iFlag&(1<<3))js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04",filterMask,iPhysicsSelection);\r
12 \r
13     if(iFlag&(1<<4)){\r
14       js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC_FASTKT04",filterMask,iPhysicsSelection);\r
15     }\r
16     if(iFlag&(1<<5))js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC2_FASTKT04",filterMask,iPhysicsSelection);\r
17     if(iFlag&(1<<6))js = AddTaskJetSpectrum2("jetsAOD_UA107","jetsAODMC_UA107",filterMask,iPhysicsSelection);\r
18   }\r
19 \r
20   if(iFlag&(1<<7))js = AddTaskJetSpectrum2("jets","jetsAOD_FASTJET04",filterMask,iPhysicsSelection);\r
21   if(iFlag&(1<<8))js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","",filterMask,iPhysicsSelection);\r
22   if(iFlag&(1<<9))js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","",filterMask,iPhysicsSelection);\r
23   \r
24 \r
25   if(iFlag&(1<<10)){\r
26     js = AddTaskJetSpectrum2("jetsAOD_UA107","",filterMask,iPhysicsSelection);\r
27     js->SetRecEtaWindow(0.2);\r
28   }\r
29   return js;\r
30 }\r
31 \r
32 \r
33 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(char* bRec,char* bGen ,UInt_t filterMask,Int_t iPhysicsSelection)\r
34 {\r
35 // Creates a jet fider task, configures it and adds it to the analysis manager.\r
36 \r
37    // Get the pointer to the existing analysis manager via the static access method.\r
38    //==============================================================================\r
39    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
40    if (!mgr) {\r
41       ::Error("AddTaskJetSpectrum2", "No analysis manager to connect to.");\r
42       return NULL;\r
43    }  \r
44    \r
45    // Check the analysis type using the event handlers connected to the analysis manager.\r
46    //==============================================================================\r
47    if (!mgr->GetInputEventHandler()) {\r
48      ::Error("AddTaskJetSpectrum2", "This task requires an input event handler");\r
49       return NULL;\r
50    }\r
51 \r
52    TString type = mgr->GetInputEventHandler()->GetDataType();\r
53    TString typeRec(bRec);\r
54    TString typeGen(bGen);\r
55    typeGen.ToUpper();\r
56    typeRec.ToUpper();\r
57    // Create the task and configure it.\r
58    //===========================================================================\r
59    \r
60    AliAnalysisTaskJetSpectrum2* pwg4spec = new  AliAnalysisTaskJetSpectrum2(Form("Jet Spectrum %s %s",bRec,bGen));\r
61       \r
62    // or a config file\r
63    // pwg4spec->SetAnalysisType(AliAnalysisTaskJetSpectrum2::kAnaMC);\r
64    // if(iAODanalysis)pwg4spec->SetAODInput(kTRUE);\r
65    // pwg4spec->SetDebugLevel(11); \r
66    pwg4spec->SetBranchRec(bRec); \r
67    pwg4spec->SetBranchGen(bGen); \r
68    pwg4spec->SetFilterMask(filterMask); \r
69    pwg4spec->SetUseGlobalSelection(kTRUE); \r
70 \r
71    if(type == "AOD"){\r
72      // Assume all jet are produced already\r
73      pwg4spec->SetAODJetInput(kTRUE);\r
74      pwg4spec->SetAODTrackInput(kTRUE);\r
75      pwg4spec->SetAODMCInput(kTRUE);\r
76    }\r
77 \r
78    if(typeRec.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD\r
79      pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);\r
80    }\r
81    else if (typeRec.Contains("AODMC2")){\r
82      pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);\r
83    }\r
84    else if (typeRec.Contains("AODMC")){\r
85      pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);\r
86    }\r
87    else { // catch akk use AOD\r
88      pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAOD);\r
89    }\r
90 \r
91    if(typeGen.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD\r
92      pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);\r
93    }\r
94    else if (typeGen.Contains("AODMC2")){\r
95      pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);\r
96    }\r
97    else if (typeGen.Contains("AODMC")){\r
98      pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);\r
99    }\r
100    else { // catch all use AOD\r
101      pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAOD);\r
102    }\r
103 \r
104 \r
105 \r
106 \r
107 \r
108    if(iPhysicsSelection)pwg4spec->SelectCollisionCandidates();\r
109 \r
110    mgr->AddTask(pwg4spec);\r
111      \r
112    // Create ONLY the output containers for the data produced by the task.\r
113    // Get and connect other common input/output containers via the manager as below\r
114    //==============================================================================\r
115    AliAnalysisDataContainer *coutput1_Spec = mgr->CreateContainer(Form("pwg4spec2_%s_%s",bRec,bGen), TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_spec2_%s_%s",AliAnalysisManager::GetCommonFileName(),bRec,bGen));\r
116 \r
117    mgr->ConnectInput  (pwg4spec, 0, mgr->GetCommonInputContainer());\r
118    mgr->ConnectOutput (pwg4spec, 0, mgr->GetCommonOutputContainer());\r
119    mgr->ConnectOutput (pwg4spec,  1, coutput1_Spec );\r
120    \r
121    return pwg4spec;\r
122 }\r