]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/AddTask_Remi_LMEEPbPb2011AOD_Cent.C
new dielectron tasks from Remi
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_Remi_LMEEPbPb2011AOD_Cent.C
CommitLineData
1ba767ec 1AliAnalysisTask *AddTask_Remi_LMEEPbPb2011AOD_Cent(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/";
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 TString configFile("ConfigRemiLMEEPbPb2011AOD.C");
30 TString configLMEECutLib("LMEECutLibRemi.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 LMEECutLibRemi* cutlib = new LMEECutLibRemi();
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(LMEECutLibRemi::kPbPb2011TPCandTOF)); //
66
67 //load dielectron configuration file
68
69 //add dielectron analysis with different cuts to the task
70
71
72if (rejOnly) {
73
74 AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA);
75 task->AddDielectron(lowmass1);
76 printf("add: %s\n",lowmass1->GetName());
77
78
79 // AliDielectron *lowmass2=ConfigRemiLMEEPbPb2011AOD(2,hasMC,bESDANA);
80 // task->AddDielectron(lowmass2);
81 // printf("add: %s\n",lowmass2->GetName());
82
83
84 // AliDielectron *lowmass3=ConfigRemiLMEEPbPb2011AOD(3,hasMC,bESDANA);
85 // task->AddDielectron(lowmass3);
86 // printf("add: %s\n",lowmass3->GetName());
87
88
89 // AliDielectron *lowmass4=ConfigRemiLMEEPbPb2011AOD(4,hasMC,bESDANA);
90 // task->AddDielectron(lowmass4);
91 // printf("add: %s\n",lowmass4->GetName());
92
93
94 // AliDielectron *lowmass5=ConfigRemiLMEEPbPb2011AOD(5,hasMC,bESDANA);
95 // task->AddDielectron(lowmass5);
96 // printf("add: %s\n",lowmass5->GetName());
97
98
99
100}
101else {
102 AliDielectron *lowmass4=ConfigRemiLMEEPbPb2011AOD(4,hasMC,bESDANA);
103 task->AddDielectron(lowmass4);
104 printf("add: %s\n",lowmass4->GetName());
105
106
107 AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA);
108 task->AddDielectron(lowmass1);
109 printf("add: %s\n",lowmass1->GetName());
110
111
112if (PIDbaseline) {
113 AliDielectron *lowmass7=ConfigRemiLMEEPbPb2011AOD(7,hasMC,bESDANA);
114 task->AddDielectron(lowmass7);
115 printf("add: %s\n",lowmass7->GetName());
116
117}
118}
119
120 mgr->AddTask(task);
121
122 //create output container
123 AliAnalysisDataContainer *coutput1 =
124 mgr->CreateContainer("Remi_LMEEPbPb2011_tree",
125 TTree::Class(),
126 AliAnalysisManager::kExchangeContainer,
127 outputFileName);
128
129 AliAnalysisDataContainer *cOutputHist1 =
130 mgr->CreateContainer("Remi_LMEEPbPb2011_out",
131 TList::Class(),
132 AliAnalysisManager::kOutputContainer,
133 outputFileName);
134
135 AliAnalysisDataContainer *cOutputHist2 =
136 mgr->CreateContainer("Remi_LMEEPbPb2011_CF",
137 TList::Class(),
138 AliAnalysisManager::kOutputContainer,
139 outputFileName);
140
141 AliAnalysisDataContainer *cOutputHist3 =
142 mgr->CreateContainer("Remi_EventStatPbPb2011",
143 TH1D::Class(),
144 AliAnalysisManager::kOutputContainer,
145 outputFileName);
146
147
148 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
149 mgr->ConnectOutput(task, 0, coutput1 );
150 mgr->ConnectOutput(task, 1, cOutputHist1);
151 mgr->ConnectOutput(task, 2, cOutputHist2);
152 mgr->ConnectOutput(task, 3, cOutputHist3);
153
154 return task;
155}