]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_Remi_LMEEPbPb2011AOD_SemiCent2.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_Remi_LMEEPbPb2011AOD_SemiCent2.C
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) {
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_Remi_LMEEPbPb2011", "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   //  if (trainRoot.IsNull()) configBasePath= "/home/tanizaki/nfs/LMee_Deflection/ver1/";
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/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   }
28   
29   
30   TString configFile("ConfigRemiLMEEPbPb2011AOD.C");
31   TString configLMEECutLib("LMEECutLibRemi.C");
32   
33   TString configFilePath(configBasePath+configFile);
34   TString configLMEECutLibPath(configBasePath+configLMEECutLib);
35   
36   //AOD Usage currently tested with separate task, to be merged
37   if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
38     ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
39   }
40   else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
41     ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
42     bESDANA=kTRUE;
43   }
44   
45   
46   //Do we have an MC handler?
47   Bool_t hasMC=setMC;
48   if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
49     hasMC=kTRUE;
50   
51   
52   
53   if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
54     gROOT->LoadMacro(configLMEECutLibPath.Data());
55   if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
56     gROOT->LoadMacro(configFilePath.Data());
57   
58   
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);
63   //  task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
64   //  task->SetRejectPileup();
65   task->SelectCollisionCandidates(AliVEvent::kAny);  
66   task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011pidITSTPCTOF)); //
67   
68   //load dielectron configuration file
69   
70   //add dielectron analysis with different cuts to the task
71   
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     
84   
85       AliDielectron *lowmass3=ConfigRemiLMEEPbPb2011AOD(3,hasMC,bESDANA);
86       task->AddDielectron(lowmass3);
87       printf("add: %s\n",lowmass3->GetName());
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
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
139  }
140  }
141
142   mgr->AddTask(task);
143
144   //create output container
145   AliAnalysisDataContainer *coutput1 =
146         mgr->CreateContainer("Remi_LMEEPbPb2011SemiCent2_tree",
147                 TTree::Class(),
148                 AliAnalysisManager::kExchangeContainer,
149                 outputFileName);
150
151   AliAnalysisDataContainer *cOutputHist1 =
152         mgr->CreateContainer("Remi_LMEEPbPb2011SemiCent2_out",
153                 TList::Class(),
154                 AliAnalysisManager::kOutputContainer,
155                 outputFileName);
156
157   AliAnalysisDataContainer *cOutputHist2 =
158         mgr->CreateContainer("Remi_LMEEPbPb2011SemiCent2_CF",
159                 TList::Class(),
160                 AliAnalysisManager::kOutputContainer,
161                 outputFileName);
162
163   AliAnalysisDataContainer *cOutputHist3 =
164     mgr->CreateContainer("Remi_EventStatPbPb2011SemiCent2",
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 }