Skip to content

Rich future improved pmt support

Christopher Rob Jones requested to merge RichFuture-ImprovedPMTSupport into master

FYI @seaso

Improves upgrade support in the RichFuture algorithms.

  1. Predicted pixel signal algorithm now uses the new DeRichPD pixel area access methods added in LHCb!522 (merged) . This means this algorithm now transparently takes HPD/PMT differences into account.

  2. The track CK theta resolution algorithm is the remaining future component that requires updating. Here I wish to do this differently to the old stack, which abused the overall scale factor property of the old tool for this. This is the wrong way to handle it, these factors where only ever intended for quick studies. The correct way is to update the resolution calculation to correctly take this into account when computing the RICH contribution to the resolution. Currently this is just taken from a set property, with one value per radiator.

/// RICH HPD contributions to CK theta resolution
Gaudi::Property< RadiatorArray<double> > m_hpdErr 
{ this, "PDErrors", { 0.0005, 0.0006, 0.0002 } };

I have updated the algorithm to have the additional two properties

/// RICH PD reference areas (mm^2).
Gaudi::Property< RadiatorArray<double> > m_pdRefArea 
{ this, "PDRefAreas", { 5.76, 5.76, 5.76 } };

/// Flag to turn on the full PD area treatment per radiator
Gaudi::Property< RadiatorArray<bool> > m_fullPDAreaTreatment
{ this, "FullPDAreaTreatment", { false, false, false } };

The first being the reference areas the PD error terms apply to. The second is a flag to turn on a complete treatment, that when active looks at the PDs used by a given track, for a given hypothesis, computes the average effective PD size seen by that CK ring, and then scales the PD errors accordingly.

The defaults are appropriate for HPDs, and result in the same results as before. I have also extended the future configuration python module to take the DataType, which Brunel propagates to it, and when in Upgrade mode it uses

 #                    Aero(ignored)  R1Gas     R2gas
 tkRes.PDErrors   = ( 0.0005,        0.0003,   0.0002  )
 tkRes.PDRefAreas = ( 7.77016,       7.77016,  37.4688 )
 # Turn on full PD size treatment for RICH2 only
 tkRes.FullPDAreaTreatment = ( False, False, True )

@seaso The above values are rough guesses, based on values I found in the TDR, but for sure can be optimised. his though is not essential for the first version, and can come later when you are back.

Merge request reports