![]() |
|
|||
File indexing completed on 2024-04-06 11:57:21
0001 ############################################################### 0002 # 0003 # Configuration blocks for the TrajectoryFactories inheriting 0004 # from TrajectoryFactoryBase. 0005 # Include this file and do e.g. 0006 # TrajectoryFactory = cms.PSet( ReferenceTrajectoryFactory) 0007 # 0008 ############################################################### 0009 0010 import FWCore.ParameterSet.Config as cms 0011 0012 ############################################################### 0013 # 0014 # Common to all TrajectoryFactories 0015 # 0016 ############################################################### 0017 __muonMass = cms.double(0.10565836) 0018 0019 TrajectoryFactoryBase = cms.PSet( 0020 PropagationDirection = cms.string('alongMomentum'), ## or "oppositeToMomentum" or "anyDirection" 0021 MaterialEffects = cms.string('Combined'), ## or "MultipleScattering" or "EnergyLoss" or "None" 0022 ## (see others at 'BrokenLinesTrajectoryFactory') 0023 UseProjectedHits = cms.bool(True), ## if false, projected hits are skipped 0024 UseInvalidHits = cms.bool(False), ## if false, invalid hits are skipped 0025 UseHitWithoutDet = cms.bool(True), ## if false, RecHits that are not attached to GeomDets are skipped 0026 UseBeamSpot = cms.bool(False), ## if true, the beam spot is used as a constraint via a virtual TTRecHit 0027 IncludeAPEs = cms.bool(False), ## if true, the APEs are included in the hit error 0028 AllowZeroMaterial = cms.bool(False) # if true, exceptions due to singular scatter matrices are suppressed 0029 ) 0030 0031 ############################################################### 0032 # 0033 # ReferenceTrajectoryFactory 0034 # 0035 ############################################################### 0036 ReferenceTrajectoryFactory = cms.PSet( 0037 TrajectoryFactoryBase, 0038 ParticleMass = __muonMass, 0039 TrajectoryFactoryName = cms.string('ReferenceTrajectoryFactory'), 0040 UseBzeroIfFieldOff = cms.bool(True), # if true, use BzeroReferenceTrajectory if B == 0 0041 MomentumEstimateFieldOff = cms.double(10.) # used if useBzeroIfFieldOff == True 0042 0043 ) 0044 0045 ############################################################### 0046 # 0047 # BzeroReferenceTrajectoryFactory 0048 # 0049 ############################################################### 0050 BzeroReferenceTrajectoryFactory = cms.PSet( 0051 TrajectoryFactoryBase, 0052 ParticleMass = __muonMass, 0053 TrajectoryFactoryName = cms.string('BzeroReferenceTrajectoryFactory'), 0054 MomentumEstimate = cms.double(10.0) 0055 ) 0056 0057 ############################################################### 0058 # 0059 # DualTrajectoryFactory 0060 # 0061 ############################################################### 0062 DualTrajectoryFactory = cms.PSet( 0063 TrajectoryFactoryBase, 0064 ParticleMass = __muonMass, 0065 TrajectoryFactoryName = cms.string('DualTrajectoryFactory') 0066 ) 0067 0068 ############################################################### 0069 # 0070 # DualBzeroTrajectoryFactory 0071 # 0072 ############################################################### 0073 DualBzeroTrajectoryFactory = cms.PSet( 0074 TrajectoryFactoryBase, 0075 ParticleMass = __muonMass, 0076 TrajectoryFactoryName = cms.string('DualBzeroTrajectoryFactory'), 0077 MomentumEstimate = cms.double(10.0) 0078 ) 0079 0080 ############################################################### 0081 # 0082 # TwoBodyDecayReferenceTrajectoryFactory 0083 # 0084 ############################################################### 0085 TwoBodyDecayTrajectoryFactory = cms.PSet( 0086 TrajectoryFactoryBase, 0087 NSigmaCut = cms.double(100.0), 0088 Chi2Cut = cms.double(10000.0), 0089 ParticleProperties = cms.PSet( 0090 PrimaryMass = cms.double(91.1876), 0091 PrimaryWidth = cms.double(2.4952), 0092 SecondaryMass = cms.double(0.105658) 0093 ), 0094 ConstructTsosWithErrors = cms.bool(False), 0095 UseRefittedState = cms.bool(True), 0096 EstimatorParameters = cms.PSet( 0097 MaxIterationDifference = cms.untracked.double(0.01), 0098 RobustificationConstant = cms.untracked.double(1.0), 0099 MaxIterations = cms.untracked.int32(100), 0100 UseInvariantMass = cms.untracked.bool(True) 0101 ), 0102 TrajectoryFactoryName = cms.string('TwoBodyDecayTrajectoryFactory') 0103 ) 0104 0105 ############################################################### 0106 # 0107 # CombinedTrajectoryFactory using an instance of TwoBodyDecayTrajectoryFactory 0108 # and ReferenceTrajectoryFactory, taking the first successful. 0109 # 0110 ############################################################### 0111 CombinedTrajectoryFactory = cms.PSet( 0112 TrajectoryFactoryBase, # will not be used! 0113 TrajectoryFactoryName = cms.string('CombinedTrajectoryFactory'), 0114 # look for PSets called TwoBody and Reference: 0115 TrajectoryFactoryNames = cms.vstring( 0116 'TwoBodyDecayTrajectoryFactory,TwoBody', # look for PSet called TwoBody 0117 'ReferenceTrajectoryFactory,Reference'), # look for PSet called Reference 0118 useAllFactories = cms.bool(False), 0119 # now one PSet for each of the configured trajectories: 0120 TwoBody = cms.PSet( # FIXME: better by reference? 0121 TwoBodyDecayTrajectoryFactory 0122 ), 0123 Reference = cms.PSet( # FIXME: better by reference? 0124 ReferenceTrajectoryFactory 0125 ) 0126 ) 0127 ############################################################### 0128 # 0129 # CombinedTrajectoryFactory using two instances of BzeroReferenceTrajectoryFactory, 0130 # one propagating alongMomentum, one oppositeToMomentum. 0131 # 0132 ############################################################### 0133 # First a helper object, where I'd like to do: 0134 #BwdBzeroReferenceTrajectoryFactory = BzeroReferenceTrajectoryFactory.clone(PropagationDirection = 'oppositeToMomentum') 0135 # Since there is no clone in cms.PSet (yet?), but clone is needed for python that works by reference, 0136 # take solution from https://hypernews.cern.ch/HyperNews/CMS/get/swDevelopment/1890/1.html: 0137 import copy 0138 BwdBzeroReferenceTrajectoryFactory = copy.deepcopy(BzeroReferenceTrajectoryFactory) 0139 BwdBzeroReferenceTrajectoryFactory.PropagationDirection = 'oppositeToMomentum' 0140 # now the PSet 0141 CombinedFwdBwdBzeroTrajectoryFactory = cms.PSet( 0142 TrajectoryFactoryBase, # will not be used! 0143 TrajectoryFactoryName = cms.string('CombinedTrajectoryFactory'), 0144 0145 TrajectoryFactoryNames = cms.vstring( 0146 'BzeroReferenceTrajectoryFactory,FwdBzero', # look for PSet called FwdBzero 0147 'BzeroReferenceTrajectoryFactory,BwdBzero'), # look for PSet called BwdBzero 0148 useAllFactories = cms.bool(True), 0149 0150 # now one PSet for each of the configured trajectories: 0151 FwdBzero = cms.PSet(BzeroReferenceTrajectoryFactory), # FIXME: better by reference? 0152 BwdBzero = cms.PSet(BwdBzeroReferenceTrajectoryFactory) # FIXME: better by reference? 0153 ) 0154 0155 ############################################################### 0156 # 0157 # CombinedTrajectoryFactory using three ReferenceTrajectories: 0158 # - two instances of BzeroReferenceTrajectoryFactory, 0159 # one propagating alongMomentum, one oppositeToMomentum, 0160 # - a DualBzeroTrajectory to start in the middle. 0161 # 0162 ############################################################### 0163 CombinedFwdBwdDualBzeroTrajectoryFactory = cms.PSet( 0164 TrajectoryFactoryBase, # will not be used! 0165 TrajectoryFactoryName = cms.string('CombinedTrajectoryFactory'), 0166 0167 TrajectoryFactoryNames = cms.vstring( 0168 'BzeroReferenceTrajectoryFactory,FwdBzero', # look for PSet called FwdBzero 0169 'BzeroReferenceTrajectoryFactory,BwdBzero', # look for PSet called BwdBzero 0170 'DualBzeroTrajectoryFactory,DualBzero'), # look for PSet called DualBzero 0171 useAllFactories = cms.bool(True), 0172 0173 # now one PSet for each of the configured trajectories: 0174 FwdBzero = cms.PSet(BzeroReferenceTrajectoryFactory), # FIXME: better by reference? 0175 BwdBzero = cms.PSet(BwdBzeroReferenceTrajectoryFactory), # defined above for CombinedFwdBwdBzeroTrajectoryFactory # FIXME: better by reference? 0176 DualBzero = cms.PSet(DualBzeroTrajectoryFactory) # FIXME: better by reference? 0177 ) 0178 0179 0180 ############################################################### 0181 # 0182 # CombinedTrajectoryFactory using two instances of ReferenceTrajectoryFactory, 0183 # one propagating alongMomentum, one oppositeToMomentum. 0184 # 0185 ############################################################### 0186 # First a helper object, see above for CombinedFwdBwdBzeroTrajectoryFactory: 0187 BwdReferenceTrajectoryFactory = copy.deepcopy(ReferenceTrajectoryFactory) 0188 BwdReferenceTrajectoryFactory.PropagationDirection = 'oppositeToMomentum' 0189 # now the PSet 0190 CombinedFwdBwdTrajectoryFactory = cms.PSet( 0191 TrajectoryFactoryBase, # will not be used! 0192 TrajectoryFactoryName = cms.string('CombinedTrajectoryFactory'), 0193 0194 TrajectoryFactoryNames = cms.vstring( 0195 'ReferenceTrajectoryFactory,Fwd', # look for PSet called Fwd 0196 'ReferenceTrajectoryFactory,Bwd'), # look for PSet called Bwd 0197 useAllFactories = cms.bool(True), 0198 0199 # now one PSet for each of the configured trajectories: 0200 Fwd = cms.PSet(ReferenceTrajectoryFactory), # FIXME: better by reference? 0201 Bwd = cms.PSet(BwdReferenceTrajectoryFactory) # FIXME: better by reference? 0202 ) 0203 0204 ############################################################### 0205 # 0206 # CombinedTrajectoryFactory using three ReferenceTrajectories: 0207 # - two instances of ReferenceTrajectoryFactory, 0208 # one propagating alongMomentum, one oppositeToMomentum, 0209 # - a DualTrajectory to start in the middle. 0210 # 0211 ############################################################### 0212 CombinedFwdBwdDualTrajectoryFactory = cms.PSet( 0213 TrajectoryFactoryBase, # will not be used! 0214 TrajectoryFactoryName = cms.string('CombinedTrajectoryFactory'), 0215 0216 TrajectoryFactoryNames = cms.vstring( 0217 'ReferenceTrajectoryFactory,Fwd', # look for PSet called Fwd 0218 'ReferenceTrajectoryFactory,Bwd', # look for PSet called Bwd 0219 'DualTrajectoryFactory,Dual'), # look for PSet called Dual 0220 useAllFactories = cms.bool(True), 0221 0222 # now one PSet for each of the configured trajectories: 0223 Fwd = cms.PSet(ReferenceTrajectoryFactory), # FIXME: better by reference? 0224 Bwd = cms.PSet(BwdReferenceTrajectoryFactory), # defined above for CombinedFwdBwdTrajectoryFactory # FIXME: better by reference? 0225 Dual = cms.PSet(DualTrajectoryFactory) # FIXME: better by reference? 0226 ) 0227 0228 ############################################################### 0229 # 0230 # ReferenceTrajectoryFactory with BrokenLines 0231 # 0232 ############################################################### 0233 BrokenLinesTrajectoryFactory = ReferenceTrajectoryFactory.clone( 0234 MaterialEffects = 'BrokenLinesCoarse', # same as "BrokenLines" 0235 # others are "BrokenLinesCoarsePca" == "BrokenLinesPca", 0236 # "BrokenLinesFine", "BrokenLinesFinePca" 0237 # or even "BreakPoints" 0238 UseInvalidHits = True # to account for multiple scattering in these layers 0239 ) 0240 0241 0242 ############################################################### 0243 # 0244 # BzeroReferenceTrajectoryFactory with BrokenLines 0245 # 0246 ############################################################### 0247 BrokenLinesBzeroTrajectoryFactory = BzeroReferenceTrajectoryFactory.clone( 0248 MaterialEffects = 'BrokenLinesCoarse', # see BrokenLinesTrajectoryFactory 0249 UseInvalidHits = True # to account for multiple scattering in these layers 0250 )
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |