2 in real data. argument should be kFALSE, kFALSE, kFALSE,
3 in siml data. argument should be kFALSE, kTRUE, kTRUE,
6 AliAnalysisTask *AddTask_taku_LMEEPbPb2011SemiCent1(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());
45 LMEECutLibTaku* cutlib = new LMEECutLibTaku();
46 cutlib->SetMCFlag(hasMC);
47 AliAnalysisTaskMultiDielectronTG *task=new AliAnalysisTaskMultiDielectronTG("MultiDiETGDataSemiCent1");
49 ////default cutter defined in ConfigTakuLMEEPbPb2011.C
50 Int_t PairCutTypeDef[20]={0,
52 1,1,1, //reject from arrays by op cuts
53 2,2,2, //reject from arrays by phiv cuts
54 3,3,3, //pair-by-pair cuts by op
55 4,4,4, //pair-by-pair cuts by phiv
59 Int_t PairCutType[20]={0};
60 PairCutType[0] = PairCutTypeDef[2];
61 PairCutType[1] = PairCutTypeDef[5];
62 PairCutType[2] = PairCutTypeDef[8];
63 PairCutType[3] = PairCutTypeDef[11];
64 PairCutType[4] = PairCutTypeDef[14];
67 task->UsePhysicsSelection();
69 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
70 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibTaku::kPbPb2011TPCandTOF)); //
71 task->RejectConversion(2.0, 0.3);
72 task->RejectOP(0.035);
73 task->SetPairCuts(PairCutType);
74 task->EnableV0mixing(kFALSE);
75 task->SetRejBGPairs(kFALSE, kTRUE);
77 //load dielectron configuration file
78 //add dielectron analysis with different cuts to the task
80 AliDielectron *lowmass4=ConfigTakuLMEEPbPb2011(4,hasMC,enableCF);
81 task->AddDielectron(lowmass4);
82 printf("add: %s\n",lowmass4->GetName());
85 //////// this is for test
86 AliDielectron *lowmass2=ConfigTakuLMEEPbPb2011(2,hasMC,enableCF);
87 lowmass2->SetUseKF(kFALSE);
88 task->AddDielectron(lowmass2);
89 printf("add: %s\n",lowmass2->GetName());
91 ///////////////////////////
93 AliDielectron *lowmass5=ConfigTakuLMEEPbPb2011(5,hasMC,enableCF);
94 lowmass5->SetUseKF(kFALSE);
95 task->AddDielectron(lowmass5);
96 printf("add: %s\n",lowmass5->GetName());
99 ///////////////////////////
102 AliDielectron *lowmass8=ConfigTakuLMEEPbPb2011(8,hasMC,enableCF);
103 lowmass8->SetUseKF(kFALSE);
104 task->AddDielectron(lowmass8);
105 printf("add: %s\n",lowmass8->GetName());
108 ///////////////////////////
110 AliDielectron *lowmass11=ConfigTakuLMEEPbPb2011(11,hasMC,enableCF);
111 lowmass11->SetUseKF(kFALSE);
112 task->AddDielectron(lowmass11);
113 printf("add: %s\n",lowmass11->GetName());
115 ///////////////////////////
119 AliDielectron *lowmass14=ConfigTakuLMEEPbPb2011(14,hasMC,enableCF);
120 lowmass14->SetUseKF(kFALSE);
121 task->AddDielectron(lowmass14);
122 printf("add: %s\n",lowmass14->GetName());
128 //create output container
129 AliAnalysisDataContainer *coutput1 =
130 mgr->CreateContainer("taku_LMEEPbPb2011_semicent1_tree",
132 AliAnalysisManager::kExchangeContainer,
133 "taku_LMEEPbPb2011_semicent1_default.root");
135 AliAnalysisDataContainer *cOutputHist1 =
136 mgr->CreateContainer("taku_LMEEPbPb2011_semicent1_out",
138 AliAnalysisManager::kOutputContainer,
139 "taku_LMEEPbPb2011_semicent1_out.root");
141 AliAnalysisDataContainer *cOutputHist2 = 0x0;
144 mgr->CreateContainer("taku_LMEEPbPb2011_semicent1_CF",
146 AliAnalysisManager::kOutputContainer,
147 "taku_LMEEPbPb2011_semicent1_out.root");
150 AliAnalysisDataContainer *cOutputHist3 =
151 mgr->CreateContainer("taku_EventStatPbPb2011_semicent1",
153 AliAnalysisManager::kOutputContainer,
154 "taku_LMEEPbPb2011_semicent1_out.root");
157 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
158 mgr->ConnectOutput(task, 0, coutput1 );
159 mgr->ConnectOutput(task, 1, cOutputHist1);
161 mgr->ConnectOutput(task, 2, cOutputHist2);
163 mgr->ConnectOutput(task, 3, cOutputHist3);