]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/AddTask_taku_LMEEPbPb2011Cent.C
New macros for the kaon train
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_taku_LMEEPbPb2011Cent.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_LMEEPbPb2011Cent(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
ebdc847a 36 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data())){
37 if(!gROOT->GetClass("LMEECutLibTaku")){
38 gROOT->LoadMacro(configLMEECutLibPath.Data());
39 }
40 }
41 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data())){
571a7b22 42 gROOT->LoadMacro(configFilePath.Data());
ebdc847a 43 }
44 LMEECutLibTaku* cutlib = new LMEECutLibTaku();
571a7b22 45 cutlib->SetMCFlag(hasMC);
ebdc847a 46 AliAnalysisTaskMultiDielectronTG *task=new AliAnalysisTaskMultiDielectronTG("MultiDiETGDataCent");
571a7b22 47
48 ////default cutter defined in ConfigTakuLMEEPbPb2011.C
49 Int_t PairCutTypeDef[20]={0,
50 0,0,0, //no pair cuts
51 1,1,1, //reject from arrays by op cuts
52 2,2,2, //reject from arrays by phiv cuts
53 3,3,3, //pair-by-pair cuts by op
54 4,4,4, //pair-by-pair cuts by phiv
55 0,0,0,
56 0};
57
58 Int_t PairCutType[20]={0};
59 PairCutType[0] = PairCutTypeDef[1];
60 PairCutType[1] = PairCutTypeDef[4];
61 PairCutType[2] = PairCutTypeDef[7];
62 PairCutType[3] = PairCutTypeDef[10];
63 PairCutType[4] = PairCutTypeDef[13];
64
65 if (!hasMC){
66 task->UsePhysicsSelection();
67 }
68 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
ebdc847a 69 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibTaku::kPbPb2011TPCandTOF)); //
70 task->RejectConversion(2.0, 0.3);
571a7b22 71 task->RejectOP(0.035);
72 task->SetPairCuts(PairCutType);
73 task->EnableV0mixing(kFALSE);
4d42c2f6 74 task->SetRejBGPairs(kFALSE, kTRUE);
571a7b22 75
76 //load dielectron configuration file
77 //add dielectron analysis with different cuts to the task
78 if (runRejection) {
79 AliDielectron *lowmass4=ConfigTakuLMEEPbPb2011(4,hasMC,enableCF);
80 task->AddDielectron(lowmass4);
81 printf("add: %s\n",lowmass4->GetName());
82 }
83 else {
84
85 AliDielectron *lowmass1=ConfigTakuLMEEPbPb2011(1,hasMC,enableCF);
86 lowmass1->SetUseKF(kFALSE);
87 task->AddDielectron(lowmass1);
88 printf("add: %s\n",lowmass1->GetName());
89
90 ///////////////////////////
91
92 AliDielectron *lowmass4=ConfigTakuLMEEPbPb2011(4,hasMC,enableCF);
93 lowmass4->SetUseKF(kFALSE);
94 task->AddDielectron(lowmass4);
95 printf("add: %s\n",lowmass4->GetName());
96 ///////////////////////////
97
98 AliDielectron *lowmass7=ConfigTakuLMEEPbPb2011(7,hasMC,enableCF);
99 lowmass7->SetUseKF(kFALSE);
100 task->AddDielectron(lowmass7);
101 printf("add: %s\n",lowmass7->GetName());
102
103 ///////////////////////////
104
105 AliDielectron *lowmass10=ConfigTakuLMEEPbPb2011(10,hasMC,enableCF);
106 lowmass10->SetUseKF(kFALSE);
107 task->AddDielectron(lowmass10);
108 printf("add: %s\n",lowmass10->GetName());
109
110 ///////////////////////////
111
112 AliDielectron *lowmass13=ConfigTakuLMEEPbPb2011(13,hasMC,enableCF);
113 lowmass13->SetUseKF(kFALSE);
114 task->AddDielectron(lowmass13);
115 printf("add: %s\n",lowmass13->GetName());
116
117 }
118
119 mgr->AddTask(task);
120
121 //create output container
122 AliAnalysisDataContainer *coutput1 =
4d42c2f6 123 mgr->CreateContainer("taku_LMEEPbPb2011_cent_tree",
571a7b22 124 TTree::Class(),
125 AliAnalysisManager::kExchangeContainer,
126 "taku_LMEEPbPb2011_cent_default.root");
127
128 AliAnalysisDataContainer *cOutputHist1 =
4d42c2f6 129 mgr->CreateContainer("taku_LMEEPbPb2011_cent_out",
571a7b22 130 TList::Class(),
131 AliAnalysisManager::kOutputContainer,
132 "taku_LMEEPbPb2011_cent_out.root");
133
134 AliAnalysisDataContainer *cOutputHist2 = 0x0;
135 if (enableCF) {
136 cOutputHist2 =
4d42c2f6 137 mgr->CreateContainer("taku_LMEEPbPb2011_cent_CF",
571a7b22 138 TList::Class(),
139 AliAnalysisManager::kOutputContainer,
140 "taku_LMEEPbPb2011_cent_out.root");
141
142 }
143 AliAnalysisDataContainer *cOutputHist3 =
4d42c2f6 144 mgr->CreateContainer("taku_EventStatPbPb2011_cent",
571a7b22 145 TH1D::Class(),
146 AliAnalysisManager::kOutputContainer,
147 "taku_LMEEPbPb2011_cent_out.root");
148
149
150 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
151 mgr->ConnectOutput(task, 0, coutput1 );
152 mgr->ConnectOutput(task, 1, cOutputHist1);
153 if (enableCF) {
154 mgr->ConnectOutput(task, 2, cOutputHist2);
155 }
156 mgr->ConnectOutput(task, 3, cOutputHist3);
157
158 return task;
159}