]>
Commit | Line | Data |
---|---|---|
1ba767ec | 1 | AliAnalysisTask *AddTask_Remi_LMEEPbPb2011AOD_SemiCent2(Char_t* outputFileName="LMEEoutput.root", Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE, Bool_t rejOnly=kTRUE) { |
2eab2b62 | 2 | |
1ba767ec | 3 | Bool_t bESDANA=kFALSE; //Autodetect via InputHandler |
4 | //get the current analysis manager | |
5 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
6 | if (!mgr) { | |
2eab2b62 | 7 | Error("AddTask_Remi_LMEEPbPb2011", "No analysis manager found."); |
8 | return 0; | |
1ba767ec | 9 | } |
2eab2b62 | 10 | |
11 | ||
12 | // create task and add it to the manager | |
13 | // gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE"); | |
14 | ||
15 | ||
1ba767ec | 16 | TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/"); |
17 | TString trainRoot=gSystem->Getenv("TRAIN_ROOT"); | |
2eab2b62 | 18 | // if (trainRoot.IsNull()) configBasePath= "/home/tanizaki/nfs/LMee_Deflection/ver1/"; |
1ba767ec | 19 | if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/"; |
2eab2b62 | 20 | |
21 | ||
1ba767ec | 22 | if (getFromAlien && |
23 | (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigRemiLMEEPbPb2011AOD.C .")) && | |
24 | (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibRemi.C .")) | |
25 | ) { | |
26 | configBasePath=Form("%s/",gSystem->pwd()); | |
27 | } | |
2eab2b62 | 28 | |
29 | ||
1ba767ec | 30 | TString configFile("ConfigRemiLMEEPbPb2011AOD.C"); |
31 | TString configLMEECutLib("LMEECutLibRemi.C"); | |
2eab2b62 | 32 | |
1ba767ec | 33 | TString configFilePath(configBasePath+configFile); |
34 | TString configLMEECutLibPath(configBasePath+configLMEECutLib); | |
2eab2b62 | 35 | |
1ba767ec | 36 | //AOD Usage currently tested with separate task, to be merged |
37 | if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){ | |
2eab2b62 | 38 | ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration"); |
1ba767ec | 39 | } |
40 | else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){ | |
2eab2b62 | 41 | ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code"); |
42 | bESDANA=kTRUE; | |
1ba767ec | 43 | } |
2eab2b62 | 44 | |
45 | ||
1ba767ec | 46 | //Do we have an MC handler? |
47 | Bool_t hasMC=setMC; | |
48 | if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0) | |
2eab2b62 | 49 | hasMC=kTRUE; |
50 | ||
51 | ||
52 | ||
1ba767ec | 53 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data())) |
2eab2b62 | 54 | gROOT->LoadMacro(configLMEECutLibPath.Data()); |
1ba767ec | 55 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data())) |
2eab2b62 | 56 | gROOT->LoadMacro(configFilePath.Data()); |
57 | ||
58 | ||
1ba767ec | 59 | LMEECutLibRemi* cutlib = new LMEECutLibRemi(); |
60 | AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData"); | |
61 | if (!hasMC) task->UsePhysicsSelection(); | |
62 | task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral); | |
2eab2b62 | 63 | // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral); |
64 | // task->SetRejectPileup(); | |
1ba767ec | 65 | task->SelectCollisionCandidates(AliVEvent::kAny); |
2eab2b62 | 66 | task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011pidITSTPCTOF)); // |
67 | ||
1ba767ec | 68 | //load dielectron configuration file |
2eab2b62 | 69 | |
1ba767ec | 70 | //add dielectron analysis with different cuts to the task |
1ba767ec | 71 | |
2eab2b62 | 72 | |
73 | if (rejOnly) { | |
74 | ||
75 | // AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA); | |
76 | // task->AddDielectron(lowmass1); | |
77 | // printf("add: %s\n",lowmass1->GetName()); | |
78 | ||
79 | ||
80 | // AliDielectron *lowmass2=ConfigRemiLMEEPbPb2011AOD(2,hasMC,bESDANA); | |
81 | // task->AddDielectron(lowmass2); | |
82 | // printf("add: %s\n",lowmass2->GetName()); | |
83 | ||
1ba767ec | 84 | |
85 | AliDielectron *lowmass3=ConfigRemiLMEEPbPb2011AOD(3,hasMC,bESDANA); | |
86 | task->AddDielectron(lowmass3); | |
87 | printf("add: %s\n",lowmass3->GetName()); | |
2eab2b62 | 88 | AliDielectron *lowmass7=ConfigRemiLMEEPbPb2011AOD(7,hasMC,bESDANA); |
89 | task->AddDielectron(lowmass7); | |
90 | printf("add: %s\n",lowmass7->GetName()); | |
91 | ||
92 | AliDielectron *lowmass11=ConfigRemiLMEEPbPb2011AOD(11,hasMC,bESDANA); | |
93 | task->AddDielectron(lowmass11); | |
94 | printf("add: %s\n",lowmass11->GetName()); | |
95 | ||
96 | AliDielectron *lowmass15=ConfigRemiLMEEPbPb2011AOD(15,hasMC,bESDANA); | |
97 | task->AddDielectron(lowmass15); | |
98 | printf("add: %s\n",lowmass15->GetName()); | |
99 | ||
100 | AliDielectron *lowmass19=ConfigRemiLMEEPbPb2011AOD(19,hasMC,bESDANA); | |
101 | task->AddDielectron(lowmass19); | |
102 | printf("add: %s\n",lowmass19->GetName()); | |
103 | AliDielectron *lowmass23=ConfigRemiLMEEPbPb2011AOD(23,hasMC,bESDANA); | |
104 | task->AddDielectron(lowmass23); | |
105 | printf("add: %s\n",lowmass23->GetName()); | |
106 | AliDielectron *lowmass27=ConfigRemiLMEEPbPb2011AOD(27,hasMC,bESDANA); | |
107 | task->AddDielectron(lowmass27); | |
108 | printf("add: %s\n",lowmass27->GetName()); | |
109 | ||
1ba767ec | 110 | |
111 | ||
112 | // AliDielectron *lowmass4=ConfigRemiLMEEPbPb2011AOD(4,hasMC,bESDANA); | |
113 | // task->AddDielectron(lowmass4); | |
114 | // printf("add: %s\n",lowmass4->GetName()); | |
115 | ||
116 | ||
117 | // AliDielectron *lowmass5=ConfigRemiLMEEPbPb2011AOD(5,hasMC,bESDANA); | |
118 | // task->AddDielectron(lowmass5); | |
119 | // printf("add: %s\n",lowmass5->GetName()); | |
120 | ||
121 | ||
122 | } | |
123 | else { | |
124 | AliDielectron *lowmass4=ConfigRemiLMEEPbPb2011AOD(4,hasMC,bESDANA); | |
125 | task->AddDielectron(lowmass4); | |
126 | printf("add: %s\n",lowmass4->GetName()); | |
127 | ||
128 | ||
129 | AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA); | |
130 | task->AddDielectron(lowmass1); | |
131 | printf("add: %s\n",lowmass1->GetName()); | |
132 | ||
133 | ||
134 | if (PIDbaseline) { | |
135 | AliDielectron *lowmass7=ConfigRemiLMEEPbPb2011AOD(7,hasMC,bESDANA); | |
136 | task->AddDielectron(lowmass7); | |
137 | printf("add: %s\n",lowmass7->GetName()); | |
138 | ||
de4c3fca | 139 | } |
140 | } | |
1ba767ec | 141 | |
142 | mgr->AddTask(task); | |
143 | ||
144 | //create output container | |
145 | AliAnalysisDataContainer *coutput1 = | |
de4c3fca | 146 | mgr->CreateContainer("Remi_LMEEPbPb2011SemiCent2_tree", |
1ba767ec | 147 | TTree::Class(), |
148 | AliAnalysisManager::kExchangeContainer, | |
149 | outputFileName); | |
150 | ||
151 | AliAnalysisDataContainer *cOutputHist1 = | |
de4c3fca | 152 | mgr->CreateContainer("Remi_LMEEPbPb2011SemiCent2_out", |
1ba767ec | 153 | TList::Class(), |
154 | AliAnalysisManager::kOutputContainer, | |
155 | outputFileName); | |
156 | ||
157 | AliAnalysisDataContainer *cOutputHist2 = | |
de4c3fca | 158 | mgr->CreateContainer("Remi_LMEEPbPb2011SemiCent2_CF", |
1ba767ec | 159 | TList::Class(), |
160 | AliAnalysisManager::kOutputContainer, | |
161 | outputFileName); | |
162 | ||
163 | AliAnalysisDataContainer *cOutputHist3 = | |
de4c3fca | 164 | mgr->CreateContainer("Remi_EventStatPbPb2011SemiCent2", |
1ba767ec | 165 | TH1D::Class(), |
166 | AliAnalysisManager::kOutputContainer, | |
167 | outputFileName); | |
168 | ||
169 | ||
170 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
171 | mgr->ConnectOutput(task, 0, coutput1 ); | |
172 | mgr->ConnectOutput(task, 1, cOutputHist1); | |
173 | mgr->ConnectOutput(task, 2, cOutputHist2); | |
174 | mgr->ConnectOutput(task, 3, cOutputHist3); | |
175 | ||
176 | return task; | |
177 | } |