1 AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011Cent(Bool_t runRejection=kFALSE, Bool_t setMC=kFALSE,Bool_t enableCF=kFALSE, Bool_t switchToPhiV=kTRUE,Bool_t switchToOA=kFALSE, Bool_t getFromAlien=kFALSE){
2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5 Error("AddTask_cbaumann_LMEEPbPb2011", "No analysis manager found.");
10 // TRAIN_ROOT is for running on GSI train,
11 // ALICE_ROOT for CERN Lego trains
12 // getFromAlien: load files from user ALIEN dir
13 TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
14 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
15 if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
18 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigLMEEPbPb2011.C .")) &&
19 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLib.C ."))
21 configBasePath=Form("%s/",gSystem->pwd());
23 TString configFile("ConfigLMEEPbPb2011.C");
24 TString configLMEECutLib("LMEECutLib.C");
26 TString configFilePath(configBasePath+configFile);
27 TString configLMEECutLibPath(configBasePath+configLMEECutLib);
29 //AOD Usage currently tested with separate task, to be merged
30 if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
31 ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
34 //Do we have an MC handler?
36 if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
41 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
42 gROOT->LoadMacro(configLMEECutLibPath.Data());
43 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
44 gROOT->LoadMacro(configFilePath.Data());
46 LMEECutLib* cutlib = new LMEECutLib();
47 cutlib->SetMCFlag(hasMC);
48 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEDataPbPb2011Cent");
49 if (!hasMC){ task->UsePhysicsSelection();
51 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
52 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); //
54 //load dielectron configuration file
56 //add dielectron analysis with different cuts to the task
59 AliDielectron *lowmass4=ConfigLMEEPbPb2011(4,hasMC,enableCF);
60 task->AddDielectron(lowmass4);
61 printf("add: %s\n",lowmass4->GetName());
66 AliDielectron *lowmass9=ConfigLMEEPbPb2011(9,hasMC,enableCF);
67 lowmass9->SetUseKF(kFALSE);
68 task->AddDielectron(lowmass9);
69 printf("add: %s\n",lowmass9->GetName()); }
71 else if (switchToOA) {
73 AliDielectron *lowmass12=ConfigLMEEPbPb2011(12,hasMC,enableCF);
74 lowmass12->SetUseKF(kFALSE);
75 task->AddDielectron(lowmass12);
76 printf("add: %s\n",lowmass12->GetName()); }
79 AliDielectron *lowmass1=ConfigLMEEPbPb2011(1,hasMC,enableCF);
80 lowmass1->SetUseKF(kFALSE);
81 task->AddDielectron(lowmass1);
82 printf("add: %s\n",lowmass1->GetName());
84 /* AliDielectron *lowmass7=ConfigLMEEPbPb2011(7,hasMC,enableCF);
85 task->AddDielectron(lowmass7);
86 printf("add: %s\n",lowmass7->GetName());*/
91 //create output container
92 AliAnalysisDataContainer *coutput1 =
93 mgr->CreateContainer("cbaumann_LMEEPbPb2011Cent_tree",
95 AliAnalysisManager::kExchangeContainer,
96 "cbaumann_LMEEPbPb2011Cent_default.root");
98 AliAnalysisDataContainer *cOutputHist1 =
99 mgr->CreateContainer("cbaumann_LMEEPbPb2011Cent_out",
101 AliAnalysisManager::kOutputContainer,
102 "cbaumann_LMEEPbPb2011Cent_out.root");
104 AliAnalysisDataContainer *cOutputHist2 = 0x0;
107 mgr->CreateContainer("cbaumann_LMEEPbPb2011Cent_CF",
109 AliAnalysisManager::kOutputContainer,
110 "cbaumann_LMEEPbPb2011Cent_out.root");
113 AliAnalysisDataContainer *cOutputHist3 =
114 mgr->CreateContainer("cbaumann_EventStatPbPb2011",
116 AliAnalysisManager::kOutputContainer,
117 "cbaumann_LMEEPbPb2011Cent_out.root");
120 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
121 mgr->ConnectOutput(task, 0, coutput1 );
122 mgr->ConnectOutput(task, 1, cOutputHist1);
124 mgr->ConnectOutput(task, 2, cOutputHist2);
126 mgr->ConnectOutput(task, 3, cOutputHist3);