3 from D3PDMakerCoreComps.SimpleAssociation
import SimpleAssociation
4 from D3PDMakerCoreComps.flagTestLOD
import flagTestLOD, deferFlag
5 from D3PDMakerConfig.D3PDMakerFlags
import D3PDMakerFlags
6 from AthenaConfiguration.ComponentFactory
import CompFactory
8 D3PD = CompFactory.D3PD
11 func = flagTestLOD (expr, flags)
12 def perigeeLODFunc (reqlev, args, hookargs):
13 if not func (reqlev, args, hookargs):
return False
14 if not args.get(
'FillPerigee',
True)
or hookargs.has_key (
'_didTQP'):
15 args[
'FillThetaAndQoverP'] =
False
17 args[
'FillThetaAndQoverP'] =
True
18 hookargs[
'_didTQP'] =
True
24 flags = D3PDMakerFlags.Track,
25 fillMomName = 'False',
29 perigeeAssoc = SimpleAssociation (parent, associator, **kw)
31 perigeeAssoc.defineBlock (perigeeLOD (
'%s or %s>0' %(fillMomName,levelName),
36 FillPerigee =
deferFlag(
'%s>0'%levelName,flags),
37 FillMomentum =
deferFlag(fillMomName,flags))
39 perigeeCovarianceAssoc = SimpleAssociation (
42 blockname = blockname +
'Assoc',
45 perigeeCovarianceAssoc.defineBlock (
49 Error = deferFlag (
'storeDiagonalCovarianceAsErrors', flags),
50 DiagCovariance =
deferFlag(
'not storeDiagonalCovarianceAsErrors',flags),
51 OffDiagCovariance =
False,
52 IsTrackPerigee =
True,
55 perigeeCovarianceAssoc.defineBlock (
flagTestLOD(
'%s>=3'%levelName,flags),
56 blockname +
'OffDiagCovariance',
59 DiagCovariance =
False,
60 OffDiagCovariance =
True,
61 IsTrackPerigee =
True,