//______________________________________________________________________________ void AddAnalysisTasks(UInt_t config) { AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); mgr->SetCommonFileName("QAresults.root"); // // Event Statistics (Jan Fiete) // gROOT->LoadMacro("$ALICE_ROOT/OADB/macros/AddTaskPhysicsSelection.C"); AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(); mgr->RegisterExtraFile("event_stat.root"); // // Tender and supplies // if (config & kTender) { gROOT->LoadMacro("$ALICE_ROOT/TENDER/TenderSupplies/AddTaskTender.C"); AliAnalysisTaskSE *tender = AddTaskTender(); // SelectCollisionCandidates ?? Tender has to derive from TaskSE tender->SelectCollisionCandidates(); tender->SetDebugLevel(2); } // AOD creation with collision events if (config & kAOD) { gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskESDFilter.C"); mgr->RegisterExtraFile("AliAOD.Muons.root"); mgr->RegisterExtraFile("AliAOD.Dimuons.root"); AliAnalysisTaskESDfilter *taskesdfilter = AddTaskESDFilter(kFALSE, kTRUE, kTRUE, doEventStat); } // TPC QA (E. Sicking) // if (config & kCar00) { gROOT->LoadMacro("$ALICE_ROOT/PWGPP/PilotTrain/AddTaskQAsym.C"); AliAnalysisTaskSE * taskqasim = AddTaskQAsym(0); taskqasim->SelectCollisionCandidates(); } // // VZERO QA (C. Cheshkov) // if (config & kCar01) { gROOT->LoadMacro("$ALICE_ROOT/PWGPP/PilotTrain/AddTaskVZEROQA.C"); AliAnalysisTaskSE * taskv0qa = AddTaskVZEROQA(0); // taskv0qa->SelectCollisionCandidates(); } // Vertexing (A. Dainese) // if (config & kCar02) { gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTaskVertexESD.C"); AliAnalysisTaskVertexESD* taskvertexesd = AddTaskVertexESD(); taskvertexesd->SelectCollisionCandidates(); } // // SPD (A. Mastroserio) // if (config & kCar03) { gROOT->LoadMacro("$ALICE_ROOT/PWGPP/PilotTrain/AddTaskSPDQA.C"); AliAnalysisTaskSE* taskspdqa = AddTaskSPDQA(); taskspdqa->SelectCollisionCandidates(); } // // SDD (F. Prino) // if (config & kCar04) { gROOT->LoadMacro("$ALICE_ROOT/PWGPP/PilotTrain/AddSDDPoints.C"); AliAnalysisTaskSE* tasksdd = AddSDDPoints(); tasksdd->SelectCollisionCandidates(); } // // SSD dEdx (Marek Chojnacki) // if (config & kCar05) { gROOT->LoadMacro("$ALICE_ROOT/PWGPP/PilotTrain/AddTaskdEdxSSDQA.C"); AliAnalysisTaskSE* taskssddedx = AddTaskdEdxSSDQA(); taskssddedx->SelectCollisionCandidates(); } // FMD (Hans Hjersing Dalsgaard) // if (config & kCar06) { gROOT->LoadMacro("$ALICE_ROOT/PWGPP/PilotTrain/AddTaskFMD.C"); AliAnalysisTaskSE* taskfmd = AddTaskFMD(); taskfmd->SelectCollisionCandidates(); } // // ITS // if (config & kCar07) { gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTaskPerformanceITS.C"); AliAnalysisTaskITSTrackingCheck *itsQA = AddTaskPerformanceITS(kFALSE); } // // TPC (Jacek Otwinowski) // if (config & kCar08) { gROOT->LoadMacro("$(ALICE_ROOT)/PWGPP/TPC/macros/AddTaskPerformanceTPCQA.C"); AliPerformanceTask *tpcQA = AddTaskPerformanceTPCQA(kFALSE, kTRUE); } // // TRD (Alex Bercuci, M. Fasel) // if(config & kCar09) { gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTrainPerformanceTRD.C"); AddTrainPerformanceTRD("ALL"); } // // Calorimetry (Gustavo Conesa) // if(config & kCar10) { gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/QA/AddTaskCalorimeterQA.C"); AliAnalysisTaskParticleCorrelation *taskCaloQA = AddTaskCalorimeterQA("ESD", kTRUE, kFALSE); taskCaloQA->SetDebugLevel(0); } // // Muon Trigger // if(config & kCar11) { gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTaskMTRchamberEfficiency.C"); AliAnalysisTaskTrigChEff *taskMuonTrig = AddTaskMTRchamberEfficiency(); } // // Muon Efficiency // /* if(doMUONEff) { gROOT->LoadMacro("$ALICE_ROOT/PWG3/muondep/AddTaskMUONTrackingEfficiency.C"); AliAnalysisTaskMuonTrackingEff *taskMuonTrackEff = AddTaskMUONTrackingEfficiency(); } // // V0-Decay Reconstruction (Ana Marin) // if (doV0) { gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTaskV0QA.C"); AliAnalysisTaskV0QA *taskv0QA = AddTaskV0QA(kFALSE); } */ }
//______________________________________________________________________________ void AddAnalysisTasks(Int_t merge){ // Add all analysis task wagons to the train AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); // // Tender and supplies. Needs to be called for every event. // if ( VAR_OCDB_SNAPSHOT ) { AliCDBManager::Instance()->SetDefaultStorage("local:///donotexist"); // explicitely wrong default storage // so we take _EVERYTHING_ from the snapshot. AliCDBManager::Instance()->SetRun(0); AliCDBManager::Instance()->SetSnapshotMode("OCDB_rec.root"); } if ( VAR_MAKE_COMPACT_ESD ) { gROOT->LoadMacro("$ALICE_PHYSICS/PWG/muondep/AddTaskCompactTreeMaker.C"); AddTaskCompactTreeMaker(); } if (iMUONCDBConnect) { if (iMUONCDBConnect > 1) gROOT->LoadMacro("AddTaskMuonCDBConnect.C"); else gROOT->LoadMacro("$ALICE_PHYSICS/PWG/muondep/AddTaskMuonCDBConnect.C"); AliAnalysisTaskMuonCDBConnect *cdbConnect = AddTaskMuonCDBConnect(); if (!defaultStorage.IsNull()) cdbConnect->SetDefaultStorage(defaultStorage.Data()); if (!alignStorage.IsNull() || alignVersion >= 0 || alignSubVersion >= 0) cdbConnect->SetAlignStorage(alignStorage.Data(), alignVersion, alignSubVersion); if (!recoParamStorage.IsNull()) cdbConnect->SetRecoParamStorage(recoParamStorage.Data()); cdbConnect->LoadMagField(); cdbConnect->LoadGeometry(); cdbConnect->LoadMapping(); } UInt_t offlineTriggerMask = 0; if (usePhysicsSelection) { // Physics selection task gROOT->LoadMacro("$ALICE_PHYSICS/OADB/macros/AddTaskPhysicsSelection.C"); mgr->RegisterExtraFile("event_stat.root"); AliPhysicsSelectionTask *physSelTask = AddTaskPhysicsSelection(kTRUE); offlineTriggerMask = AliVEvent::kAny; } // Centrality (only Pb-Pb) if (iCollision && useCentrality) { gROOT->LoadMacro("$ALICE_PHYSICS/OADB/COMMON/MULTIPLICITY/macros/AddTaskMultSelection.C"); AliMultSelectionTask *mult = AddTaskMultSelection(kFALSE); } // track selection AliMuonTrackCuts *trackCuts = 0x0; if (iMUONEfficiency) { trackCuts = new AliMuonTrackCuts("stdCuts", "stdCuts"); trackCuts->SetAllowDefaultParams(); trackCuts->SetFilterMask(AliMuonTrackCuts::kMuMatchLpt | AliMuonTrackCuts::kMuEta | AliMuonTrackCuts::kMuThetaAbs | AliMuonTrackCuts::kMuPdca); trackCuts->SetIsMC(kTRUE); } if (iMUONRefit) { if (iMUONRefit > 1) gROOT->LoadMacro("AddTaskMuonRefit.C"); else gROOT->LoadMacro("$ALICE_PHYSICS/PWG/muondep/AddTaskMuonRefit.C"); AliAnalysisTaskMuonRefit* refit = AddTaskMuonRefit(-1., -1., kTRUE, -1., -1.); if (!defaultStorage.IsNull()) refit->SetDefaultStorage(defaultStorage.Data()); if (!alignStorage.IsNull()) refit->SetAlignStorage(alignStorage.Data()); refit->RemoveMonoCathodClusters(kTRUE, kFALSE); } if (iMUONRefitVtx) { if (iMUONRefitVtx > 1) gROOT->LoadMacro("AddTaskMuonRefitVtx.C"); else gROOT->LoadMacro("$ALICE_PHYSICS/PWG/muondep/AddTaskMuonRefitVtx.C"); AliAnalysisTaskMuonRefitVtx* refitVtx = AddTaskMuonRefitVtx(kFALSE, kFALSE, kTRUE); if (!defaultStorage.IsNull()) refitVtx->SetDefaultStorage(defaultStorage.Data()); } if(iESDMCLabelAddition) { if(iESDMCLabelAddition > 1) gROOT->LoadMacro("AddTaskESDMCLabelAddition.C"); else gROOT->LoadMacro("$ALICE_PHYSICS/PWG/muondep/AddTaskESDMCLabelAddition.C"); AliAnalysisTaskESDMCLabelAddition *esdmclabel = AddTaskESDMCLabelAddition(); if (!defaultStorage.IsNull()) esdmclabel->SetDefaultStorage(defaultStorage.Data()); if (!alignStorage.IsNull()) esdmclabel->SetAlignStorage(alignStorage.Data()); if (!recoParamStorage.IsNull()) esdmclabel->SetRecoParamStorage(recoParamStorage.Data()); esdmclabel->DecayAsFake(kTRUE); } if (iMUONQA) { if (iMUONQA > 1) gROOT->LoadMacro("AddTaskMuonQA.C"); else gROOT->LoadMacro("$ALICE_PHYSICS/PWGPP/PilotTrain/AddTaskMuonQA.C"); AliAnalysisTaskMuonQA* muonQA = AddTaskMuonQA(kFALSE); if (usePhysicsSelection) muonQA->SelectCollisionCandidates(offlineTriggerMask); muonQA->SetTrackCuts(trackCuts); } if (useMC && useTR && iMUONPerformance) { if (iMUONPerformance > 1) gROOT->LoadMacro("AddTaskMuonPerformance.C"); else gROOT->LoadMacro("$ALICE_PHYSICS/PWGPP/MUON/dep/AddTaskMuonPerformance.C"); AliAnalysisTaskMuonPerformance* muonPerformance = AddTaskMuonPerformance(); if (usePhysicsSelection) muonPerformance->SelectCollisionCandidates(offlineTriggerMask); if (!defaultStorage.IsNull()) muonPerformance->SetDefaultStorage(defaultStorage.Data()); if (!alignStorage.IsNull()) muonPerformance->SetAlignStorage(alignStorage.Data()); if (!recoParamStorage.IsNull()) muonPerformance->SetRecoParamStorage(recoParamStorage.Data()); muonPerformance->UseMCKinematics(kTRUE); muonPerformance->SetMCTrigLevelFromMatchTrk(kTRUE); } if (iMUONEfficiency) { if (iMUONEfficiency > 1) gROOT->LoadMacro("AddTaskMUONTrackingEfficiency.C"); else gROOT->LoadMacro("$ALICE_PHYSICS/PWGPP/MUON/dep/AddTaskMUONTrackingEfficiency.C"); AliAnalysisTaskMuonTrackingEff* muonEfficiency = AddTaskMUONTrackingEfficiency(kFALSE,kTRUE,""); if (usePhysicsSelection) muonEfficiency->SelectCollisionCandidates(offlineTriggerMask); if (!defaultStorage.IsNull()) muonEfficiency->SetDefaultStorage(defaultStorage.Data()); if (!alignStorage.IsNull()) muonEfficiency->SetAlignStorage(alignStorage.Data()); if (!recoParamStorage.IsNull()) muonEfficiency->SetRecoParamStorage(recoParamStorage.Data()); muonEfficiency->SetMuonTrackCuts(*trackCuts); muonEfficiency->SetMuonPtCut(VAR_EFFTASK_PTMIN); muonEfficiency->UseMCLabel(kTRUE); muonEfficiency->EnableDisplay(kFALSE); } TString addExtraTasks = VAR_EXTRATASKS_CONFIGMACRO; if (!addExtraTasks.IsNull()) gROOT->ProcessLineSync(TString::Format(".x %s",addExtraTasks.Data())); if (iESDfilter) { // ESD filter task configuration. gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/ESDfilter/macros/AddTaskESDFilter.C"); if (iMUONcopyAOD) { printf("Registering delta AOD file\n"); mgr->RegisterExtraFile("AliAOD.Muons.root"); } AliAnalysisTaskESDfilter *taskesdfilter = AddTaskESDFilter(useKFILTER, iMUONcopyAOD, kFALSE, kFALSE /*usePhysicsSelection*/,kFALSE,kTRUE,kTRUE,kTRUE,1500,VAR_MUONMCMODE,kFALSE,kFALSE,kTRUE,kFALSE); // others taskesdfilter->DisablePmdClusters(); taskesdfilter->DisableCaloClusters(); taskesdfilter->DisableCells(); taskesdfilter->DisableCaloTrigger("PHOS"); taskesdfilter->DisableCaloTrigger("EMCAL"); taskesdfilter->SetPropagateTrackToEMCal(kFALSE); if ( 0 && VAR_USE_ITS_RECO ) /* 0 for the moment to get this macro running also with AliRoot <= .... */ { AliAnalysisTaskESDMuonFilter* muFilter = mgr->GetTask("ESD Muon Filter"); if ( !muFilter ) { std::cout << "ERROR : got a NULL muFilter ! so I cannot ask to keep SPD tracklets !" << std::endl; } else { muFilter->SetWithSPDtracklets(kTRUE); } } } }
//______________________________________________________________________________ void AddAnalysisTasks(const char *cdb_location) { // Add all analysis task wagons to the train AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); // // Tender and supplies. Needs to be called for every event. // AliAnalysisManager::SetCommonFileName("AODQA.root"); if (useTender) { gROOT->LoadMacro("$ALICE_PHYSICS/ANALYSIS/TenderSupplies/AddTaskTender.C"); // IF V0 tender needed, put kTRUE below AliAnalysisTaskSE *tender = AddTaskTender(useV0tender); // tender->SetDebugLevel(2); } // Clean Geometry: Ruben // gROOT->LoadMacro("$ALICE_PHYSICS/PWGPP/CalibMacros/commonMacros/CleanGeom.C++"); // CleanGeom* clgmTask = new CleanGeom("cleanGeom"); // mgr->AddTask(clgmTask); // AliAnalysisDataContainer *dummyInp = mgr->GetCommonInputContainer(); // if (dummyInp) mgr->ConnectInput(clgmTask,0,dummyInp); // // PIDResponse(JENS) // if (doPIDResponse) { gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); AliAnalysisTaskPIDResponse *PIDResponse = AddTaskPIDResponse(); // PIDResponse->SetUserDataRecoPass(1); // PIDResponse->SelectCollisionCandidates(AliVEvent::kAny); } // // PIDqa(JENS) // if (doPIDqa) { gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDqa.C"); AliAnalysisTaskPIDqa *PIDQA = AddTaskPIDqa(); PIDQA->SelectCollisionCandidates(AliVEvent::kAny); } // CDB connection // if (doCDBconnect && !useTender) { gROOT->LoadMacro("$ALICE_PHYSICS/PWGPP/PilotTrain/AddTaskCDBconnect.C"); AliTaskCDBconnect *taskCDB = AddTaskCDBconnect(cdb_location, 0 /*run_number*/); if (!taskCDB) return; AliCDBManager *cdb = AliCDBManager::Instance(); cdb->SetDefaultStorage(cdb_location); // taskCDB->SetRunNumber(run_number); } if (usePhysicsSelection) { // Physics selection task gROOT->LoadMacro("$ALICE_PHYSICS/OADB/macros/AddTaskPhysicsSelection.C"); mgr->RegisterExtraFile("event_stat.root"); AliPhysicsSelectionTask *physSelTask = AddTaskPhysicsSelection(useMC); mgr->AddStatisticsTask(AliVEvent::kAny); } //Jacek if (iPWGPP) { gROOT->LoadMacro("$ALICE_PHYSICS/PWGPP/macros/AddTaskFilteredTree.C"); AddTaskFilteredTree("FilterEvents_Trees.root"); } // Centrality if (useCentrality) { if ( run_flag >= 1500 ) { gROOT->LoadMacro("$ALICE_PHYSICS/OADB/COMMON/MULTIPLICITY/macros/AddTaskMultSelection.C"); AliMultSelectionTask *taskMult = AddTaskMultSelection(); } else { // old scheme is only valid for PbPb if ( iCollision == kPbPb ) { gROOT->LoadMacro("$ALICE_PHYSICS/OADB/macros/AddTaskCentrality.C"); AliCentralitySelectionTask *taskCentrality = AddTaskCentrality(); //taskCentrality->SelectCollisionCandidates(AliVEvent::kAny); } } } // --- PWGLF - Forward ([email protected]) ----------------------------- if (iPWGLFForward && usePhysicsSelection) { gROOT->LoadMacro("$ALICE_PHYSICS/PWGLF/FORWARD/analysis2/AddTaskForwardMult.C"); UShort_t pwglfForwardSys = 0; // iCollision+1; // pp:1, PbPb:2, pPb:3 UShort_t pwglfSNN = 0; // GeV, 0==unknown Short_t pwglfField = 0; AddTaskForwardMult(useMC && useTR, // Need track-refs pwglfForwardSys, // Collision system pwglfSNN, pwglfField); gROOT->LoadMacro("$ALICE_PHYSICS/PWGLF/FORWARD/analysis2/AddTaskCentralMult.C"); AddTaskCentralMult(useMC, pwglfForwardSys, pwglfSNN, pwglfField); } //PWGAgammaconv if (iPWGGAgammaconv) { gROOT->LoadMacro("$ALICE_PHYSICS/PWGGA/GammaConv/macros/AddTask_ConversionAODProduction.C"); Int_t dataset=iCollision; if( iCollision == kXeXe) dataset=kPbPb; if( iCollision == kPbp || iCollision == kpPb ) dataset=2; AliAnalysisTask *taskconv = AddTask_ConversionAODProduction(dataset, kFALSE, periodName); mgr->RegisterExtraFile("AliAODGammaConversion.root"); } if (iESDfilter) { // ESD filter task configuration. gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/ESDfilter/macros/AddTaskESDFilter.C"); if (iMUONcopyAOD) { printf("Registering delta AOD file\n"); mgr->RegisterExtraFile("AliAOD.Muons.root"); } Bool_t muonWithSPDTracklets = (iCollision==kPbPb || iCollision==kXeXe) ? kFALSE : kTRUE; // add SPD information to muon AOD only for pp AliAnalysisTaskESDfilter *taskesdfilter = AddTaskESDFilter(useKFILTER, iMUONcopyAOD, // write Muon AOD kFALSE, // write dimuon AOD kFALSE, // usePhysicsSelection kFALSE, // centrality OBSOLETE kTRUE, // enable TPS only tracks kFALSE, // disable cascades kFALSE, // disable kinks run_flag, // run flag (YY00) 3, // muonMCMode //kTRUE, // useV0Filter kFALSE, // useV0Filter - turned off for PCM to make sense muonWithSPDTracklets, isMuonCaloPass, iPWGGAgammaconv); // Add PCMV0 AliEMCALGeometry::GetInstance("",""); } // ********** PWG3 wagons ****************************************************** // PWGHF vertexing if (iPWGHFvertexing) { gROOT->LoadMacro("$ALICE_PHYSICS/PWGHF/vertexingHF/macros/AddTaskVertexingHF.C"); Int_t configHF=0; if(iCollision == kPbPb || iCollision == kXeXe) configHF=1; AliAnalysisTaskSEVertexingHF *taskvertexingHF = AddTaskVertexingHF(configHF,train_name,"",run_number,periodName); // Now we need to keep in sync with the ESD filter if (!taskvertexingHF) ::Warning("AnalysisTrainNew", "AliAnalysisTaskSEVertexingHF cannot run for this train conditions - EXCLUDED"); else mgr->RegisterExtraFile("AliAOD.VertexingHF.root"); taskvertexingHF->SelectCollisionCandidates(0); } // PWGDQ JPSI filtering (only pp) if (iPWGDQJPSIfilter && (iCollision==kpp)) { gROOT->LoadMacro("$ALICE_PHYSICS/PWGDQ/dielectron/macros/AddTaskJPSIFilter.C"); AliAnalysisTaskSE *taskJPSIfilter = AddTaskJPSIFilter(); if (!taskJPSIfilter) ::Warning("AnalysisTrainNew", "AliAnalysisTaskDielectronFilter cannot run for this train conditions - EXCLUDED"); else mgr->RegisterExtraFile("AliAOD.Dielectron.root"); taskJPSIfilter->SelectCollisionCandidates(0); } // PWGHF D2h if (iPWGHFd2h) { gROOT->LoadMacro("$ALICE_PHYSICS/PWGHF/vertexingHF/AddD2HTrain.C"); AddD2HTrain(kFALSE, 1,0,0,0,0,0,0,0,0,0,0); } // ********** PWG4 wagons ****************************************************** // Jet analysis // Configurations flags, move up? TString kDeltaAODJetName = "AliAOD.Jets.root"; // Bool_t kIsPbPb = (iCollision==kPbPb || iCollision==kXeXe); TString kDefaultJetBackgroundBranch = ""; TString kJetSubtractBranches = ""; UInt_t kHighPtFilterMask = 272;// from esd filter UInt_t iPhysicsSelectionFlag = 0; if (iJETAN) { gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/macros/AddTaskJets.C"); // Default jet reconstructor running on ESD's AliAnalysisTaskJets *taskjets = AddTaskJets("AOD","UA1",0.4,kHighPtFilterMask,1.,0); // no background subtraction if (!taskjets) ::Fatal("AnalysisTrainNew", "AliAnalysisTaskJets cannot run for this train conditions - EXCLUDED"); if(kDeltaAODJetName.Length()>0) taskjets->SetNonStdOutputFile(kDeltaAODJetName.Data()); if (iJETANdelta) { // AddTaskJetsDelta("AliAOD.Jets.root"); // need to modify this accordingly in the add task jets mgr->RegisterExtraFile(kDeltaAODJetName.Data()); TString cTmp(""); if(kIsPbPb){ // UA1 intrinsic background subtraction taskjets = AddTaskJets("AOD","UA1",0.4,kHighPtFilterMask,1.,2); // background subtraction if(kDeltaAODJetName.Length()>0)taskjets->SetNonStdOutputFile(kDeltaAODJetName.Data()); } // SICONE taskjets = AddTaskJets("AOD","SISCONE",0.4,kHighPtFilterMask,0.15,0); //no background subtration to be done later.... if(kDeltaAODJetName.Length()>0)taskjets->SetNonStdOutputFile(kDeltaAODJetName.Data()); cTmp = taskjets->GetNonStdBranch(); if(cTmp.Length()>0)kJetSubtractBranches += Form("%s ",cTmp.Data()); // Add the clusters.. gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/macros/AddTaskJetCluster.C"); AliAnalysisTaskJetCluster *taskCl = 0; Float_t fCenUp = 0; Float_t fCenLo = 0; Float_t fTrackEtaWindow = 0.9; taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelectionFlag,"KT",0.4,0,1, kDeltaAODJetName.Data(),0.15,fTrackEtaWindow,0); // this one is for the background and random jets, random cones with no skip taskCl->SetBackgroundCalc(kTRUE); taskCl->SetNRandomCones(10); taskCl->SetCentralityCut(fCenLo,fCenUp); taskCl->SetGhostEtamax(fTrackEtaWindow); kDefaultJetBackgroundBranch = Form("%s_%s",AliAODJetEventBackground::StdBranchName(),taskCl->GetJetOutputBranch()); taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelectionFlag,"ANTIKT",0.4,2,1,kDeltaAODJetName.Data(),0.15); taskCl->SetCentralityCut(fCenLo,fCenUp); if(kIsPbPb)taskCl->SetBackgroundBranch(kDefaultJetBackgroundBranch.Data()); taskCl->SetNRandomCones(10); kJetSubtractBranches += Form("%s ",taskCl->GetJetOutputBranch()); taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelectionFlag,"ANTIKT",0.2,0,1,kDeltaAODJetName.Data(),0.15); taskCl->SetCentralityCut(fCenLo,fCenUp); if(kIsPbPb)taskCl->SetBackgroundBranch(kDefaultJetBackgroundBranch.Data()); kJetSubtractBranches += Form("%s ",taskCl->GetJetOutputBranch()); // DO THE BACKGROUND SUBTRACTION if(kIsPbPb&&kJetSubtractBranches.Length()){ gROOT->LoadMacro("$ALICE_PHYSICS/PWGJE/macros/AddTaskJetBackgroundSubtract.C"); AliAnalysisTaskJetBackgroundSubtract *taskSubtract = 0; taskSubtract = AddTaskJetBackgroundSubtract(kJetSubtractBranches,1,"B0","B%d"); taskSubtract->SetBackgroundBranch(kDefaultJetBackgroundBranch.Data()); if(kDeltaAODJetName.Length()>0)taskSubtract->SetNonStdOutputFile(kDeltaAODJetName.Data()); } } } }