]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/macros/AddTaskFragFuncBB.C
adding TPC cosntrained tracks back in for comparison
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskFragFuncBB.C
CommitLineData
6bec8236 1\r
2AliAnalysisTaskFragFuncBB *AddTaskFragFuncBB(UInt_t filterMask=16, Int_t iPhysicsSelection=1){\r
3 AddTaskFragFuncBB("jets", "", filterMask, iPhysicsSelection);\r
4}\r
5\r
6AliAnalysisTaskFragFuncBB *AddTaskFragFuncBB(UInt_t filterMask=16, Bool_t kUseAODMC=kFALSE, Int_t iPhysicsSelection=1, UInt_t iFlag){\r
7 AliAnalysisTaskFragFuncBB *ff=0;\r
8 if(kUseAODMC){\r
9 if(iFlag&(1<<0)) ff = AddTaskFragFuncBB("jets", "jetsAODMC2b_UA104", filterMask, iPhysicsSelection);\r
10 if(iFlag&(1<<1)) ff = AddTaskFragFuncBB("jetsAOD_UA107", "jetsAODMC2b_UA107", filterMask, iPhysicsSelection);\r
11 }\r
12 if(iFlag&(1<<2)) ff = AddTaskFragFuncBB("jets", "", filterMask, iPhysicsSelection);\r
13 \r
14 return ff;\r
15}\r
16\r
17// _______________________________________________________________________________________\r
18\r
19AliAnalysisTaskFragFuncBB *AddTaskFragFuncBB(\r
20 const char* bRecJets,\r
21 const char* bGenJets,\r
22 UInt_t filterMask,\r
23 Int_t iPhysicsSelection)\r
24{\r
25 // Creates a fragmentation function task,\r
26 // configures it and adds it to the analysis manager.\r
27 \r
28 // Get the pointer to the existing analysis manager via the static access method.\r
29 //==============================================================================\r
30 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
31 if (!mgr) {\r
32 ::Error("AddTaskFragFuncBB", "No analysis manager to connect to.");\r
33 return NULL;\r
34 }\r
35 \r
36 // Check the analysis type using the event handlers connected to the analysis manager.\r
37 //==============================================================================\r
38 if (!mgr->GetInputEventHandler()) {\r
39 ::Error("AddTaskFragFunc", "This task requires an input event handler");\r
40 return NULL;\r
41 }\r
42\r
43 TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"\r
44 TString typeRec(bRecJets);\r
45 TString typeGen(bGenJets);\r
46 typeRec.ToUpper();\r
47 typeGen.ToUpper();\r
48 \r
49 // Create the task and configure it.\r
50 //===========================================================================\r
51\r
52 AliAnalysisTaskFragFuncBB *fragfunc = new AliAnalysisTaskFragFuncBB(Form("Fragmenation Function %s %s", bRecJets, bGenJets));\r
53 \r
54 // pwg4fragfunc->SetAnalysisType(AliAnalysisTaskFragFunc::kAnaMC);\r
55 // if(iAODanalysis) pwg4fragfunc->SetAODInput(kTRUE);\r
56 // pwg4fragfunc->SetDebugLevel(11);\r
57 \r
58 Printf("Rec Jets %s", bRecJets);\r
59 Printf("Gen Jets %s", bGenJets);\r
60 \r
61 fragfunc->SetBranchGenJets(bGenJets);\r
62 fragfunc->SetBranchRecJets(bRecJets);\r
63 \r
64 fragfunc->SetFilterMask(filterMask);\r
65 //fragfunc->SetUseGlobalSelection(kTRUE);\r
66 \r
67 if(type == "AOD"){\r
68 // Assume all jets are produced already\r
69 fragfunc->SetAODJetInput(kTRUE);\r
70 fragfunc->SetAODTrackInput(kTRUE);\r
71 fragfunc->SetAODMCInput(kTRUE);\r
72 }\r
73 \r
74 if(typeRec.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD\r
75 fragfunc->SetTrackTypeRec(AliAnalysisTaskFragFunc::kTrackAODMCChargedAcceptance);\r
76 }\r
77 else if (typeRec.Contains("AODMC2")){\r
78 fragfunc->SetTrackTypeRec(AliAnalysisTaskFragFunc::kTrackAODMCCharged);\r
79 }\r
80 else if (typeRec.Contains("AODMC")){\r
81 fragfunc->SetTrackTypeRec(AliAnalysisTaskFragFunc::kTrackAODMCAll);\r
82 }\r
83 else { // catch akk use AOD\r
84 fragfunc->SetTrackTypeRec(AliAnalysisTaskFragFunc::kTrackAOD);\r
85 }\r
86\r
87 if(typeGen.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD\r
88 fragfunc->SetTrackTypeGen(AliAnalysisTaskFragFunc::kTrackAODMCChargedAcceptance);\r
89 }\r
90 else if (typeGen.Contains("AODMC2")){\r
91 fragfunc->SetTrackTypeGen(AliAnalysisTaskFragFunc::kTrackAODMCCharged);\r
92 }\r
93 else if (typeGen.Contains("AODMC")){\r
94 fragfunc->SetTrackTypeGen(AliAnalysisTaskFragFunc::kTrackAODMCAll);\r
95 }\r
96 else if (typeGen.Length()>0){ // catch all use AOD\r
97 fragfunc->SetTrackTypeGen(AliAnalysisTaskFragFunc::kTrackAOD);\r
98 }\r
99 else { //\r
100 fragfunc->SetTrackTypeGen(AliAnalysisTaskFragFunc::kTrackKineCharged);\r
101 }\r
102\r
103 //if(iPhysicsSelection)fragfunc->SelectCollisionCandidates();\r
104\r
105 mgr->AddTask(fragfunc);\r
106\r
107 // Create ONLY the output containers for the data produced by the task.\r
108 // Get and connect other common input/output containers via the manager as below\r
109 //==============================================================================\r
110 AliAnalysisDataContainer *coutput1_FragFunc = mgr->CreateContainer(Form("fracfuncBB_%s_%s",bRecJets,bGenJets), TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_fragfuncBB_%s_%s",AliAnalysisManager::GetCommonFileName(),bRecJets,bGenJets));\r
111\r
112 mgr->ConnectInput (fragfunc, 0, mgr->GetCommonInputContainer());\r
113 mgr->ConnectOutput (fragfunc, 0, mgr->GetCommonOutputContainer());\r
114 mgr->ConnectOutput (fragfunc, 1, coutput1_FragFunc);\r
115 \r
116 return fragfunc;\r
117}