]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_cbaumann_LMEEPbPb2011AODSemiCent.C
update tasks for PbPb analysis
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_cbaumann_LMEEPbPb2011AODSemiCent.C
1 AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011AODSemiCent(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_cbaumann_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= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
19
20
21   if (getFromAlien &&
22       (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigLMEEPbPb2011AOD.C .")) &&
23       (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibAOD.C ."))
24      ) {
25         configBasePath=Form("%s/",gSystem->pwd());
26   }
27
28   TString configFile("ConfigLMEEPbPb2011AOD.C");
29   TString configLMEECutLib("LMEECutLibAOD.C");
30
31   TString configFilePath(configBasePath+configFile);
32   TString configLMEECutLibPath(configBasePath+configLMEECutLib);
33
34   //AOD Usage currently tested with separate task, to be merged
35   if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
36         ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
37   }
38   else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
39         ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
40         bESDANA=kTRUE;
41   }
42
43
44   //Do we have an MC handler?
45   Bool_t hasMC=setMC;
46   if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
47         hasMC=kTRUE;
48
49
50
51   if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
52         gROOT->LoadMacro(configLMEECutLibPath.Data());
53   if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
54         gROOT->LoadMacro(configFilePath.Data());
55
56
57   LMEECutLib* cutlib = new LMEECutLib();
58   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
59   if (!hasMC) task->UsePhysicsSelection();
60   task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
61 //  task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
62 //  task->SetRejectPileup();
63   task->SelectCollisionCandidates(AliVEvent::kAny);  
64   task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); //
65         
66
67   //load dielectron configuration file
68
69   //add dielectron analysis with different cuts to the task
70   AliDielectron *lowmass2=ConfigLMEEPbPb2011AOD(2,hasMC,bESDANA);
71   task->AddDielectron(lowmass2);
72   printf("add: %s\n",lowmass2->GetName());
73
74   AliDielectron *lowmass5=ConfigLMEEPbPb2011AOD(5,hasMC,bESDANA);
75   task->AddDielectron(lowmass5);
76   printf("add: %s\n",lowmass5->GetName());
77
78 if (PIDbaseline) {
79         AliDielectron *lowmass7=ConfigLMEEPbPb2011AOD(7,hasMC,bESDANA);
80         task->AddDielectron(lowmass7);
81         printf("add: %s\n",lowmass7->GetName());
82 }
83
84   mgr->AddTask(task);
85
86   //create output container
87   AliAnalysisDataContainer *coutput1 =
88         mgr->CreateContainer("cbaumann_LMEEPbPb2011_tree",
89                 TTree::Class(),
90                 AliAnalysisManager::kExchangeContainer,
91                 "cbaumann_LMEEPbPb2011_default.root");
92
93   AliAnalysisDataContainer *cOutputHist1 =
94         mgr->CreateContainer("cbaumann_LMEEPbPb2011_out",
95                 TList::Class(),
96                 AliAnalysisManager::kOutputContainer,
97                 "cbaumann_LMEEPbPb2011_out.root");
98
99   /*  AliAnalysisDataContainer *cOutputHist2 =
100           mgr->CreateContainer("cbaumann_lowmass_CF",
101           TList::Class(),
102           AliAnalysisManager::kOutputContainer,
103           "cbaumann_lowmass_CF.root");
104           */
105   AliAnalysisDataContainer *cOutputHist2 =
106         mgr->CreateContainer("cbaumann_LMEEPbPb2011_CF",
107                 TList::Class(),
108                 AliAnalysisManager::kOutputContainer,
109                 "cbaumann_LMEEPbPb2011_out.root");
110
111   AliAnalysisDataContainer *cOutputHist3 =
112         mgr->CreateContainer("cbaumann_EventStatPbPb2011",
113                 TH1D::Class(),
114                 AliAnalysisManager::kOutputContainer,
115                 "cbaumann_LMEEPbPb2011_out.root");
116
117
118   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
119   mgr->ConnectOutput(task, 0, coutput1 );
120   mgr->ConnectOutput(task, 1, cOutputHist1);
121   mgr->ConnectOutput(task, 2, cOutputHist2);
122   mgr->ConnectOutput(task, 3, cOutputHist3);
123
124   return task;
125 }