1 AliAnalysisTask *AddTask_mfigueredo_JPsi(){
2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5 ::Error("AddTask_mfigueredo_JPsi", "No analysis manager found.");
8 if (!mgr->GetInputEventHandler()) {
9 ::Error("AddTask_mfigueredo_JPsi", "This task requires an input event handler");
14 //Do we have an MC handler?
15 Bool_t hasMC = kFALSE;
16 TString list = gSystem->Getenv("LIST");
17 //if( list.IsNull()) list=prod;
18 if( list.Contains("LHC10h") || list.Contains("LHC11h") ) hasMC=kFALSE;
19 if( list.Contains("LHC11a10") || list.Contains("LHC12a17") ) hasMC=kTRUE;
21 TString configFile("");
22 printf("%s \n",gSystem->pwd());
25 if(!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/m/mfiguere/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mf_PbPb.C ."))
26 configFile=Form("%s/ConfigJpsi_mf_PbPb.C",gSystem->pwd()); // alien config
28 configFile="$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mf_PbPb.C"; // aliroot config
30 Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
32 //create task and add it to the manager
33 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDie");
36 //load dielectron configuration file
37 TString checkconfig="ConfigJpsi_mf_pp";
38 if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
39 gROOT->LoadMacro(configFile.Data());
41 //add dielectron analysis with different cuts to the task
42 for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
44 jpsi=ConfigJpsi_mf_PbPb(i,isAOD);
45 if (jpsi) task->AddDielectron(jpsi);
49 AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
50 if(isAOD) eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny);
51 eventCuts->SetRequireVertex();
52 eventCuts->SetMinVtxContributors(1);
53 eventCuts->SetVertexZ(-10.,10.);
54 eventCuts->SetCentralityRange(0.0,90.0);
56 task->SetEventFilter(eventCuts);
59 // task->SetRejectPileup();
60 if(!hasMC) task->SetTriggerMask(AliVEvent::kEMCEGA);
61 task->UsePhysicsSelection();
62 //----------------------
63 //create data containers
64 //----------------------
66 TString containerName = mgr->GetCommonFileName();
67 containerName += ":PWGDQ_dielectron";
69 //create output container
71 AliAnalysisDataContainer *cOutputHist1 =
72 mgr->CreateContainer("mfigueredo_QA", TList::Class(), AliAnalysisManager::kOutputContainer,
73 containerName.Data());
75 AliAnalysisDataContainer *cOutputHist2 =
76 mgr->CreateContainer("mfigueredo_CF", TList::Class(), AliAnalysisManager::kOutputContainer,
77 containerName.Data());
79 AliAnalysisDataContainer *cOutputHist3 =
80 mgr->CreateContainer("mfigueredo_EventStat", TH1D::Class(), AliAnalysisManager::kOutputContainer,
81 containerName.Data());
83 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
84 mgr->ConnectOutput(task, 1, cOutputHist1);
85 mgr->ConnectOutput(task, 2, cOutputHist2);
86 mgr->ConnectOutput(task, 3, cOutputHist3);