]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_Remi_LMEEPbPb2011AOD_Cent.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_Remi_LMEEPbPb2011AOD_Cent.C
1 AliAnalysisTask *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/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   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::kPbPb2011pidITSTPCTOF)); //
66   
67   //load dielectron configuration file
68   
69   //add dielectron analysis with different cuts to the task
70   
71   
72
73       AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA);
74       task->AddDielectron(lowmass1);
75       printf("add: %s\n",lowmass1->GetName());
76             
77       AliDielectron *lowmass5=ConfigRemiLMEEPbPb2011AOD(5,hasMC,bESDANA);
78       task->AddDielectron(lowmass5);
79       printf("add: %s\n",lowmass5->GetName());
80       AliDielectron *lowmass9=ConfigRemiLMEEPbPb2011AOD(9,hasMC,bESDANA);
81       task->AddDielectron(lowmass9);
82       printf("add: %s\n",lowmass9->GetName());
83       AliDielectron *lowmass13=ConfigRemiLMEEPbPb2011AOD(13,hasMC,bESDANA);
84       task->AddDielectron(lowmass13);
85       printf("add: %s\n",lowmass13->GetName());
86       
87
88       AliDielectron *lowmass17=ConfigRemiLMEEPbPb2011AOD(17,hasMC,bESDANA);
89       task->AddDielectron(lowmass17);
90       printf("add: %s\n",lowmass17->GetName());
91       AliDielectron *lowmass21=ConfigRemiLMEEPbPb2011AOD(21,hasMC,bESDANA);
92       task->AddDielectron(lowmass21);
93       printf("add: %s\n",lowmass21->GetName());
94       AliDielectron *lowmass25=ConfigRemiLMEEPbPb2011AOD(25,hasMC,bESDANA);
95       task->AddDielectron(lowmass25);
96       printf("add: %s\n",lowmass25->GetName());
97
98
99
100
101   mgr->AddTask(task);
102
103   //create output container
104   AliAnalysisDataContainer *coutput1 =
105         mgr->CreateContainer("Remi_LMEEPbPb2011Cent_tree",
106                 TTree::Class(),
107                 AliAnalysisManager::kExchangeContainer,
108                 outputFileName);
109
110   AliAnalysisDataContainer *cOutputHist1 =
111         mgr->CreateContainer("Remi_LMEEPbPb2011Cent_out",
112                 TList::Class(),
113                 AliAnalysisManager::kOutputContainer,
114                 outputFileName);
115
116   AliAnalysisDataContainer *cOutputHist2 =
117         mgr->CreateContainer("Remi_LMEEPbPb2011Cent_CF",
118                 TList::Class(),
119                 AliAnalysisManager::kOutputContainer,
120                 outputFileName);
121
122   AliAnalysisDataContainer *cOutputHist3 =
123         mgr->CreateContainer("Remi_EventStatPbPb2011Cent",
124                 TH1D::Class(),
125                 AliAnalysisManager::kOutputContainer,
126                 outputFileName);
127
128
129   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
130   mgr->ConnectOutput(task, 0, coutput1 );
131   mgr->ConnectOutput(task, 1, cOutputHist1);
132   mgr->ConnectOutput(task, 2, cOutputHist2);
133   mgr->ConnectOutput(task, 3, cOutputHist3);
134
135   return task;
136 }