CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
cms::FastMuPropagator Class Reference

#include <FastMuPropagator.h>

Inheritance diagram for cms::FastMuPropagator:
Propagator

Public Member Functions

virtual FastMuPropagatorclone () const
 
 FastMuPropagator (const MagneticField *mf, PropagationDirection dir=alongMomentum)
 
 FastMuPropagator (const MagneticField *mf, FmpConst *fmp, PropagationDirection dir=alongMomentum)
 
virtual const MagneticFieldmagneticField () const
 
TrajectoryStateOnSurface propagate (const FreeTrajectoryState &fts, const Cylinder &bound) const
 
TrajectoryStateOnSurface propagate (const FreeTrajectoryState &fts, const Plane &) const
 
TrajectoryStateOnSurface propagate (const FreeTrajectoryState &fts, const Surface &surface) const
 
virtual std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const FreeTrajectoryState &state, const Plane &bc) const
 
virtual std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const FreeTrajectoryState &state, const Cylinder &bc) const
 
virtual ~FastMuPropagator ()
 
- Public Member Functions inherited from Propagator
virtual TrajectoryStateOnSurface propagate (const TrajectoryStateOnSurface &, const Surface &) const
 
virtual TrajectoryStateOnSurface propagate (const TrajectoryStateOnSurface &, const Plane &) const
 
virtual TrajectoryStateOnSurface propagate (const TrajectoryStateOnSurface &, const Cylinder &) const
 
virtual FreeTrajectoryState propagate (const FreeTrajectoryState &, const reco::BeamSpot &) const
 
virtual std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const FreeTrajectoryState &, const Surface &) const
 
virtual std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const TrajectoryStateOnSurface &, const Surface &) const
 
virtual std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const TrajectoryStateOnSurface &, const Plane &) const
 
virtual std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const TrajectoryStateOnSurface &, const Cylinder &) const
 
virtual std::pair
< FreeTrajectoryState, double > 
propagateWithPath (const FreeTrajectoryState &, const GlobalPoint &, const GlobalPoint &) const
 
virtual PropagationDirection propagationDirection () const
 
 Propagator (PropagationDirection dir=alongMomentum)
 
virtual bool setMaxDirectionChange (float phiMax)
 
virtual void setPropagationDirection (PropagationDirection dir) const
 
virtual ~Propagator ()
 

Private Member Functions

bool checkfts (const FreeTrajectoryState &fts) const
 

Private Attributes

const MagneticFieldfield
 
FmpConsttheFmpConst
 

Detailed Description

Definition at line 18 of file FastMuPropagator.h.

Constructor & Destructor Documentation

cms::FastMuPropagator::FastMuPropagator ( const MagneticField mf,
PropagationDirection  dir = alongMomentum 
)
inline

Definition at line 20 of file FastMuPropagator.h.

References field, and theFmpConst.

Referenced by clone().

21  {theFmpConst=new FmpConst(); field = mf;}
const MagneticField * field
cms::FastMuPropagator::FastMuPropagator ( const MagneticField mf,
FmpConst fmp,
PropagationDirection  dir = alongMomentum 
)
inline

Definition at line 23 of file FastMuPropagator.h.

References field, and theFmpConst.

24  {theFmpConst=fmp; field = mf;}
const MagneticField * field
virtual cms::FastMuPropagator::~FastMuPropagator ( )
inlinevirtual

Definition at line 28 of file FastMuPropagator.h.

28  {
29  // delete theFmpConst;
30  }

Member Function Documentation

bool cms::FastMuPropagator::checkfts ( const FreeTrajectoryState fts) const
private

Definition at line 282 of file FastMuPropagator.cc.

References abs, CastorDataFrameFilter_impl::check(), gather_cfg::cout, FreeTrajectoryState::parameters(), PV3DBase< T, PVType, FrameType >::perp(), GlobalTrajectoryParameters::position(), csvReporter::r, detailsBasic3DVector::z, and PV3DBase< T, PVType, FrameType >::z().

282  {
283  bool check=true;
284  double z=fts.parameters().position().z();
285  double r=fts.parameters().position().perp();
286  float mubarrelrad=theFmpConst->mubarrelrad;
287  float muforwardrad=theFmpConst->muforwardrad;
288  float muoffset=theFmpConst->muoffset;
289  mubarrelrad=350.; muforwardrad=400.;
290 #ifdef PROPAGATOR_DB
291  cout<<"checkfts::r,z="<<r<<" "<<z<<" "<<check<<endl;
292 #endif
293  if(r<mubarrelrad-muoffset&&abs(z)<muforwardrad-muoffset){
294  check=false;
295 #ifdef PROPAGATOR_DB
296  cout<<"checkfts::false="<<check<<endl;
297 #endif
298  }
299  return check;
300 }
T perp() const
Definition: PV3DBase.h:66
const GlobalTrajectoryParameters & parameters() const
#define abs(x)
Definition: mlp_lapack.h:159
double double double z
bool check(const DataFrame &df, bool capcheck, bool dvercheck)
T z() const
Definition: PV3DBase.h:58
float muforwardrad
Definition: FmpConst.h:76
float mubarrelrad
Definition: FmpConst.h:75
tuple cout
Definition: gather_cfg.py:41
float muoffset
Definition: FmpConst.h:77
virtual FastMuPropagator* cms::FastMuPropagator::clone ( void  ) const
inlinevirtual

Implements Propagator.

Definition at line 38 of file FastMuPropagator.h.

References alongMomentum, dir, FastMuPropagator(), and field.

39  {
41  return new FastMuPropagator(field,dir);
42  }
const MagneticField * field
PropagationDirection
FastMuPropagator(const MagneticField *mf, PropagationDirection dir=alongMomentum)
dbl *** dir
Definition: mlp_gen.cc:35
virtual const MagneticField* cms::FastMuPropagator::magneticField ( ) const
inlinevirtual

Implements Propagator.

Definition at line 60 of file FastMuPropagator.h.

References field.

60 {return field;}
const MagneticField * field
TrajectoryStateOnSurface cms::FastMuPropagator::propagate ( const FreeTrajectoryState fts,
const Cylinder bound 
) const
virtual

Implements Propagator.

Definition at line 22 of file FastMuPropagator.cc.

References abs, DeDxDiscriminatorTools::charge(), GlobalTrajectoryParameters::charge(), funct::cos(), gather_cfg::cout, FreeTrajectoryState::curvilinearError(), m, CurvilinearTrajectoryError::matrix(), GlobalTrajectoryParameters::momentum(), FreeTrajectoryState::parameters(), PV3DBase< T, PVType, FrameType >::perp(), phi, PV3DBase< T, PVType, FrameType >::phi(), pi, GlobalTrajectoryParameters::position(), ptmin, Cylinder::radius(), funct::sin(), launcher::step, funct::tan(), PV3DBase< T, PVType, FrameType >::theta(), theta(), detailsBasic3DVector::z, and PV3DBase< T, PVType, FrameType >::z().

