]>
Commit | Line | Data |
---|---|---|
6bec8236 | 1 | \r |
2 | AliAnalysisTaskFragFuncBB *AddTaskFragFuncBB(UInt_t filterMask=16, Int_t iPhysicsSelection=1){\r | |
3 | AddTaskFragFuncBB("jets", "", filterMask, iPhysicsSelection);\r | |
4 | }\r | |
5 | \r | |
6 | AliAnalysisTaskFragFuncBB *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 | |
19 | AliAnalysisTaskFragFuncBB *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 | } |