SND@LHC Software
Loading...
Searching...
No Matches
GFRavePropagator.cc
Go to the documentation of this file.
1/* Copyright 2008-2010, Technische Universitaet Muenchen,
2 Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
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
20
21#include "GFRavePropagator.h"
22#include "GFRaveConverters.h"
23#include "Exception.h"
24
25#include <iostream>
26
27
28namespace genfit {
29
31 IdGFTrackStateMap_(NULL)
32{
33 //std::cout << "GFRavePropagator::GFRavePropagator() \n";
34}
35
38{
39 //std::cout << "GFRavePropagator::copy() \n";
40 return new GFRavePropagator(*this);
41}
42
43
45{
46 //std::cout << "GFRavePropagator::~GFRavePropagator() \n";
47}
48
49
50std::pair < rave::Track, double >
51GFRavePropagator::to ( const rave::Track & orig,
52 const ravesurf::Cylinder & rcyl ) const
53{
54 // todo to be implemented!!
55 Exception exc("GFRavePropagator::to (cylinder) ==> not yet implemented!",__LINE__,__FILE__);
56 throw exc;
57}
58
59
60std::pair < rave::Track, double >
61GFRavePropagator::to ( const rave::Track & orig,
62 const ravesurf::Plane & rplane ) const
63{
64 // will throw Exception if extrapolation does not work
65 double path = IdGFTrackStateMap_->at(orig.id()).state_->extrapolateToPlane(PlaneToGFDetPlane(rplane));
66
67 std::pair < rave::Track, double > ret(GFTrackToTrack(IdGFTrackStateMap_->at(orig.id()), orig.id(), orig.tag()), path);
68 return ret;
69}
70
71
72rave::Track
73GFRavePropagator::closestTo ( const rave::Track & orig,
74 const rave::Point3D & pt, bool transverse ) const
75{
76
77 if (transverse){
78 Exception exc("GFRavePropagator::closestTo ==> transverse is true, not implemented!",__LINE__,__FILE__);
79 throw exc;
80 }
81
82 TVector3 point(Point3DToTVector3(pt));
83 IdGFTrackStateMap_->at(orig.id()).state_->extrapolateToPoint(point);
84
85 return GFTrackToTrack(IdGFTrackStateMap_->at(orig.id()), orig.id(), orig.tag());
86}
87
88
89void
90GFRavePropagator::setIdGFTrackStateMap(std::map < int, genfit::trackAndState > * map){
91 std::cout << "GFRavePropagator::setIdGFMeasuredStateOnPlaneMap() \n";
92
94
95 if (IdGFTrackStateMap_==NULL) {
96 Exception exc("GFRavePropagator::setIdGFMeasuredStateOnPlaneMap ==> map is NULL!",__LINE__,__FILE__);
97 throw exc;
98 }
99 //std::cout<<"IdGFTrackStateMap_: " << (int)IdGFTrackStateMap_ << std::endl;
100}
101
102} /* End of namespace genfit */
Exception class for error handling in GENFIT (provides storage for diagnostic information)
Definition Exception.h:48
GFRavePropagator class.
std::map< int, genfit::trackAndState > * IdGFTrackStateMap_
virtual rave::Track closestTo(const rave::Track &, const rave::Point3D &, bool transverse) const
virtual std::pair< rave::Track, double > to(const rave::Track &orig, const ravesurf::Plane &) const
virtual GFRavePropagator * copy() const
void setIdGFTrackStateMap(std::map< int, genfit::trackAndState > *map)
Matrix inversion tools.
Definition AbsBField.h:29
rave::Track GFTrackToTrack(trackAndState, int id=-1, std::string tag="")
TVector3 Point3DToTVector3(const rave::Point3D &)
SharedPlanePtr PlaneToGFDetPlane(const ravesurf::Plane &rplane)