![]() |
|
|||
File indexing completed on 2024-04-06 11:56:35
0001 # MillePedeAlignmentAlgorithm 0002 # --------------------------- 0003 0004 import FWCore.ParameterSet.Config as cms 0005 0006 from Alignment.ReferenceTrajectories.TrajectoryFactories_cff import * 0007 from Alignment.MillePedeAlignmentAlgorithm.MillePedeFileReader_cfi import * 0008 0009 MillePedeAlignmentAlgorithm = cms.PSet( 0010 algoName = cms.string('MillePedeAlignmentAlgorithm'), 0011 mode = cms.untracked.string('full'), ## possible modes: full, mille, pede, pedeSteer, pedeRun, pedeRead 0012 fileDir = cms.untracked.string(''), 0013 0014 # Where mille writes (and pede reads) derivatives, labels etc. 0015 binaryFile = cms.string('milleBinary.dat'), 0016 # Resulting and initial parameters, absolute (original) positions, result etc. 0017 treeFile = cms.string('treeFile.root'), 0018 # Must be empty if mille runs, otherwise for merging (pede) jobs should be parallel with each 0019 # other. Then 'treeFile' is merged result and 'binaryFile' should be empty. 0020 mergeBinaryFiles = cms.vstring(), 0021 mergeTreeFiles = cms.vstring(), 0022 0023 monitorFile = cms.untracked.string('millePedeMonitor.root'), ## if empty: no monitoring... 0024 0025 runAtPCL = cms.bool(False), # at the PCL the mille binaries are reset at lumi-section boundaries 0026 ignoreFirstIOVCheck = cms.untracked.bool(False), # flag to ignore check if data is prior to first IOV 0027 ignoreHitsWithoutGlobalDerivatives = cms.bool(False), # - if all alignables and calibration for a 0028 # hit are set to '0', the hit is ignored 0029 # - has only an effect with non-GBL 0030 # material-effects description 0031 skipGlobalPositionRcdCheck = cms.bool(False), # since the change of the GlobalPositionRcd is 0032 # mostly driven by changes of the muon system 0033 # it is often safe to ignore this change for 0034 # tracker alignment 0035 0036 # PSet that allows to configure the pede labeler, i.e. select the actual 0037 # labeler plugin to use and parameters for the selected plugin 0038 pedeLabeler = cms.PSet( 0039 #plugin = cms.string('MomentumDependentPedeLabeler') 0040 #parameterInstances = cms.VPSet( 0041 # cms.PSet(momentumRanges = cms.vstring('0.0:50.0','50.0:10000.0'), 0042 # selector = cms.vstring('ExtrasBeamSpot,1111')) 0043 # ) 0044 ), 0045 0046 pedeSteerer = cms.PSet( 0047 fileDir = cms.untracked.string(''), 0048 runDir = cms.untracked.string(''), 0049 steerFile = cms.string('pedeSteer'), ## beginning of steering file names 0050 steerFileDebug = cms.untracked.bool(False), 0051 # If MillePedeAlignmentAlgorithm.mode causes pede to run (e.g. 'full', 'pede' etc.), 0052 # the pede command line is constructed as: 0053 # 'pedeCommand' 'steerFile'Master.txt 0054 # (and - if pedeDump is not empty - extended by: > 'pedeDump') 0055 # (MillePedeAlignmentAlgorithm.theDir is taken into account...) 0056 pedeCommand = cms.untracked.string('pede'), 0057 0058 parameterSign = cms.untracked.int32(1), ## old pede versions (before May '07) need a sign flip 0059 pedeDump = cms.untracked.string('pede.dump'), 0060 method = cms.string('sparseMINRES 6 0.8'), ## "inversion 6 0.8" 0061 options = cms.vstring('entries 50', # min. number of measurements (parameters with less will be skipped) 0062 # 'regularisation 1.0 0.01', # regularisation with default pre-sigma 0.01 0063 # "chisqcut 20.0 4.5", # simple chi^2 cut for outliers AND/OR ... 0064 # "outlierdownweighting 3", "dwfractioncut 0.1" #, # ... 3x Huber down weighting OR... 0065 'outlierdownweighting 5', 'dwfractioncut 0.2'), 0066 0067 # Special selection of parameters to fix, use as reference coordinate system etc. 0068 # ------------------------------------------------------------------------------ 0069 # All this is determined from what is given as 0070 # AlignmentProducer.ParameterBuilder.Selector, cf. Twiki page SWGuideMillepedeIIAlgorithm. 0071 Presigmas = cms.VPSet(), 0072 minHieraConstrCoeff = cms.double(1.e-10), # min abs value of coeff. in hierarchy constr. 0073 minHieraParPerConstr = cms.uint32(1), # ignore hierarchy constraints with less params 0074 constrPrecision = cms.uint32(10), # precision for writing constraints to text file. Default is 6 and can be setup with constrPrecision = cms.uint32(0) 0075 # specify additional steering files 0076 additionalSteerFiles = cms.vstring(), # obsolete - can be given as entries in 'options' 0077 0078 # Parameter vector for the systematic geometry deformations 0079 # Empty vector -> constraints are NOT applied (default) 0080 constraints = cms.VPSet() 0081 ), 0082 0083 pedeReader = cms.PSet( 0084 readFile = cms.string('millepede.res'), 0085 # directory of 'readFile', if empty: 0086 # take from pedeSteerer (inheriting from MillePedeAlignmentAlgorithm) 0087 fileDir = cms.untracked.string('') 0088 ), 0089 0090 # Array of PSet's like 'pedeReader' above to be applied before running mille, 0091 # i.e. for iterative running of Millepede without going via DB constants 0092 # (note: if 'fileDir' empty, the one from 'pedeSteerer' will be used...): 0093 pedeReaderInputs = cms.VPSet(), 0094 0095 TrajectoryFactory = BrokenLinesTrajectoryFactory, # from TrajectoryFactories 0096 # BrokenLinesBzeroTrajectoryFactory 0097 # TwoBodyDecayReferenceTrajectoryFactory, # for this overwrite MaterialEffects for BL 0098 minNumHits = cms.uint32(7), ## minimum number of hits (with alignable parameters) 0099 max2Dcorrelation = cms.double(0.05), ## if correlation >5% 2D measurements in TID/TEC get diagonalized 0100 doubleBinary = cms.bool(False), ## create binary files with doubles instead of floats (GBL only) 0101 0102 # Parameters for PXB survey steering 0103 surveyPixelBarrel = cms.PSet( 0104 doSurvey = cms.bool(False), 0105 infile = cms.FileInPath("Alignment/SurveyAnalysis/data/BPix_Survey_info_raw.txt"), 0106 doOutputOnStdout = cms.bool(False), 0107 # Settings for toy survey - produces a file with toy survey data according to given parameters 0108 doToySurvey = cms.bool(False), 0109 toySurveyFile = cms.untracked.string('toySurveyInfo.txt'), 0110 toySurveySeed = cms.uint32(12), 0111 toySurveyParameters = cms.VPSet( 0112 # Position of photo in local frame (unit: pixels in photo) 0113 cms.PSet(name = cms.string('a0'), mean = cms.double(1800.), sigma = cms.double(150.)), 0114 cms.PSet(name = cms.string('a1'), mean = cms.double(2600.), sigma = cms.double(200.)), 0115 # Scale of photo (unit: pixels per cm) 0116 cms.PSet(name = cms.string('scale'), mean = cms.double(1150.), sigma = cms.double(50.)), 0117 # Rotation of photo in local frame (unit: rads) 0118 cms.PSet(name = cms.string('phi'), mean = cms.double(0.), sigma = cms.double(0.0025)), 0119 # Smearing of measurements in u and v coordinate (unit: pixels in photo) 0120 cms.PSet(name = cms.string('u'), mean = cms.double(0.), sigma = cms.double(0.175)), 0121 cms.PSet(name = cms.string('v'), mean = cms.double(0.), sigma = cms.double(0.175)) 0122 ) 0123 ), 0124 0125 #parameters used to read the pede files back for DQM and check on parameters 0126 MillePedeFileReader = cms.PSet(MillePedeFileReader), 0127 ) 0128
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |