Skip to content
Snippets Groups Projects

Misc. protections and improvements to RICH decoding from RICH1 comissioning

Files
9
@@ -58,25 +58,25 @@ public:
public:
/// Access the RICH detector type
inline Rich::DetectorType rich() const noexcept { return m_rich; }
inline auto rich() const noexcept { return m_rich; }
/// Access the PD panel side
inline Rich::Side side() const noexcept { return m_side; }
inline auto side() const noexcept { return m_side; }
/// Access the PD type
inline LHCb::RichSmartID::IDType pdType() const noexcept { return m_pdType; }
inline auto pdType() const noexcept { return m_pdType; }
/// Access the RichSmartID for this panel
inline LHCb::RichSmartID panelID() const noexcept { return m_panelID; }
inline auto panelID() const noexcept { return m_panelID; }
/// The number of PD columns in this panel
inline unsigned int nPDColumns() const noexcept { return m_PDColumns; }
inline auto nPDColumns() const noexcept { return m_PDColumns; }
/// The number of PDs in each columns
inline unsigned int nPDsPerCol() const noexcept { return m_PDNumInCol; }
inline auto nPDsPerCol() const noexcept { return m_PDNumInCol; }
/// The total number of PDs in this panel
inline unsigned int nPDs() const noexcept { return m_PDMax; }
inline auto nPDs() const noexcept { return m_PDMax; }
/** @brief Retrieves the detection plane of the PD panel.
*
@@ -84,14 +84,14 @@ public:
*
* @return The detection plane
*/
inline const Gaudi::Plane3D& detectionPlane() const noexcept { return m_detectionPlane; }
inline const auto& detectionPlane() const noexcept { return m_detectionPlane; }
/**
* Returns the Z coordinate of the detection plane in the local coordinate system.
*
* @return The detection plane Z coordinate (local system).
*/
inline double detectPlaneZcoord() const noexcept { return m_detPlaneZ; }
inline auto detectPlaneZcoord() const noexcept { return m_detPlaneZ; }
/**
* Returns the offset (y in Rich1, x in Rich2) so that the two panels of
@@ -99,7 +99,7 @@ public:
*
* @return The offset for the globalToPanel method
*/
inline double localOffset() const noexcept { return m_localOffset; }
inline auto localOffset() const noexcept { return m_localOffset; }
/** @brief Converts a RichSmartID to a point in global coordinates.
*
@@ -117,26 +117,26 @@ public:
inline bool detectionPoint( const LHCb::RichSmartID smartID, //
Gaudi::XYZPoint& detectPoint, //
const bool photoCathodeSide = false ) const {
return this->dePD( smartID )->detectionPoint( smartID, detectPoint, photoCathodeSide );
const auto pd = this->dePD( smartID );
if ( !pd ) { error() << "No DePD for " << smartID << endmsg; }
return ( pd ? pd->detectionPoint( smartID, detectPoint, photoCathodeSide ) : false );
}
/** Get the global to local (PD panel) transform. The local frame is defined with an offset
* to accommodate both detector panels in one histogram and the x=0 in Rich1 and y=0 in
* Rich2 are aligned with the global x=0 and y=0.
*/
inline const Gaudi::Transform3D& globalToPDPanelMatrix() const noexcept { return m_globalToPDPanelTransform; }
inline const auto& globalToPDPanelMatrix() const noexcept { return m_globalToPDPanelTransform; }
/** Get the global to local (PD panel) transform. The local frame is defined with an offset
* to accommodate both detector panels in one histogram and the x=0 in Rich1 and y=0 in
* Rich2 are aligned with the global x=0 and y=0.
*/
inline const Rich::SIMD::Transform3D<Rich::SIMD::DefaultScalarFP>& globalToPDPanelMatrixSIMD() const noexcept {
return m_globalToPDPanelTransformSIMD;
}
inline const auto& globalToPDPanelMatrixSIMD() const noexcept { return m_globalToPDPanelTransformSIMD; }
/// Get the transform from the local to global frame. See comments at the globalToPDPanelMatrix
/// method
inline const Gaudi::Transform3D& PDPanelToGlobalMatrix() const noexcept { return m_PDPanelToGlobalTransform; }
inline const auto& PDPanelToGlobalMatrix() const noexcept { return m_PDPanelToGlobalTransform; }
public:
/// type for SIMD ray tracing result
@@ -166,9 +166,9 @@ public:
virtual const DeRichPD* dePD( const LHCb::RichSmartID pdID ) const = 0;
/// Access the PDs in the panel
inline decltype( auto ) dePDs() const { return m_allPDs; }
inline const auto& dePDs() const { return m_allPDs; }
/** @brief Returns the intersection point with an HPD window given a vector
/** @brief Returns the intersection point with an PD window given a vector
* and a point (scalar)
*
* With the "circle" option a quick check is performed
Loading