]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/AddTask_cbaumann_LMEEPbPb2011SemiCent.C
current AOD macros
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_cbaumann_LMEEPbPb2011SemiCent.C
CommitLineData
86a74c03 1AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011SemiCent(Bool_t runRejection=kFALSE, Bool_t setMC=kFALSE,Bool_t enableCF=kFALSE, Bool_t switchToPhiV=kTRUE, Bool_t getFromAlien=kFALSE){
9a476b26 2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4 if (!mgr) {
54beba6b 5 Error("AddTask_cbaumann_LMEEPbPb2011", "No analysis manager found.");
6 return 0;
9a476b26 7 }
8
9 //create config File names: TRAIN_ROOT is for running on GSI train,
10 // ALICE_ROOT for CERN Lego trains
11 TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
12 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
13 if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
86a74c03 14
15 if (getFromAlien &&
b4d6ccde 16 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosJPSI/ConfigLMEEPbPb2011.C ."))
86a74c03 17 ) {
18 configFile=Form("%s/",gSystem->pwd());
19 }
20
9a476b26 21 TString configFile("ConfigLMEEPbPb2011.C");
22 TString configLMEECutLib("LMEECutLib.C");
23
24 TString configFilePath(configBasePath+configFile);
25 TString configLMEECutLibPath(configBasePath+configLMEECutLib);
26
27 //AOD Usage currently tested with separate task, to be merged
28 if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
54beba6b 29 ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
9a476b26 30 }
31
32 //Do we have an MC handler?
33 Bool_t hasMC=setMC;
34 if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
54beba6b 35 hasMC=kTRUE;
9a476b26 36
37
38
39 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
54beba6b 40 gROOT->LoadMacro(configLMEECutLibPath.Data());
9a476b26 41 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
54beba6b 42 gROOT->LoadMacro(configFilePath.Data());
9a476b26 43
44 LMEECutLib* cutlib = new LMEECutLib();
45 cutlib->SetMCFlag(hasMC);
46 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEDataSemiCent");
47 if (!hasMC){ task->UsePhysicsSelection();
48 }
49 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
50 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); //
51
52 //load dielectron configuration file
53
54 //add dielectron analysis with different cuts to the task
55 if (runRejection) {
56
54beba6b 57 AliDielectron *lowmass4=ConfigLMEEPbPb2011(4,hasMC,enableCF);
58 task->AddDielectron(lowmass4);
59 printf("add: %s\n",lowmass4->GetName());
9a476b26 60 }
61 else {
62
54beba6b 63 if (switchToPhiV) {
64
65 AliDielectron *lowmass10=ConfigLMEEPbPb2011(10,hasMC,enableCF);
66 lowmass10->SetUseKF(kFALSE);
67 task->AddDielectron(lowmass10);
68 printf("add: %s\n",lowmass10->GetName());
69
70
71 }
72 else {
73 AliDielectron *lowmass2=ConfigLMEEPbPb2011(2,hasMC,enableCF);
74 lowmass2->SetUseKF(kFALSE);
75 task->AddDielectron(lowmass2);
76 printf("add: %s\n",lowmass2->GetName());
77 }
9a476b26 78 }
79
80 mgr->AddTask(task);
81
82 //create output container
83 AliAnalysisDataContainer *coutput1 =
54beba6b 84 mgr->CreateContainer("cbaumann_LMEEPbPb2011SemiCent_tree",
85 TTree::Class(),
86 AliAnalysisManager::kExchangeContainer,
87 "cbaumann_LMEEPbPb2011SemiCent_default.root");
9a476b26 88
89 AliAnalysisDataContainer *cOutputHist1 =
54beba6b 90 mgr->CreateContainer("cbaumann_LMEEPbPb2011SemiCent_out",
91 TList::Class(),
92 AliAnalysisManager::kOutputContainer,
93 "cbaumann_LMEEPbPb2011SemiCent_out.root");
94
9a476b26 95 AliAnalysisDataContainer *cOutputHist2 = 0x0;
96 if (enableCF) {
54beba6b 97 cOutputHist2 =
98 mgr->CreateContainer("cbaumann_LMEEPbPb2011SemiCent_CF",
99 TList::Class(),
100 AliAnalysisManager::kOutputContainer,
101 "cbaumann_LMEEPbPb2011SemiCent_out.root");
9a476b26 102
103 }
104 AliAnalysisDataContainer *cOutputHist3 =
54beba6b 105 mgr->CreateContainer("cbaumann_EventStatPbPb2011SemiCent",
106 TH1D::Class(),
107 AliAnalysisManager::kOutputContainer,
108 "cbaumann_LMEEPbPb2011SemiCent_out.root");
9a476b26 109
110
111 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
112 mgr->ConnectOutput(task, 0, coutput1 );
113 mgr->ConnectOutput(task, 1, cOutputHist1);
114 if (enableCF) {
54beba6b 115 mgr->ConnectOutput(task, 2, cOutputHist2);
9a476b26 116 }
117 mgr->ConnectOutput(task, 3, cOutputHist3);
118
119 return task;
120}