]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/AddTask_Remi_LMEEPbPb2011AOD_SemiCent1.C
update from pr task : sjena
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_Remi_LMEEPbPb2011AOD_SemiCent1.C
CommitLineData
0a3774f4 1AliAnalysisTask *AddTask_Remi_LMEEPbPb2011AOD_SemiCent1(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) {
2eab2b62 2
1ba767ec 3 Bool_t bESDANA=kFALSE; //Autodetect via InputHandler
4 //get the current analysis manager
5 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6 if (!mgr) {
2eab2b62 7 Error("AddTask_Remi_LMEEPbPb2011", "No analysis manager found.");
8 return 0;
1ba767ec 9 }
2eab2b62 10
11
12 // create task and add it to the manager
13 // gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
14
15
1ba767ec 16 TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
17 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
2eab2b62 18 // if (trainRoot.IsNull()) configBasePath= "/home/tanizaki/nfs/LMee_Deflection/ver1/";
1ba767ec 19 if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
2eab2b62 20
21
1ba767ec 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 }
2eab2b62 28
29
1ba767ec 30 TString configFile("ConfigRemiLMEEPbPb2011AOD.C");
31 TString configLMEECutLib("LMEECutLibRemi.C");
2eab2b62 32
1ba767ec 33 TString configFilePath(configBasePath+configFile);
34 TString configLMEECutLibPath(configBasePath+configLMEECutLib);
2eab2b62 35
1ba767ec 36 //AOD Usage currently tested with separate task, to be merged
37 if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
2eab2b62 38 ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
1ba767ec 39 }
40 else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
2eab2b62 41 ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
42 bESDANA=kTRUE;
1ba767ec 43 }
2eab2b62 44
45
1ba767ec 46 //Do we have an MC handler?
47 Bool_t hasMC=setMC;
48 if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
2eab2b62 49 hasMC=kTRUE;
50
51
52
1ba767ec 53 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
2eab2b62 54 gROOT->LoadMacro(configLMEECutLibPath.Data());
1ba767ec 55 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
2eab2b62 56 gROOT->LoadMacro(configFilePath.Data());
57
58
1ba767ec 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);
2eab2b62 63 // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
64 // task->SetRejectPileup();
1ba767ec 65 task->SelectCollisionCandidates(AliVEvent::kAny);
2eab2b62 66 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011pidITSTPCTOF)); //
67
1ba767ec 68 //load dielectron configuration file
69
70 //add dielectron analysis with different cuts to the task
71
72 AliDielectron *lowmass2=ConfigRemiLMEEPbPb2011AOD(2,hasMC,bESDANA);
73 task->AddDielectron(lowmass2);
74 printf("add: %s\n",lowmass2->GetName());
2eab2b62 75 AliDielectron *lowmass6=ConfigRemiLMEEPbPb2011AOD(6,hasMC,bESDANA);
76 task->AddDielectron(lowmass6);
77 printf("add: %s\n",lowmass6->GetName());
78 AliDielectron *lowmass10=ConfigRemiLMEEPbPb2011AOD(10,hasMC,bESDANA);
79 task->AddDielectron(lowmass10);
80 printf("add: %s\n",lowmass10->GetName());
81 AliDielectron *lowmass14=ConfigRemiLMEEPbPb2011AOD(14,hasMC,bESDANA);
82 task->AddDielectron(lowmass14);
83 printf("add: %s\n",lowmass14->GetName());
84
85 AliDielectron *lowmass18=ConfigRemiLMEEPbPb2011AOD(18,hasMC,bESDANA);
86 task->AddDielectron(lowmass18);
87 printf("add: %s\n",lowmass18->GetName());
88 AliDielectron *lowmass22=ConfigRemiLMEEPbPb2011AOD(22,hasMC,bESDANA);
89 task->AddDielectron(lowmass22);
90 printf("add: %s\n",lowmass22->GetName());
91 AliDielectron *lowmass26=ConfigRemiLMEEPbPb2011AOD(26,hasMC,bESDANA);
92 task->AddDielectron(lowmass26);
93 printf("add: %s\n",lowmass26->GetName());
1ba767ec 94
95
96 mgr->AddTask(task);
97
98 //create output container
99 AliAnalysisDataContainer *coutput1 =
de4c3fca 100 mgr->CreateContainer("Remi_LMEEPbPb2011SemiCent1_tree",
1ba767ec 101 TTree::Class(),
102 AliAnalysisManager::kExchangeContainer,
103 outputFileName);
104
105 AliAnalysisDataContainer *cOutputHist1 =
de4c3fca 106 mgr->CreateContainer("Remi_LMEEPbPb2011SemiCent1_out",
1ba767ec 107 TList::Class(),
108 AliAnalysisManager::kOutputContainer,
109 outputFileName);
110
111 AliAnalysisDataContainer *cOutputHist2 =
de4c3fca 112 mgr->CreateContainer("Remi_LMEEPbPb2011SemiCent1_CF",
1ba767ec 113 TList::Class(),
114 AliAnalysisManager::kOutputContainer,
115 outputFileName);
116
117 AliAnalysisDataContainer *cOutputHist3 =
de4c3fca 118 mgr->CreateContainer("Remi_EventStatPbPb2011SemiCent1",
1ba767ec 119 TH1D::Class(),
120 AliAnalysisManager::kOutputContainer,
121 outputFileName);
122
123
124 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
125 mgr->ConnectOutput(task, 0, coutput1 );
126 mgr->ConnectOutput(task, 1, cOutputHist1);
127 mgr->ConnectOutput(task, 2, cOutputHist2);
128 mgr->ConnectOutput(task, 3, cOutputHist3);
129
130 return task;
131}