Back to home page

sPhenix code displayed by LXR

 
 

    


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

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 
0020 /**
0021  *  @author Johannes Rauch (Technische Universit&auml;t M&uuml;nchen, original author)
0022  *
0023  */
0024 
0025 /** @addtogroup GFRave
0026  * @{
0027  */
0028 
0029 #ifndef GFRAVEPROPAGATOR_H
0030 #define GFRAVEPROPAGATOR_H
0031 
0032 #include "GFRaveVertexFactory.h"
0033 #include "AbsTrackRep.h"
0034 
0035 #include <rave/Propagator.h>
0036 #include <rave/Track.h>
0037 #include <rave/Plane.h>
0038 #include <rave/Cylinder.h>
0039 
0040 #include <map>
0041 
0042 
0043 namespace genfit {
0044 
0045 /**
0046  * @brief GFRavePropagator class
0047  *
0048  * Inherits from rave::Propagator. A map has to be provided,
0049  * containing pointers the genfit::Tracks, as well as pointers to clones of fitted states.
0050  * The GFRavePropagator uses the information of the rave::track to set
0051  * the state and covariance of the corresponding MeasuredStateOnPlane,
0052  * extrapolates and then returns a new rave::track with the
0053  * extrapolated state and covariance.
0054  */
0055 class GFRavePropagator : public rave::Propagator
0056 {
0057   public:
0058     GFRavePropagator();
0059     virtual GFRavePropagator* copy() const;
0060     virtual rave::Track closestTo ( const rave::Track &,
0061                                     const rave::Point3D &, bool transverse ) const;
0062     virtual std::pair < rave::Track, double > to ( const rave::Track & orig,
0063                                                    const ravesurf::Plane & ) const;
0064     virtual std::pair < rave::Track, double > to ( const rave::Track & orig,
0065                                                    const ravesurf::Cylinder & ) const;
0066 
0067     virtual ~GFRavePropagator();
0068 
0069     void setIdGFTrackStateMap(std::map < int, genfit::trackAndState > * map);
0070 
0071   private:
0072 
0073     // data members
0074     std::map < int, genfit::trackAndState > * IdGFTrackStateMap_; // pointers to genfit::tracks and measuredStateOnPlanes via rave track ID
0075 };
0076 
0077 } /* End of namespace genfit */
0078 /** @} */
0079 
0080 #endif // GFRAVEPROPAGATOR_H