Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:42:27

0001 from __future__ import print_function
0002 import FWCore.ParameterSet.Config as cms
0003 
0004 # Define here the BeamSpotOnline record name,
0005 # it will be used both in BeamMonitor setup and in payload creation/upload
0006 BSOnlineRecordName = 'BeamSpotOnlineLegacyObjectsRcd'
0007 BSOnlineTag = 'BeamSpotOnlineLegacy'
0008 BSOnlineJobName = 'BeamSpotOnlineLegacy'
0009 BSOnlineOmsServiceUrl = 'http://cmsoms-eventing.cms:9949/urn:xdaq-application:lid=100/getRunAndLumiSection'
0010 useLockRecords = True
0011 
0012 import sys
0013 if 'runkey=hi_run' in sys.argv:
0014   from Configuration.Eras.Era_Run3_pp_on_PbPb_approxSiStripClusters_cff import Run3_pp_on_PbPb_approxSiStripClusters
0015   process = cms.Process("BeamMonitorLegacy", Run3_pp_on_PbPb_approxSiStripClusters)
0016 else:
0017   from Configuration.Eras.Era_Run3_cff import Run3
0018   process = cms.Process("BeamMonitorLegacy", Run3)
0019 
0020 process.MessageLogger = cms.Service("MessageLogger",
0021     debugModules = cms.untracked.vstring('*'),
0022     cerr = cms.untracked.PSet(
0023         threshold = cms.untracked.string('WARNING')
0024     ),
0025     destinations = cms.untracked.vstring('cerr')
0026 )
0027 
0028 # switch
0029 live = True # FIXME
0030 unitTest = False
0031 
0032 if 'unitTest=True' in sys.argv:
0033     live=False
0034     unitTest=True
0035     useLockRecords = False
0036 
0037 #---------------
0038 # Input sources
0039 if unitTest:
0040     process.load("DQM.Integration.config.unittestinputsource_cfi")
0041     from DQM.Integration.config.unittestinputsource_cfi import options
0042 elif live:
0043     process.load("DQM.Integration.config.inputsource_cfi")
0044     from DQM.Integration.config.inputsource_cfi import options
0045 else:
0046     process.load("DQM.Integration.config.fileinputsource_cfi")
0047     from DQM.Integration.config.fileinputsource_cfi import options
0048 
0049 #--------------------------
0050 # HLT Filter
0051 process.hltTriggerTypeFilter = cms.EDFilter("HLTTriggerTypeFilter",
0052     SelectedTriggerType = cms.int32(1) # physics
0053 )
0054 
0055 #----------------------------
0056 # DQM Live Environment
0057 process.load("DQM.Integration.config.environment_cfi")
0058 process.dqmEnv.subSystemFolder = 'BeamMonitorLegacy'
0059 process.dqmSaver.tag           = 'BeamMonitorLegacy'
0060 process.dqmSaver.runNumber     = options.runNumber
0061 process.dqmSaverPB.tag         = 'BeamMonitorLegacy'
0062 process.dqmSaverPB.runNumber   = options.runNumber
0063 
0064 process.dqmEnvPixelLess = process.dqmEnv.clone(
0065   subSystemFolder = 'BeamMonitor_PixelLess'
0066 )
0067 
0068 # Configure tag and jobName if running Playback system
0069 if process.isDqmPlayback.value :
0070     BSOnlineTag = BSOnlineTag + 'Playback'
0071     BSOnlineJobName = BSOnlineJobName + 'Playback'
0072     BSOnlineOmsServiceUrl = ''
0073     useLockRecords = False
0074 #
0075 
0076 #---------------
0077 # Conditions
0078 if (live):
0079     process.load("DQM.Integration.config.FrontierCondition_GT_cfi")
0080     process.GlobalTag.DBParameters.authenticationPath = '.'
0081 else:
0082     process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0083     from Configuration.AlCa.GlobalTag import GlobalTag as gtCustomise
0084     process.GlobalTag = gtCustomise(process.GlobalTag, 'auto:run3_data', '')
0085     process.GlobalTag.DBParameters.authenticationPath = '.'
0086     # you may need to set manually the GT in the line below
0087     #process.GlobalTag.globaltag = '100X_upgrade2018_realistic_v10'
0088 
0089 
0090 #--------------------------------------------------------
0091 # Swap offline <-> online BeamSpot as in Express and HLT
0092 import RecoVertex.BeamSpotProducer.onlineBeamSpotESProducer_cfi as _mod
0093 process.BeamSpotESProducer = _mod.onlineBeamSpotESProducer.clone()
0094 
0095 # for running offline enhance the time validity of the online beamspot in DB
0096 if ((not live) or process.isDqmPlayback.value): 
0097   process.BeamSpotESProducer.timeThreshold = cms.int32(int(1e6))
0098 
0099 import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi
0100 process.offlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone()
0101 
0102 #----------------------------
0103 # BeamMonitor
0104 process.load("DQM.BeamMonitor.BeamMonitor_Pixel_cff")
0105 process.load("DQM.BeamMonitor.BeamSpotProblemMonitor_cff")
0106 process.load("DQM.BeamMonitor.BeamConditionsMonitor_cff")
0107 
0108 if process.dqmRunConfig.type.value() == "production":
0109   process.dqmBeamMonitor.BeamFitter.WriteAscii = True
0110   process.dqmBeamMonitor.BeamFitter.AsciiFileName = '/nfshome0/yumiceva/BeamMonitorDQM/BeamFitResultsOld.txt'
0111   process.dqmBeamMonitor.BeamFitter.WriteDIPAscii = True
0112   process.dqmBeamMonitor.BeamFitter.DIPFileName = '/nfshome0/dqmpro/BeamMonitorDQM/BeamFitResultsOld.txt'
0113 else:
0114   process.dqmBeamMonitor.BeamFitter.WriteAscii = False
0115   process.dqmBeamMonitor.BeamFitter.AsciiFileName = '/nfshome0/yumiceva/BeamMonitorDQM/BeamFitResultsOld.txt'
0116   process.dqmBeamMonitor.BeamFitter.WriteDIPAscii = True
0117   if (live):
0118     process.dqmBeamMonitor.BeamFitter.DIPFileName = '/nfshome0/dqmdev/BeamMonitorDQM/BeamFitResultsOld.txt'
0119   else:
0120     process.dqmBeamMonitor.BeamFitter.DIPFileName = 'BeamFitResultsOld.txt'
0121 
0122 #----------------
0123 # Setup tracking
0124 process.load("Configuration.StandardSequences.GeometryRecoDB_cff")
0125 process.load('Configuration.StandardSequences.MagneticField_AutoFromDBCurrent_cff')
0126 process.load("Configuration.StandardSequences.RawToDigi_Data_cff")
0127 process.load("RecoLocalTracker.Configuration.RecoLocalTracker_cff")
0128 process.load("TrackingTools.TransientTrack.TransientTrackBuilder_cfi")
0129 from RecoTracker.PixelLowPtUtilities.siPixelClusterShapeCache_cfi import *
0130 process.siPixelClusterShapeCachePreSplitting = siPixelClusterShapeCache.clone(
0131   src = 'siPixelClustersPreSplitting'
0132 )
0133 process.load("RecoLocalTracker.SiPixelRecHits.PixelCPEGeneric_cfi")
0134 
0135 #-----------------
0136 
0137 # TrackingMonitor
0138 process.pixelTracksCutClassifier = cms.EDProducer( "TrackCutClassifier",
0139     src = cms.InputTag( "pixelTracks" ),
0140     beamspot = cms.InputTag( "offlineBeamSpot" ),
0141     vertices = cms.InputTag( "" ),
0142     qualityCuts = cms.vdouble( -0.7, 0.1, 0.7 ),
0143     mva = cms.PSet(
0144       minPixelHits = cms.vint32( 0, 3, 3 ),
0145       maxDzWrtBS = cms.vdouble( 3.40282346639E38, 3.40282346639E38, 60.0 ),
0146       dr_par = cms.PSet(
0147         d0err = cms.vdouble( 0.003, 0.003, 3.40282346639E38 ),
0148         dr_par2 = cms.vdouble( 0.3, 0.3, 3.40282346639E38 ),
0149         dr_par1 = cms.vdouble( 0.4, 0.4, 3.40282346639E38 ),
0150         dr_exp = cms.vint32( 4, 4, 4 ),
0151         d0err_par = cms.vdouble( 0.001, 0.001, 3.40282346639E38 )
0152       ),
0153       maxLostLayers = cms.vint32( 99, 99, 99 ),
0154       min3DLayers = cms.vint32( 0, 2, 3 ),
0155       dz_par = cms.PSet(
0156         dz_par1 = cms.vdouble( 0.4, 0.4, 3.40282346639E38 ),
0157         dz_par2 = cms.vdouble( 0.35, 0.35, 3.40282346639E38 ),
0158         dz_exp = cms.vint32( 4, 4, 4 )
0159       ),
0160       minNVtxTrk = cms.int32( 3 ),
0161       maxDz = cms.vdouble( 3.40282346639E38, 3.40282346639E38, 3.40282346639E38 ),
0162       minNdof = cms.vdouble( 1.0E-5, 1.0E-5, 1.0E-5 ),
0163       maxChi2 = cms.vdouble( 9999., 9999., 30.0 ),
0164       maxDr = cms.vdouble( 99., 99., 1. ),
0165       minLayers = cms.vint32( 0, 2, 3 )
0166     ),
0167     ignoreVertices = cms.bool( True ),
0168 )
0169 
0170 #
0171 process.pixelTracksHP = cms.EDProducer( "TrackCollectionFilterCloner",
0172     minQuality = cms.string( "highPurity" ),
0173     copyExtras = cms.untracked.bool( True ),
0174     copyTrajectories = cms.untracked.bool( False ),
0175     originalSource = cms.InputTag( "pixelTracks" ),
0176     originalQualVals = cms.InputTag( 'pixelTracksCutClassifier','QualityMasks' ),
0177     originalMVAVals = cms.InputTag( 'pixelTracksCutClassifier','MVAValues' )
0178 )
0179 
0180 #-------------------------------------
0181 # PixelTracksMonitor
0182 
0183 import DQM.TrackingMonitor.TrackerCollisionTrackingMonitor_cfi
0184 process.pixelTracksMonitor = DQM.TrackingMonitor.TrackerCollisionTrackingMonitor_cfi.TrackerCollisionTrackMon.clone(
0185    FolderName                = 'BeamMonitorLegacy/Tracking/pixelTracks',
0186    TrackProducer             = 'pixelTracks',
0187    allTrackProducer          = 'pixelTracks',
0188    beamSpot                  = "offlineBeamSpot",
0189    primaryVertex             = "pixelVertices",
0190 
0191    doAllPlots                = False,
0192    doLumiAnalysis            = False,
0193    doProfilesVsLS            = True,
0194    doDCAPlots                = True,
0195    doPlotsVsGoodPVtx         = True,
0196 
0197    doEffFromHitPatternVsPU   = False,
0198    doEffFromHitPatternVsBX   = True,
0199    doEffFromHitPatternVsLUMI = False,
0200    doPlotsVsLUMI             = True,
0201    doPlotsVsBX               = True,
0202 
0203    AbsDxyMax                 = 1.2,
0204    AbsDxyBin                 = 12,
0205    DxyMin                    = -1.2,
0206    DxyMax                    = 1.2,
0207    DxyBin                    = 60,
0208 
0209    Chi2NDFMax                = 35.,
0210    Chi2NDFMin                = 0.,
0211    Chi2NDFBin                = 70,
0212 
0213    VZBin                     = 124,
0214    VZMin                     = -62.,
0215    VZMax                     =  62.,
0216 
0217    TrackPtMin                =  0.,
0218    TrackPtMax                =  50.,
0219    TrackPtBin                =  250
0220 )
0221 #
0222 process.tracks2monitor = cms.EDFilter('TrackSelector',
0223     src = cms.InputTag('pixelTracks'),
0224     cut = cms.string("")
0225 )
0226 process.tracks2monitor.src = 'pixelTracksHP'
0227 process.tracks2monitor.cut = 'pt > 1 & abs(eta) < 2.4' 
0228 
0229 
0230 #
0231 process.selectedPixelTracksMonitor = process.pixelTracksMonitor.clone(
0232    FolderName       = 'BeamMonitorLegacy/Tracking/selectedPixelTracks',
0233    TrackProducer    = 'tracks2monitor',
0234    allTrackProducer = 'tracks2monitor'
0235 )
0236 
0237 process.selectedPixelTracksMonitorSequence = cms.Sequence(
0238     process.pixelTracksCutClassifier
0239   + process.pixelTracksHP
0240   + process.tracks2monitor
0241   + process.selectedPixelTracksMonitor
0242 )
0243 
0244 
0245 #---------------------------------
0246 # Putting together combined paths
0247 
0248 #
0249 process.dqmTKStatus = cms.EDAnalyzer("TKStatus",
0250     BeamFitter = cms.PSet(
0251         DIPFileName = process.dqmBeamMonitor.BeamFitter.DIPFileName
0252     )
0253 )
0254 
0255 #
0256 process.dqmcommon = cms.Sequence(process.dqmEnv
0257                                * process.dqmSaver*process.dqmSaverPB)
0258 
0259 #
0260 process.monitor = cms.Sequence(process.dqmBeamMonitor
0261                              + process.selectedPixelTracksMonitorSequence)
0262 
0263 #------------------------
0264 # BeamSpotProblemMonitor
0265 
0266 #
0267 process.dqmBeamSpotProblemMonitor.monitorName = "BeamMonitorLegacy/BeamSpotProblemMonitor"
0268 process.dqmBeamSpotProblemMonitor.AlarmONThreshold  = 15 # was 10
0269 process.dqmBeamSpotProblemMonitor.AlarmOFFThreshold = 17 # was 12
0270 process.dqmBeamSpotProblemMonitor.nCosmicTrk        = 10
0271 process.dqmBeamSpotProblemMonitor.doTest            = False
0272 process.dqmBeamSpotProblemMonitor.pixelTracks  = 'pixelTracks'
0273 
0274 #
0275 from DQMServices.Core.DQMQualityTester import DQMQualityTester
0276 process.qTester = DQMQualityTester(
0277     qtList = cms.untracked.FileInPath('DQM/BeamMonitor/test/BeamSpotAvailableTest.xml'),
0278     prescaleFactor = cms.untracked.int32(1),                               
0279     qtestOnEndLumi = cms.untracked.bool(True),
0280     testInEventloop = cms.untracked.bool(False),
0281     verboseQT =  cms.untracked.bool(True)                 
0282 )
0283 
0284 #
0285 process.BeamSpotProblemModule = cms.Sequence(process.qTester
0286                                    * process.dqmBeamSpotProblemMonitor)
0287 
0288 # make it off for cosmic run
0289 if ( process.runType.getRunType() == process.runType.cosmic_run or
0290      process.runType.getRunType() == process.runType.cosmic_run_stage1):
0291     process.dqmBeamSpotProblemMonitor.AlarmOFFThreshold = 5 # <AlarmONThreshold
0292 
0293 #------------------------
0294 # Process customizations
0295 from DQM.Integration.config.online_customizations_cfi import *
0296 process = customise(process)
0297 
0298 # Digitisation: produce the TCDS digis containing BST record
0299 from EventFilter.OnlineMetaDataRawToDigi.tcdsRawToDigi_cfi import *
0300 process.tcdsDigis = tcdsRawToDigi.clone()
0301 
0302 #------------------------
0303 # Set rawDataRepacker (HI and live) or rawDataCollector (for all the rest)
0304 if (process.runType.getRunType() == process.runType.hi_run and live):
0305     rawDataInputTag = "rawDataRepacker"
0306 else:
0307     rawDataInputTag = "rawDataCollector"
0308 
0309 process.castorDigis.InputLabel           = rawDataInputTag
0310 process.csctfDigis.producer              = rawDataInputTag 
0311 process.dttfDigis.DTTF_FED_Source        = rawDataInputTag
0312 process.ecalDigis.cpu.InputLabel         = rawDataInputTag
0313 process.ecalPreshowerDigis.sourceTag     = rawDataInputTag
0314 process.gctDigis.inputLabel              = rawDataInputTag
0315 process.gtDigis.DaqGtInputTag            = rawDataInputTag
0316 process.hcalDigis.InputLabel             = rawDataInputTag
0317 process.muonCSCDigis.InputObjects        = rawDataInputTag
0318 process.muonDTDigis.inputLabel           = rawDataInputTag
0319 process.muonRPCDigis.InputLabel          = rawDataInputTag
0320 process.scalersRawToDigi.scalersInputTag = rawDataInputTag
0321 process.siPixelDigis.cpu.InputLabel      = rawDataInputTag
0322 process.siStripDigis.ProductLabel        = rawDataInputTag
0323 process.tcdsDigis.InputLabel             = rawDataInputTag
0324 
0325 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cfi")
0326 
0327 process.dqmBeamMonitor.OnlineMode = True
0328 process.dqmBeamMonitor.monitorName = "BeamMonitorLegacy"
0329 process.dqmBeamMonitor.recordName = BSOnlineRecordName
0330 process.dqmBeamMonitor.useLockRecords = useLockRecords
0331 
0332 process.dqmBeamMonitor.resetEveryNLumi   = 5 # was 10 for HI
0333 process.dqmBeamMonitor.resetPVEveryNLumi = 5 # was 10 for HI
0334 
0335 process.dqmBeamMonitor.PVFitter.minNrVerticesForFit = 20
0336 process.dqmBeamMonitor.PVFitter.minVertexNdf = 10
0337 process.dqmBeamMonitor.PVFitter.errorScale = 1.2
0338 
0339 #----------------------------
0340 # Pixel tracks/vertices reco
0341 process.load("RecoTracker.Configuration.RecoPixelVertexing_cff")
0342 from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import *
0343 process.pixelVertices = pixelVertices.clone(
0344   TkFilterParameters = dict( minPt = process.pixelTracksTrackingRegions.RegionPSet.ptMin)
0345 )
0346 #process.pixelTracksTrackingRegions.RegionPSet.ptMin = 0.1       # used in PilotBeam 2021, but not ok for standard collisions
0347 process.pixelTracksTrackingRegions.RegionPSet.originRadius = 0.4 # used in PilotBeam 2021, to be checked again for standard collisions
0348 # The following parameters were used in 2018 HI:
0349 #process.pixelTracksTrackingRegions.RegionPSet.originHalfLength = 12
0350 #process.pixelTracksTrackingRegions.RegionPSet.originXPos =  0.08
0351 #process.pixelTracksTrackingRegions.RegionPSet.originYPos = -0.03
0352 #process.pixelTracksTrackingRegions.RegionPSet.originZPos = 0.
0353 
0354 process.tracking_FirstStep = cms.Sequence(
0355       process.siPixelDigis 
0356     * process.siStripDigis
0357     * process.striptrackerlocalreco
0358     * process.offlineBeamSpot
0359     * process.siPixelClustersPreSplitting
0360     * process.siPixelRecHitsPreSplitting
0361     * process.siPixelClusterShapeCachePreSplitting
0362     * process.recopixelvertexing)
0363 
0364 # triggerName for selecting pv for DIP publication, no wildcard needed here
0365 # it will pick all triggers which have these strings in their name
0366 process.dqmBeamMonitor.jetTrigger  = [
0367          "HLT_PAZeroBias_v", "HLT_ZeroBias_v", "HLT_QuadJet",
0368          "HLT_ZeroBias_",
0369          "HLT_HI",
0370          "HLT_PixelClusters"]
0371 
0372 # for HI only: select events based on the pixel cluster multiplicity
0373 if (process.runType.getRunType() == process.runType.hi_run):
0374     import HLTrigger.special.hltPixelActivityFilter_cfi
0375     process.multFilter = HLTrigger.special.hltPixelActivityFilter_cfi.hltPixelActivityFilter.clone(
0376         inputTag  = 'siPixelClustersPreSplitting',
0377         minClusters = 150,
0378         maxClusters = 50000 # was 10000
0379     )
0380        
0381     process.filter_step = cms.Sequence( process.siPixelDigis
0382                                       * process.siPixelClustersPreSplitting
0383                                       * process.multFilter
0384     )
0385 
0386 process.dqmBeamMonitor.hltResults = "TriggerResults::HLT"
0387 
0388 #---------
0389 # Upload BeamSpotOnlineObject (LegacyRcd) to CondDB
0390 if unitTest == False:
0391     process.OnlineDBOutputService = cms.Service("OnlineDBOutputService",
0392 
0393         DBParameters = cms.PSet(
0394                                 messageLevel = cms.untracked.int32(0),
0395                                 authenticationPath = cms.untracked.string('.')
0396                             ),
0397 
0398         # Upload to CondDB
0399         connect = cms.string('oracle://cms_orcon_prod/CMS_CONDITIONS'),
0400         preLoadConnectionString = cms.untracked.string('frontier://FrontierProd/CMS_CONDITIONS'),
0401 
0402         runNumber = cms.untracked.uint64(options.runNumber),
0403         omsServiceUrl = cms.untracked.string(BSOnlineOmsServiceUrl),
0404         latency = cms.untracked.uint32(2),
0405         autoCommit = cms.untracked.bool(True),
0406         saveLogsOnDB = cms.untracked.bool(True),
0407         jobName = cms.untracked.string(BSOnlineJobName), # name of the DB log record
0408         toPut = cms.VPSet(cms.PSet(
0409             record = cms.string(BSOnlineRecordName),
0410             tag = cms.string(BSOnlineTag),
0411             timetype = cms.untracked.string('Lumi'),
0412             onlyAppendUpdatePolicy = cms.untracked.bool(True)
0413         )),
0414         frontierKey = cms.untracked.string(options.runUniqueKey)
0415     )
0416 
0417 else:
0418     process.OnlineDBOutputService = cms.Service("OnlineDBOutputService",
0419 
0420         DBParameters = cms.PSet(
0421                                 messageLevel = cms.untracked.int32(0),
0422                                 authenticationPath = cms.untracked.string('.')
0423                             ),
0424 
0425         # Upload to CondDB
0426         connect = cms.string('sqlite_file:BeamSpotOnlineLegacy.db'),
0427         preLoadConnectionString = cms.untracked.string('sqlite_file:BeamSpotOnlineLegacy.db'),
0428         runNumber = cms.untracked.uint64(options.runNumber),
0429         lastLumiFile = cms.untracked.string('last_lumi.txt'),
0430         latency = cms.untracked.uint32(2),
0431         autoCommit = cms.untracked.bool(True),
0432         toPut = cms.VPSet(cms.PSet(
0433             record = cms.string(BSOnlineRecordName),
0434             tag = cms.string(BSOnlineTag),
0435             timetype = cms.untracked.string('Lumi'),
0436             onlyAppendUpdatePolicy = cms.untracked.bool(True)
0437         )),
0438         frontierKey = cms.untracked.string(options.runUniqueKey)
0439     )
0440 print("Configured frontierKey", options.runUniqueKey)
0441 
0442 #--------
0443 # Do no run on events with pixel with HV off
0444 
0445 process.pixelTrackerHVOn = cms.EDFilter( "DetectorStateFilter",
0446     DCSRecordLabel = cms.untracked.InputTag( "onlineMetaDataDigis" ),
0447     DcsStatusLabel = cms.untracked.InputTag( "scalersRawToDigi" ),
0448     DebugOn = cms.untracked.bool( False ),
0449     DetectorType = cms.untracked.string( "pixel" )
0450 )
0451 
0452 #---------
0453 # Final path
0454 if (not process.runType.getRunType() == process.runType.hi_run):
0455     process.p = cms.Path(process.scalersRawToDigi
0456                        * process.tcdsDigis
0457                        * process.onlineMetaDataDigis
0458                        * process.pixelTrackerHVOn
0459                        * process.dqmTKStatus
0460                        * process.hltTriggerTypeFilter
0461                        * process.dqmcommon
0462                        * process.tracking_FirstStep
0463                        * process.monitor
0464                        * process.BeamSpotProblemModule)
0465 else:
0466     process.p = cms.Path(process.scalersRawToDigi
0467                        * process.tcdsDigis
0468                        * process.onlineMetaDataDigis
0469                        * process.pixelTrackerHVOn
0470                        * process.dqmTKStatus
0471                        * process.hltTriggerTypeFilter
0472                        * process.filter_step # the only extra: pix-multi filter
0473                        * process.dqmcommon
0474                        * process.tracking_FirstStep
0475                        * process.monitor
0476                        * process.BeamSpotProblemModule)
0477 
0478 print("Global Tag used:", process.GlobalTag.globaltag.value())
0479 print("Final Source settings:", process.source)
0480