Update ZmaxForStoring plane to include Neutron Shielding and Tilt
needs: lhcb-conddb/DDDB!84 (merged)
Description
This will update the default value of ZmaxForStoring
in GaussPostTrackAction
to include Neutron Shielding. The new plane will be tangent to the front cover of the inner region. There's no tilt in Neutron Shielding.
Update: There should be a tilt in Neutron Shielding, but it's missing in the description. See lhcb-conddb/DDDB!84 (merged)
I am adding here a generic way of tilting zMax plane that will also help when one would like to push it further and make it tangent with the electromagnetic calorimeter.
New value of ZmaxForStoring
The new value of ZmaxForStoring
was generated using geometry described in DDDB:
NeutronShieldingCenter = 12110.
SupportGap = 20.
SupportSizeZ = 1.5
PlasticInnerSizeZ = 100.
CoverSizeZ = .5
zSupport = .5 * (SupportGap + SupportSizeZ)
PlasticOuterSizeZ = 50.
zPlasticOuter = .5 * (SupportSizeZ + PlasticOuterSizeZ) + zSupport
zPlasticInner = .5 * (PlasticOuterSizeZ + PlasticInnerSizeZ) + zPlasticOuter
zCoverInner = zPlasticInner + .5 * (PlasticInnerSizeZ + CoverSizeZ)
NeutronShieldingCoverInnerFront = NeutronShieldingCenter - zCoverInner
print("NeutronShieldingCoverInnerFront: ", NeutronShieldingCoverInnerFront)
NeutronShieldingCoverInnerFront: 11948.25
Update 20/07/21: There's a small mistake. Value 11948.25
is in the centre of the zCoverInner
, so half of its thickness has to be subtracted. So the new value is:
NeutronShieldingCoverInnerFront = NeutronShieldingCenter - zCoverInner - .5 * CoverSizeZ
print("NeutronShieldingCoverInnerFront: ", NeutronShieldingCoverInnerFront)
NeutronShieldingCoverInnerFront: 11948
Adding tilt to ZMax plane
Tilt around x-axis and y shift (visible in ECAL, see: https://gitlab.cern.ch/lhcb-conddb/DDDB/-/blob/master/Ecal/geometry.xml#L40) can be configured via:
from Configurables import GaussPostTrackAction
from GaudiKernel.SystemOfUnits import mm, degree
gpta = GaussPostTrackAction("PostTrack")
gpta.ZmaxForStoring = 11948.25 * mm # new default
gpta.ZmaxForStoringYShift = -0. * mm # new default
gpta.ZmaxForStoringTilt = 0.207 * degree # new default
Visualization
Below you will find plots where the dots represent vertices of MCParticles. I temporarily allowed to store all the MCParticles, but for the optical photons. I'm adding one more threshold z=12628.5
in the middle of an active layer in ECAL in order to show the alignment.
Note: there might be some vertices "leaking" (>zMax threshold). I think this is a bug that allows intermediate MCParticles (-99000000
) to be stored, but I'm not entirely sure.
Update (07/07/21)
I'm attaching a few more plots that help to compare Upgrade and 2018 geometry.
Upgrade geometry
Steering options:
from Gaudi.Configuration import importOptions
from Configurables import LHCbApp
importOptions("$GAUSSROOT/options/Gauss-Upgrade.py")
LHCbApp().DDDBtag = "upgrade/dddb-20210617"
LHCbApp().CondDBtag = "upgrade/sim-20210617-vc-mu100"
2018 geometry
Steering options:
importOptions("$APPCONFIGOPTS/Gauss/Beam6500GeV-md100-2018-nu1.6.py")
importOptions("$APPCONFIGOPTS/Gauss/DataType-2018.py")
importOptions("$GAUSSOPTS/DBTags-2018.py")