LArRotationalTransformationPlugin.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArPlugins/LArRotationalTransformationPlugin.h
3  *
4  * @brief Header file for the rotational transformation plugin class.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_ROTATIONAL_TRANSFORMATION_PLUGIN_H
9 #define LAR_ROTATIONAL_TRANSFORMATION_PLUGIN_H 1
10 
11 #include "Plugins/LArTransformationPlugin.h"
12 
13 namespace lar_content
14 {
15 
16 /**
17  * @brief LArRotationalTransformationPlugin class
18  */
19 class LArRotationalTransformationPlugin : public pandora::LArTransformationPlugin
20 {
21 public:
22  /**
23  * @brief Default constructor
24  */
26 
27  virtual double UVtoW(const double u, const double v) const;
28  virtual double VWtoU(const double v, const double w) const;
29  virtual double WUtoV(const double w, const double u) const;
30 
31  virtual double UVtoY(const double u, const double v) const;
32  virtual double UVtoZ(const double u, const double v) const;
33  virtual double UWtoY(const double u, const double w) const;
34  virtual double UWtoZ(const double u, const double w) const;
35  virtual double VWtoY(const double v, const double w) const;
36  virtual double VWtoZ(const double v, const double w) const;
37 
38  virtual double YZtoU(const double y, const double z) const;
39  virtual double YZtoV(const double y, const double z) const;
40  virtual double YZtoW(const double y, const double z) const;
41 
42  virtual void GetMinChiSquaredYZ(const double u, const double v, const double w, const double sigmaU, const double sigmaV,
43  const double sigmaW, double &y, double &z, double &chiSquared) const;
44  virtual void GetMinChiSquaredYZ(const double u, const double v, const double w, const double sigmaU, const double sigmaV, const double sigmaW,
45  const double uFit, const double vFit, const double wFit, const double sigmaFit, double &y, double &z, double &chiSquared) const;
46 
47 private:
48  pandora::StatusCode Initialize();
49  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
50 
51  double m_thetaU; ///< inclination of U wires (radians)
52  double m_thetaV; ///< inclination of V wires (radians)
53  double m_thetaW; ///< inclination of W wires (radians)
54 
55  double m_sinU; ///< sin(thetaU)
56  double m_sinV; ///< sin(thetaV)
57  double m_sinW; ///< sin(thetaW)
58  double m_cosU; ///< cos(thetaU)
59  double m_cosV; ///< cos(thetaV)
60  double m_cosW; ///< cos(thetaW)
61  double m_sinVminusU; ///< sin(thetaV - thetaU)
62  double m_sinWminusV; ///< sin(thetaW - thetaV)
63  double m_sinUminusW; ///< sin(thetaU - thetaW)
64 
65  double m_maxAngularDiscrepancyU; ///< Maximum allowed difference between u wire angles between LArTPCs
66  double m_maxAngularDiscrepancyV; ///< Maximum allowed difference between v wire angles between LArTPCs
67  double m_maxAngularDiscrepancyW; ///< Maximum allowed difference between w wire angles between LArTPCs
68  double m_maxSigmaDiscrepancy; ///< Maximum allowed difference between like wire sigma values between LArTPCs
69 };
70 
71 } // namespace lar_content
72 
73 #endif // #ifndef LAR_ROTATIONAL_TRANSFORMATION_PLUGIN_H
virtual void GetMinChiSquaredYZ(const double u, const double v, const double w, const double sigmaU, const double sigmaV, const double sigmaW, double &y, double &z, double &chiSquared) const
virtual double UVtoY(const double u, const double v) const
virtual double UVtoW(const double u, const double v) const
virtual double YZtoW(const double y, const double z) const
virtual double UVtoZ(const double u, const double v) const
virtual double VWtoU(const double v, const double w) const
double m_maxAngularDiscrepancyU
Maximum allowed difference between u wire angles between LArTPCs.
virtual double UWtoZ(const double u, const double w) const
virtual double YZtoV(const double y, const double z) const
double m_maxAngularDiscrepancyV
Maximum allowed difference between v wire angles between LArTPCs.
double m_maxAngularDiscrepancyW
Maximum allowed difference between w wire angles between LArTPCs.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
virtual double VWtoZ(const double v, const double w) const
virtual double WUtoV(const double w, const double u) const
virtual double YZtoU(const double y, const double z) const
double m_maxSigmaDiscrepancy
Maximum allowed difference between like wire sigma values between LArTPCs.
virtual double VWtoY(const double v, const double w) const
virtual double UWtoY(const double u, const double w) const