]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/AddTask_reichelt_LMEEPbPb2011AOD.C
Updated lmee PbPb analysis configs
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_reichelt_LMEEPbPb2011AOD.C
CommitLineData
10efc4c3 1AliAnalysisTask *AddTask_reichelt_LMEEPbPb2011AOD(Char_t* outputFileName="LMEEoutput.root",
bae04e0a 2 Bool_t flag1=kFALSE, Bool_t flag2=kFALSE, Bool_t getFromAlien=kFALSE,
10efc4c3 3 Int_t triggerNames=(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral), Int_t collCands=AliVEvent::kAny)
4{
5 Bool_t bESDANA=kFALSE; //Autodetect via InputHandler
6 //get the current analysis manager
7 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8 if (!mgr) {
9 Error("AddTask_reichelt_LMEEPbPb2011", "No analysis manager found.");
10 return 0;
11 }
12
13 // create task and add it to the manager
14 // gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
15
16 TString configBasePath("$TRAIN_ROOT/reichelt_lowmass/");
17 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
18 if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
19
20
21 //Load updated macros from private ALIEN path
bae04e0a 22 if (getFromAlien //&&
23 && (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/p/preichel/PWGDQ/dielectron/macrosLMEE/Config_reichelt_LMEEPbPb2011.C ."))
24 && (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/p/preichel/PWGDQ/dielectron/macrosLMEE/LMEECutLib_reichelt.C ."))
10efc4c3 25 ) {
26 configBasePath=Form("%s/",gSystem->pwd());
27 }
28
29 TString configFile("Config_reichelt_LMEEPbPb2011.C");
30 TString configLMEECutLib("LMEECutLib_reichelt.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?
bae04e0a 46 Bool_t hasMC = (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler() != 0x0);
10efc4c3 47
48 //load dielectron configuration files
49 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
50 gROOT->LoadMacro(configLMEECutLibPath.Data());
51 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
52 gROOT->LoadMacro(configFilePath.Data());
53
54
55 LMEECutLib* cutlib = new LMEECutLib();
56 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
57 if (!hasMC) task->UsePhysicsSelection();
58 task->SetTriggerMask(triggerNames);
59 task->SelectCollisionCandidates(collCands);
60 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011_TPCTOF_Semi1));
61 // Note: event cuts are identical for all analysis 'cutDefinition's that run together!
62
63
64 //add dielectron analysis with different cuts to the task
65 for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
66 //MB
67 AliDielectron *diel_low = Config_reichelt_LMEEPbPb2011(i,hasMC,bESDANA);
68 if(!diel_low)continue;
69 task->AddDielectron(diel_low);
bae04e0a 70 printf("successfully added AliDielectron: %s\n",diel_low->GetName());
10efc4c3 71 }//loop
72
73 mgr->AddTask(task);
74
75 //create output container
76 AliAnalysisDataContainer *coutput1 =
77 mgr->CreateContainer("reichelt_LMEEPbPb2011_tree",
78 TTree::Class(),
79 AliAnalysisManager::kExchangeContainer,
80 outputFileName);
81
82 AliAnalysisDataContainer *cOutputHist1 =
83 mgr->CreateContainer("reichelt_LMEEPbPb2011_out",
84 TList::Class(),
85 AliAnalysisManager::kOutputContainer,
86 outputFileName);
87
88 AliAnalysisDataContainer *cOutputHist2 =
89 mgr->CreateContainer("reichelt_LMEEPbPb2011_CF",
90 TList::Class(),
91 AliAnalysisManager::kOutputContainer,
92 outputFileName);
93
94 AliAnalysisDataContainer *cOutputHist3 =
95 mgr->CreateContainer("reichelt_EventStatPbPb2011",
96 TH1D::Class(),
97 AliAnalysisManager::kOutputContainer,
98 outputFileName);
99
100 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
101 mgr->ConnectOutput(task, 0, coutput1 );
102 mgr->ConnectOutput(task, 1, cOutputHist1);
103 mgr->ConnectOutput(task, 2, cOutputHist2);
104 mgr->ConnectOutput(task, 3, cOutputHist3);
105
106 return task;
107}