![]() |
|
|||
File indexing completed on 2024-04-06 11:57:20
0001 import FWCore.ParameterSet.Config as cms 0002 from Alignment.OfflineValidation.TkAlAllInOneTool.defaultInputFiles_cff import filesDefaultData_Comissioning2022_Cosmics_string 0003 0004 ################################################################### 0005 # Setup 'standard' options 0006 ################################################################### 0007 import FWCore.ParameterSet.VarParsing as VarParsing 0008 options = VarParsing.VarParsing() 0009 options.register('outFileName', 0010 "CosmicTrackSplitterValidation.root", # default value 0011 VarParsing.VarParsing.multiplicity.singleton, # singleton or list 0012 VarParsing.VarParsing.varType.string, # string, int, or float 0013 "name of the output file (test.root is default)") 0014 0015 options.register('trackCollection', 0016 "ALCARECOTkAlCosmicsCTF0T", #"ctfWithMaterialTracksP5" 0017 VarParsing.VarParsing.multiplicity.singleton, # singleton or list 0018 VarParsing.VarParsing.varType.string, # string, int, or float 0019 "name of the input track collection") 0020 0021 options.register('globalTag', 0022 "auto:run3_data_prompt", # default value 0023 VarParsing.VarParsing.multiplicity.singleton, # singleton or list 0024 VarParsing.VarParsing.varType.string, # string, int, or float 0025 "name of the input Global Tag") 0026 0027 options.register('unitTest', 0028 False, # default value 0029 VarParsing.VarParsing.multiplicity.singleton, # singleton or list 0030 VarParsing.VarParsing.varType.bool, # string, int, or float 0031 "is it a unit test?") 0032 0033 options.register('maxEvents', 0034 -1, 0035 VarParsing.VarParsing.multiplicity.singleton, # singleton or list 0036 VarParsing.VarParsing.varType.int, # string, int, or float 0037 "num. events to run") 0038 0039 options.parseArguments() 0040 0041 ################################################################### 0042 # process name: should be used in the CosmicSplitterValidation config! 0043 ################################################################### 0044 process = cms.Process("splitter") 0045 0046 ################################################################### 0047 # message logger 0048 ################################################################### 0049 process.load("FWCore.MessageLogger.MessageLogger_cfi") 0050 ## report only every 100th record 0051 process.MessageLogger.cerr.FwkReport.reportEvery = 1 if (options.unitTest) else 100 0052 0053 ################################################################### 0054 # magnetic field 0055 ################################################################### 0056 process.load("Configuration.StandardSequences.MagneticField_cff") 0057 process.load('Configuration.StandardSequences.Services_cff') 0058 process.load("Configuration.Geometry.GeometryRecoDB_cff") 0059 0060 ################################################################### 0061 # including global tag 0062 ################################################################### 0063 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") 0064 from Configuration.AlCa.GlobalTag import GlobalTag 0065 process.GlobalTag = GlobalTag(process.GlobalTag,options.globalTag, '') 0066 0067 ################################################################### 0068 # track selectors and refitting 0069 ################################################################### 0070 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi") 0071 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff") 0072 process.load("RecoTracker.TrackProducer.TrackRefitters_cff") 0073 0074 ################################################################### 0075 # event source 0076 ################################################################### 0077 readFiles = cms.untracked.vstring() 0078 process.source = cms.Source("PoolSource",fileNames = readFiles) 0079 if(options.unitTest): 0080 ## fixed input for the unit test 0081 readFiles.extend([filesDefaultData_Comissioning2022_Cosmics_string]) 0082 else : 0083 readFiles.extend([]) # put here your file list 0084 print('No input files specified!') 0085 0086 process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32((10 if (options.unitTest) else options.maxEvents))) 0087 0088 ################################################################### 0089 # adding geometries 0090 ################################################################### 0091 from CondCore.CondDB.CondDB_cfi import * 0092 CondDBConnection = CondDB.clone(connect = 'frontier://FrontierProd/CMS_CONDITIONS') 0093 0094 ################################################################### 0095 # CRAFT REPRO geom 0096 ################################################################### 0097 process.trackerAlignment = cms.ESSource("PoolDBESSource", 0098 CondDBConnection, 0099 toGet = cms.VPSet(cms.PSet( 0100 record = cms.string('TrackerAlignmentRcd'), 0101 tag = cms.string('TrackerAlignment_v30_offline') 0102 ))) 0103 0104 ################################################################### 0105 # APEs REPRO 0106 ################################################################### 0107 process.trackerAPE = cms.ESSource("PoolDBESSource", 0108 CondDBConnection, 0109 toGet = cms.VPSet(cms.PSet( 0110 record = cms.string('TrackerAlignmentErrorExtendedRcd'), 0111 tag = cms.string('TrackerAlignmentExtendedErrors_v16_offline_IOVs') 0112 ))) 0113 0114 ################################################################### 0115 # set prefer 0116 ################################################################### 0117 process.es_prefer_trackerAlignment = cms.ESPrefer("PoolDBESSource", "trackerAlignment") 0118 process.es_prefer_trackerAPE = cms.ESPrefer("PoolDBESSource", "trackerAPE") 0119 0120 # # hit filter 0121 # process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff") 0122 # # parameters for TrackerTrackHitFilter 0123 # #process.TrackerTrackHitFilter.src = "cosmictrackfinderP5" 0124 # #process.TrackerTrackHitFilter.src = 'ALCARECOTkAlCosmicsCTF' 0125 # #process.TrackerTrackHitFilter.src = 'ALCARECOTkAlCosmicsCTF0T' 0126 # process.TrackerTrackHitFilter.src = options.trackCollection 0127 # process.TrackerTrackHitFilter.rejectBadStoNHits = True 0128 # process.TrackerTrackHitFilter.TrackAngleCut = 0.1 0129 0130 # # re-build the track 0131 # import RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff #TrackRefitters_cff 0132 # process.HitFilteredTracks = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.ctfWithMaterialTracksCosmics.clone( 0133 # src = 'TrackerTrackHitFilter', 0134 # TTRHBuilder = "WithAngleAndTemplate" 0135 # ) 0136 0137 # # refit tracks first 0138 # process.TrackRefitterP5.src = 'HitFilteredTracks' 0139 # #process.TrackRefitterP5.src = "ALCARECOTkAlCosmicsCosmicTF0T" 0140 # process.TrackRefitterP5.TTRHBuilder = "WithTrackAngle" 0141 # process.FittingSmootherRKP5.EstimateCut = -1 0142 0143 # # module configuration 0144 # # alignment track selector 0145 # #process.AlignmentTrackSelector.src = "ALCARECOTkAlCosmicsCTF0T" 0146 # #process.AlignmentTrackSelector.src = "TrackerTrackHitFilter" 0147 # process.AlignmentTrackSelector.src = "TrackRefitterP5" 0148 # process.AlignmentTrackSelector.filter = True 0149 # process.AlignmentTrackSelector.applyBasicCuts = True 0150 # process.AlignmentTrackSelector.ptMin = 0. 0151 # process.AlignmentTrackSelector.pMin = 4. 0152 # process.AlignmentTrackSelector.ptMax = 9999. 0153 # process.AlignmentTrackSelector.pMax = 9999. 0154 # process.AlignmentTrackSelector.etaMin = -9999. 0155 # process.AlignmentTrackSelector.etaMax = 9999. 0156 # process.AlignmentTrackSelector.nHitMin = 10 0157 # process.AlignmentTrackSelector.nHitMin2D = 2 0158 # process.AlignmentTrackSelector.chi2nMax = 9999. 0159 # process.AlignmentTrackSelector.applyMultiplicityFilter = True 0160 # process.AlignmentTrackSelector.maxMultiplicity = 1 0161 # process.AlignmentTrackSelector.applyNHighestPt = False 0162 # process.AlignmentTrackSelector.nHighestPt = 1 0163 # process.AlignmentTrackSelector.seedOnlyFrom = 0 0164 # process.AlignmentTrackSelector.applyIsolationCut = False 0165 # process.AlignmentTrackSelector.minHitIsolation = 0.8 0166 # process.AlignmentTrackSelector.applyChargeCheck = False 0167 # process.AlignmentTrackSelector.minHitChargeStrip = 50. 0168 # process.AlignmentTrackSelector.minHitsPerSubDet.inBPIX = 2 0169 # process.KFFittingSmootherWithOutliersRejectionAndRK.EstimateCut=30.0 0170 # process.KFFittingSmootherWithOutliersRejectionAndRK.MinNumberOfHits=4 0171 0172 # # configuration of the track spitting module 0173 # # new cuts allow for cutting on the impact parameter of the original track 0174 # process.load("RecoTracker.FinalTrackSelectors.cosmicTrackSplitter_cfi") 0175 # process.cosmicTrackSplitter.tracks='AlignmentTrackSelector' 0176 # process.cosmicTrackSplitter.tjTkAssociationMapTag='TrackRefitterP5' 0177 0178 # #--------------------------------------------------------------------- 0179 # # the output of the track hit filter are track candidates 0180 # # give them to the TrackProducer 0181 # process.ctfWithMaterialTracksP5.src = 'cosmicTrackSplitter' 0182 0183 # # second refit 0184 # import RecoTracker.TrackProducer.TrackRefitters_cff 0185 # process.TrackRefitter2 = RecoTracker.TrackProducer.TrackRefitterP5_cfi.TrackRefitterP5.clone() 0186 # process.TrackRefitter2.src = 'ctfWithMaterialTracksP5' 0187 # process.TrackRefitter2.TTRHBuilder = "WithTrackAngle" 0188 0189 # process.p = cms.Path( 0190 # process.offlineBeamSpot * 0191 # process.TrackerTrackHitFilter * 0192 # process.HitFilteredTracks * 0193 # process.TrackRefitterP5 * 0194 # process.AlignmentTrackSelector * 0195 # process.cosmicTrackSplitter * 0196 # process.ctfWithMaterialTracksP5 * 0197 # process.TrackRefitter2 * 0198 # process.cosmicValidation) 0199 0200 ################################################################### 0201 # common track selection / refitter sequence 0202 ################################################################### 0203 import Alignment.CommonAlignment.tools.trackselectionRefitting as trackselRefit 0204 process.seqTrackselRefit = trackselRefit.getSequence(process, options.trackCollection , 0205 isPVValidation=False, 0206 TTRHBuilder='WithAngleAndTemplate', 0207 usePixelQualityFlag=True, 0208 openMassWindow=False, 0209 cosmicsDecoMode=True, 0210 cosmicsZeroTesla=False, 0211 momentumConstraint=None, 0212 cosmicTrackSplitting=True, 0213 use_d0cut=False) 0214 0215 ################################################################### 0216 # adding this ~doubles the efficiency of selection (!) 0217 ################################################################### 0218 process.FittingSmootherRKP5.EstimateCut = -1 0219 0220 ################################################################### 0221 # the analysis module 0222 ################################################################### 0223 from Alignment.OfflineValidation.cosmicSplitterValidation_cfi import cosmicSplitterValidation as _cosmicSplitterValidation 0224 process.cosmicValidation = _cosmicSplitterValidation.clone( 0225 ifSplitMuons = False, 0226 checkIfGolden = False, 0227 splitTracks = ("FinalTrackRefitter","","splitter"), # important the 3rd argument should be the name of the process! 0228 splitGlobalMuons = ("muons","","splitter"), # important the 3rd argument should be the name of the process! 0229 originalTracks = ("FirstTrackRefitter","","splitter"), # important the 3rd argument should be the name of the process! 0230 originalGlobalMuons = ("muons","","Rec")) 0231 0232 ################################################################### 0233 # Output file 0234 ################################################################### 0235 process.TFileService = cms.Service("TFileService", 0236 fileName = cms.string(options.outFileName)) 0237 0238 ################################################################### 0239 # path 0240 ################################################################### 0241 process.p = cms.Path( 0242 process.seqTrackselRefit * 0243 process.cosmicValidation)
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |