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