Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-06-17 22:42:56

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 import RecoTracker.MkFit.mkFitGeometryESProducer_cfi as mkFitGeometryESProducer_cfi
0004 import RecoTracker.MkFit.mkFitSiPixelHitConverter_cfi as mkFitSiPixelHitConverter_cfi
0005 import RecoTracker.MkFit.mkFitSiStripHitConverter_cfi as mkFitSiStripHitConverter_cfi
0006 import RecoTracker.MkFit.mkFitEventOfHitsProducer_cfi as mkFitEventOfHitsProducer_cfi
0007 import RecoTracker.MkFit.mkFitSeedConverter_cfi as mkFitSeedConverter_cfi
0008 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi as mkFitIterationConfigESProducer_cfi
0009 import RecoTracker.MkFit.mkFitProducer_cfi as mkFitProducer_cfi
0010 import RecoTracker.MkFit.mkFitOutputConverter_cfi as mkFitOutputConverter_cfi
0011 import RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi as SiStripRecHitConverter_cfi
0012 
0013 def customizeHLTIter0ToMkFit(process):
0014 
0015     # if any of the following objects does not exist, do not apply any customisation
0016     for objLabel in [
0017         'hltSiStripRawToClustersFacility',
0018         'HLTDoLocalStripSequence',
0019         'HLTIterativeTrackingIteration0',
0020         'hltIter0PFlowCkfTrackCandidates',
0021     ]:
0022         if not hasattr(process, objLabel):
0023             print(f'# WARNING: customizeHLTIter0ToMkFit failed (object with label "{objLabel}" not found) - no customisation applied !')
0024             return process
0025 
0026     # mkFit needs all clusters, so switch off the on-demand mode
0027     process.hltSiStripRawToClustersFacility = cms.EDProducer(
0028         "SiStripClusterizerFromRaw",
0029         ProductLabel = cms.InputTag( "rawDataCollector" ),
0030         ConditionsLabel = cms.string( "" ),
0031         onDemand = cms.bool( True ),
0032         DoAPVEmulatorCheck = cms.bool( False ),
0033         LegacyUnpacker = cms.bool( False ),
0034         HybridZeroSuppressed = cms.bool( False ),
0035         Clusterizer = cms.PSet( 
0036             ConditionsLabel = cms.string( "" ),
0037             MaxClusterSize = cms.uint32( 32 ), 
0038             ClusterThreshold = cms.double( 5.0 ),
0039             SeedThreshold = cms.double( 3.0 ),
0040             Algorithm = cms.string( "ThreeThresholdAlgorithm" ),
0041             ChannelThreshold = cms.double( 2.0 ),
0042             MaxAdjacentBad = cms.uint32( 0 ),
0043             setDetId = cms.bool( True ),
0044             MaxSequentialHoles = cms.uint32( 0 ),
0045             RemoveApvShots = cms.bool( True ),
0046             clusterChargeCut = cms.PSet(  refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ),
0047             MaxSequentialBad = cms.uint32( 1 )
0048         ),
0049         Algorithms = cms.PSet( 
0050             Use10bitsTruncation = cms.bool( False ),
0051             CommonModeNoiseSubtractionMode = cms.string( "Median" ),
0052             useCMMeanMap = cms.bool( False ),
0053             TruncateInSuppressor = cms.bool( True ),
0054             doAPVRestore = cms.bool( False ),
0055             SiStripFedZeroSuppressionMode = cms.uint32( 4 ),
0056             PedestalSubtractionFedMode = cms.bool( True )
0057         )
0058     )
0059     process.hltSiStripRawToClustersFacility.onDemand = False
0060     process.hltSiStripRawToClustersFacility.Clusterizer.MaxClusterSize = 16
0061 
0062     process.hltSiStripRecHits = SiStripRecHitConverter_cfi.siStripMatchedRecHits.clone(
0063         ClusterProducer = "hltSiStripRawToClustersFacility",
0064         StripCPE = "hltESPStripCPEfromTrackAngle:hltESPStripCPEfromTrackAngle",
0065         doMatching = False,
0066     )
0067 
0068     # Use fourth hit if one is available
0069     process.hltIter0PFLowPixelSeedsFromPixelTracks.includeFourthHit = cms.bool(True)
0070 
0071     process.load("RecoTracker.MkFit.mkFitGeometryESProducer_cfi")
0072 
0073     process.hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits = mkFitSiPixelHitConverter_cfi.mkFitSiPixelHitConverter.clone(
0074         hits = "hltSiPixelRecHits",
0075         clusters = "hltSiPixelClusters",
0076         ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0077     )
0078     process.hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits = mkFitSiStripHitConverter_cfi.mkFitSiStripHitConverter.clone(
0079         rphiHits = "hltSiStripRecHits:rphiRecHit",
0080         stereoHits = "hltSiStripRecHits:stereoRecHit",
0081         clusters = "hltSiStripRawToClustersFacility",
0082         ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0083         minGoodStripCharge = dict(refToPSet_ = 'HLTSiStripClusterChargeCutLoose'),
0084     )
0085     process.hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits = mkFitEventOfHitsProducer_cfi.mkFitEventOfHitsProducer.clone(
0086         beamSpot  = "hltOnlineBeamSpot",
0087         pixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits",
0088         stripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits",
0089     )
0090     process.hltIter0PFlowCkfTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
0091         seeds = "hltIter0PFLowPixelSeedsFromPixelTracks",
0092         ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0093     )
0094     process.hltIter0PFlowTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
0095         ComponentName = 'hltIter0PFlowTrackCandidatesMkFitConfig',
0096         config = 'RecoTracker/MkFit/data/mkfit-phase1-hltiter0.json',
0097     )
0098     process.hltIter0PFlowCkfTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
0099         pixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits",
0100         stripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits",
0101         eventOfHits = "hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits",
0102         seeds = "hltIter0PFlowCkfTrackCandidatesMkFitSeeds",
0103         config = ('', 'hltIter0PFlowTrackCandidatesMkFitConfig'),
0104         minGoodStripCharge = dict(refToPSet_ = 'HLTSiStripClusterChargeCutNone'),
0105     )
0106     process.hltIter0PFlowCkfTrackCandidates = mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
0107         seeds = "hltIter0PFLowPixelSeedsFromPixelTracks",
0108         mkFitEventOfHits = "hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits",
0109         mkFitPixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits",
0110         mkFitStripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits",
0111         mkFitSeeds = "hltIter0PFlowCkfTrackCandidatesMkFitSeeds",
0112         tracks = "hltIter0PFlowCkfTrackCandidatesMkFit",
0113         ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0114         propagatorAlong = ":PropagatorWithMaterialParabolicMf",
0115         propagatorOpposite = ":PropagatorWithMaterialParabolicMfOpposite",
0116     )
0117 
0118     replaceWith = (process.hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits +
0119                    process.hltSiStripRecHits +
0120                    process.hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits +
0121                    process.hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits +
0122                    process.hltIter0PFlowCkfTrackCandidatesMkFitSeeds +
0123                    process.hltIter0PFlowCkfTrackCandidatesMkFit +
0124                    process.hltIter0PFlowCkfTrackCandidates)
0125 
0126     process.HLTIterativeTrackingIteration0.replace(process.hltIter0PFlowCkfTrackCandidates, replaceWith)
0127 
0128     for path in process.paths_().values():
0129       if not path.contains(process.HLTIterativeTrackingIteration0) and path.contains(process.hltIter0PFlowCkfTrackCandidates):
0130         path.replace(process.hltIter0PFlowCkfTrackCandidates, replaceWith)
0131 
0132     process.hltIter0PFlowTrackCutClassifier.mva.maxChi2 = cms.vdouble( 999.0, 999.0, 99.0 )
0133     process.hltIter0PFlowTrackCutClassifier.mva.maxChi2n = cms.vdouble( 999.0, 999.0, 999.0 )
0134     process.hltIter0PFlowTrackCutClassifier.mva.dr_par = cms.PSet( 
0135         d0err = cms.vdouble( 0.003, 0.003, 0.003 ),
0136         dr_par1 = cms.vdouble( 3.40282346639E38, 0.6, 0.6 ),
0137         dr_par2 = cms.vdouble( 3.40282346639E38, 0.45, 0.45 ),
0138         dr_exp = cms.vint32( 4, 4, 4 ),
0139         d0err_par = cms.vdouble( 0.001, 0.001, 0.001 )
0140     )
0141     process.hltIter0PFlowTrackCutClassifier.mva.dz_par = cms.PSet( 
0142         dz_par1 = cms.vdouble( 3.40282346639E38, 0.6, 0.6 ),
0143         dz_par2 = cms.vdouble( 3.40282346639E38, 0.51, 0.51 ),
0144         dz_exp = cms.vint32( 4, 4, 4 )
0145     )
0146 
0147     if hasattr(process, 'HLTIterativeTrackingIteration0SerialSync'):
0148         process.hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHitsSerialSync = process.hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits.clone(
0149             hits = "hltSiPixelRecHitsSerialSync",
0150             clusters = "hltSiPixelClustersSerialSync",
0151         )
0152         process.hltIter0PFlowCkfTrackCandidatesMkFitEventOfHitsSerialSync = process.hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits.clone(
0153             pixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHitsSerialSync",
0154         )
0155         process.hltIter0PFlowCkfTrackCandidatesMkFitSeedsSerialSync = process.hltIter0PFlowCkfTrackCandidatesMkFitSeeds.clone(
0156             seeds = "hltIter0PFLowPixelSeedsFromPixelTracksSerialSync",
0157         )
0158         process.hltIter0PFlowCkfTrackCandidatesMkFitSerialSync = process.hltIter0PFlowCkfTrackCandidatesMkFit.clone(
0159             pixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHitsSerialSync",
0160             eventOfHits = "hltIter0PFlowCkfTrackCandidatesMkFitEventOfHitsSerialSync",
0161             seeds = "hltIter0PFlowCkfTrackCandidatesMkFitSeedsSerialSync",
0162         )
0163         process.hltIter0PFlowCkfTrackCandidatesSerialSync = process.hltIter0PFlowCkfTrackCandidates.clone(
0164             seeds = "hltIter0PFLowPixelSeedsFromPixelTracksSerialSync",
0165             mkFitEventOfHits = "hltIter0PFlowCkfTrackCandidatesMkFitEventOfHitsSerialSync",
0166             mkFitPixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHitsSerialSync",
0167             mkFitSeeds = "hltIter0PFlowCkfTrackCandidatesMkFitSeedsSerialSync",
0168             tracks = "hltIter0PFlowCkfTrackCandidatesMkFitSerialSync",
0169         )
0170 
0171         process.hltIter0PFlowTrackCutClassifierSerialSync.mva.maxChi2 = cms.vdouble( 999.0, 999.0, 99.0 )
0172         process.hltIter0PFlowTrackCutClassifierSerialSync.mva.maxChi2n = cms.vdouble( 999.0, 999.0, 999.0 )
0173         process.hltIter0PFlowTrackCutClassifierSerialSync.mva.dr_par = cms.PSet( 
0174             d0err = cms.vdouble( 0.003, 0.003, 0.003 ),
0175             dr_par1 = cms.vdouble( 3.40282346639E38, 0.6, 0.6 ),
0176             dr_par2 = cms.vdouble( 3.40282346639E38, 0.45, 0.45 ),
0177             dr_exp = cms.vint32( 4, 4, 4 ),
0178             d0err_par = cms.vdouble( 0.001, 0.001, 0.001 )
0179         )
0180         process.hltIter0PFlowTrackCutClassifierSerialSync.mva.dz_par = cms.PSet( 
0181             dz_par1 = cms.vdouble( 3.40282346639E38, 0.6, 0.6 ),
0182             dz_par2 = cms.vdouble( 3.40282346639E38, 0.51, 0.51 ),
0183             dz_exp = cms.vint32( 4, 4, 4 )
0184         )
0185         process.HLTDoLocalStripSequenceSerialSync += process.hltSiStripRecHits
0186 
0187         replaceWithSerialSync = (process.hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHitsSerialSync +
0188                                  process.hltSiStripRecHits +
0189                                  process.hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits +
0190                                  process.hltIter0PFlowCkfTrackCandidatesMkFitEventOfHitsSerialSync +
0191                                  process.hltIter0PFlowCkfTrackCandidatesMkFitSeedsSerialSync +
0192                                  process.hltIter0PFlowCkfTrackCandidatesMkFitSerialSync +
0193                                  process.hltIter0PFlowCkfTrackCandidatesSerialSync)
0194 
0195         process.HLTIterativeTrackingIteration0SerialSync.replace(process.hltIter0PFlowCkfTrackCandidatesSerialSync, replaceWithSerialSync)
0196 
0197         for path in process.paths_().values():
0198             if not path.contains(process.HLTIterativeTrackingIteration0SerialSync) and path.contains(process.hltIter0PFlowCkfTrackCandidatesSerialSync):
0199                 path.replace(process.hltIter0PFlowCkfTrackCandidatesSerialSync, replaceWithSerialSync)
0200 
0201     return process
0202 
0203 def customizeHLTDoubletRecoveryToMkFit(process):
0204 
0205     # if any of the following objects does not exist, do not apply any customisation
0206     for objLabel in [
0207         'HLTIterativeTrackingDoubletRecovery',
0208         'hltDoubletRecoveryPFlowCkfTrackCandidates',
0209     ]:
0210         if not hasattr(process, objLabel):
0211             print(f'# WARNING: customizeHLTDoubletRecoveryToMkFit failed (object with label "{objLabel}" not found) - no customisation applied !')
0212             return process
0213 
0214     process.hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
0215         seeds = "hltDoubletRecoveryPFlowPixelSeeds",
0216         ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0217     )
0218     process.hltDoubletRecoveryPFlowTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
0219         ComponentName = 'hltDoubletRecoveryPFlowTrackCandidatesMkFitConfig',
0220         config = 'RecoTracker/MkFit/data/mkfit-phase1-hltdr.json',
0221         minPt = 0.7,
0222     )
0223     process.hltDoubletRecoveryPFlowCkfTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
0224         pixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits",
0225         stripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits",
0226         eventOfHits = "hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits",
0227         seeds = "hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSeeds",
0228         config = cms.ESInputTag('', 'hltDoubletRecoveryPFlowTrackCandidatesMkFitConfig'),
0229         minGoodStripCharge = dict(refToPSet_ = 'HLTSiStripClusterChargeCutNone'),
0230     )
0231     process.hltDoubletRecoveryPFlowCkfTrackCandidatesMkFit.clustersToSkip = "hltDoubletRecoveryClustersRefRemoval"
0232     process.hltDoubletRecoveryPFlowCkfTrackCandidates = mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
0233         seeds = "hltDoubletRecoveryPFlowPixelSeeds",
0234         mkFitEventOfHits = "hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits",
0235         mkFitPixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits",
0236         mkFitStripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits",
0237         mkFitSeeds = "hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSeeds",
0238         tracks = "hltDoubletRecoveryPFlowCkfTrackCandidatesMkFit",
0239         ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0240         propagatorAlong = ":PropagatorWithMaterialParabolicMf",
0241         propagatorOpposite = ":PropagatorWithMaterialParabolicMfOpposite",
0242     )
0243     replaceWith = (process.hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSeeds +
0244                    process.hltDoubletRecoveryPFlowCkfTrackCandidatesMkFit +
0245                    process.hltDoubletRecoveryPFlowCkfTrackCandidates)
0246     process.HLTIterativeTrackingDoubletRecovery.replace(process.hltDoubletRecoveryPFlowCkfTrackCandidates, replaceWith)
0247     for path in process.paths_().values():
0248       if not path.contains(process.HLTIterativeTrackingDoubletRecovery) and path.contains(process.hltDoubletRecoveryPFlowCkfTrackCandidates):
0249         path.replace(process.hltDoubletRecoveryPFlowCkfTrackCandidates, replaceWith)
0250 
0251     if hasattr(process, 'HLTIterativeTrackingDoubletRecoverySerialSync'):
0252         process.hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSeedsSerialSync = process.hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSeeds.clone(
0253             seeds = "hltDoubletRecoveryPFlowPixelSeedsSerialSync"
0254         )
0255         process.hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSerialSync = process.hltDoubletRecoveryPFlowCkfTrackCandidatesMkFit.clone(
0256             pixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHitsSerialSync",
0257             stripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits",
0258             eventOfHits = "hltIter0PFlowCkfTrackCandidatesMkFitEventOfHitsSerialSync",
0259             seeds = "hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSeedsSerialSync",
0260             config = cms.ESInputTag('', 'hltDoubletRecoveryPFlowTrackCandidatesMkFitConfig'),
0261             minGoodStripCharge = dict(refToPSet_ = 'HLTSiStripClusterChargeCutNone'),        
0262         )
0263         process.hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSerialSync.clustersToSkip = "hltDoubletRecoveryClustersRefRemovalSerialSync"
0264         process.hltDoubletRecoveryPFlowCkfTrackCandidatesSerialSync = process.hltDoubletRecoveryPFlowCkfTrackCandidates.clone(
0265             seeds = "hltDoubletRecoveryPFlowPixelSeedsSerialSync",
0266             mkFitEventOfHits = "hltIter0PFlowCkfTrackCandidatesMkFitEventOfHitsSerialSync",
0267             mkFitPixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHitsSerialSync",
0268             mkFitSeeds = "hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSeedsSerialSync",
0269             tracks = "hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSerialSync",
0270         )
0271         replaceWithSerialSync = (process.hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSeedsSerialSync +
0272                                  process.hltDoubletRecoveryPFlowCkfTrackCandidatesMkFitSerialSync +
0273                                  process.hltDoubletRecoveryPFlowCkfTrackCandidatesSerialSync)
0274         process.HLTIterativeTrackingDoubletRecoverySerialSync.replace(process.hltDoubletRecoveryPFlowCkfTrackCandidatesSerialSync, replaceWithSerialSync)
0275         for path in process.paths_().values():
0276             if not path.contains(process.HLTIterativeTrackingDoubletRecoverySerialSync) and path.contains(process.hltDoubletRecoveryPFlowCkfTrackCandidatesSerialSync):
0277                 path.replace(process.hltDoubletRecoveryPFlowCkfTrackCandidatesSerialSync, replaceWithSerialSync)
0278 
0279     process.hltDoubletRecoveryPFlowTrackCutClassifier.mva.maxChi2 = cms.vdouble( 999.0, 999.0, 4.9 )
0280     process.hltDoubletRecoveryPFlowTrackCutClassifier.mva.maxChi2n = cms.vdouble( 999.0, 999.0, 0.7 )
0281     process.hltDoubletRecoveryPFlowTrackCutClassifier.mva.dr_par = cms.PSet( 
0282         d0err = cms.vdouble( 0.003, 0.003, 0.003 ),
0283         dr_par1 = cms.vdouble( 3.40282346639E38, 0.45, 0.45 ),
0284         dr_par2 = cms.vdouble( 3.40282346639E38, 0.34, 0.34 ),
0285         dr_exp = cms.vint32( 4, 4, 4 ),
0286         d0err_par = cms.vdouble( 0.001, 0.001, 0.001 )
0287     )
0288     process.hltDoubletRecoveryPFlowTrackCutClassifier.mva.dz_par = cms.PSet( 
0289         dz_par1 = cms.vdouble( 3.40282346639E38, 0.45, 0.45 ),
0290         dz_par2 = cms.vdouble( 3.40282346639E38, 0.39, 0.39 ),
0291         dz_exp = cms.vint32( 4, 4, 4 )
0292     )
0293     process.hltDoubletRecoveryPFlowTrackCutClassifier.mva.min3DLayers = cms.vint32( 0, 0, 3 )
0294     process.hltDoubletRecoveryPFlowTrackCutClassifier.mva.minLayers = cms.vint32( 0, 0, 4 )
0295     process.hltDoubletRecoveryPFlowTrackCutClassifier.mva.minHits = cms.vint32( 0, 0, 5 )
0296     process.hltDoubletRecoveryPFlowTrackCutClassifier.mva.maxLostLayers = cms.vint32( 0, 0, 0 )
0297 
0298     if hasattr(process, 'hltDoubletRecoveryPFlowTrackCutClassifierSerialSync'):
0299         process.hltDoubletRecoveryPFlowTrackCutClassifierSerialSync.mva.maxChi2 = cms.vdouble( 999.0, 99.0, 4.9 )
0300         process.hltDoubletRecoveryPFlowTrackCutClassifierSerialSync.mva.maxChi2n = cms.vdouble( 999.0, 999.0, 0.7 )
0301         process.hltDoubletRecoveryPFlowTrackCutClassifierSerialSync.mva.dr_par = cms.PSet( 
0302             d0err = cms.vdouble( 0.003, 0.003, 0.003 ),
0303             d0err_par = cms.vdouble( 0.001, 0.001, 0.001 ),
0304             dr_par1 = cms.vdouble( 3.40282346639E38, 0.45, 0.45 ),
0305             dr_par2 = cms.vdouble( 3.40282346639E38, 0.34, 0.34 ),
0306             dr_exp = cms.vint32( 4, 4, 4 ),
0307         )
0308         process.hltDoubletRecoveryPFlowTrackCutClassifierSerialSync.mva.dz_par = cms.PSet( 
0309             dz_par1 = cms.vdouble( 3.40282346639E38, 0.45, 0.45 ),
0310             dz_par2 = cms.vdouble( 3.40282346639E38, 0.39, 0.39 ),
0311             dz_exp = cms.vint32( 4, 4, 4 )
0312         )
0313         process.hltDoubletRecoveryPFlowTrackCutClassifierSerialSync.mva.min3DLayers = cms.vint32( 0, 0, 3 )
0314         process.hltDoubletRecoveryPFlowTrackCutClassifierSerialSync.mva.minLayers = cms.vint32( 0, 0, 4 )
0315         process.hltDoubletRecoveryPFlowTrackCutClassifierSerialSync.mva.minHits = cms.vint32( 0, 0, 5 )
0316         process.hltDoubletRecoveryPFlowTrackCutClassifierSerialSync.mva.maxLostLayers = cms.vint32( 0, 0, 0 )
0317 
0318     return process
0319 
0320 def modifyMinOutputModuleForTrackingValidation(process, filename="output.root"):
0321 
0322     for objLabel in [
0323         'hltOutputMinimal',
0324     ]:
0325         if not hasattr(process, objLabel):
0326             print(f'# WARNING: customize command failed (object with label "{objLabel}" not found) - no customisation applied !')
0327             return process
0328 
0329     process.load('Configuration.EventContent.EventContent_cff')
0330     process.hltOutputMinimal.outputCommands = process.FEVTDEBUGHLTEventContent.outputCommands
0331     process.hltOutputMinimal.fileName = filename
0332     process.schedule.remove( process.DQMOutput )
0333     return process