1 AliAnalysisTask *AddTask_tbroeker_lowmasspPb(Bool_t getFromAlien=kFALSE){
4 //get the current analysis manager
5 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 Error("AddTask_lowmass", "No analysis manager found.");
11 //Do we have an MC handler?
12 Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
14 //Get the current train configuration
16 //Directories for GSI train:
17 // TString configBasePath("$TRAIN_ROOT/tbroeker_dca_broken/");
19 TString configBasePath("$TRAIN_ROOT/tbroeker_dca/");
20 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
22 //Base Directory for GRID / LEGO Train
23 if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
28 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/t/tbroker/PWGDQ/dielectron/macrosLMEE/Config_lowmasspPb.C ."))
30 configBasePath=Form("%s/",gSystem->pwd());
36 TString configFile("Config_lowmasspPb.C");
37 // TString configFile("CutHistConf_lowmasspPb.C");
39 TString configFilePath(configBasePath+configFile);
42 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
43 gROOT->LoadMacro(configFilePath.Data());
46 //create task and add it to the manager (MB)
47 AliAnalysisTaskMultiDielectron *taskMB = new AliAnalysisTaskMultiDielectron("MultiDieMB");
48 if (!hasMC) taskMB->UsePhysicsSelection();
49 taskMB->SelectCollisionCandidates(AliVEvent::kMB);
50 //taskMB->SetRejectPileup();
53 AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
54 eventCuts->SetRequireVertex();
55 eventCuts->SetVertexZ(-10.,10.);
56 eventCuts->SetMinVtxContributors(1);
58 taskMB->SetEventFilter(eventCuts);
62 //add dielectron analysis with different cuts to the task
63 for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
65 AliDielectron *diel_lowMB = Config_lowmasspPb(i);
66 if(!diel_lowMB)continue;
67 diel_lowMB->SetNoPairing(kFALSE);
68 taskMB->AddDielectron(diel_lowMB);
72 //create output container
73 AliAnalysisDataContainer *coutput1 =
74 mgr->CreateContainer("tree_lowmass",
76 AliAnalysisManager::kExchangeContainer,
79 AliAnalysisDataContainer *cOutputHist1 =
80 mgr->CreateContainer("Histos_diel_lowmass",
82 AliAnalysisManager::kOutputContainer,
83 "tbroeker_lowmass.root");
85 AliAnalysisDataContainer *cOutputHist2 =
86 mgr->CreateContainer("CF_diel_lowmass",
88 AliAnalysisManager::kOutputContainer,
89 "tbroeker_lowmass.root");
91 AliAnalysisDataContainer *cOutputHist3 =
92 mgr->CreateContainer("tbroeker_lowmass_EventStat",
94 AliAnalysisManager::kOutputContainer,
95 "tbroeker_lowmass.root");
97 mgr->ConnectInput(taskMB, 0, mgr->GetCommonInputContainer());
98 mgr->ConnectOutput(taskMB, 0, coutput1 );
99 mgr->ConnectOutput(taskMB, 1, cOutputHist1);
100 mgr->ConnectOutput(taskMB, 2, cOutputHist2);
101 mgr->ConnectOutput(taskMB, 3, cOutputHist3);