LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
genf::GFDetPlane Class Reference

#include "GFDetPlane.h"

Inheritance diagram for genf::GFDetPlane:

Public Member Functions

 GFDetPlane (genf::GFAbsFinitePlane *finite=NULL)
 
 GFDetPlane (const TVector3 &o, const TVector3 &u, const TVector3 &v, genf::GFAbsFinitePlane *finite=NULL)
 
 GFDetPlane (const TVector3 &o, const TVector3 &n, genf::GFAbsFinitePlane *finite=NULL)
 
virtual ~GFDetPlane ()
 
 GFDetPlane (const genf::GFDetPlane &)
 
GFDetPlaneoperator= (const genf::GFDetPlane &)
 
TVector3 getO () const
 
TVector3 getU () const
 
TVector3 getV () const
 
void set (const TVector3 &o, const TVector3 &u, const TVector3 &v)
 
void setO (const TVector3 &o)
 
void setO (double, double, double)
 
void setU (const TVector3 &u)
 
void setU (double, double, double)
 
void setV (const TVector3 &v)
 
void setV (double, double, double)
 
void setUV (const TVector3 &u, const TVector3 &v)
 
void setON (const TVector3 &o, const TVector3 &n)
 
void setFinitePlane (genf::GFAbsFinitePlane *finite)
 
TVector3 getNormal () const
 
void setNormal (TVector3 n)
 
void setNormal (double, double, double)
 
void setNormal (const double &theta, const double &phi)
 
TVector2 project (const TVector3 &x) const
 projecting a direction onto the plane: More...
 
TVector2 LabToPlane (const TVector3 &x) const
 transform from Lab system into plane More...
 
TVector3 toLab (const TVector2 &x) const
 transform from plane coordinates to lab system More...
 
TVector3 dist (const TVector3 &point) const
 
TVector2 straightLineToPlane (const TVector3 &point, const TVector3 &dir) const
 gives u,v coordinates of the intersection point of a straight line with plane More...
 
void Print (std::ostream &out=std::cout) const
 
void getGraphics (double mesh, double length, TPolyMarker3D **pl, TPolyLine3D **plLine, TPolyLine3D **u, TPolyLine3D **v, TPolyLine3D **n=NULL)
 for poor attempts of making an event display. There is a lot of room for improvements. More...
 
double distance (TVector3 &) const
 
double distance (double, double, double) const
 
bool inActive (const TVector3 &point, const TVector3 &dir) const
 intersect in the active area? C.f. GFAbsFinitePlane More...
 
bool inActive (double u, double v) const
 inActive methods refer to finite plane. C.f. GFAbsFinitePlane More...
 
bool inActive (const TVector2 &v) const
 inActive methods refer to finite plane. C.f. GFAbsFinitePlane More...
 
void sane ()
 

Public Attributes

TVector3 fO
 
TVector3 fU
 
TVector3 fV
 
genf::GFAbsFinitePlanefFinitePlane
 

Private Member Functions

virtual void Print (Option_t *) const
 

Friends

bool operator== (const GFDetPlane &, const GFDetPlane &)
 
bool operator!= (const GFDetPlane &, const GFDetPlane &)
 returns NOT == More...
 

Detailed Description

Definition at line 60 of file GFDetPlane.h.

Constructor & Destructor Documentation

genf::GFDetPlane::GFDetPlane ( genf::GFAbsFinitePlane finite = NULL)

Definition at line 39 of file GFDetPlane.cxx.

References fO, fU, fV, and sane().

40  :fFinitePlane(finite)
41 {
42  static TRandom3 r(0);
43  fO.SetXYZ(0.,0.,0.);
44  fU.SetXYZ(r.Uniform(),r.Uniform(),0.);
45  fV.SetXYZ(r.Uniform(),r.Uniform(),0.);
46  sane();
47 }
genf::GFAbsFinitePlane * fFinitePlane
Definition: GFDetPlane.h:157
genf::GFDetPlane::GFDetPlane ( const TVector3 &  o,
const TVector3 &  u,
const TVector3 &  v,
genf::GFAbsFinitePlane finite = NULL 
)

Definition at line 31 of file GFDetPlane.cxx.

References sane().

35 :fO(o),fU(u),fV(v),fFinitePlane(finite)
36 {
37  sane();
38 }
genf::GFAbsFinitePlane * fFinitePlane
Definition: GFDetPlane.h:157
genf::GFDetPlane::GFDetPlane ( const TVector3 &  o,
const TVector3 &  n,
genf::GFAbsFinitePlane finite = NULL 
)

Definition at line 49 of file GFDetPlane.cxx.

References setNormal().

52  :fO(o),fFinitePlane(finite){
53  setNormal(n);
54 }
genf::GFAbsFinitePlane * fFinitePlane
Definition: GFDetPlane.h:157
void setNormal(TVector3 n)
Definition: GFDetPlane.cxx:158
Char_t n[5]
genf::GFDetPlane::~GFDetPlane ( )
virtual

Definition at line 56 of file GFDetPlane.cxx.

References fFinitePlane.

56  {
57  if(fFinitePlane!=NULL) delete fFinitePlane;
58 }
genf::GFAbsFinitePlane * fFinitePlane
Definition: GFDetPlane.h:157
genf::GFDetPlane::GFDetPlane ( const genf::GFDetPlane rhs)

Definition at line 60 of file GFDetPlane.cxx.

References genf::GFAbsFinitePlane::clone(), fFinitePlane, fO, fU, and fV.

60  : TObject(rhs) {
61  if(rhs.fFinitePlane != NULL) fFinitePlane = rhs.fFinitePlane->clone();
62  else fFinitePlane = NULL;
63  fO = rhs.fO;
64  fU = rhs.fU;
65  fV = rhs.fV;
66 }
genf::GFAbsFinitePlane * fFinitePlane
Definition: GFDetPlane.h:157
virtual GFAbsFinitePlane * clone() const =0
Deep copy ctor for polymorphic class.

Member Function Documentation

TVector3 genf::GFDetPlane::dist ( const TVector3 &  point) const

Definition at line 209 of file GFDetPlane.cxx.

References LabToPlane(), toLab(), and x.

Referenced by genf::GFWireHitPolicy::detPlane(), genf::GFWirepointHitPolicy::detPlane(), genf::RKTrackRep::Extrap(), and setFinitePlane().

210 {
211  TVector2 p=LabToPlane(x);
212  TVector3 xplane=toLab(p);
213  return xplane-x;
214 }
Float_t x
Definition: compare.C:6
TVector3 toLab(const TVector2 &x) const
transform from plane coordinates to lab system
Definition: GFDetPlane.cxx:198
TVector2 LabToPlane(const TVector3 &x) const
transform from Lab system into plane
Definition: GFDetPlane.cxx:191
double genf::GFDetPlane::distance ( TVector3 &  v) const

Definition at line 349 of file GFDetPlane.cxx.

References fO, fU, fV, and s.

Referenced by genf::RKTrackRep::Extrap(), genf::RKTrackRep::RKutta(), and setFinitePlane().

349  {
350  double s = (v - fO)*fU;
351  double t = (v - fO)*fV;
352  TVector3 distanceVector = v - fO - (s*fU) - (t*fV);
353  return distanceVector.Mag();
354 }
Float_t s
Definition: plot.C:23
double genf::GFDetPlane::distance ( double  x,
double  y,
double  z 
) const

Definition at line 355 of file GFDetPlane.cxx.

References fO, fU, fV, and s.

355  {
356  TVector3 v(x,y,z);
357  double s = (v - fO)*fU;
358  double t = (v - fO)*fV;
359  TVector3 distanceVector = v - fO - (s*fU) - (t*fV);
360  return distanceVector.Mag();
361 }
Float_t x
Definition: compare.C:6
Float_t s
Definition: plot.C:23
Float_t y
Definition: compare.C:6
Double_t z
Definition: plot.C:279
void genf::GFDetPlane::getGraphics ( double  mesh,
double  length,
TPolyMarker3D **  pl,
TPolyLine3D **  plLine,
TPolyLine3D **  u,
TPolyLine3D **  v,
TPolyLine3D **  n = NULL 
)

for poor attempts of making an event display. There is a lot of room for improvements.

Definition at line 289 of file GFDetPlane.cxx.

References fO, fU, fV, and getNormal().

Referenced by setFinitePlane().

289  {
290  *pl = new TPolyMarker3D(21*21,24);
291  (*pl)->SetMarkerSize(0.1);
292  (*pl)->SetMarkerColor(kBlue);
293  int nI=10;
294  int nJ=10;
295  *plLine = new TPolyLine3D(5);
296 
297  {
298  TVector3 linevec;
299  int i,j;
300  i=-1*nI;j=-1*nJ;
301  linevec=(fO+(mesh*i)*fU+(mesh*j)*fV);
302  (*plLine)->SetPoint(0,linevec.X(),linevec.Y(),linevec.Z());
303  i=-1*nI;j=1*nJ;
304  linevec=(fO+(mesh*i)*fU+(mesh*j)*fV);
305  (*plLine)->SetPoint(0,linevec.X(),linevec.Y(),linevec.Z());
306  i=1*nI;j=-1*nJ;
307  linevec=(fO+(mesh*i)*fU+(mesh*j)*fV);
308  (*plLine)->SetPoint(2,linevec.X(),linevec.Y(),linevec.Z());
309  i=1*nI;j=1*nJ;
310  linevec=(fO+(mesh*i)*fU+(mesh*j)*fV);
311  (*plLine)->SetPoint(1,linevec.X(),linevec.Y(),linevec.Z());
312  i=-1*nI;j=-1*nJ;
313  linevec=(fO+(mesh*i)*fU+(mesh*j)*fV);
314  (*plLine)->SetPoint(4,linevec.X(),linevec.Y(),linevec.Z());
315 
316  }
317  for (int i=-1*nI;i<=nI;++i){
318  for (int j=-1*nJ;j<=nJ;++j){
319  TVector3 vec(fO+(mesh*i)*fU+(mesh*j)*fV);
320  int id=(i+10)*21+j+10;
321  (*pl)->SetPoint(id,vec.X(),vec.Y(),vec.Z());
322  }
323  }
324 
325 
326  *u = new TPolyLine3D(2);
327  (*u)->SetPoint(0,fO.X(),fO.Y(),fO.Z());
328  (*u)->SetPoint(1,fO.X()+length*fU.X(),fO.Y()+length*fU.Y(),fO.Z()+length*fU.Z());
329  (*u)->SetLineWidth(2);
330  (*u)->SetLineColor(kGreen);
331 
332 
333  *v = new TPolyLine3D(2);
334  (*v)->SetPoint(0,fO.X(),fO.Y(),fO.Z());
335  (*v)->SetPoint(1,fO.X()+length*fV.X(),fO.Y()+length*fV.Y(),fO.Z()+length*fV.Z());
336  (*v)->SetLineWidth(2);
337  (*v)->SetLineColor(kRed);
338 
339  if(n!=NULL){
340  *n = new TPolyLine3D(2);
341  TVector3 _n=getNormal();
342  (*n)->SetPoint(0,fO.X(),fO.Y(),fO.Z());
343  (*n)->SetPoint(1,fO.X()+length*_n.X(),fO.Y()+length*_n.Y(),fO.Z()+length*_n.Z());
344  (*n)->SetLineWidth(2);
345  (*n)->SetLineColor(kBlue);
346  }
347 }
TVector3 getNormal() const
Definition: GFDetPlane.cxx:140
Char_t n[5]
TVector3 genf::GFDetPlane::getNormal ( ) const
bool genf::GFDetPlane::inActive ( const TVector3 &  point,
const TVector3 &  dir 
) const
inline

intersect in the active area? C.f. GFAbsFinitePlane

Definition at line 133 of file GFDetPlane.h.

References straightLineToPlane().

Referenced by genf::RKTrackRep::Extrap(), inActive(), and genf::RKTrackRep::RKutta().

133  {
134  return this->inActive( this->straightLineToPlane(point,dir));
135  }
TVector2 straightLineToPlane(const TVector3 &point, const TVector3 &dir) const
gives u,v coordinates of the intersection point of a straight line with plane
Definition: GFDetPlane.cxx:363
TDirectory * dir
Definition: macro.C:5
bool inActive(const TVector3 &point, const TVector3 &dir) const
intersect in the active area? C.f. GFAbsFinitePlane
Definition: GFDetPlane.h:133
bool genf::GFDetPlane::inActive ( double  u,
double  v 
) const
inline

inActive methods refer to finite plane. C.f. GFAbsFinitePlane

Definition at line 138 of file GFDetPlane.h.

References fFinitePlane, and genf::GFAbsFinitePlane::inActive().

138  {
139  if(fFinitePlane==NULL) return true;
140  return fFinitePlane->inActive(u,v);
141  }
virtual bool inActive(const double &u, const double &v) const =0
genf::GFAbsFinitePlane * fFinitePlane
Definition: GFDetPlane.h:157
bool genf::GFDetPlane::inActive ( const TVector2 &  v) const
inline

inActive methods refer to finite plane. C.f. GFAbsFinitePlane

Definition at line 144 of file GFDetPlane.h.

References inActive().

144  {
145  return inActive(v.X(),v.Y());
146  }
bool inActive(const TVector3 &point, const TVector3 &dir) const
intersect in the active area? C.f. GFAbsFinitePlane
Definition: GFDetPlane.h:133
TVector2 genf::GFDetPlane::LabToPlane ( const TVector3 &  x) const

transform from Lab system into plane

Definition at line 191 of file GFDetPlane.cxx.

References d, fO, and project().

Referenced by dist(), and setFinitePlane().

192 {
193  TVector3 d=x-fO;
194  return project(d);
195 }
Float_t x
Definition: compare.C:6
TVector2 project(const TVector3 &x) const
projecting a direction onto the plane:
Definition: GFDetPlane.cxx:183
Float_t d
Definition: plot.C:237
genf::GFDetPlane & genf::GFDetPlane::operator= ( const genf::GFDetPlane rhs)

Definition at line 67 of file GFDetPlane.cxx.

References genf::GFAbsFinitePlane::clone(), fFinitePlane, fO, fU, and fV.

67  {
68  if (this == &rhs) return *this;
69  if(fFinitePlane!=NULL) {
70  delete fFinitePlane;
71  }
72  if(rhs.fFinitePlane != NULL){
74  }
75  else{
76  fFinitePlane = NULL;
77  }
78  fO = rhs.fO;
79  fU = rhs.fU;
80  fV = rhs.fV;
81  return *this;
82 }
genf::GFAbsFinitePlane * fFinitePlane
Definition: GFDetPlane.h:157
virtual GFAbsFinitePlane * clone() const =0
Deep copy ctor for polymorphic class.
void genf::GFDetPlane::Print ( std::ostream &  out = std::cout) const

Definition at line 242 of file GFDetPlane.cxx.

References fFinitePlane, fO, fU, fV, getNormal(), and genf::GFAbsFinitePlane::Print().

Referenced by genf::GFBookkeeping::Print(), genf::GFAbsTrackRep::Print(), trkf::Track3DKalman::produce(), trkf::Track3DKalmanSPS::produce(), and setFinitePlane().

243 {
244  out<<"GFDetPlane: "
245  <<"O("<<fO.X()<<","<<fO.Y()<<","<<fO.Z()<<") "
246  <<"u("<<fU.X()<<","<<fU.Y()<<","<<fU.Z()<<") "
247  <<"v("<<fV.X()<<","<<fV.Y()<<","<<fV.Z()<<") "
248  <<"n("<<getNormal().X()<<","<<getNormal().Y()<<","<<getNormal().Z()<<") "
249  <<std::endl;
250  out << fFinitePlane << std::endl;
251  if(fFinitePlane!=NULL) fFinitePlane->Print(out);
252 
253 }
virtual void Print(std::ostream &out=std::cout) const =0
TVector3 getNormal() const
Definition: GFDetPlane.cxx:140
genf::GFAbsFinitePlane * fFinitePlane
Definition: GFDetPlane.h:157
virtual void genf::GFDetPlane::Print ( Option_t *  ) const
inlineprivatevirtual

Definition at line 164 of file GFDetPlane.h.

References operator!=, and operator==.

165  { throw std::logic_error(std::string(__func__) + "::Print(Option_t*) not available"); }
TVector2 genf::GFDetPlane::project ( const TVector3 &  x) const

projecting a direction onto the plane:

Definition at line 183 of file GFDetPlane.cxx.

References fU, fV, and x.

Referenced by LabToPlane(), setFinitePlane(), and straightLineToPlane().

184 {
185  Double_t xfU=fU*x;
186  Double_t xfV=fV*x;
187  return TVector2(xfU,xfV);
188 }
Float_t x
Definition: compare.C:6
void genf::GFDetPlane::sane ( )

Definition at line 219 of file GFDetPlane.cxx.

References E, fU, fV, getNormal(), n, and GFException::setFatal().

Referenced by GFDetPlane(), set(), setO(), setU(), setUV(), and setV().

219  {
220  if (fU==fV)
221  throw GFException("genf::GFDetPlane::sane() sanity check failed", __LINE__, __FILE__).setFatal();
222  // ensure unit vectors
223  fU.SetMag(1.);
224  fV.SetMag(1.);
225  // ensure orthogonal system
226  // fV should be reached by
227  // rotating fU around _n in a counterclockwise direction
228 
229  TVector3 n=getNormal();
230  fV=n.Cross(fU);
231 
232  TVector3 v=fU;
233  v.Rotate(TMath::Pi()*0.5,n);
234  TVector3 null=v-fV;
235  if (null.Mag() >= 1E-6)
236  throw GFException("genf::GFDetPlane::sane(): non orthogonal!", __LINE__, __FILE__).setFatal();
237 
238 }
Float_t E
Definition: plot.C:23
TVector3 getNormal() const
Definition: GFDetPlane.cxx:140
Exception class for error handling in GENFIT (provides storage for diagnostic information) ...
Definition: GFException.h:50
GFException & setFatal(bool b=true)
set fatal flag. if this is true, the fit stops for this current track repr.
Definition: GFException.h:80
Char_t n[5]
void genf::GFDetPlane::set ( const TVector3 &  o,
const TVector3 &  u,
const TVector3 &  v 
)

Definition at line 85 of file GFDetPlane.cxx.

References fO, fU, fV, and sane().

Referenced by genf::GFAbsTrackRep::reset().

88 {
89  fO=o;fU=u;fV=v;
90  sane();
91 }
void genf::GFDetPlane::setFinitePlane ( genf::GFAbsFinitePlane finite)
inline

Optionally, set the finite plane definition. This is most important for avoiding fake intersection points in fitting of loopers. This should be implemented for silicon detectors most importantly.

Definition at line 97 of file GFDetPlane.h.

References dir, dist(), distance(), fFinitePlane, getGraphics(), getNormal(), LabToPlane(), operator!=, operator==, Print(), project(), setNormal(), straightLineToPlane(), toLab(), and x.

97 {fFinitePlane=finite;}
genf::GFAbsFinitePlane * fFinitePlane
Definition: GFDetPlane.h:157
void genf::GFDetPlane::setNormal ( TVector3  n)

Definition at line 158 of file GFDetPlane.cxx.

References fU, and fV.

Referenced by genf::GFSpacepointHitPolicy::detPlane(), GFDetPlane(), genf::RKTrackRep::RKTrackRep(), setFinitePlane(), setNormal(), and setON().

158  {
159  n.SetMag(1.);
160  if( fabs(n.X()) > 0.1 ){
161  fU.SetXYZ(1./n.X()*(-1.*n.Y()-1.*n.Z()),1.,1.);
162  fU.SetMag(1.);
163  }
164  else {
165  if(fabs(n.Y()) > 0.1){
166  fU.SetXYZ(1.,1./n.Y()*(-1.*n.X()-1.*n.Z()),1.);
167  fU.SetMag(1.);
168  }
169  else{
170  fU.SetXYZ(1.,1.,1./n.Z()*(-1.*n.X()-1.*n.Y()));
171  fU.SetMag(1.);
172  }
173  }
174  fV=n.Cross(fU);
175 }
Char_t n[5]
void genf::GFDetPlane::setNormal ( double  X,
double  Y,
double  Z 
)

Definition at line 153 of file GFDetPlane.cxx.

References setNormal().

153  {
154  TVector3 N(X,Y,Z);
155  setNormal(N);
156 }
Float_t Y
Definition: plot.C:39
Float_t Z
Definition: plot.C:39
void setNormal(TVector3 n)
Definition: GFDetPlane.cxx:158
Float_t X
Definition: plot.C:39
void genf::GFDetPlane::setNormal ( const double &  theta,
const double &  phi 
)

Definition at line 177 of file GFDetPlane.cxx.

References n, and setNormal().

177  {
178  TVector3 n(TMath::Sin(theta)*TMath::Cos(phi),TMath::Sin(theta)*TMath::Sin(phi),TMath::Cos(theta));
179  setNormal(n);
180 }
void setNormal(TVector3 n)
Definition: GFDetPlane.cxx:158
Char_t n[5]
void genf::GFDetPlane::setO ( const TVector3 &  o)

Definition at line 94 of file GFDetPlane.cxx.

References fO, and sane().

Referenced by genf::GFSpacepointHitPolicy::detPlane(), genf::RKTrackRep::extrapolateToLine(), getV(), and genf::RKTrackRep::RKTrackRep().

95 {
96  fO=o;
97  sane();
98 }
void genf::GFDetPlane::setO ( double  X,
double  Y,
double  Z 
)

Definition at line 100 of file GFDetPlane.cxx.

References fO, and sane().

101 {
102  fO.SetXYZ(X,Y,Z);
103  sane();
104 }
Float_t Y
Definition: plot.C:39
Float_t Z
Definition: plot.C:39
Float_t X
Definition: plot.C:39
void genf::GFDetPlane::setON ( const TVector3 &  o,
const TVector3 &  n 
)

