]>
Commit | Line | Data |
---|---|---|
571a7b22 | 1 | /* |
2 | in real data. argument should be kFALSE, kFALSE, kFALSE, | |
3 | in siml data. argument should be kFALSE, kTRUE, kTRUE, | |
4 | ||
5 | */ | |
6 | AliAnalysisTask *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 | } |