import FWCore.ParameterSet.Config as cms from Configuration.StandardSequences.Eras import eras process = cms.Process('ANASKIM',eras.Run2_2018_pp_on_AA) process.load('Configuration.StandardSequences.Services_cff') process.load('Configuration.StandardSequences.GeometryRecoDB_cff') process.load('Configuration.StandardSequences.MagneticField_cff') process.load('Configuration.StandardSequences.Reconstruction_cff') # Limit the output messages process.load('FWCore.MessageService.MessageLogger_cfi') process.MessageLogger.cerr.FwkReport.reportEvery = 200 process.options = cms.untracked.PSet(wantSummary = cms.untracked.bool(True)) # Define the input source process.source = cms.Source("PoolSource", fileNames = cms.untracked.vstring('/store/himc/HINPbPbAutumn18DR/DYJetsToLL_MLL-50_TuneCP5_HydjetDrumMB_5p02TeV-amcatnloFXFX-pythia8/AODSIM/mva98_103X_upgrade2018_realistic_HI_v11-v1/70003/FABA33C0-C8C5-9E4D-AEDB-48A33CC53415.root'), inputCommands=cms.untracked.vstring('keep *', 'drop *_hiEvtPlane_*_*') ) process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(-1)) # Set the global tag process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') process.GlobalTag.globaltag = cms.string('103X_upgrade2018_realistic_HI_v12') # Add PbPb centrality process.load("RecoHI.HiCentralityAlgos.CentralityBin_cfi") process.centralityBin.Centrality = cms.InputTag("hiCentrality") process.centralityBin.centralityVariable = cms.string("HFtowers") process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_HydjetDrum5F_v1032x02_mc"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowers") ), ]) process.cent_seq = cms.Sequence(process.centralityBin) # Add PbPb event plane process.load("RecoHI.HiEvtPlaneAlgos.HiEvtPlane_cfi") process.load("RecoHI.HiEvtPlaneAlgos.hiEvtPlaneFlat_cfi") process.hiEvtPlane.trackTag = cms.InputTag("generalTracks") process.hiEvtPlane.vertexTag = cms.InputTag("offlinePrimaryVerticesRecovery") process.hiEvtPlane.loadDB = cms.bool(True) process.hiEvtPlane.useNtrk = cms.untracked.bool(False) process.hiEvtPlane.caloCentRef = cms.double(-1) process.hiEvtPlane.caloCentRefWidth = cms.double(-1) process.hiEvtPlaneFlat.caloCentRef = cms.double(-1) process.hiEvtPlaneFlat.caloCentRefWidth = cms.double(-1) process.hiEvtPlaneFlat.vertexTag = cms.InputTag("offlinePrimaryVerticesRecovery") process.hiEvtPlaneFlat.useNtrk = cms.untracked.bool(False) process.CondDB.connect = "sqlite_file:HeavyIonRPRcd_PbPb2018_offline.db" process.PoolDBESSource = cms.ESSource("PoolDBESSource", process.CondDB, toGet = cms.VPSet(cms.PSet(record = cms.string('HeavyIonRPRcd'), tag = cms.string('HeavyIonRPRcd_PbPb2018_offline') ) ) ) process.es_prefer_flatparms = cms.ESPrefer('PoolDBESSource','') process.evtplane_seq = cms.Sequence(process.hiEvtPlane * process.hiEvtPlaneFlat) # Add the VertexComposite producer process.load("VertexCompositeAnalysis.VertexCompositeProducer.generalDiMuCandidates_cff") process.generalDiMuCandidatesWrongSign = process.generalDiMuCandidates.clone(isWrongSign = cms.bool(True)) from VertexCompositeAnalysis.VertexCompositeProducer.PATAlgos_cff import doPATMuons doPATMuons(process, True) # Add PbPb collision event selection process.load('VertexCompositeAnalysis.VertexCompositeProducer.collisionEventSelection_cff') process.load('VertexCompositeAnalysis.VertexCompositeProducer.clusterCompatibilityFilter_cfi') process.load('VertexCompositeAnalysis.VertexCompositeProducer.hfCoincFilter_cff') process.load("VertexCompositeAnalysis.VertexCompositeProducer.OfflinePrimaryVerticesRecovery_cfi") process.colEvtSel = cms.Sequence(process.hfCoincFilter2Th4 * process.primaryVertexFilter * process.clusterCompatibilityFilter) # Define the analysis steps process.pcentandep_step = cms.Path(process.offlinePrimaryVerticesRecovery * process.cent_seq * process.evtplane_seq) process.dimurereco_step = cms.Path(process.offlinePrimaryVerticesRecovery * process.patMuonSequence * process.generalDiMuCandidates) process.dimurerecowrongsign_step = cms.Path(process.offlinePrimaryVerticesRecovery * process.patMuonSequence * process.generalDiMuCandidatesWrongSign) # Add the VertexComposite tree process.load("VertexCompositeAnalysis.VertexCompositeAnalyzer.dimuanalyzer_tree_cff") # Define the output process.TFileService = cms.Service("TFileService", fileName = cms.string('dimuana_mc.root')) process.p = cms.EndPath(process.dimucontana_mc * process.dimucontana_wrongsign_mc) # Define the process schedule process.schedule = cms.Schedule( process.pcentandep_step, process.dimurereco_step, process.dimurerecowrongsign_step, process.p ) # Add the event selection filters process.Flag_colEvtSel = cms.Path(process.offlinePrimaryVerticesRecovery * process.colEvtSel) process.Flag_hfCoincFilter2Th4 = cms.Path(process.offlinePrimaryVerticesRecovery * process.hfCoincFilter2Th4) process.Flag_primaryVertexFilter = cms.Path(process.offlinePrimaryVerticesRecovery * process.primaryVertexFilter) process.Flag_clusterCompatibilityFilter = cms.Path(process.offlinePrimaryVerticesRecovery * process.clusterCompatibilityFilter) eventFilterPaths = [ process.Flag_colEvtSel , process.Flag_hfCoincFilter2Th4 , process.Flag_primaryVertexFilter , process.Flag_clusterCompatibilityFilter ] for P in eventFilterPaths: process.schedule.insert(0, P) # Add recovery for offline primary vertex from HLTrigger.Configuration.CustomConfigs import MassReplaceInputTag process = MassReplaceInputTag(process,"offlinePrimaryVertices","offlinePrimaryVerticesRecovery") process.offlinePrimaryVerticesRecovery.oldVertexLabel = "offlinePrimaryVertices"