File indexing completed on 2024-11-25 02:29:02
0001 import FWCore.ParameterSet.Config as cms
0002
0003 process = cms.Process("TBDtest")
0004
0005
0006 process.load("FWCore.MessageService.MessageLogger_cfi")
0007 process.MessageLogger.cerr.FwkReport.reportEvery = 10000
0008
0009 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
0010 process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
0011 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
0012 process.load("RecoTracker.Configuration.RecoTracker_cff")
0013 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
0014 process.load("Configuration.StandardSequences.MagneticField_cff")
0015 process.load("Configuration.StandardSequences.Reconstruction_cff")
0016 process.load("Configuration.StandardSequences.Services_cff")
0017 process.load('Configuration.Geometry.GeometryRecoDB_cff')
0018 process.load("TrackingTools.TransientTrack.TransientTrackBuilder_cfi")
0019 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
0020
0021
0022 from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
0023
0024
0025 from Geometry.MuonNumbering.muonNumberingInitialization_cfi import *
0026 from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import *
0027
0028
0029 from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *
0030 from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
0031 from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *
0032
0033 from Configuration.AlCa.GlobalTag import GlobalTag
0034 process.GlobalTag = GlobalTag(process.GlobalTag, "92X_dataRun2_Prompt_v2", '')
0035
0036
0037
0038
0039 import FWCore.PythonUtilities.LumiList as LumiList
0040
0041 lumiSecs = cms.untracked.VLuminosityBlockRange()
0042
0043
0044 readFiles = cms.untracked.vstring()
0045 readFiles.extend(
0046 [
0047 '/store/data/Run2017A/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v1/000/296/074/00000/22482926-304B-E711-802D-02163E011E07.root',
0048 '/store/data/Run2017A/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v1/000/296/116/00000/8E618859-214C-E711-80E5-02163E01A2CA.root',
0049 '/store/data/Run2017A/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v2/000/296/168/00000/6CD539ED-664C-E711-8ADB-02163E019B32.root',
0050 '/store/data/Run2017A/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v2/000/296/172/00000/4848F119-574C-E711-BECE-02163E01A6C9.root',
0051 '/store/data/Run2017A/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v2/000/296/173/00000/1C60AD2B-6B4C-E711-B956-02163E019D21.root',
0052 '/store/data/Run2017A/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v2/000/296/174/00000/B4CAA428-6F4C-E711-BE3A-02163E019CC4.root',
0053 '/store/data/Run2017B/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v1/000/297/292/00000/D6E5FC1A-2B59-E711-9CDD-02163E0120DD.root',
0054 '/store/data/Run2017B/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v1/000/297/293/00000/CCBA5DE5-2F59-E711-BE7E-02163E0143BC.root',
0055 '/store/data/Run2017B/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v1/000/297/296/00000/F8F2DBC5-2159-E711-94A0-02163E0127C7.root',
0056 '/store/data/Run2017B/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v1/000/297/308/00000/A4CA2410-1A59-E711-9FCC-02163E0129A2.root',
0057 '/store/data/Run2017B/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v1/000/297/316/00000/9CAAA3AC-0859-E711-9B38-02163E014310.root',
0058 '/store/data/Run2017B/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v1/000/297/359/00000/6EC237E0-8859-E711-A1A4-02163E011939.root',
0059 '/store/data/Run2017B/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v1/000/297/411/00000/64D101B3-185A-E711-98BF-02163E01375A.root',
0060 '/store/data/Run2017B/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v1/000/297/424/00000/C6F85109-525A-E711-878D-02163E014135.root',
0061 '/store/data/Run2017B/DoubleMuon/ALCARECO/TkAlZMuMu-PromptReco-v1/000/297/425/00000/D0C30579-4F5A-E711-A637-02163E01445D.root'
0062 ]
0063 )
0064 process.source = cms.Source("PoolSource",
0065 lumisToProcess = lumiSecs,
0066 fileNames = readFiles
0067 )
0068 process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(15500))
0069
0070 process.source.skipEvents=cms.untracked.uint32(0*-1/1)
0071 process.options = cms.untracked.PSet(
0072 SkipEvent = cms.untracked.vstring( "ProductNotFound" )
0073 )
0074
0075 strflag="ZMuMu"
0076 strflaglower=strflag.lower()
0077
0078 strflagopts="TBDconstraint:fullconstr"
0079
0080
0081 from Alignment.HIPAlignmentAlgorithm.OptionParser.HipPyOptionParser import HipPyOptionParser
0082 from Alignment.HIPAlignmentAlgorithm.OptionParser.HipPyOptionParser import matchPSetsByRecord
0083 from Alignment.HIPAlignmentAlgorithm.OptionParser.HipPyOptionParser import mergeVPSets
0084 optpy=HipPyOptionParser(strflag,strflagopts)
0085
0086
0087
0088 strtrackcollname=optpy.trkcoll
0089
0090
0091 if hasattr(optpy, "GlobalTag"):
0092 process.GlobalTag.globaltag = optpy.GlobalTag
0093 if hasattr(optpy, "GTtoGet"):
0094 process.GlobalTag.toGet = mergeVPSets(process.GlobalTag.toGet, optpy.GTtoGet, matchPSetsByRecord)
0095
0096
0097
0098 strTTRHBuilder = "WithAngleAndTemplate"
0099 if "generic" in optpy.CPEtype:
0100 strTTRHBuilder = "WithTrackAngle"
0101
0102
0103 import Alignment.CommonAlignment.tools.trackselectionRefitting as TrackRefitterSequencer
0104
0105 strTBDConstrainer=None
0106 if hasattr(optpy, "TBDconstraint"):
0107 strtbdconstr=optpy.TBDconstraint
0108 if "momconstr" in strtbdconstr:
0109 process.load("RecoTracker.TrackProducer.TwoBodyDecayMomConstraintProducer_cff")
0110 process.TwoBodyDecayMomConstraint.src = "AlignmentTrackSelector"
0111 process.TwoBodyDecayMomConstraint.primaryMass = cms.double(91.1876)
0112 process.TwoBodyDecayMomConstraint.primaryWidth = cms.double(1.4)
0113
0114
0115 process.TwoBodyDecayMomConstraint.rescaleError = cms.double(1.0)
0116 process.TwoBodyDecayMomConstraint.chi2Cut = cms.double(99999.)
0117
0118 strTBDConstrainer="TwoBodyDecayMomConstraint,momentum"
0119
0120 elif "fullconstr" in strtbdconstr:
0121 process.load("RecoTracker.TrackProducer.TwoBodyDecayConstraintProducer_cff")
0122 process.TwoBodyDecayConstraint.src = "AlignmentTrackSelector"
0123 process.TwoBodyDecayConstraint.primaryMass = cms.double(91.1876)
0124 process.TwoBodyDecayConstraint.primaryWidth = cms.double(1.4)
0125
0126 process.TwoBodyDecayConstraint.sigmaPositionCut = cms.double(0.5)
0127 process.TwoBodyDecayConstraint.rescaleError = cms.double(1.0)
0128 process.TwoBodyDecayConstraint.chi2Cut = cms.double(99999.)
0129
0130 strTBDConstrainer="TwoBodyDecayConstraint,trackParameters"
0131
0132 if strTBDConstrainer is not None:
0133 print("strTBDConstrainer=",strTBDConstrainer)
0134
0135 process.TrackRefitterSequence = TrackRefitterSequencer.getSequence(
0136 process,
0137 strtrackcollname,
0138 TTRHBuilder = strTTRHBuilder,
0139 usePixelQualityFlag = None,
0140 openMassWindow = False,
0141 cosmicsDecoMode = False,
0142 cosmicsZeroTesla = False,
0143
0144 momentumConstraint = strTBDConstrainer,
0145 cosmicTrackSplitting = False,
0146 use_d0cut = True
0147 )
0148
0149
0150 process.HighPurityTrackSelector.pMin = 0.0
0151 process.AlignmentTrackSelector.pMin = 0.0
0152 process.AlignmentTrackSelector.ptMin = 15.0
0153 process.AlignmentTrackSelector.etaMin = -3.0
0154 process.AlignmentTrackSelector.etaMax = 3.0
0155 process.AlignmentTrackSelector.nHitMin = 15
0156 process.AlignmentTrackSelector.minHitsPerSubDet.inPIXEL = cms.int32(1)
0157 process.AlignmentTrackSelector.TwoBodyDecaySelector.daughterMass = 0.105658
0158 process.AlignmentTrackSelector.TwoBodyDecaySelector.minXMass = 80.0
0159 process.AlignmentTrackSelector.TwoBodyDecaySelector.maxXMass = 100.0
0160
0161
0162 print(process.TrackRefitterSequence)
0163 subproc=[
0164 "offlineBeamSpot",
0165 "HighPurityTrackSelector",
0166 "FirstTrackRefitter",
0167 "TrackerTrackHitFilter",
0168 "HitFilteredTracksTrackFitter",
0169 "AlignmentTrackSelector",
0170 "TwoBodyDecayConstraint",
0171 "TwoBodyDecayMomConstraint",
0172 "FinalTrackRefitter"
0173 ]
0174 moduleSum=None
0175 for sp in subproc:
0176 if hasattr(process, sp):
0177 print("\n\tAttributes for process.{}".format(sp))
0178 if moduleSum is None:
0179 moduleSum=getattr(process,sp)
0180 else:
0181 moduleSum+=getattr(process,sp)
0182 for v in vars(getattr(process,sp)):
0183 print(v,":",getattr(getattr(process,sp),v))
0184
0185 process.TrackRefitterSequence = cms.Sequence(moduleSum)
0186 print("Final process path:",process.TrackRefitterSequence)
0187 process.p = cms.Path(process.TrackRefitterSequence)
0188
0189
0190 TAG = strflag
0191 if strflagopts:
0192 TAG = TAG + "_" + strflagopts
0193 TAG = TAG.replace(':','_')
0194 TAG = TAG.strip()
0195 print("Output file:","analyzed_{0}.root".format(TAG))
0196 process.Analyzer = cms.EDAnalyzer(
0197 "HIPTwoBodyDecayAnalyzer",
0198 alcarecotracks = cms.InputTag(strtrackcollname),
0199 refit1tracks = cms.InputTag("FirstTrackRefitter"),
0200 refit2tracks = cms.InputTag("HitFilteredTracksTrackFitter"),
0201 finaltracks = cms.InputTag("FinalTrackRefitter")
0202 )
0203
0204 process.options = cms.untracked.PSet(
0205 SkipEvent = cms.untracked.vstring( "ProductNotFound" )
0206 )
0207 process.TFileService = cms.Service('TFileService',
0208 fileName=cms.string("analyzed_{0}.root".format(TAG))
0209 )
0210 process.outpath = cms.EndPath(process.Analyzer)