All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GFSpacepointHitPolicy.h
Go to the documentation of this file.
1 /* Copyright 2008-2010, Technische Universitaet Muenchen,
2  Authors: Christian Hoeppner & Sebastian Neubert
3 
4  This file is part of GENFIT.
5 
6  GENFIT is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published
8  by the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  GENFIT is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
18 */
19 /** @addtogroup genfit
20  * @{
21  */
22 
23 #ifndef GFSPACEPOINTHITPOLICY_H
24 #define GFSPACEPOINTHITPOLICY_H
25 
26 #include "RtypesCore.h"
27 #include "TMatrixT.h"
28 #include "TObject.h"
29 
31 
32 
33 /** @brief Policy class implementing a space point hit geometry.
34  *
35  * @author Christian H&ouml;ppner (Technische Universit&auml;t M&uuml;nchen, original author)
36  * @author Sebastian Neubert (Technische Universit&auml;t M&uuml;nchen, original author)
37  *
38  * RecoHits for detectors measuring 3D space points should inherit
39  * from RecoHitIfc<GFSpacepointHitPolicy>.
40  *
41  * For a space point the detector plane has to be defined with respect to
42  * a track representation. GFSpacepointHitPolicy implements a scheme where the
43  * detectorplane is chosen perpendicular to the track.
44  * In a track fit only 2 of the three coordinates of a space point are
45  * independent (the track is a one-dimensional object). Therefore the 3D
46  * data of the hit is used to define a proper detector plane into which the
47  * hit coordinates are then projected.
48  */
49 
50 namespace genf {
51 
52 class GFAbsRecoHit;
53 class GFAbsTrackRep;
54 
55 class GFSpacepointHitPolicy : public TObject {
56 public:
57 
58 
60 
61  // Operations ----------------------
62  /** @brief Get detector plane perpendicular to track.
63  *
64  * The detector plane is contructed from the position of the hit and
65  * the track representation. For this the track is extrapolated to the
66  * point of closest approach to the hit.
67  */
69 
70  /** @brief Hit coordinates in detector plane.
71  */
72  TMatrixT<double> hitCoord(GFAbsRecoHit*,const GFDetPlane&);
73  TMatrixT<double> hitCoord(GFAbsRecoHit*,const GFDetPlane&,const GFDetPlane&);
74 
75  /** @brief Hit covariances in detector plane.
76  */
77  TMatrixT<double> hitCov(GFAbsRecoHit*,const GFDetPlane&);
78  TMatrixT<double> hitCov(GFAbsRecoHit* hit,const GFDetPlane& plane, const GFDetPlane& planePrev, const TMatrixT<Double_t>& state, const Double_t& mass);
80 
81  const std::string& getName(){return fPolicyName;}
82 
83  private:
84  static const std::string fPolicyName;
85 
86  // Private Data Members ------------
88 
89  // Private Methods -----------------
90 
91  // public:
92  // ClassDef(GFSpacepointHitPolicy,1);
93 };
94 } // namespace genf
95 #endif
96 
97 /** @} */
process_name hit
Definition: cheaterreco.fcl:51
TMatrixT< double > hitCoord(GFAbsRecoHit *, const GFDetPlane &)
Hit coordinates in detector plane.
Base Class for genfit track representations. Defines interface for track parameterizations.
Definition: GFAbsTrackRep.h:83
TMatrixT< double > hitCov(GFAbsRecoHit *, const GFDetPlane &)
Hit covariances in detector plane.
static const std::string fPolicyName
const GFDetPlane & detPlane(GFAbsRecoHit *, GFAbsTrackRep *)
Get detector plane perpendicular to track.
float mass
Definition: dedx.py:47