Definition at line 147 of file GFDetPlane.cxx.

References fO, and setNormal().

Referenced by genf::RKTrackRep::extrapolateToPoint(), and getV().

147  {
148  fO = o;
149  setNormal(n);
150 }
void setNormal(TVector3 n)
Definition: GFDetPlane.cxx:158
Char_t n[5]
void genf::GFDetPlane::setU ( const TVector3 &  u)

Definition at line 107 of file GFDetPlane.cxx.

References fU, and sane().

Referenced by genf::RKTrackRep::extrapolateToLine(), and getV().

108 {
109  fU=u;
110  sane();
111 }
void genf::GFDetPlane::setU ( double  X,
double  Y,
double  Z 
)

Definition at line 113 of file GFDetPlane.cxx.

References fU, and sane().

114 {
115  fU.SetXYZ(X,Y,Z);
116  sane();
117 }
Float_t Y
Definition: plot.C:39
Float_t Z
Definition: plot.C:39
Float_t X
Definition: plot.C:39
void genf::GFDetPlane::setUV ( const TVector3 &  u,
const TVector3 &  v 
)

Definition at line 132 of file GFDetPlane.cxx.

References fU, fV, and sane().

Referenced by getV().

133 {
134  fU=u;
135  fV=v;
136  sane();
137 }
void genf::GFDetPlane::setV ( const TVector3 &  v)

Definition at line 120 of file GFDetPlane.cxx.

References fV, and sane().

Referenced by genf::RKTrackRep::extrapolateToLine(), and getV().

121 {
122  fV=v;
123  sane();
124 }
void genf::GFDetPlane::setV ( double  X,
double  Y,
double  Z 
)

Definition at line 126 of file GFDetPlane.cxx.

References fV, and sane().

127 {
128  fV.SetXYZ(X,Y,Z);
129  sane();
130 }
Float_t Y
Definition: plot.C:39
Float_t Z
Definition: plot.C:39
Float_t X
Definition: plot.C:39
TVector2 genf::GFDetPlane::straightLineToPlane ( const TVector3 &  point,
const TVector3 &  dir 
) const

gives u,v coordinates of the intersection point of a straight line with plane

Definition at line 363 of file GFDetPlane.cxx.

References E, fO, getNormal(), and project().

Referenced by inActive(), and setFinitePlane().

363  {
364  TVector3 dirNorm(dir);
365  dirNorm.SetMag(1.);
366  TVector3 normal = getNormal();
367  double dirTimesN = dirNorm*normal;
368  if(fabs(dirTimesN)<1.E-6){//straight line is parallel to plane, so return infinity
369  //doesnt parallel mean that they cross in infinity ;-)
370  return TVector2(1.E100,1.E100);
371  }
372  double t = 1/dirTimesN * ((fO-point)*normal);
373  return project(point - fO + t * dirNorm);
374 }
Float_t E
Definition: plot.C:23
TVector2 project(const TVector3 &x) const
projecting a direction onto the plane:
Definition: GFDetPlane.cxx:183
TVector3 getNormal() const
Definition: GFDetPlane.cxx:140
TDirectory * dir
Definition: macro.C:5
TVector3 genf::GFDetPlane::toLab ( const TVector2 &  x) const

transform from plane coordinates to lab system

Definition at line 198 of file GFDetPlane.cxx.

References d, fO, fU, and fV.

Referenced by dist(), and setFinitePlane().

199 {
200  TVector3 d(fO);
201  d+=x.X()*fU;
202  d+=x.Y()*fV;
203  return d;
204 }
Float_t x
Definition: compare.C:6
Float_t d
Definition: plot.C:237

Friends And Related Function Documentation

bool operator!= ( const GFDetPlane ,
const GFDetPlane  
)
friend

returns NOT ==

Referenced by Print(), and setFinitePlane().

bool operator== ( const GFDetPlane ,
const GFDetPlane  
)
friend

this operator is called very often in Kalman filtering. It checks equality of planes by comparing the 9 double values that define them.

Referenced by Print(), and setFinitePlane().

Member Data Documentation

genf::GFAbsFinitePlane* genf::GFDetPlane::fFinitePlane

Definition at line 157 of file GFDetPlane.h.

Referenced by GFDetPlane(), inActive(), operator=(), Print(), setFinitePlane(), and ~GFDetPlane().

TVector3 genf::GFDetPlane::fO
TVector3 genf::GFDetPlane::fU
TVector3 genf::GFDetPlane::fV

The documentation for this class was generated from the following files: