]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/AddTask_taku_LMEEPbPb2011SemiCent2.C
new Tasks by Taku
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_taku_LMEEPbPb2011SemiCent2.C
CommitLineData
571a7b22 1/*
2 in real data. argument should be kFALSE, kFALSE, kFALSE,
3 in siml data. argument should be kFALSE, kTRUE, kTRUE,
4
5*/
6AliAnalysisTask *AddTask_taku_LMEEPbPb2011SemiCent2(Bool_t runRejection=kFALSE, Bool_t setMC=kFALSE,Bool_t enableCF=kFALSE){
7 //get the current analysis manager
8 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
9 if (!mgr) {
10 Error("AddTask_taku_LMEEPbPb2011", "No analysis manager found.");
11 return 0;
12 }
13
14 //create config File names: TRAIN_ROOT is for running on GSI train,
15 // ALICE_ROOT for CERN Lego trains
16 TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
17 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
18 if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
19 TString configFile("ConfigTakuLMEEPbPb2011.C");
20 TString configLMEECutLib("LMEECutLibTaku.C");
21
22 TString configFilePath(configBasePath+configFile);
23 TString configLMEECutLibPath(configBasePath+configLMEECutLib);
24
25 //AOD Usage currently tested with separate task, to be merged
26 if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
27 ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
28 }
29
30 //Do we have an MC handler?
31 Bool_t hasMC=setMC;
32 if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0){
33 hasMC=kTRUE;
34 }
35
36 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
37 gROOT->LoadMacro(configLMEECutLibPath.Data());
38 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
39 gROOT->LoadMacro(configFilePath.Data());
40
41 LMEECutLib* cutlib = new LMEECutLib();
42 cutlib->SetMCFlag(hasMC);
43 AliAnalysisTaskMultiDielectronTG *task=new AliAnalysisTaskMultiDielectronTG("MultiDiEData");
44
45 ////default cutter defined in ConfigTakuLMEEPbPb2011.C
46 Int_t PairCutTypeDef[20]={0,
47 0,0,0, //no pair cuts
48 1,1,1, //reject from arrays by op cuts
49 2,2,2, //reject from arrays by phiv cuts
50 3,3,3, //pair-by-pair cuts by op
51 4,4,4, //pair-by-pair cuts by phiv
52 0,0,0,
53 0};
54
55 Int_t PairCutType[20]={0};
56 PairCutType[0] = PairCutTypeDef[3];
57 PairCutType[1] = PairCutTypeDef[6];
58 PairCutType[2] = PairCutTypeDef[9];
59 PairCutType[3] = PairCutTypeDef[12];
60 PairCutType[4] = PairCutTypeDef[15];
61
62 if (!hasMC){
63 task->UsePhysicsSelection();
64 }
65 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
66 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); //
67 task->RejectConversion(2.0);
68 task->RejectOP(0.035);
69 task->SetPairCuts(PairCutType);
70 task->EnableV0mixing(kFALSE);
71
72 //load dielectron configuration file
73 //add dielectron analysis with different cuts to the task
74 if (runRejection) {
75 AliDielectron *lowmass4=ConfigTakuLMEEPbPb2011(4,hasMC,enableCF);
76 task->AddDielectron(lowmass4);
77 printf("add: %s\n",lowmass4->GetName());
78 }
79 else {
80 //////// this is for test
81 AliDielectron *lowmass3=ConfigTakuLMEEPbPb2011(3,hasMC,enableCF);
82 lowmass3->SetUseKF(kFALSE);
83 task->AddDielectron(lowmass3);
84 printf("add: %s\n",lowmass3->GetName());
85
86 ///////////////////////////
87
88 AliDielectron *lowmass6=ConfigTakuLMEEPbPb2011(6,hasMC,enableCF);
89 lowmass6->SetUseKF(kFALSE);
90 task->AddDielectron(lowmass6);
91 printf("add: %s\n",lowmass6->GetName());
92
93
94 ///////////////////////////
95
96
97 AliDielectron *lowmass9=ConfigTakuLMEEPbPb2011(9,hasMC,enableCF);
98 lowmass9->SetUseKF(kFALSE);
99 task->AddDielectron(lowmass9);
100 printf("add: %s\n",lowmass9->GetName());
101
102
103 ///////////////////////////
104
105 AliDielectron *lowmass12=ConfigTakuLMEEPbPb2011(12,hasMC,enableCF);
106 lowmass12->SetUseKF(kFALSE);
107 task->AddDielectron(lowmass12);
108 printf("add: %s\n",lowmass12->GetName());
109
110 ///////////////////////////
111
112
113
114 AliDielectron *lowmass15=ConfigTakuLMEEPbPb2011(15,hasMC,enableCF);
115 lowmass15->SetUseKF(kFALSE);
116 task->AddDielectron(lowmass15);
117 printf("add: %s\n",lowmass15->GetName());
118
119 }
120
121 mgr->AddTask(task);
122
123 //create output container
124 AliAnalysisDataContainer *coutput1 =
125 mgr->CreateContainer("taku_LMEEPbPb2011_tree",
126 TTree::Class(),
127 AliAnalysisManager::kExchangeContainer,
128 "taku_LMEEPbPb2011_semicent2_default.root");
129
130 AliAnalysisDataContainer *cOutputHist1 =
131 mgr->CreateContainer("taku_LMEEPbPb2011_out",
132 TList::Class(),
133 AliAnalysisManager::kOutputContainer,
134 "taku_LMEEPbPb2011_semicent2_out.root");
135
136 AliAnalysisDataContainer *cOutputHist2 = 0x0;
137 if (enableCF) {
138 cOutputHist2 =
139 mgr->CreateContainer("taku_LMEEPbPb2011_CF",
140 TList::Class(),
141 AliAnalysisManager::kOutputContainer,
142 "taku_LMEEPbPb2011_semicent2_out.root");
143
144 }
145 AliAnalysisDataContainer *cOutputHist3 =
146 mgr->CreateContainer("taku_EventStatPbPb2011",
147 TH1D::Class(),
148 AliAnalysisManager::kOutputContainer,
149 "taku_LMEEPbPb2011_semicent2_out.root");
150
151
152 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
153 mgr->ConnectOutput(task, 0, coutput1 );
154 mgr->ConnectOutput(task, 1, cOutputHist1);
155 if (enableCF) {
156 mgr->ConnectOutput(task, 2, cOutputHist2);
157 }
158 mgr->ConnectOutput(task, 3, cOutputHist3);
159
160 return task;
161}