2 in real data. argument should be kFALSE, kFALSE, kFALSE,
3 in siml data. argument should be kFALSE, kTRUE, kTRUE,
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();
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("MultiDiETGDataSemiCent2");
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[3];
60 PairCutType[1] = PairCutTypeDef[6];
61 PairCutType[2] = PairCutTypeDef[9];
62 PairCutType[3] = PairCutTypeDef[12];
63 PairCutType[4] = PairCutTypeDef[15];
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());
84 //////// this is for test
85 AliDielectron *lowmass3=ConfigTakuLMEEPbPb2011(3,hasMC,enableCF);
86 lowmass3->SetUseKF(kFALSE);
87 task->AddDielectron(lowmass3);
88 printf("add: %s\n",lowmass3->GetName());
90 ///////////////////////////
92 AliDielectron *lowmass6=ConfigTakuLMEEPbPb2011(6,hasMC,enableCF);
93 lowmass6->SetUseKF(kFALSE);
94 task->AddDielectron(lowmass6);
95 printf("add: %s\n",lowmass6->GetName());
98 ///////////////////////////
101 AliDielectron *lowmass9=ConfigTakuLMEEPbPb2011(9,hasMC,enableCF);
102 lowmass9->SetUseKF(kFALSE);
103 task->AddDielectron(lowmass9);
104 printf("add: %s\n",lowmass9->GetName());
107 ///////////////////////////
109 AliDielectron *lowmass12=ConfigTakuLMEEPbPb2011(12,hasMC,enableCF);
110 lowmass12->SetUseKF(kFALSE);
111 task->AddDielectron(lowmass12);
112 printf("add: %s\n",lowmass12->GetName());
114 ///////////////////////////
118 AliDielectron *lowmass15=ConfigTakuLMEEPbPb2011(15,hasMC,enableCF);
119 lowmass15->SetUseKF(kFALSE);
120 task->AddDielectron(lowmass15);
121 printf("add: %s\n",lowmass15->GetName());
127 //create output container
128 AliAnalysisDataContainer *coutput1 =
129 mgr->CreateContainer("taku_LMEEPbPb2011_semicent2_tree",
131 AliAnalysisManager::kExchangeContainer,
132 "taku_LMEEPbPb2011_semicent2_default.root");
134 AliAnalysisDataContainer *cOutputHist1 =
135 mgr->CreateContainer("taku_LMEEPbPb2011_semicent2_out",
137 AliAnalysisManager::kOutputContainer,
138 "taku_LMEEPbPb2011_semicent2_out.root");
140 AliAnalysisDataContainer *cOutputHist2 = 0x0;
143 mgr->CreateContainer("taku_LMEEPbPb2011_semicent2_CF",
145 AliAnalysisManager::kOutputContainer,
146 "taku_LMEEPbPb2011_semicent2_out.root");
149 AliAnalysisDataContainer *cOutputHist3 =
150 mgr->CreateContainer("taku_EventStatPbPb2011_semicent2",
152 AliAnalysisManager::kOutputContainer,
153 "taku_LMEEPbPb2011_semicent2_out.root");
156 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
157 mgr->ConnectOutput(task, 0, coutput1 );
158 mgr->ConnectOutput(task, 1, cOutputHist1);
160 mgr->ConnectOutput(task, 2, cOutputHist2);
162 mgr->ConnectOutput(task, 3, cOutputHist3);