Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:18:27

0001 /* Copyright 2008-2010, Technische Universitaet Muenchen,
0002    Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
0003 
0004    This file is part of GENFIT.
0005 
0006    GENFIT is free software: you can redistribute it and/or modify
0007    it under the terms of the GNU Lesser General Public License as published
0008    by the Free Software Foundation, either version 3 of the License, or
0009    (at your option) any later version.
0010 
0011    GENFIT is distributed in the hope that it will be useful,
0012    but WITHOUT ANY WARRANTY; without even the implied warranty of
0013    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0014    GNU Lesser General Public License for more details.
0015 
0016    You should have received a copy of the GNU Lesser General Public License
0017    along with GENFIT.  If not, see <http://www.gnu.org/licenses/>.
0018 */
0019 /** @addtogroup genfit
0020  * @{
0021  */
0022 
0023 #ifndef genfit_WirePointMeasurement_h
0024 #define genfit_WirePointMeasurement_h
0025 
0026 #include "WireMeasurement.h"
0027 
0028 
0029 namespace genfit {
0030 
0031 /** @brief Class for measurements in wire detectors (Straw tubes and drift chambers)
0032  *  which can measure the coordinate along the wire
0033  *
0034  *  @author Christian H&ouml;ppner (Technische Universit&auml;t M&uuml;nchen, original author)
0035  *  @author Lia Lavezzi (INFN Pavia, original author)
0036  *  @author Sebastian Neubert  (Technische Universit&auml;t M&uuml;nchen, original author)
0037  *  @author Johannes Rauch  (Technische Universit&auml;t M&uuml;nchen, original author)
0038  *
0039  * This  is not valid for any kind of plane orientation
0040  * choice: to use it you MUST choose a plane described by u
0041  * and v axes with v coincident with the wire (and u orthogonal
0042  * to it, obviously).
0043  * The hit will be described by 8 coordinates:
0044  * w_x1, w_y1, w_z1, w_x2, w_y2, w_z2, rdrift, zreco
0045  * where w_ji (with j = x, y, z and i = 1, 2) are the wire
0046  * extremities coordinates; rdrift = distance from the wire (u
0047  * coordinate in the plane) and zreco = coordinate along the
0048  * wire (w2 -w1) (in the plane reference frame, v coordinate).
0049  *
0050  */
0051 class WirePointMeasurement : public WireMeasurement {
0052 
0053  public:
0054   WirePointMeasurement(int nDim = 8);
0055   WirePointMeasurement(const TVectorD& rawHitCoords, const TMatrixDSym& rawHitCov, int detId, int hitId, TrackPoint* trackPoint);
0056 
0057   virtual ~WirePointMeasurement() {;}
0058 
0059   virtual AbsMeasurement* clone() const override {return new WirePointMeasurement(*this);}
0060 
0061   virtual SharedPlanePtr constructPlane(const StateOnPlane& state) const override;
0062 
0063   virtual std::vector<MeasurementOnPlane*> constructMeasurementsOnPlane(const StateOnPlane& state) const override;
0064 
0065   virtual const AbsHMatrix* constructHMatrix(const AbsTrackRep*) const override;
0066 
0067 
0068  public:
0069 
0070   ClassDefOverride(WirePointMeasurement,1)
0071 
0072 };
0073 
0074 } /* End of namespace genfit */
0075 /** @} */
0076 
0077 #endif // genfit_WirePointMeasurement_h