File indexing completed on 2025-04-17 02:41:45
0001 import os
0002
0003 import FWCore.ParameterSet.Config as cms
0004
0005
0006
0007
0008
0009
0010
0011 import FWCore.ParameterSet.VarParsing as VarParsing
0012 import sys
0013 options = VarParsing.VarParsing ('standard')
0014 options.register('workingArea', None, VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, "Working area")
0015 options.register('globalTag', "None", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, "Custom global tag")
0016 options.register('measName', None, VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, "Folder in which to store results")
0017 options.register('fileNumber', 1, VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.int, "Input file number")
0018 options.register('iteration', 0, VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.int, "Iteration number")
0019 options.register('lastIter', False, VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.bool, "Last iteration")
0020 options.register('isCosmics', False, VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.bool, "Cosmic data set")
0021
0022 options.parseArguments()
0023
0024
0025
0026
0027 process = cms.Process("ApeEstimator")
0028
0029
0030 process.load("Configuration.Geometry.GeometryRecoDB_cff")
0031 process.load("Configuration.StandardSequences.Services_cff")
0032 process.load("Configuration.StandardSequences.MagneticField_cff")
0033 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
0034 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
0035 from Configuration.AlCa.GlobalTag import GlobalTag
0036 from CondCore.CondDB.CondDB_cfi import *
0037
0038
0039
0040
0041 process.load("FWCore.MessageService.MessageLogger_cfi")
0042 process.MessageLogger.SectorBuilder=dict()
0043 process.MessageLogger.ResidualErrorBinning=dict()
0044 process.MessageLogger.HitSelector=dict()
0045 process.MessageLogger.CalculateAPE=dict()
0046 process.MessageLogger.ApeEstimator=dict()
0047 process.MessageLogger.TrackRefitter=dict()
0048 process.MessageLogger.AlignmentTrackSelector=dict()
0049 process.MessageLogger.cerr.threshold = 'WARNING'
0050 process.MessageLogger.cerr.INFO.limit = 0
0051 process.MessageLogger.cerr.default.limit = -1
0052 process.MessageLogger.cerr.SectorBuilder = cms.untracked.PSet(limit = cms.untracked.int32(-1))
0053 process.MessageLogger.cerr.HitSelector = cms.untracked.PSet(limit = cms.untracked.int32(-1))
0054 process.MessageLogger.cerr.CalculateAPE = cms.untracked.PSet(limit = cms.untracked.int32(-1))
0055 process.MessageLogger.cerr.ApeEstimator = cms.untracked.PSet(limit = cms.untracked.int32(-1))
0056 process.MessageLogger.cerr.AlignmentTrackSelector = cms.untracked.PSet(limit = cms.untracked.int32(-1))
0057 process.MessageLogger.cerr.FwkReport.reportEvery = 1000
0058
0059
0060
0061
0062
0063 process.options = cms.untracked.PSet(
0064 wantSummary = cms.untracked.bool(True),
0065 )
0066
0067
0068
0069
0070
0071 readFiles = cms.untracked.vstring()
0072 process.source = cms.Source ("PoolSource",
0073 fileNames = readFiles
0074 )
0075 readFiles.extend( [
0076 'file:reco.root',
0077 ] )
0078
0079
0080
0081
0082
0083
0084 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(options.maxEvents) )
0085
0086
0087
0088
0089
0090
0091 process.source.duplicateCheckMode = cms.untracked.string("checkEachRealDataFile")
0092
0093
0094
0095
0096
0097
0098 process.load("Alignment.APEEstimation.TrackRefitter_38T_cff")
0099 process.GlobalTag = GlobalTag(process.GlobalTag, options.globalTag, '')
0100
0101
0102
0103 import importlib
0104 mod = importlib.import_module("Alignment.APEEstimation.conditions.measurement_{}_cff".format(options.measName))
0105 mod.applyConditions(process)
0106
0107
0108
0109 if options.iteration!=0:
0110 CondDBAlignmentError = CondDB.clone(connect = cms.string('sqlite_file:'+os.path.join(options.workingArea,options.measName)+'/apeObjects/apeIter'+str(options.iteration-1)+'.db'))
0111 process.myTrackerAlignmentErr = cms.ESSource("PoolDBESSource",
0112 CondDBAlignmentError,
0113 toGet = cms.VPSet(
0114 cms.PSet(
0115 record = cms.string('TrackerAlignmentErrorExtendedRcd'),
0116 tag = cms.string('APEs')
0117 )
0118 )
0119 )
0120 process.es_prefer_trackerAlignmentErr = cms.ESPrefer("PoolDBESSource","myTrackerAlignmentErr")
0121
0122
0123
0124
0125
0126 from Alignment.APEEstimation.ApeEstimator_cff import *
0127 process.ApeEstimator1 = ApeEstimator.clone(
0128 tjTkAssociationMapTag = "TrackRefitterForApeEstimator",
0129 applyTrackCuts = False,
0130 analyzerMode = False,
0131 calculateApe = True,
0132 Sectors = RecentSectors,
0133 )
0134
0135 process.ApeEstimator2 = process.ApeEstimator1.clone(
0136 Sectors = ValidationSectors,
0137 analyzerMode = True,
0138 calculateApe = False,
0139 )
0140 process.ApeEstimator3 = process.ApeEstimator2.clone(
0141 zoomHists = False,
0142 )
0143
0144 process.ApeEstimatorSequence = cms.Sequence(process.ApeEstimator1)
0145 if options.iteration==0:
0146 process.ApeEstimatorSequence *= process.ApeEstimator2
0147 process.ApeEstimatorSequence *= process.ApeEstimator3
0148 elif options.lastIter == True:
0149 process.ApeEstimatorSequence *= process.ApeEstimator2
0150
0151
0152
0153
0154
0155
0156 process.TFileService = cms.Service("TFileService",
0157 fileName = cms.string(os.path.join(options.workingArea,options.measName,"out"+str(options.fileNumber)+".root")),
0158 closeFileFast = cms.untracked.bool(True)
0159 )
0160
0161
0162
0163
0164
0165
0166
0167 if not options.isCosmics:
0168 process.p = cms.Path(
0169 process.RefitterHighPuritySequence*
0170 process.ApeEstimatorSequence
0171 )
0172 else:
0173 process.p = cms.Path(
0174 process.RefitterNoPuritySequence*
0175 process.ApeEstimatorSequence
0176 )
0177
0178
0179