24 {
26 
27  if(!checkfts(fts)) return badtsos;
28 
29 #ifdef PROPAGATOR_DB
30  cout<<"FastMuPropagator::propagate::Start propagation in barrel::zvert "<<theFmpConst->zvert<<endl;
31 #endif
32 
33  // Extract information from muchambers
34 
35  int charge;
36  int imin0,imax0;
37  double ptmax,ptmin,pt,phi,theta,theta0,z,pl;
38  double dfcalc,phnext,bound;
39  float ptboun=theFmpConst->ptboun;
40  float step=theFmpConst->step;
41 
42  GlobalVector moment=fts.parameters().momentum();
43  GlobalPoint posit=fts.parameters().position();
44  pt=moment.perp();
45  theta0=moment.theta();
46 // Correct theta
47  double zfts=fts.parameters().position().z()-theFmpConst->zvert;
48  double rfts=fts.parameters().position().perp();
49  theta = atan2(rfts,zfts);
50 
51 #ifdef PROPAGATOR_DB
52  cout<<"FastMuPropagator::propagate::Start propagation in barrel::theta old, new "<<theta0<<" "<<theta<<endl;
53 #endif
54 
55  phi=posit.phi();
56  ptmax=pt+fts.curvilinearError().matrix()(1,1);
57  ptmin=pt-fts.curvilinearError().matrix()(1,1);
58  bound=boundcyl.radius();
59  charge=fts.parameters().charge();
60 
61  imax0=(int)((ptmax-ptboun)/step)+1;
62  imin0=(int)((ptmin-ptboun)/step)+1;
63 #ifdef PROPAGATOR_DB
64  cout<<"FastMuPropagator::Look ptboun,step,imin0,imax0="<<ptboun<<" "<<step<<
65  " "<<imin0<<" "<<imax0<<endl;
66  cout<<"FastMuPropagator::Parameters (pt,theta,phi,ptmax,ptmin,bound)="<<pt<<" "
67  <<theta<<" "<<phi<<" "<<ptmax<<" "<<ptmin<<" "<<bound<<endl;
68 #endif
69  if(imax0 > 1){
70  if(imin0<1) imin0=1;
71  // ========================== phi ========================================
72  // new parametrisation (because of second mu-station)
73  //
74 
75 #ifdef PROPAGATOR_DB
76  cout<<"FastMuPropagator::New parameters="<<theFmpConst->newparam[0]<<endl;
77  cout<<"FastMuPropagator::New parameters for pt>40="<<
78  theFmpConst->newparamgt40[0]<<endl;
79 #endif
80 
81  if(pt<40.) {
82  dfcalc=charge/(theFmpConst->newparam[0]+theFmpConst->newparam[1]*pt
83  +theFmpConst->newparam[2]*pt*pt);
84  }else{
85  dfcalc=charge/(theFmpConst->newparamgt40[0]+
87  }
88 //
89 // !!!! temporarily decision till new parametrization appears.
90 //
91  if (abs(dfcalc) > 0.6 ) dfcalc = charge*0.6;
92 
93  phnext=dfcalc+phi;
94  if(phnext>=twopi) phnext=phnext-twopi;
95  if(phnext <0.) phnext=twopi+phnext;
96 #ifdef PROPAGATOR_DB
97  cout<<"FastMuPropagator::Phi in Muon Chamb="<<phi<<endl;
98  cout<<"FastMuPropagator::Phnext determined="<<phnext<<" dfcalc="<<dfcalc<<endl;
99 #endif
100  // ========================== Z ========================================
101  if(abs(theta-pi/2.)>0.00001){
102  z=bound/tan(theta)+theFmpConst->zvert;
103  if(fabs(z)>140) {
104 // Temporary implementation =====
105 // if(z>0.) z = z-45.;
106 // if(z<0.) z = z+45.;
107 // ==============================
108  }
109  }else{
110  z=0.;
111  }
112 #ifdef PROPAGATOR_DB
113  cout<<"FastMuPropgator::Z coordinate="<<z<<"bound="<<bound<<"theta="<<theta<<" "<<
114  abs(theta-pi/2.)<<endl;
115 #endif
116  // ====================== fill global point/vector =======================
117  GlobalPoint aX(bound*cos(phnext),bound*sin(phnext),z);
118  if(abs(theta-pi/2.)<0.00001){
119  pl=0.;
120  }else{
121  pl=pt/tan(theta);
122  }
123  // Recalculate momentum with some trick...
124  double dfcalcmom=charge*theFmpConst->partrack*bound/pt;
125  GlobalVector aP(pt*cos(phnext-dfcalcmom),pt*sin(phnext-dfcalcmom),pl);
126 
127 #ifdef PROPAGATOR_DB
128  cout<<"phnextmom="<<phnext-dfcalcmom<<endl;
129  cout<<"Cylinder aP="<<aP<<endl;
130  cout<<"Before propagation="<<pt*cos(phi)<< " "<<pt*sin(phi)<<" "<<pl<<endl;
131 #endif
132  // =======================================================================
133 
134  GlobalTrajectoryParameters gtp(aX,aP,charge,field);
136  int iwin;
137  float awin,bwin,phbound;
138 
139  if(pt>40.) {
140  iwin=8;
141  phbound=theFmpConst->phiwinb[7];
142  }else{
143  iwin=(int)(pt/theFmpConst->ptstep);
144  awin=(theFmpConst->phiwinb[iwin+1]-theFmpConst->phiwinb[iwin])
145  /(theFmpConst->ptwmax[iwin]-theFmpConst->ptwmin[iwin]);
146  bwin=theFmpConst->phiwinb[iwin]-awin*theFmpConst->ptwmin[iwin];
147  phbound=awin*pt+bwin;
148 
149  }
150 #ifdef PROPAGATOR_DB
151  cout<<"Size of window in phi="<<phbound<<" "<<iwin<<endl;
152  cout<<theFmpConst->phiwinb[iwin+1]<<" "<<theFmpConst->phiwinb[iwin]
153  <<" "<<theFmpConst->ptwmin[iwin]<<
154  " "<<theFmpConst->ptwmax[iwin]<<" awin="<<awin<<" bwin="<<bwin<<endl;
155 #endif
156  m(0,0)=(ptmax-ptmin)/6.; m(1,1)=phbound/theFmpConst->sigf;
158  m(3,3)=phbound/(2.*theFmpConst->sigf);m(4,4)=theFmpConst->zwin/(2.*theFmpConst->sigz);
159 
161 
162  FreeTrajectoryState fts(gtp,cte);
164  return tsos;
165 
166  }
167  return badtsos;
168 }
const MagneticField * field
float ptboun
Definition: FmpConst.h:79
T perp() const
Definition: PV3DBase.h:66
list step
Definition: launcher.py:15
const GlobalTrajectoryParameters & parameters() const
bool checkfts(const FreeTrajectoryState &fts) const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Phi< T > phi() const
Definition: PV3DBase.h:63
Geom::Theta< T > theta() const
float partrack
Definition: FmpConst.h:93
#define abs(x)
Definition: mlp_lapack.h:159
float ptstep
Definition: FmpConst.h:82
float zvert
Definition: FmpConst.h:94
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
double charge(const std::vector< uint8_t > &Ampls)
const CurvilinearTrajectoryError & curvilinearError() const
double double double z
Geom::Theta< T > theta() const
Definition: PV3DBase.h:69
float sigz
Definition: FmpConst.h:89
T z() const
Definition: PV3DBase.h:58
float phiwinb[8]
Definition: FmpConst.h:84
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
float ptwmin[8]
Definition: FmpConst.h:87
float newparam[3]
Definition: FmpConst.h:71
float sigf
Definition: FmpConst.h:90
float step
Definition: FmpConst.h:80
float newparamgt40[3]
Definition: FmpConst.h:72
double ptmin
Definition: HydjetWrapper.h:86
float ptwmax[8]
Definition: FmpConst.h:86
const AlgebraicSymMatrix55 & matrix() const
tuple cout
Definition: gather_cfg.py:41
double pi
float zwin
Definition: FmpConst.h:88
Definition: DDAxes.h:10
TrajectoryStateOnSurface cms::FastMuPropagator::propagate ( const FreeTrajectoryState fts,
const Plane boundplane 
) const
virtual

Implements Propagator.

Definition at line 172 of file FastMuPropagator.cc.

References abs, DeDxDiscriminatorTools::charge(), GlobalTrajectoryParameters::charge(), funct::cos(), gather_cfg::cout, FreeTrajectoryState::curvilinearError(), m, CurvilinearTrajectoryError::matrix(), GlobalTrajectoryParameters::momentum(), FreeTrajectoryState::parameters(), PV3DBase< T, PVType, FrameType >::perp(), phi, PV3DBase< T, PVType, FrameType >::phi(), GloballyPositioned< T >::position(), GlobalTrajectoryParameters::position(), ptmin, csvReporter::r, funct::sin(), launcher::step, funct::tan(), PV3DBase< T, PVType, FrameType >::theta(), theta(), detailsBasic3DVector::z, and PV3DBase< T, PVType, FrameType >::z().

175 {
176  TrajectoryStateOnSurface badtsos;
177 
178 #ifdef PROPAGATOR_DB
179  cout<<"FastMuPropagator::propagate::Start propagation in forward::zvert "<<theFmpConst->zvert<<endl;
180 #endif
181  if(!checkfts(fts)) return badtsos;
182 
183  // Extract information from muchambers
184 
185  int imin0,imax0;
186  double ptmax,ptmin,pt,phi,theta,theta0,z,r,pl,plmin,plmax;
187  double dfcalc,phnext;
189  float ptboun=theFmpConst->ptboun;
190  float step=theFmpConst->step;
191 
192 
193  GlobalVector moment=fts.parameters().momentum();
194  GlobalPoint posit=fts.parameters().position();
195  pt=moment.perp();
196  theta0=moment.theta();
197 // Correct theta
198  double zfts=fts.parameters().position().z()-theFmpConst->zvert;
199  double rfts=fts.parameters().position().perp();
200  theta = atan2(rfts,zfts);
201 
202 #ifdef PROPAGATOR_DB
203  cout<<"FastMuPropagator::propagate::Start propagation in forward::theta old, new "<<theta0<<" "<<theta<<endl;
204 #endif
205 
206  phi=posit.phi();
207  ptmax=pt+fts.curvilinearError().matrix()(1,1);
208  ptmin=pt-fts.curvilinearError().matrix()(1,1);
209  pl=pt/tan(theta);
210  plmin=ptmin/tan(theta);
211  plmax=ptmax/tan(theta);
212  imax0=(int)((ptmax-ptboun)/step)+1;
213  imin0=(int)((ptmin-ptboun)/step)+1;
214 #ifdef PROPAGATOR_DB
215  cout<<"FastMuPropagator::Look ptboun,step,imin0,imax0="<<ptboun<<" "<<step<<
216  " "<<imin0<<" "<<imax0<<endl;
217  cout<<"FastMuPropagator::Parameters (pt,theta,phi,ptmax,ptmin)="<<pt<<" "
218  <<theta<<" "<<phi<<" "<<ptmax<<" "<<ptmin<<endl;
219 #endif
220  if(imax0 > 1){
221  if(imin0<1) imin0=1;
222 
223  z=boundplane.position().z();
224  r=(z-theFmpConst->zvert)*tan(theta);
225  charge=fts.parameters().charge();
226 
227  // pl evaluation
228 
229  dfcalc=theFmpConst->forwparam[0]+
230  charge*theFmpConst->forwparam[1]/abs(pl);
231  phnext=dfcalc+phi;
232  if(phnext>=twopi) phnext=phnext-twopi;
233  if(phnext <0.) phnext=twopi+phnext;
234 #ifdef PROPAGATOR_DB
235  cout<<"FastMuPropagator::Phi in Muon Chamb="<<phi<<endl;
236  cout<<"FastMuPropagator::Phnext determined="<<phnext<<" dfcalc="<<dfcalc<<endl;
237 #endif
238 
239  int iwin;
240  float awin,bwin,phbound;
242 
243  if(pt>40.) {
244  phbound=theFmpConst->phiwinf[7];
245  }else{ // r < bound
246  iwin=(int)(pt/theFmpConst->ptstep);
247  awin=(theFmpConst->phiwinf[iwin+1]-theFmpConst->phiwinf[iwin])
248  /(theFmpConst->ptwmax[iwin]-theFmpConst->ptwmin[iwin]);
249  bwin=theFmpConst->phiwinf[iwin]-awin*theFmpConst->ptwmin[iwin];
250  phbound=awin*pt+bwin;
251  }
252 #ifdef PROPAGATOR_DB
253  cout<<"Forward::Size of window in phi="<<phbound<<endl;
254 #endif
255  m(0,0)=abs(plmax-plmin)/6.; m(1,1)=phbound/theFmpConst->sigf;
257  m(3,3)=phbound/(2.*theFmpConst->sigf);m(4,4)=theFmpConst->zwin/(2.*theFmpConst->sigz);
258 
259  GlobalPoint aX(r*cos(phnext),r*sin(phnext),z);
260 
261  // Recalculate momentum with some trick...
262  double dfcalcmom=charge*theFmpConst->partrack*abs(z)/abs(pl);
263  GlobalVector aP(pt*cos(phnext-dfcalcmom),pt*sin(phnext-dfcalcmom),pl);
264 #ifdef PROPAGATOR_DB
265  cout<<"dfcalcmom="<<charge<<" "<<theFmpConst->partrack<<" "<<z<<" "<<pl<<" "<<phnext<<endl;
266  cout<<"phnextmom="<<phnext-dfcalcmom<<endl;
267 
268  cout<<"Plane aP="<<aP<<endl;
269  cout<<"Before propagation="<<pt*cos(phi)<< " "<<pt*sin(phi)<<" "<<pl<<endl;
270 #endif
271 
272  GlobalTrajectoryParameters gtp(aX,aP,charge,field);
274 
275  TrajectoryStateOnSurface tsos(gtp, CurvilinearTrajectoryError(m), boundplane);
276  return tsos;
277  }
278 
279  return badtsos;
280 }
const MagneticField * field
float ptboun
Definition: FmpConst.h:79
T perp() const
Definition: PV3DBase.h:66
list step
Definition: launcher.py:15
const GlobalTrajectoryParameters & parameters() const
bool checkfts(const FreeTrajectoryState &fts) const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Phi< T > phi() const
Definition: PV3DBase.h:63
Geom::Theta< T > theta() const
float partrack
Definition: FmpConst.h:93
#define abs(x)
Definition: mlp_lapack.h:159
float ptstep
Definition: FmpConst.h:82
float zvert
Definition: FmpConst.h:94
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
double charge(const std::vector< uint8_t > &Ampls)
const CurvilinearTrajectoryError & curvilinearError() const
double double double z
Geom::Theta< T > theta() const
Definition: PV3DBase.h:69
int TrackCharge
Definition: TrackCharge.h:4
float sigz
Definition: FmpConst.h:89
T z() const
Definition: PV3DBase.h:58
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
float forwparam[2]
Definition: FmpConst.h:73
float phiwinf[8]
Definition: FmpConst.h:85
float ptwmin[8]
Definition: FmpConst.h:87
float sigf
Definition: FmpConst.h:90
float step
Definition: FmpConst.h:80
double ptmin
Definition: HydjetWrapper.h:86
float ptwmax[8]
Definition: FmpConst.h:86
const AlgebraicSymMatrix55 & matrix() const
tuple cout
Definition: gather_cfg.py:41
const PositionType & position() const
float zwin
Definition: FmpConst.h:88
Definition: DDAxes.h:10
TrajectoryStateOnSurface cms::FastMuPropagator::propagate ( const FreeTrajectoryState state,
const Surface sur 
) const
inlinevirtual

Propagate from a free state (e.g. position and momentum in in global cartesian coordinates) to a surface.Only use the generic method if the surface type (plane or cylinder) is not known at the calling point.

Reimplemented from Propagator.

Definition at line 44 of file FastMuPropagator.h.

References Propagator::propagate().

45  {
46  return Propagator::propagate( fts, surface);
47  }
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:9
virtual std::pair< TrajectoryStateOnSurface, double> cms::FastMuPropagator::propagateWithPath ( const FreeTrajectoryState state,
const Plane bc 
) const
inlinevirtual

Implements Propagator.

Definition at line 50 of file FastMuPropagator.h.

50  {
51  std::pair<TrajectoryStateOnSurface,double> tp;
52  return tp;
53  }
virtual std::pair< TrajectoryStateOnSurface, double> cms::FastMuPropagator::propagateWithPath ( const FreeTrajectoryState state,
const Cylinder bc 
) const
inlinevirtual

Implements Propagator.

Definition at line 55 of file FastMuPropagator.h.

55  {
56  std::pair<TrajectoryStateOnSurface,double> tp;
57  return tp;
58  }

Member Data Documentation

const MagneticField* cms::FastMuPropagator::field
private

Definition at line 65 of file FastMuPropagator.h.

Referenced by clone(), FastMuPropagator(), and magneticField().

FmpConst* cms::FastMuPropagator::theFmpConst
private

Definition at line 64 of file FastMuPropagator.h.

Referenced by FastMuPropagator().