Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:31:54

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 process = cms.Process("testAlignmentStats") 
0004 
0005 ###################################################################
0006 # Set the process to run multi-threaded
0007 ###################################################################
0008 process.options.numberOfThreads = 8
0009 
0010 ###################################################################
0011 # Messages
0012 ###################################################################
0013 
0014 ###################################################################
0015 # Messages
0016 ###################################################################
0017 process.load('FWCore.MessageService.MessageLogger_cfi')
0018 process.MessageLogger.cerr.enable = False
0019 process.MessageLogger.GeoInfo=dict()
0020 process.MessageLogger.AlignmentStats=dict()
0021 process.MessageLogger.cout = cms.untracked.PSet(
0022     enable = cms.untracked.bool(True),
0023     threshold = cms.untracked.string("INFO"),
0024     default   = cms.untracked.PSet(limit = cms.untracked.int32(0)),
0025     FwkReport = cms.untracked.PSet(limit = cms.untracked.int32(-1),
0026                                    reportEvery = cms.untracked.int32(10)
0027                                    ),
0028     GeoInfo          = cms.untracked.PSet( limit = cms.untracked.int32(-1)),
0029     AlignmentStats    = cms.untracked.PSet( limit = cms.untracked.int32(-1)),
0030     enableStatistics = cms.untracked.bool(True)
0031     )
0032 
0033 ####################################################################
0034 # Get the Magnetic Field
0035 ####################################################################
0036 process.load('Configuration.StandardSequences.MagneticField_cff')
0037 
0038 ###################################################################
0039 # Standard loads
0040 ###################################################################
0041 process.load("Configuration.Geometry.GeometryRecoDB_cff")
0042 
0043 ####################################################################
0044 # Produce the Transient Track Record in the event
0045 ####################################################################
0046 process.load("TrackingTools.TransientTrack.TransientTrackBuilder_cfi")
0047 
0048 ###################################################################
0049 # Event source and run selection
0050 ###################################################################
0051 from Alignment.OfflineValidation.TkAlAllInOneTool.defaultInputFiles_cff import filesDefaultMC_TTBarPU
0052 process.source = cms.Source("PoolSource",
0053                             fileNames = filesDefaultMC_TTBarPU,
0054                             duplicateCheckMode = cms.untracked.string('checkAllFilesOpened')
0055                             )
0056 
0057 runboundary = 1
0058 process.source.firstRun = cms.untracked.uint32(int(runboundary))
0059 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(100) )
0060 
0061 ####################################################################
0062 # Get the GlogalTag
0063 ####################################################################
0064 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
0065 from Configuration.AlCa.GlobalTag import GlobalTag
0066 process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '')
0067 
0068 ####################################################################
0069 # Get the BeamSpot
0070 ####################################################################
0071 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
0072 process.myBeamSpot = process.offlineBeamSpot.clone()
0073 
0074 ####################################################################
0075 #1: first refit to the tracks, needed for getting the Traj
0076 ####################################################################
0077 from TrackingTools.TrackFitters.RungeKuttaFitters_cff import *
0078 process.FittingSmootherCustomised = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(ComponentName = 'FittingSmootherCustomised',
0079                                                                                                                                        EstimateCut=18.0,
0080                                                                                                                                        MinNumberOfHits=6)
0081 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
0082 import RecoTracker.TrackProducer.TrackRefitters_cff
0083 process.TrackRefitterCTF1 = RecoTracker.TrackProducer.TrackRefitter_cfi.TrackRefitter.clone(
0084     constraint = "",
0085     src='generalTracks',
0086     NavigationSchool = '',
0087     TTRHBuilder = 'WithAngleAndTemplate',
0088     TrajectoryInEvent = True,
0089     beamSpot='myBeamSpot')
0090 
0091 ####################################################################
0092 # 2b: apply NEW hit filter. Does not work with CosmicTF tracks !
0093 ####################################################################
0094 from RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff import *
0095 process.AlignmentHitFilterCTF = RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff.TrackerTrackHitFilter.clone(
0096     src = 'TrackRefitterCTF1',
0097     commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC"),
0098     minimumHits = 6,
0099     replaceWithInactiveHits = True,
0100     stripAllInvalidHits = False,
0101     rejectBadStoNHits = True,
0102     StoNcommands = cms.vstring("ALL 18.0"),
0103     useTrajectories= True,
0104     rejectLowAngleHits= True,
0105     TrackAngleCut= 0.17,
0106     usePixelQualityFlag= True,
0107     PxlCorrClusterChargeCut=10000.0)
0108 
0109 ####################################################################
0110 # 3: produce track after NEW track hit filter
0111 ####################################################################
0112 from RecoTracker.TrackProducer.CTFFinalFitWithMaterial_cff import *
0113 process.ctfProducerCustomisedCTF = RecoTracker.TrackProducer.CTFFinalFitWithMaterial_cff.ctfWithMaterialTracks.clone(
0114     src = 'AlignmentHitFilterCTF',
0115     beamSpot='myBeamSpot',
0116     # Fitter = 'FittingSmootherCustomised',
0117     TTRHBuilder = 'WithAngleAndTemplate',
0118     TrajectoryInEvent = True)
0119 
0120 ####################################################################
0121 # 4: apply track selections on the refitted tracks
0122 ####################################################################
0123 process.load("RecoTracker.MeasurementDet.MeasurementTrackerEventProducer_cfi")
0124 from Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi import *
0125 process.ALCARECOTkAlMinBiasSkimmed = AlignmentTrackSelector.clone(
0126     src= 'ctfProducerCustomisedCTF',
0127     ptMin=1.5, # already in ALCARECO cfg
0128     ptMax=9999.0,
0129     pMin=3.0,
0130     pMax=9999.0,
0131     etaMin=-2.4,  # already in ALCARECO cfg
0132     etaMax=2.4,   # already in ALCARECO cfg
0133     nHitMin=8,
0134     nHitMin2D=2,
0135     chi2nMax=6.0
0136     ### others which aren't used
0137     # minHitsPerSubDet.inTIB = 0
0138     # minHitsPerSubDet.inBPIX = 1
0139     )
0140 
0141 process.TrackRefitterCTF2 = RecoTracker.TrackProducer.TrackRefitter_cfi.TrackRefitter.clone(
0142     constraint = "",
0143     src='ALCARECOTkAlMinBiasSkimmed',
0144     TTRHBuilder = 'WithAngleAndTemplate',
0145     TrajectoryInEvent = True,
0146     NavigationSchool = '',
0147     beamSpot='myBeamSpot',
0148     # EstimateCut=15.0,
0149     # MinNumberOfHits=6
0150     # Fitter='FittingSmootherCustomised'
0151     ) 
0152 
0153 ####################################################################
0154 # 5: Overlap tagger
0155 ####################################################################
0156 from Alignment.TrackerAlignment.TkAlCaOverlapTagger_cff import *
0157 process.OverlapAssoMapCTF = OverlapTagger.clone(
0158     # src='ALCARECOTkAlCosmicsCTFSkimmed'
0159     src='TrackRefitterCTF2',
0160     #Clustersrc='ALCARECOTkAlCosmicsCTF0T'
0161     Clustersrc='ALCARECOTkAlMinBiasSkimmed'#the track selector produces a new collection of Clusters!
0162 )
0163 
0164 
0165 ####################################################################
0166 # 6: counts
0167 ####################################################################
0168 from Alignment.CommonAlignmentMonitor.AlignmentStats_cff import *
0169 process.NewStatsCTF = AlignmentStats.clone(
0170     #  src='OverlapAssoMap',
0171     src='TrackRefitterCTF2',
0172     OverlapAssoMap='OverlapAssoMapCTF',
0173     keepTrackStats = False,
0174     keepHitStats = True,
0175     TrkStatsFileName='TracksStatisticsCTF.root',
0176     HitStatsFileName='HitMapsCTF.root',
0177     TrkStatsPrescale= 1                            
0178     )
0179 
0180 ##________________________________Sequences____________________________________
0181 process.seqALCARECOTkAlMinBiasSkimmed = cms.Sequence(process.myBeamSpot *
0182                                                      process.offlineBeamSpot *
0183                                                      process.MeasurementTrackerEvent *
0184                                                      process.TrackRefitterCTF1 *
0185                                                      process.AlignmentHitFilterCTF *
0186                                                      process.ctfProducerCustomisedCTF *
0187                                                      process.ALCARECOTkAlMinBiasSkimmed *
0188                                                      process.TrackRefitterCTF2 *
0189                                                      process.OverlapAssoMapCTF *
0190                                                      process.NewStatsCTF)
0191 
0192 process.p2 = cms.Path(process.seqALCARECOTkAlMinBiasSkimmed)