2 in real data. argument should be kFALSE, kFALSE, kFALSE,
3 in siml data. argument should be kFALSE, kTRUE, kTRUE,
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();
10 Error("AddTask_taku_LMEEPbPb2011", "No analysis manager found.");
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");
22 TString configFilePath(configBasePath+configFile);
23 TString configLMEECutLibPath(configBasePath+configLMEECutLib);
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");
30 //Do we have an MC handler?
32 if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0){
36 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data())){
37 if(!gROOT->GetClass("LMEECutLibTaku")){
38 gROOT->LoadMacro(configLMEECutLibPath.Data());
41 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data())){
42 gROOT->LoadMacro(configFilePath.Data());
44 LMEECutLibTaku* cutlib = new LMEECutLibTaku();
45 cutlib->SetMCFlag(hasMC);
46 AliAnalysisTaskMultiDielectronTG *task=new AliAnalysisTaskMultiDielectronTG("MultiDiETGDataCent");
48 ////default cutter defined in ConfigTakuLMEEPbPb2011.C
49 Int_t PairCutTypeDef[20]={0,
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
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];
66 task->UsePhysicsSelection();
68 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
69 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibTaku::kPbPb2011TPCandTOF)); //
70 task->RejectConversion(2.0, 0.3);
71 task->RejectOP(0.035);
72 task->SetPairCuts(PairCutType);
73 task->EnableV0mixing(kFALSE);
74 task->SetRejBGPairs(kFALSE, kTRUE);
76 //load dielectron configuration file
77 //add dielectron analysis with different cuts to the task
79 AliDielectron *lowmass4=ConfigTakuLMEEPbPb2011(4,hasMC,enableCF);
80 task->AddDielectron(lowmass4);
81 printf("add: %s\n",lowmass4->GetName());
85 AliDielectron *lowmass1=ConfigTakuLMEEPbPb2011(1,hasMC,enableCF);
86 lowmass1->SetUseKF(kFALSE);
87 task->AddDielectron(lowmass1);
88 printf("add: %s\n",lowmass1->GetName());
90 ///////////////////////////
92 AliDielectron *lowmass4=ConfigTakuLMEEPbPb2011(4,hasMC,enableCF);
93 lowmass4->SetUseKF(kFALSE);
94 task->AddDielectron(lowmass4);
95 printf("add: %s\n",lowmass4->GetName());
96 ///////////////////////////
98 AliDielectron *lowmass7=ConfigTakuLMEEPbPb2011(7,hasMC,enableCF);
99 lowmass7->SetUseKF(kFALSE);
100 task->AddDielectron(lowmass7);
101 printf("add: %s\n",lowmass7->GetName());
103 ///////////////////////////
105 AliDielectron *lowmass10=ConfigTakuLMEEPbPb2011(10,hasMC,enableCF);
106 lowmass10->SetUseKF(kFALSE);
107 task->AddDielectron(lowmass10);
108 printf("add: %s\n",lowmass10->GetName());
110 ///////////////////////////
112 AliDielectron *lowmass13=ConfigTakuLMEEPbPb2011(13,hasMC,enableCF);
113 lowmass13->SetUseKF(kFALSE);
114 task->AddDielectron(lowmass13);
115 printf("add: %s\n",lowmass13->GetName());
121 //create output container
122 AliAnalysisDataContainer *coutput1 =
123 mgr->CreateContainer("taku_LMEEPbPb2011_cent_tree",
125 AliAnalysisManager::kExchangeContainer,
126 "taku_LMEEPbPb2011_cent_default.root");
128 AliAnalysisDataContainer *cOutputHist1 =
129 mgr->CreateContainer("taku_LMEEPbPb2011_cent_out",
131 AliAnalysisManager::kOutputContainer,
132 "taku_LMEEPbPb2011_cent_out.root");
134 AliAnalysisDataContainer *cOutputHist2 = 0x0;
137 mgr->CreateContainer("taku_LMEEPbPb2011_cent_CF",
139 AliAnalysisManager::kOutputContainer,
140 "taku_LMEEPbPb2011_cent_out.root");
143 AliAnalysisDataContainer *cOutputHist3 =
144 mgr->CreateContainer("taku_EventStatPbPb2011_cent",
146 AliAnalysisManager::kOutputContainer,
147 "taku_LMEEPbPb2011_cent_out.root");
150 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
151 mgr->ConnectOutput(task, 0, coutput1 );
152 mgr->ConnectOutput(task, 1, cOutputHist1);
154 mgr->ConnectOutput(task, 2, cOutputHist2);
156 mgr->ConnectOutput(task, 3, cOutputHist3);