]>
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_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 | } |