AliAnalysisTask *AddTask_jbook_v2(){ //get the current analysis manager AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (!mgr) { Error("AddTask_jbook_v2", "No analysis manager found."); return 0; } //Do we have an MC handler? Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0); //Do we have an AOD handler? Bool_t isAOD=(mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class() ? kTRUE : kFALSE); //set config file name TString configFile("$TRAIN_ROOT/jbook_jpsi/ConfigJpsi_jb_PbPb.C"); TString trainRoot=gSystem->Getenv("TRAIN_ROOT"); if (trainRoot.IsNull()) configFile="$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_jb_PbPb.C"; //create task and add it to the manager AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDieData"); task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral); if (!hasMC) task->UsePhysicsSelection(); mgr->AddTask(task); //load dielectron configuration file TString checkconfig="ConfigJpsi_jb_PbPb"; if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data())) gROOT->LoadMacro(configFile.Data()); //add dielectron analysis with different cuts to the task for (Int_t i=16; iAddDielectron(jpsi); if (jpsi ) printf("add: %s\n",jpsi->GetName()); } //Add event filter AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0"); if (isAOD) eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny); eventCuts->SetRequireVertex(); eventCuts->SetMinVtxContributors(1); eventCuts->SetVertexZ(-10.,10.); eventCuts->SetCentralityRange(0.0,80.0); task->SetEventFilter(eventCuts); //create output container AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("jbook_v2_tree", TTree::Class(), AliAnalysisManager::kExchangeContainer, "jbook_v2_default"); AliAnalysisDataContainer *cOutputHist1 = mgr->CreateContainer("jbook_v2_QA", TList::Class(), AliAnalysisManager::kOutputContainer, "jbookv2.root"); AliAnalysisDataContainer *cOutputHist2 = mgr->CreateContainer("jbook_v2_CF", TList::Class(), AliAnalysisManager::kOutputContainer, "jbookv2.root"); AliAnalysisDataContainer *cOutputHist3 = mgr->CreateContainer("jbook_v2_EventStat", TH1D::Class(), AliAnalysisManager::kOutputContainer, "jbookv2.root"); mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); mgr->ConnectOutput(task, 0, coutput1 ); mgr->ConnectOutput(task, 1, cOutputHist1); mgr->ConnectOutput(task, 2, cOutputHist2); mgr->ConnectOutput(task, 3, cOutputHist3); return task; }