]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_Asako_LMEEPbPb2011AODCent.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_Asako_LMEEPbPb2011AODCent.C
1 AliAnalysisTask *AddTask_Asako_LMEEPbPb2011AODCent(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_LMEEPbPb2011AODCent", "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    //   if (trainRoot.IsNull()) configBasePath= "/home/tsuji/nfs/AliceAna/pol2/Cent/";
21   
22
23   if (getFromAlien &&
24       (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigAsakoLMEEPbPb2011AOD.C .")) &&
25       (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibAsako.C ."))
26           ) {
27         configBasePath=Form("%s/",gSystem->pwd());
28   }
29
30   TString configFile("ConfigAsakoLMEEPbPb2011AOD.C");
31   TString configLMEECutLib("LMEECutLibAsako.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   LMEECutLibAsako* cutlib = new LMEECutLibAsako();
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(LMEECutLibAsako::kPbPb2011TPCandTOF)); //
67   
68
69   //load dielectron configuration file
70
71   //add dielectron analysis with different cuts to the task
72
73   
74   AliDielectron *lowmass1=ConfigAsakoLMEEPbPb2011AOD(1,hasMC,bESDANA);
75   task->AddDielectron(lowmass1);
76   printf("add: %s\n",lowmass1->GetName());
77   
78   AliDielectron *lowmass5=ConfigAsakoLMEEPbPb2011AOD(5,hasMC,bESDANA);
79   task->AddDielectron(lowmass5);
80   printf("add: %s\n",lowmass5->GetName());
81   
82   // AliDielectron *lowmass6=ConfigAsakoLMEEPbPb2011AOD(6,hasMC,bESDANA);
83   // task->AddDielectron(lowmass6);
84   // printf("add: %s\n",lowmass6->GetName());
85   
86   // AliDielectron *lowmass7=ConfigAsakoLMEEPbPb2011AOD(7,hasMC,bESDANA);
87   // task->AddDielectron(lowmass7);
88   //printf("add: %s\n",lowmass7->GetName());
89   
90   // AliDielectron *lowmass8=ConfigAsakoLMEEPbPb2011AOD(8,hasMC,bESDANA);
91   // task->AddDielectron(lowmass8);
92   // printf("add: %s\n",lowmass8->GetName());
93   
94   AliDielectron *lowmass9=ConfigAsakoLMEEPbPb2011AOD(9,hasMC,bESDANA);
95   task->AddDielectron(lowmass9);
96   printf("add: %s\n",lowmass9->GetName());
97   
98   //if (PIDbaseline) {
99   //AliDielectron *lowmass7=ConfigLMEEPbPb2011AOD(7,hasMC,bESDANA);
100   //task->AddDielectron(lowmass7);
101   //printf("add: %s\n",lowmass7->GetName());
102   //}
103
104   mgr->AddTask(task);
105
106   //create output container
107   AliAnalysisDataContainer *coutput1 =
108         mgr->CreateContainer("asako_LMEEPbPb2011_tree",
109                                                  TTree::Class(),
110                                                  AliAnalysisManager::kExchangeContainer,
111                                                  "LMEEoutput.root");
112
113   AliAnalysisDataContainer *cOutputHist1 =
114         mgr->CreateContainer("asako_LMEEPbPb2011_out",
115                                                  TList::Class(),
116                                                  AliAnalysisManager::kOutputContainer,
117                                                  "LMEEoutput.root");
118
119   /*  AliAnalysisDataContainer *cOutputHist2 =
120             mgr->CreateContainer("cbaumann_lowmass_CF",
121                   TList::Class(),
122                     AliAnalysisManager::kOutputContainer,
123                           "cbaumann_lowmass_CF.root");
124   */
125   AliAnalysisDataContainer *cOutputHist2 =
126         mgr->CreateContainer("asako_LMEEPbPb2011_CF",
127                                                  TList::Class(),
128                                                  AliAnalysisManager::kOutputContainer,
129                                                  "LMEEoutput.root");
130
131   AliAnalysisDataContainer *cOutputHist3 =
132         mgr->CreateContainer("asako_EventStatPbPb2011",
133                                                  TH1D::Class(),
134                                                  AliAnalysisManager::kOutputContainer,
135                                                  "LMEEoutput.root");
136
137
138   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
139   mgr->ConnectOutput(task, 0, coutput1 );
140   mgr->ConnectOutput(task, 1, cOutputHist1);
141   mgr->ConnectOutput(task, 2, cOutputHist2);
142   mgr->ConnectOutput(task, 3, cOutputHist3);
143
144   return task;
145 }
146