]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/AddTask_taku_LMEEPbPb2011Cent.C
add name extention and default y range
[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
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[1];
57 PairCutType[1] = PairCutTypeDef[4];
58 PairCutType[2] = PairCutTypeDef[7];
59 PairCutType[3] = PairCutTypeDef[10];
60 PairCutType[4] = PairCutTypeDef[13];
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
81 AliDielectron *lowmass1=ConfigTakuLMEEPbPb2011(1,hasMC,enableCF);
82 lowmass1->SetUseKF(kFALSE);
83 task->AddDielectron(lowmass1);
84 printf("add: %s\n",lowmass1->GetName());
85
86 ///////////////////////////
87
88 AliDielectron *lowmass4=ConfigTakuLMEEPbPb2011(4,hasMC,enableCF);
89 lowmass4->SetUseKF(kFALSE);
90 task->AddDielectron(lowmass4);
91 printf("add: %s\n",lowmass4->GetName());
92 ///////////////////////////
93
94 AliDielectron *lowmass7=ConfigTakuLMEEPbPb2011(7,hasMC,enableCF);
95 lowmass7->SetUseKF(kFALSE);
96 task->AddDielectron(lowmass7);
97 printf("add: %s\n",lowmass7->GetName());
98
99 ///////////////////////////
100
101 AliDielectron *lowmass10=ConfigTakuLMEEPbPb2011(10,hasMC,enableCF);
102 lowmass10->SetUseKF(kFALSE);
103 task->AddDielectron(lowmass10);
104 printf("add: %s\n",lowmass10->GetName());
105
106 ///////////////////////////
107
108 AliDielectron *lowmass13=ConfigTakuLMEEPbPb2011(13,hasMC,enableCF);
109 lowmass13->SetUseKF(kFALSE);
110 task->AddDielectron(lowmass13);
111 printf("add: %s\n",lowmass13->GetName());
112
113 }
114
115 mgr->AddTask(task);
116
117 //create output container
118 AliAnalysisDataContainer *coutput1 =
119 mgr->CreateContainer("taku_LMEEPbPb2011_tree",
120 TTree::Class(),
121 AliAnalysisManager::kExchangeContainer,
122 "taku_LMEEPbPb2011_cent_default.root");
123
124 AliAnalysisDataContainer *cOutputHist1 =
125 mgr->CreateContainer("taku_LMEEPbPb2011_out",
126 TList::Class(),
127 AliAnalysisManager::kOutputContainer,
128 "taku_LMEEPbPb2011_cent_out.root");
129
130 AliAnalysisDataContainer *cOutputHist2 = 0x0;
131 if (enableCF) {
132 cOutputHist2 =
133 mgr->CreateContainer("taku_LMEEPbPb2011_CF",
134 TList::Class(),
135 AliAnalysisManager::kOutputContainer,
136 "taku_LMEEPbPb2011_cent_out.root");
137
138 }
139 AliAnalysisDataContainer *cOutputHist3 =
140 mgr->CreateContainer("taku_EventStatPbPb2011",
141 TH1D::Class(),
142 AliAnalysisManager::kOutputContainer,
143 "taku_LMEEPbPb2011_cent_out.root");
144
145
146 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
147 mgr->ConnectOutput(task, 0, coutput1 );
148 mgr->ConnectOutput(task, 1, cOutputHist1);
149 if (enableCF) {
150 mgr->ConnectOutput(task, 2, cOutputHist2);
151 }
152 mgr->ConnectOutput(task, 3, cOutputHist3);
153
154 return task;
155}