Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
import FWCore.ParameterSet.Config as cms

from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
AlcaBeamMonitor = DQMEDAnalyzer('AlcaBeamMonitor',
                                 MonitorName        = cms.untracked.string('AlcaBeamMonitor'),
                                 PrimaryVertexLabel = cms.untracked.InputTag('offlinePrimaryVertices'),
                                 perLSsaving        = cms.untracked.bool(False), #driven by DQMServices/Core/python/DQMStore_cfi.py
                                 #TrackLabel         = cms.untracked.InputTag('ALCARECOTkAlMinBias'),
                                 TrackLabel         = cms.untracked.InputTag('generalTracks'),
                                 ScalerLabel        = cms.untracked.InputTag('scalerBeamSpot'),
                                 BeamFitter = cms.PSet(
                                   Debug = cms.untracked.bool(False),
                                   #TrackCollection = cms.untracked.InputTag('ALCARECOTkAlMinBias'),
                                   TrackCollection = cms.untracked.InputTag('generalTracks'),
                                   IsMuonCollection = cms.untracked.bool(False),
                                   WriteAscii = cms.untracked.bool(False),
                                   AsciiFileName = cms.untracked.string('BeamFit.txt'), ## all results
                                   AppendRunToFileName = cms.untracked.bool(True), #runnumber will be inserted to the file name
                                   WriteDIPAscii = cms.untracked.bool(False),
                                   DIPFileName = cms.untracked.string('BeamFitDIP.txt'),
                                   SaveNtuple = cms.untracked.bool(False),
                                   SavePVVertices = cms.untracked.bool(False),
                                   SaveFitResults = cms.untracked.bool(False),
                                   OutputFileName = cms.untracked.string('BeamFit.root'), ## ntuple filename
                                   MinimumPt = cms.untracked.double(1.0),
                                   MaximumEta = cms.untracked.double(2.4),
                                   MaximumImpactParameter = cms.untracked.double(1.0),
                                   MaximumZ = cms.untracked.double(60),
                                   MinimumTotalLayers = cms.untracked.int32(6),
                                   MinimumPixelLayers = cms.untracked.int32(0),
                                   MaximumNormChi2 = cms.untracked.double(10.0),
                                   TrackAlgorithm = cms.untracked.vstring(), ## ctf,rs,cosmics,initialStep,lowPtTripletStep...; for all algos, leave it blank
                                   TrackQuality = cms.untracked.vstring(), ## loose, tight, highPurity...; for all qualities, leave it blank
                                   InputBeamWidth = cms.untracked.double(0.0060), ## beam width used for Trk fitter, used only when result from PV is not available
                                   FractionOfFittedTrks = cms.untracked.double(0.9),
                                   MinimumInputTracks = cms.untracked.int32(150)
                                   ),
                                 PVFitter = cms.PSet(
                                   Debug = cms.untracked.bool(False),
                                   Apply3DFit = cms.untracked.bool(True),
                                   VertexCollection = cms.untracked.InputTag('offlinePrimaryVertices'),
                                   #WriteAscii = cms.untracked.bool(True),
                                   #AsciiFileName = cms.untracked.string('PVFit.txt'),
                                   maxNrStoredVertices = cms.untracked.uint32(10000),
                                   minNrVerticesForFit = cms.untracked.uint32(50),
                                   minVertexNdf = cms.untracked.double(10.),
                                   maxVertexNormChi2 = cms.untracked.double(10.),
                                   minVertexNTracks = cms.untracked.uint32(0),
                                   minVertexMeanWeight = cms.untracked.double(0.5),
                                   maxVertexR = cms.untracked.double(2),
                                   maxVertexZ = cms.untracked.double(10),
                                   errorScale = cms.untracked.double(0.9),
                                   nSigmaCut = cms.untracked.double(5.),
                                   FitPerBunchCrossing = cms.untracked.bool(False),
                                   useOnlyFirstPV = cms.untracked.bool(False),
                                   minSumPt = cms.untracked.double(0.)
                                   ),
                               )

# This customization is needed in the trackingLowPU era to be able to
# compute the beamspot also in the cases in which the pixel detector
# is not included in data-taking, like it was the case for "Quiet
# Beam" collisions on 2016 with run 269207.

from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU
trackingLowPU.toModify(AlcaBeamMonitor,
                            BeamFitter = dict(MaximumImpactParameter = 5.0,
                                              MinimumInputTracks = 50))