1 AliAnalysisTask *AddTask_Asako_LMEEPbPb2011AODSemi2(Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE){
3 Bool_t bESDANA=kFALSE; //Autodetect via InputHandler
4 //get the current analysis manager
5 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 Error("AddTask_Asako_LMEEPbPb2011AODSemi2", "No analysis manager found.");
12 // create task and add it to the manager
13 // gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
16 TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
17 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
19 if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
20 // if (trainRoot.IsNull()) configBasePath= "/home/tsuji/nfs/AliceAna/pol2/Cent/";
24 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigAsakoLMEEPbPb2011AOD.C .")) &&
25 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibAsako.C ."))
27 configBasePath=Form("%s/",gSystem->pwd());
30 TString configFile("ConfigAsakoLMEEPbPb2011AOD.C");
31 TString configLMEECutLib("LMEECutLibAsako.C");
33 TString configFilePath(configBasePath+configFile);
34 TString configLMEECutLibPath(configBasePath+configLMEECutLib);
36 //AOD Usage currently tested with separate task, to be merged
37 if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
38 ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
40 else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
41 ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
46 //Do we have an MC handler?
48 if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
53 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
54 gROOT->LoadMacro(configLMEECutLibPath.Data());
55 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
56 gROOT->LoadMacro(configFilePath.Data());
59 LMEECutLibAsako* cutlib = new LMEECutLibAsako();
60 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
61 if (!hasMC) task->UsePhysicsSelection();
62 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
63 // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
64 // task->SetRejectPileup();
65 task->SelectCollisionCandidates(AliVEvent::kAny);
66 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibAsako::kPbPb2011TPCandTOF)); //
69 //load dielectron configuration file
71 //add dielectron analysis with different cuts to the task
74 AliDielectron *lowmass3=ConfigAsakoLMEEPbPb2011AOD(3,hasMC,bESDANA);
75 task->AddDielectron(lowmass3);
76 printf("add: %s\n",lowmass3->GetName());
78 AliDielectron *lowmass7=ConfigAsakoLMEEPbPb2011AOD(7,hasMC,bESDANA);
79 task->AddDielectron(lowmass7);
80 printf("add: %s\n",lowmass7->GetName());
83 AliDielectron *lowmass11=ConfigAsakoLMEEPbPb2011AOD(11,hasMC,bESDANA);
84 task->AddDielectron(lowmass11);
85 printf("add: %s\n",lowmass11->GetName());
90 //create output container
91 AliAnalysisDataContainer *coutput1 =
92 mgr->CreateContainer("asako_LMEEPbPb2011Semi2_tree",
94 AliAnalysisManager::kExchangeContainer,
97 AliAnalysisDataContainer *cOutputHist1 =
98 mgr->CreateContainer("asako_LMEEPbPb2011Semi2_out",
100 AliAnalysisManager::kOutputContainer,
103 /* AliAnalysisDataContainer *cOutputHist2 =
104 mgr->CreateContainer("cbaumann_lowmass_CF",
106 AliAnalysisManager::kOutputContainer,
107 "cbaumann_lowmass_CF.root");
109 AliAnalysisDataContainer *cOutputHist2 =
110 mgr->CreateContainer("asako_LMEEPbPb2011Semi2_CF",
112 AliAnalysisManager::kOutputContainer,
115 AliAnalysisDataContainer *cOutputHist3 =
116 mgr->CreateContainer("asako_EventStatPbPb2011Semi2",
118 AliAnalysisManager::kOutputContainer,
122 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
123 mgr->ConnectOutput(task, 0, coutput1 );
124 mgr->ConnectOutput(task, 1, cOutputHist1);
125 mgr->ConnectOutput(task, 2, cOutputHist2);
126 mgr->ConnectOutput(task, 3, cOutputHist3);