1 AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011SemiCent(Bool_t runRejection=kFALSE, Bool_t setMC=kFALSE,Bool_t enableCF=kFALSE, Bool_t switchToPhiV=kTRUE, Bool_t getFromAlien=kFALSE){
2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5 Error("AddTask_cbaumann_LMEEPbPb2011", "No analysis manager found.");
9 //create config File names: TRAIN_ROOT is for running on GSI train,
10 // ALICE_ROOT for CERN Lego trains
11 TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
12 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
13 if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
16 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosJPSI/ConfigLMEEPbPb2011.C ."))
18 configFile=Form("%s/",gSystem->pwd());
21 TString configFile("ConfigLMEEPbPb2011.C");
22 TString configLMEECutLib("LMEECutLib.C");
24 TString configFilePath(configBasePath+configFile);
25 TString configLMEECutLibPath(configBasePath+configLMEECutLib);
27 //AOD Usage currently tested with separate task, to be merged
28 if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
29 ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
32 //Do we have an MC handler?
34 if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
39 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
40 gROOT->LoadMacro(configLMEECutLibPath.Data());
41 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
42 gROOT->LoadMacro(configFilePath.Data());
44 LMEECutLib* cutlib = new LMEECutLib();
45 cutlib->SetMCFlag(hasMC);
46 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEDataSemiCent");
47 if (!hasMC){ task->UsePhysicsSelection();
49 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
50 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); //
52 //load dielectron configuration file
54 //add dielectron analysis with different cuts to the task
57 AliDielectron *lowmass4=ConfigLMEEPbPb2011(4,hasMC,enableCF);
58 task->AddDielectron(lowmass4);
59 printf("add: %s\n",lowmass4->GetName());
65 AliDielectron *lowmass10=ConfigLMEEPbPb2011(10,hasMC,enableCF);
66 lowmass10->SetUseKF(kFALSE);
67 task->AddDielectron(lowmass10);
68 printf("add: %s\n",lowmass10->GetName());
73 AliDielectron *lowmass2=ConfigLMEEPbPb2011(2,hasMC,enableCF);
74 lowmass2->SetUseKF(kFALSE);
75 task->AddDielectron(lowmass2);
76 printf("add: %s\n",lowmass2->GetName());
82 //create output container
83 AliAnalysisDataContainer *coutput1 =
84 mgr->CreateContainer("cbaumann_LMEEPbPb2011SemiCent_tree",
86 AliAnalysisManager::kExchangeContainer,
87 "cbaumann_LMEEPbPb2011SemiCent_default.root");
89 AliAnalysisDataContainer *cOutputHist1 =
90 mgr->CreateContainer("cbaumann_LMEEPbPb2011SemiCent_out",
92 AliAnalysisManager::kOutputContainer,
93 "cbaumann_LMEEPbPb2011SemiCent_out.root");
95 AliAnalysisDataContainer *cOutputHist2 = 0x0;
98 mgr->CreateContainer("cbaumann_LMEEPbPb2011SemiCent_CF",
100 AliAnalysisManager::kOutputContainer,
101 "cbaumann_LMEEPbPb2011SemiCent_out.root");
104 AliAnalysisDataContainer *cOutputHist3 =
105 mgr->CreateContainer("cbaumann_EventStatPbPb2011SemiCent",
107 AliAnalysisManager::kOutputContainer,
108 "cbaumann_LMEEPbPb2011SemiCent_out.root");
111 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
112 mgr->ConnectOutput(task, 0, coutput1 );
113 mgr->ConnectOutput(task, 1, cOutputHist1);
115 mgr->ConnectOutput(task, 2, cOutputHist2);
117 mgr->ConnectOutput(task, 3, cOutputHist3);