CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcxHel Class Reference

#include <MdcxHel.h>

+ Inheritance diagram for MdcxHel:

Public Member Functions

 MdcxHel ()
 
 MdcxHel (double D0, double Phi0, double Omega, double Z0=0.0, double Tanl=0.0, double T0=0.0, int Code=11111, int Mode=0, double X=0.0, double Y=0.0)
 
virtual ~MdcxHel ()
 
double D0 () const
 
double Phi0 () const
 
double Omega () const
 
double Z0 () const
 
double Tanl () const
 
double X () const
 
double Xref () const
 
double Y () const
 
double Yref () const
 
double T0 () const
 
double CosPhi0 () const
 
double SinPhi0 () const
 
double Doca_Len () const
 
double Doca_FLen () const
 
double Doca_Tof () const
 
double Doca_Zh () const
 
int Doca_Samb () const
 
int Doca_Wamb () const
 
double Doca_Eang () const
 
double Omin () const
 
int Mode () const
 
int Code () const
 
int Nfree () const
 
int Ominfl () const
 
int Qd0 () const
 
int Qphi0 () const
 
int Qomega () const
 
int Qz0 () const
 
int Qtanl () const
 
int Qt0 () const
 
double Xc () const
 
double Yc () const
 
double X0 () const
 
double Y0 () const
 
double Xh (double l) const
 
double Yh (double l) const
 
double Zh (double l) const
 
double Px (double l=0.0) const
 
double Py (double l=0.0) const
 
double Pz (double l=0.0) const
 
double Ptot (double l=0.0) const
 
double Lmax () const
 
double Doca (double WX, double WY, double WZ, double X, double Y, double Z=0.0)
 
double Doca (const MdcxHit &h)
 
void print () const
 
void flip ()
 
std::vector< float > derivatives (const MdcxHit &h)
 
void SetRef (double x, double y)
 
void SetMode (int n)
 
void SetD0 (int n)
 
void SetPhi0 (int n)
 
void SetOmega (int n)
 
void SetZ0 (int n)
 
void SetTanl (int n)
 
void SetT0 (int n)
 
void SetTurnFlag (const int &i)
 
int GetTurnFlag () const
 
MdcxHeloperator= (const MdcxHel &)
 
 MdcxHel ()
 
 MdcxHel (double D0, double Phi0, double Omega, double Z0=0.0, double Tanl=0.0, double T0=0.0, int Code=11111, int Mode=0, double X=0.0, double Y=0.0)
 
virtual ~MdcxHel ()
 
double D0 () const
 
double Phi0 () const
 
double Omega () const
 
double Z0 () const
 
double Tanl () const
 
double X () const
 
double Xref () const
 
double Y () const
 
double Yref () const
 
double T0 () const
 
double CosPhi0 () const
 
double SinPhi0 () const
 
double Doca_Len () const
 
double Doca_FLen () const
 
double Doca_Tof () const
 
double Doca_Zh () const
 
int Doca_Samb () const
 
int Doca_Wamb () const
 
double Doca_Eang () const
 
double Omin () const
 
int Mode () const
 
int Code () const
 
int Nfree () const
 
int Ominfl () const
 
int Qd0 () const
 
int Qphi0 () const
 
int Qomega () const
 
int Qz0 () const
 
int Qtanl () const
 
int Qt0 () const
 
double Xc () const
 
double Yc () const
 
double X0 () const
 
double Y0 () const
 
double Xh (double l) const
 
double Yh (double l) const
 
double Zh (double l) const
 
double Px (double l=0.0) const
 
double Py (double l=0.0) const
 
double Pz (double l=0.0) const
 
double Ptot (double l=0.0) const
 
double Lmax () const
 
double Doca (double WX, double WY, double WZ, double X, double Y, double Z=0.0)
 
double Doca (const MdcxHit &h)
 
void print () const
 
void flip ()
 
std::vector< float > derivatives (const MdcxHit &h)
 
void SetRef (double x, double y)
 
void SetMode (int n)
 
void SetD0 (int n)
 
void SetPhi0 (int n)
 
void SetOmega (int n)
 
void SetZ0 (int n)
 
void SetTanl (int n)
 
void SetT0 (int n)
 
void SetTurnFlag (const int &i)
 
int GetTurnFlag () const
 
MdcxHeloperator= (const MdcxHel &)
 

Protected Member Functions

double CalcPhi (double xf, double yf, double xl, double yl) const
 
int deltaq (int i, int j) const
 
void decode (const int i, int &i1, int &i2, int &i3, int &i4, int &i5, int &i6, int &n)
 
void copy (const MdcxHel &hel)
 
double CalcPhi (double xf, double yf, double xl, double yl) const
 
int deltaq (int i, int j) const
 
void decode (const int i, int &i1, int &i2, int &i3, int &i4, int &i5, int &i6, int &n)
 
void copy (const MdcxHel &hel)
 

Protected Attributes

double d0
 
double phi0
 
double omega
 
double z0
 
double tanl
 
double t0
 
double xref
 
double yref
 
double cphi0
 
double sphi0
 
double x0
 
double y0
 
double xc
 
double yc
 
int code
 
int mode
 
int qd0
 
int qphi0
 
int qomega
 
int qz0
 
int qtanl
 
int qt0
 
int nfree
 
int ominfl
 
int turnflag
 
double omin
 
double len
 
double phi
 
double xh
 
double yh
 
double zh
 
double vx
 
double vy
 
double vz
 
double cosl
 
double sinl
 
double f0
 
double tx
 
double ty
 
double tz
 
Hep3Vector wvec
 
Hep3Vector tvec
 
Hep3Vector vhat
 
Hep3Vector dvec
 
int samb
 
int wamb
 
double eang
 

Detailed Description

Constructor & Destructor Documentation

◆ MdcxHel() [1/4]

MdcxHel::MdcxHel ( )

Definition at line 32 of file MdcxHel.cxx.

32{ }

◆ MdcxHel() [2/4]

MdcxHel::MdcxHel ( double  D0,
double  Phi0,
double  Omega,
double  Z0 = 0.0,
double  Tanl = 0.0,
double  T0 = 0.0,
int  Code = 11111,
int  Mode = 0,
double  X = 0.0,
double  Y = 0.0 
)

FIXME

Definition at line 34 of file MdcxHel.cxx.

36 :
37d0(D0), phi0(Phi0), omega(Omega), z0(Z0), tanl(Tanl), t0(T0),
38xref(X), yref(Y), code(Code), mode(Mode), omin(0.000005) {
39
40 ominfl = (fabs(omega) < omin) ? 0 : 1;
41 double m_2pi = 2.0*M_PI;
42 if (phi0 > M_PI) phi0 -= m_2pi;
43 if (phi0 < -M_PI) phi0 += m_2pi;
44 cphi0 = cos(phi0);
45 sphi0 = sin(phi0);
46 x0 = X0();
47 y0 = Y0();
48 xc = Xc();
49 yc = Yc();
51 turnflag = 1; ///FIXME
52 //std::cout << "MdcxHel::MdcxHel() -> (x0, y0) (" << x0 << ", " << y0 << ")" << std::endl;
53}//endof MdcxHel
double sin(const BesAngle a)
double cos(const BesAngle a)
#define M_PI
Definition: TConstant.h:4
double X0() const
Definition: MdcxHel.cxx:77
double Yc() const
Definition: MdcxHel.cxx:68
double Xc() const
Definition: MdcxHel.cxx:59
void decode(const int i, int &i1, int &i2, int &i3, int &i4, int &i5, int &i6, int &n)
Definition: MdcxHel.cxx:199
double Y0() const
Definition: MdcxHel.cxx:81

◆ ~MdcxHel() [1/2]

MdcxHel::~MdcxHel ( )
virtual

Definition at line 55 of file MdcxHel.cxx.

55{ }

◆ MdcxHel() [3/4]

MdcxHel::MdcxHel ( )

◆ MdcxHel() [4/4]

MdcxHel::MdcxHel ( double  D0,
double  Phi0,
double  Omega,
double  Z0 = 0.0,
double  Tanl = 0.0,
double  T0 = 0.0,
int  Code = 11111,
int  Mode = 0,
double  X = 0.0,
double  Y = 0.0 
)

◆ ~MdcxHel() [2/2]

virtual MdcxHel::~MdcxHel ( )
virtual

Member Function Documentation

◆ CalcPhi() [1/2]

double MdcxHel::CalcPhi ( double  xf,
double  yf,
double  xl,
double  yl 
) const
inlineprotected

Definition at line 167 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

167 {
168 double phit=atan2(yl-yf,xl-xf); return phit<0?phit+2*M_PI:phit;
169 }//endof CalcPhi

◆ CalcPhi() [2/2]

double MdcxHel::CalcPhi ( double  xf,
double  yf,
double  xl,
double  yl 
) const
inlineprotected

Definition at line 167 of file Reconstruction/MdcPatRec/MdcxReco/MdcxReco-00-01-59/MdcxReco/MdcxHel.h.

167 {
168 double phit=atan2(yl-yf,xl-xf); return phit<0?phit+2*M_PI:phit;
169 }//endof CalcPhi

◆ Code() [1/2]

int MdcxHel::Code ( ) const
inline

Definition at line 74 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

74{return code;}

Referenced by copy(), and MdcxFindTracks::TakeToOrigin().

◆ Code() [2/2]

int MdcxHel::Code ( ) const
inline

◆ copy() [1/2]

void MdcxHel::copy ( const MdcxHel hel)
protected

Definition at line 219 of file MdcxHel.cxx.

220{
221 //FIXME
222 omega=rhs.Omega(); phi0=rhs.Phi0(); d0=rhs.D0(); t0=rhs.T0();
223 tanl=rhs.Tanl(); z0=rhs.Z0();
224 cphi0=rhs.CosPhi0(); sphi0=rhs.SinPhi0();
225 x0=rhs.X0(); y0=rhs.Y0(); xc=rhs.Xc(); yc=rhs.Yc();
226 xref=rhs.Xref(); yref=rhs.Yref();
227 qomega=rhs.Qomega(); qphi0=rhs.Qphi0(); qd0=rhs.Qd0(); qt0=rhs.Qt0();
228 qtanl=rhs.Qtanl(); qz0=rhs.Qz0();
229 mode=rhs.Mode(); nfree=rhs.Nfree();
230 code=rhs.Code(); ominfl=rhs.Ominfl(); omin=rhs.Omin();
231 turnflag=rhs.GetTurnFlag();
232}//endof copy

Referenced by MdcxFittedHel::Grow(), MdcxFittedHel::operator=(), and operator=().

◆ copy() [2/2]

void MdcxHel::copy ( const MdcxHel hel)
protected

◆ CosPhi0() [1/2]

double MdcxHel::CosPhi0 ( ) const
inline

Definition at line 63 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

63{return cphi0;}

Referenced by copy(), and MdcxFindTracks::TakeToOrigin().

◆ CosPhi0() [2/2]

double MdcxHel::CosPhi0 ( ) const
inline

◆ D0() [1/2]

◆ D0() [2/2]

double MdcxHel::D0 ( ) const
inline

◆ decode() [1/2]

void MdcxHel::decode ( const int  i,
int &  i1,
int &  i2,
int &  i3,
int &  i4,
int &  i5,
int &  i6,
int &  n 
)
protected

FIXME use bit code ?

Definition at line 199 of file MdcxHel.cxx.

201{ ///FIXME use bit code ?
202 int temp = code;
203 temp=temp/1000000; temp=code-1000000*temp;
204 i6=temp/100000; temp=temp-100000*i6;
205 i5=temp/10000; temp=temp-10000*i5;
206 i4=temp/1000; temp=temp-1000*i4;
207 i3=temp/100; temp=temp-100*i3;
208 i2=temp/10; i1=temp-10*i2;
209 n = 0;
210 if(i6 == 1) n++; else i6 = 0;
211 if(i5 == 1) n++; else i5 = 0;
212 if(i4 == 1) n++; else i4 = 0;
213 if(i3 == 1) n++; else i3 = 0;
214 if(i2 == 1) n++; else i2 = 0;
215 if(i1 == 1) n++; else i1 = 0;
216}//endof decode
const Int_t n

Referenced by MdcxHel().

◆ decode() [2/2]

void MdcxHel::decode ( const int  i,
int &  i1,
int &  i2,
int &  i3,
int &  i4,
int &  i5,
int &  i6,
int &  n 
)
protected

◆ deltaq() [1/2]

int MdcxHel::deltaq ( int  i,
int  j 
) const
inlineprotected

Definition at line 170 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

170{ return i==j?0:i==0?1:-1; } //integer comparisons

Referenced by SetD0(), SetOmega(), SetPhi0(), SetT0(), SetTanl(), and SetZ0().

◆ deltaq() [2/2]

int MdcxHel::deltaq ( int  i,
int  j 
) const
inlineprotected

Definition at line 170 of file Reconstruction/MdcPatRec/MdcxReco/MdcxReco-00-01-59/MdcxReco/MdcxHel.h.

170{ return i==j?0:i==0?1:-1; } //integer comparisons

◆ derivatives() [1/2]

std::vector< float > MdcxHel::derivatives ( const MdcxHit h)

Definition at line 324 of file MdcxHel.cxx.

325{
326 double doca = Doca(hit);
327 std::vector<float> temp(nfree+1);
328 temp[0] = doca;
329 double fac = 1.0;
330 if((mode==0) && (doca<0.0)) fac = -fac;
331 if(mode == 0) temp[0] = fabs(temp[0]);
332
333 int bump = 0;
334 if (qd0) temp[++bump] = (-vx*sphi0 + vy*cphi0) * fac;
335 if (qphi0) {
336 //double dddp0=-(yh-y0)*vx+(xh-x0)*vy;
337 double dddp0 = -(yh-y0+f0*ty)*vx + (xh-x0+f0*tx)*vy;
338 dddp0 *= (1.0 + d0*omega);
339 temp[++bump] = dddp0*fac;
340 }
341 if (qomega) {
342 double dddom;
343 if (ominfl) {
344 dddom = ((len*cos(phi)-xh+x0)*vx + (len*sin(phi)-yh+y0)*vy)/omega;
345 dddom += f0*len*cosl*(-sin(phi)*vx+cos(phi)*vy);
346 } else {
347 dddom = 0.5*len*len*(-vx*sphi0+vy*cphi0);
348 }
349 temp[++bump] = dddom * fac;
350 }
351 if (qz0) temp[++bump] = vz * fac;
352 if (qtanl) temp[++bump] = (vz *len) * fac;
353 if (qt0) temp[++bump] = -hit.v();
354 return temp;
355}//endof derivatives
double Doca(double WX, double WY, double WZ, double X, double Y, double Z=0.0)
Definition: MdcxHel.cxx:239

Referenced by MdcxHit::derivatives().

◆ derivatives() [2/2]

std::vector< float > MdcxHel::derivatives ( const MdcxHit h)

◆ Doca() [1/4]

double MdcxHel::Doca ( const MdcxHit h)

Definition at line 234 of file MdcxHel.cxx.

234 {
235 //std::cout<< __FILE__ << " " << __LINE__ << " hit("<<h.Layer()<<","<<h.WireNo()<<")";
236 return Doca( h.wx(), h.wy(), h.wz(), h.x(), h.y() );
237}

◆ Doca() [2/4]

double MdcxHel::Doca ( const MdcxHit h)

◆ Doca() [3/4]

double MdcxHel::Doca ( double  WX,
double  WY,
double  WZ,
double  X,
double  Y,
double  Z = 0.0 
)

calc the phi of point(i)

FIXME

Definition at line 239 of file MdcxHel.cxx.

241{
242 double m_2pi = 2.0*M_PI;
243 // describe wire
244 //cout << " In Doca, xi = " << xi << " yi = " << yi << " zi = " << zi <<endl;
245 Hep3Vector ivec(xi, yi, zi);
246 wvec = Hep3Vector(wx, wy, wz);
247 //cout << " In Doca, wx = " << wx << " wy = " << wy << " wz = " << wz <<endl;
248 // calculate len to doca
249 double zd, xd = xi, yd = yi;
250 // cout << " In Doca, start xd = " << xd << " yd = " << yd << endl;
251 double lnew,t1,t2,dphi,dlen=1000.0;
252 len = 0.0;
253 int itry = 2;
254 // int segflg=0; if ((code==111)&&(z0==0.0)&&(tanl==0.0))segflg=1;
255 // int superseg=0; if ((code==11111)&&(xref!=0.0)&&(yref!=0.0))superseg=1;
256 double circut, circum = 10000.;
257 if (ominfl) circum = m_2pi/fabs(omega);
258 circut = 0.50 * circum;
259 while (itry) {
260 if (ominfl) {
261 ///calc the phi of point(i)
262 t1 = -xc + xd; t2 = yc - yd; phi = atan2(t1, t2);
263 if (omega < 0.0) phi += M_PI;
264 if (phi > M_PI) phi -= m_2pi;
265 dphi = phi - phi0;
266 if (omega < 0.0){
267 if (dphi > 0.0) dphi -= m_2pi;
268 if (dphi < -m_2pi) dphi += m_2pi;
269 }else{
270 if (dphi < 0.0) dphi += m_2pi;
271 if (dphi > m_2pi) dphi -= m_2pi;
272 }
273 lnew = dphi/omega;
274 // if ((lnew>circut)&&(segflg))lnew-=circum;
275 // if ((lnew>circut)&&(superseg))lnew-=circum;
276 if ((lnew>circut)&&(turnflag)) lnew -= circum; //FIXME attention
277
278 zh = Zh(lnew);
279 xd=xi+(zh-zi)*wx/wz; yd=yi+(zh-zi)*wy/wz; zd=zh;
280 // cout << " In Doca, xd = " << xd << " yd = " << yd << " zh = " << zh;
281 // cout << " lnew = " << lnew << endl;
282 dlen=fabs(lnew-len); len=lnew;
283 // if (segflg)break;
284 //std::cout<< __FILE__ << __LINE__<<" Doca() dlen " << dlen<< " zh "<<zh<<" >?"
285 //<<MdcxParameters::maxMdcZLen<<std::endl;
286 if (fabs(zh) > MdcxParameters::maxMdcZLen) break; //FIXME attention
287 if ( (0.0==wx) && (0.0==wy) )break; if (dlen < 0.000001)break; itry--;
288 } else {
289 len = (xi-xref)*cphi0 + (yi-yref)*sphi0;
290 zh = z0 + tanl*len;
291 phi = phi0;
292 break;
293 }
294 }
295 // Hep3Vector Dvec(xd,yd,zd);
296 xh = Xh(len); yh = Yh(len);
297 Hep3Vector hvec(xh, yh, zh);
298// cout << " In Doca, xh = " << xh << " yh = " << yh << " zh = " << zh << " len=" << len << " om " << omega << endl;
299 double lamb = atan(tanl);
300 cosl = cos(lamb); sinl = sin(lamb);
301 tx = cosl*cos(phi); ty = cosl*sin(phi); tz = sinl;
302 tvec = Hep3Vector(tx, ty, tz);
303 Hep3Vector vvec = wvec.cross(tvec);
304 vhat = vvec.unit(); vx = vhat.x(); vy = vhat.y(); vz = vhat.z();
305 // cout << " In Doca, vx = " << vx << " vy = " << vy << " vz = " << vz << endl;
306 dvec = ivec - hvec;
307 double doca = dvec*vhat;
308 // cout << " doca = " << doca << endl;
309 double f1 = dvec*tvec; double f2 = wvec*tvec; double f3 = dvec*wvec;
310 f0 = (f1 - f2*f3) / (1.0 - f2*f2);
311 samb = (doca > 0.0) ? -1 : +1;
312 double wirephi = atan2(yd, xd);
313 eang = BesAngle(phi-wirephi);
314 wamb = (fabs(eang) < Constants::pi/2) ? samb : -samb;
315 //std::cout<< __FILE__ << __LINE__<<" Doca() dlen " << dlen<< " zh "<<zh<<" >?"
316 //<<MdcxParameters::maxMdcZLen<<std::endl;
317 if (fabs(zh) > MdcxParameters::maxMdcZLen) doca = 1000.0; ///FIXME
318 //if(doca == 1000.0) cout << " In Doca, zh = " << zh << " len=" << len << " om " << omega <<" "<< ominfl<<
319 //" z0 " << z0 << "tanl " << tanl <<endl;
320 //cout << " doca = " << doca << endl;
321 return doca;
322}//endof Doca
TFile * f1
double Yh(double l) const
Definition: MdcxHel.cxx:94
double Zh(double l) const
Definition: MdcxHel.cxx:103
double Xh(double l) const
Definition: MdcxHel.cxx:85

Referenced by MdcxHit::d(), derivatives(), Doca(), MdcxFindTracks::drophits(), MdcxFindTracks::process(), MdcxHit::pull(), MdcxHit::residual(), and MdcxFindTracks::resout().

◆ Doca() [4/4]

double MdcxHel::Doca ( double  WX,
double  WY,
double  WZ,
double  X,
double  Y,
double  Z = 0.0 
)

◆ Doca_Eang() [1/2]

double MdcxHel::Doca_Eang ( ) const
inline

◆ Doca_Eang() [2/2]

double MdcxHel::Doca_Eang ( ) const
inline

◆ Doca_FLen() [1/2]

double MdcxHel::Doca_FLen ( ) const
inline

Definition at line 66 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

66{return len*sqrt(1.0+tanl*tanl);}

◆ Doca_FLen() [2/2]

double MdcxHel::Doca_FLen ( ) const
inline

Definition at line 66 of file Reconstruction/MdcPatRec/MdcxReco/MdcxReco-00-01-59/MdcxReco/MdcxHel.h.

66{return len*sqrt(1.0+tanl*tanl);}

◆ Doca_Len() [1/2]

double MdcxHel::Doca_Len ( ) const
inline

◆ Doca_Len() [2/2]

double MdcxHel::Doca_Len ( ) const
inline

◆ Doca_Samb() [1/2]

int MdcxHel::Doca_Samb ( ) const
inline

Definition at line 69 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

69{return samb;}

◆ Doca_Samb() [2/2]

int MdcxHel::Doca_Samb ( ) const
inline

◆ Doca_Tof() [1/2]

double MdcxHel::Doca_Tof ( ) const
inline

◆ Doca_Tof() [2/2]

double MdcxHel::Doca_Tof ( ) const
inline

◆ Doca_Wamb() [1/2]

int MdcxHel::Doca_Wamb ( ) const
inline

◆ Doca_Wamb() [2/2]

int MdcxHel::Doca_Wamb ( ) const
inline

◆ Doca_Zh() [1/2]

double MdcxHel::Doca_Zh ( ) const
inline

◆ Doca_Zh() [2/2]

double MdcxHel::Doca_Zh ( ) const
inline

◆ flip() [1/2]

void MdcxHel::flip ( )

Definition at line 375 of file MdcxHel.cxx.

375 {
376 double m_2pi = 2.0*M_PI;
377 if (ominfl) {
378 if ( (fabs(d0) + 2.0/fabs(omega)) > 80.0 ) return;
379 double lturn = m_2pi/fabs(omega);
380 double zturn = Zh(lturn);
381 // cout << "z0 " << z0 << " zturn " << zturn << endl;
382 if (fabs(zturn) < fabs(z0)) {
383 z0 = zturn;
384 tanl = -tanl;
385 omega = -omega;
386 d0 = -d0;
387 phi0 = phi0 - M_PI;
388 if (phi0 < -M_PI) phi0 += m_2pi;
389 cphi0 = cos(phi0);
390 sphi0 = sin(phi0);
391 x0 = X0();
392 y0 = Y0();
393 }
394 }
395}//endof flip

Referenced by MdcxFindTracks::process().

◆ flip() [2/2]

void MdcxHel::flip ( )

◆ GetTurnFlag() [1/2]

int MdcxHel::GetTurnFlag ( ) const
inline

Definition at line 116 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

116{return turnflag;}

Referenced by copy().

◆ GetTurnFlag() [2/2]

int MdcxHel::GetTurnFlag ( ) const
inline

◆ Lmax() [1/2]

double MdcxHel::Lmax ( ) const

FIXME

Definition at line 142 of file MdcxHel.cxx.

142 {
143 double lmax = MdcxParameters::maxTrkLength;
144 if (ominfl) {
145 double rmax = 1.0/fabs(omega);
146 double dmax = fabs(d0) + 2.0*rmax;
147 if (dmax > MdcxParameters::maxMdcRadius) lmax = M_PI*rmax; ///FIXME
148 }
149 return lmax;
150}//endof Lmax
static const double maxMdcRadius
MDC Geometry.

Referenced by MdcxAddHits::GetAssociates(), and MdcxFindTracks::process().

◆ Lmax() [2/2]

double MdcxHel::Lmax ( ) const

◆ Mode() [1/2]

int MdcxHel::Mode ( ) const
inline

Definition at line 73 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

73{return mode;}

Referenced by copy(), MdcxHit::pull(), and MdcxHit::residual().

◆ Mode() [2/2]

int MdcxHel::Mode ( ) const
inline

◆ Nfree() [1/2]

int MdcxHel::Nfree ( ) const
inline

Definition at line 75 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

75{return nfree;}

Referenced by copy().

◆ Nfree() [2/2]

int MdcxHel::Nfree ( ) const
inline

◆ Omega() [1/2]

◆ Omega() [2/2]

double MdcxHel::Omega ( ) const
inline

◆ Omin() [1/2]

double MdcxHel::Omin ( ) const
inline

Definition at line 72 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

72{return omin;}

Referenced by copy().

◆ Omin() [2/2]

double MdcxHel::Omin ( ) const
inline

◆ Ominfl() [1/2]

int MdcxHel::Ominfl ( ) const
inline

Definition at line 76 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

76{return ominfl;}

Referenced by copy(), and MdcxAddHits::GetAssociates().

◆ Ominfl() [2/2]

int MdcxHel::Ominfl ( ) const
inline

◆ operator=() [1/2]

MdcxHel & MdcxHel::operator= ( const MdcxHel rhs)

Definition at line 193 of file MdcxHel.cxx.

193 {
194 copy(rhs);
195 return *this;
196}
void copy(const MdcxHel &hel)
Definition: MdcxHel.cxx:219

◆ operator=() [2/2]

MdcxHel & MdcxHel::operator= ( const MdcxHel )

◆ Phi0() [1/2]

◆ Phi0() [2/2]

double MdcxHel::Phi0 ( ) const
inline

◆ print() [1/2]

void MdcxHel::print ( ) const

Definition at line 357 of file MdcxHel.cxx.

357 {
358 cout << "MdcxHel(";
359 cout << d0<<",";
360 cout << phi0<<",";
361 cout << omega<<",";
362 cout << z0<<",";
363 cout << tanl<<")"<<endl;
364 cout << " t0 = " << t0 ;
365 cout << " nfree = " << nfree ;
366 cout << " (x0,y0) " << x0<<","<<y0;
367 cout << " (xc,yc) " << xc<<","<<yc;
368 cout << " (xref,yref) " << xref<<","<<yref;
369 cout << " code = " << code;
370 cout << " mode = " << mode;
371 cout << " ominfl = " << ominfl;
372 cout << " " << endl;
373}//endof print

Referenced by MdcxAddHits::GetAssociates(), MdcxFittedHel::IterateFit(), and MdcxFindTracks::process().

◆ print() [2/2]

void MdcxHel::print ( ) const

◆ Ptot() [1/2]

double MdcxHel::Ptot ( double  l = 0.0) const

Definition at line 134 of file MdcxHel.cxx.

134 {
135 if(ominfl) {
136 return 0.003*sqrt(1.0+tanl*tanl)/fabs(omega);
137 } else {
138 return 1000.0*sqrt(1.0+tanl*tanl);
139 }//ominfl
140}//endof Ptot

◆ Ptot() [2/2]

double MdcxHel::Ptot ( double  l = 0.0) const

◆ Px() [1/2]

double MdcxHel::Px ( double  l = 0.0) const

pt=0.003*r (0.003 -> q*B)

Definition at line 107 of file MdcxHel.cxx.

107 {
108 if(ominfl) {
109 double phit = phi0 + omega*l;
110 return 0.003*cos(phit)/fabs(omega); /// pt=0.003*r (0.003 -> q*B)
111 } else {
112 return 1000.0*cphi0;
113 }//ominfl
114}//endof Px

◆ Px() [2/2]

double MdcxHel::Px ( double  l = 0.0) const

◆ Py() [1/2]

double MdcxHel::Py ( double  l = 0.0) const

Definition at line 116 of file MdcxHel.cxx.

116 {
117 if(ominfl) {
118 double phit = phi0+omega*l;
119 return 0.003*sin(phit)/fabs(omega);
120 } else {
121 return 1000.0*sphi0;
122 }//ominfl
123}//endof Py

◆ Py() [2/2]

double MdcxHel::Py ( double  l = 0.0) const

◆ Pz() [1/2]

double MdcxHel::Pz ( double  l = 0.0) const

Definition at line 125 of file MdcxHel.cxx.

125 {
126 if(ominfl) {
127 return 0.003*tanl/fabs(omega);
128 }
129 else{
130 return 1000.0*tanl;
131 }//ominfl
132}//endof Pz

◆ Pz() [2/2]

double MdcxHel::Pz ( double  l = 0.0) const

◆ Qd0() [1/2]

int MdcxHel::Qd0 ( ) const
inline

Definition at line 77 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

77{return qd0;}

Referenced by copy(), and SetD0().

◆ Qd0() [2/2]

int MdcxHel::Qd0 ( ) const
inline

◆ Qomega() [1/2]

int MdcxHel::Qomega ( ) const
inline

Definition at line 79 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

79{return qomega;}

Referenced by copy(), and SetOmega().

◆ Qomega() [2/2]

int MdcxHel::Qomega ( ) const
inline

◆ Qphi0() [1/2]

int MdcxHel::Qphi0 ( ) const
inline

Definition at line 78 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

78{return qphi0;}

Referenced by copy(), and SetPhi0().

◆ Qphi0() [2/2]

int MdcxHel::Qphi0 ( ) const
inline

◆ Qt0() [1/2]

int MdcxHel::Qt0 ( ) const
inline

Definition at line 82 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

82{return qt0;}

Referenced by copy(), and SetT0().

◆ Qt0() [2/2]

int MdcxHel::Qt0 ( ) const
inline

◆ Qtanl() [1/2]

int MdcxHel::Qtanl ( ) const
inline

Definition at line 81 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

81{return qtanl;}

Referenced by copy(), and SetTanl().

◆ Qtanl() [2/2]

int MdcxHel::Qtanl ( ) const
inline

◆ Qz0() [1/2]

int MdcxHel::Qz0 ( ) const
inline

Definition at line 80 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

80{return qz0;}

Referenced by copy(), and SetZ0().

◆ Qz0() [2/2]

int MdcxHel::Qz0 ( ) const
inline

◆ SetD0() [1/2]

void MdcxHel::SetD0 ( int  n)

Definition at line 171 of file MdcxHel.cxx.

171 {
172 nfree = nfree + deltaq(qd0, Qd0);
173 code = code + deltaq(qd0, Qd0);
174 qd0 = Qd0;
175}

◆ SetD0() [2/2]

void MdcxHel::SetD0 ( int  n)

◆ SetMode() [1/2]

void MdcxHel::SetMode ( int  n)

Definition at line 154 of file MdcxHel.cxx.

154{ mode = n; }

◆ SetMode() [2/2]

void MdcxHel::SetMode ( int  n)

◆ SetOmega() [1/2]

void MdcxHel::SetOmega ( int  n)

Definition at line 161 of file MdcxHel.cxx.

161 {
163 code = code + deltaq(qomega, Qomega)*100;
164 qomega = Qomega;
165}

◆ SetOmega() [2/2]

void MdcxHel::SetOmega ( int  n)

◆ SetPhi0() [1/2]

void MdcxHel::SetPhi0 ( int  n)

Definition at line 166 of file MdcxHel.cxx.

166 {
168 code = code + deltaq(qphi0, Qphi0)*10;
169 qphi0 = Qphi0;
170}

◆ SetPhi0() [2/2]

void MdcxHel::SetPhi0 ( int  n)

◆ SetRef() [1/2]

void MdcxHel::SetRef ( double  x,
double  y 
)

Definition at line 156 of file MdcxHel.cxx.

156 {
157 xref = x;
158 yref = y;
159}
Double_t x[10]

◆ SetRef() [2/2]

void MdcxHel::SetRef ( double  x,
double  y 
)

◆ SetT0() [1/2]

void MdcxHel::SetT0 ( int  n)

Definition at line 186 of file MdcxHel.cxx.

186 {
187 nfree = nfree + deltaq(qt0, Qt0);
188 code = code + deltaq(qt0, Qt0)*100000;
189 qt0 = Qt0;
190}

◆ SetT0() [2/2]

void MdcxHel::SetT0 ( int  n)

◆ SetTanl() [1/2]

void MdcxHel::SetTanl ( int  n)

Definition at line 176 of file MdcxHel.cxx.

176 {
178 code = code + deltaq(qtanl, Qtanl)*10000;
179 qtanl = Qtanl;
180}

◆ SetTanl() [2/2]

void MdcxHel::SetTanl ( int  n)

◆ SetTurnFlag() [1/2]

void MdcxHel::SetTurnFlag ( const int &  i)
inline

◆ SetTurnFlag() [2/2]

void MdcxHel::SetTurnFlag ( const int &  i)
inline

◆ SetZ0() [1/2]

void MdcxHel::SetZ0 ( int  n)

Definition at line 181 of file MdcxHel.cxx.

181 {
182 nfree = nfree + deltaq(qz0, Qz0);
183 code = code + deltaq(qz0, Qz0)*1000;
184 qz0 = Qz0;
185}

◆ SetZ0() [2/2]

void MdcxHel::SetZ0 ( int  n)

◆ SinPhi0() [1/2]

double MdcxHel::SinPhi0 ( ) const
inline

Definition at line 64 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

64{return sphi0;}

Referenced by copy(), and MdcxFindTracks::TakeToOrigin().

◆ SinPhi0() [2/2]

double MdcxHel::SinPhi0 ( ) const
inline

◆ T0() [1/2]

double MdcxHel::T0 ( ) const
inline

◆ T0() [2/2]

double MdcxHel::T0 ( ) const
inline

◆ Tanl() [1/2]

double MdcxHel::Tanl ( ) const
inline

Definition at line 57 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

57{return tanl;}

Referenced by copy(), and MdcxFindTracks::TakeToOrigin().

◆ Tanl() [2/2]

double MdcxHel::Tanl ( ) const
inline

◆ X() [1/2]

double MdcxHel::X ( ) const
inline

Definition at line 58 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

58{return xref;}

◆ X() [2/2]

double MdcxHel::X ( ) const
inline

◆ X0() [1/2]

double MdcxHel::X0 ( ) const

Definition at line 77 of file MdcxHel.cxx.

77 {
78 return (xref - sphi0*d0);
79}//endof X0

Referenced by copy(), MdcxFittedHel::DoFit(), flip(), MdcxHel(), and MdcxFindTracks::process().

◆ X0() [2/2]

double MdcxHel::X0 ( ) const

◆ Xc() [1/2]

double MdcxHel::Xc ( ) const

Definition at line 59 of file MdcxHel.cxx.

59 {
60 if(ominfl) {
61 //return (X0() - sphi0/omega);
62 return (x0 - sphi0/omega);
63 } else {
64 return 999999999.9;
65 }//(ominfl)
66}//endof Xc

Referenced by copy(), MdcxFittedHel::DoFit(), MdcxAddHits::GetAssociates(), MdcxHel(), and MdcxFindTracks::process().

◆ Xc() [2/2]

double MdcxHel::Xc ( ) const

◆ Xh() [1/2]

double MdcxHel::Xh ( double  l) const

Definition at line 85 of file MdcxHel.cxx.

85 {
86 if(ominfl){
87 double phit=phi0+omega*l;
88 return (xc+sin(phit)/omega);
89 }else{
90 return (x0+cphi0*l-0.5*l*l*omega*sphi0);
91 }//ominfl
92}//endof Xh

Referenced by Doca(), and MdcxAddHits::GetAssociates().

◆ Xh() [2/2]

double MdcxHel::Xh ( double  l) const

◆ Xref() [1/2]

double MdcxHel::Xref ( ) const
inline

◆ Xref() [2/2]

double MdcxHel::Xref ( ) const
inline

◆ Y() [1/2]

double MdcxHel::Y ( ) const
inline

Definition at line 60 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

60{return yref;}

◆ Y() [2/2]

double MdcxHel::Y ( ) const
inline

◆ Y0() [1/2]

double MdcxHel::Y0 ( ) const

Definition at line 81 of file MdcxHel.cxx.

81 {
82 return (yref + cphi0*d0);
83}//endof Y0

Referenced by copy(), MdcxFittedHel::DoFit(), flip(), MdcxHel(), and MdcxFindTracks::process().

◆ Y0() [2/2]

double MdcxHel::Y0 ( ) const

◆ Yc() [1/2]

double MdcxHel::Yc ( ) const

Definition at line 68 of file MdcxHel.cxx.

68 {
69 if(ominfl) {
70 //return (Y0()+cphi0/omega);
71 return (y0 + cphi0/omega);
72 } else {
73 return 999999999.9;
74 }//(ominfl)
75}//endof Yc

Referenced by copy(), MdcxFittedHel::DoFit(), MdcxAddHits::GetAssociates(), MdcxHel(), and MdcxFindTracks::process().

◆ Yc() [2/2]

double MdcxHel::Yc ( ) const

◆ Yh() [1/2]

double MdcxHel::Yh ( double  l) const

Definition at line 94 of file MdcxHel.cxx.

94 {
95 if(ominfl){
96 double phit=phi0+omega*l;
97 return (yc-cos(phit)/omega);
98 }else{
99 return (y0+sphi0*l+0.5*l*l*omega*cphi0);
100 }//ominfl
101}//endof Yh

Referenced by Doca(), and MdcxAddHits::GetAssociates().

◆ Yh() [2/2]

double MdcxHel::Yh ( double  l) const

◆ Yref() [1/2]

double MdcxHel::Yref ( ) const
inline

◆ Yref() [2/2]

double MdcxHel::Yref ( ) const
inline

◆ Z0() [1/2]

double MdcxHel::Z0 ( ) const
inline

Definition at line 56 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

56{return z0;}

Referenced by copy(), and MdcxFindTracks::TakeToOrigin().

◆ Z0() [2/2]

double MdcxHel::Z0 ( ) const
inline

◆ Zh() [1/2]

double MdcxHel::Zh ( double  l) const

Definition at line 103 of file MdcxHel.cxx.

103 {
104 return (z0+tanl*l);
105}//endof Zh

Referenced by Doca(), and flip().

◆ Zh() [2/2]

double MdcxHel::Zh ( double  l) const

Member Data Documentation

◆ code

int MdcxHel::code
protected

◆ cosl

double MdcxHel::cosl
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by derivatives(), and Doca().

◆ cphi0

◆ d0

◆ dvec

Hep3Vector MdcxHel::dvec
protected

Definition at line 163 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by Doca().

◆ eang

double MdcxHel::eang
protected

Definition at line 164 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by Doca(), and Doca_Eang().

◆ f0

double MdcxHel::f0
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by derivatives(), and Doca().

◆ len

double MdcxHel::len
protected

◆ mode

int MdcxHel::mode
protected

◆ nfree

◆ omega

◆ omin

double MdcxHel::omin
protected

◆ ominfl

int MdcxHel::ominfl
protected

◆ phi

double MdcxHel::phi
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by derivatives(), and Doca().

◆ phi0

◆ qd0

int MdcxHel::qd0
protected

◆ qomega

int MdcxHel::qomega
protected

◆ qphi0

int MdcxHel::qphi0
protected

◆ qt0

int MdcxHel::qt0
protected

◆ qtanl

int MdcxHel::qtanl
protected

◆ qz0

int MdcxHel::qz0
protected

◆ samb

int MdcxHel::samb
protected

Definition at line 164 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by Doca(), and Doca_Samb().

◆ sinl

double MdcxHel::sinl
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by Doca().

◆ sphi0

◆ t0

double MdcxHel::t0
protected

◆ tanl

◆ turnflag

int MdcxHel::turnflag
protected

◆ tvec

Hep3Vector MdcxHel::tvec
protected

Definition at line 163 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by Doca().

◆ tx

double MdcxHel::tx
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by derivatives(), and Doca().

◆ ty

double MdcxHel::ty
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by derivatives(), and Doca().

◆ tz

double MdcxHel::tz
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by Doca().

◆ vhat

Hep3Vector MdcxHel::vhat
protected

Definition at line 163 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by Doca().

◆ vx

double MdcxHel::vx
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by derivatives(), and Doca().

◆ vy

double MdcxHel::vy
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by derivatives(), and Doca().

◆ vz

double MdcxHel::vz
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by derivatives(), and Doca().

◆ wamb

int MdcxHel::wamb
protected

Definition at line 164 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by Doca(), and Doca_Wamb().

◆ wvec

Hep3Vector MdcxHel::wvec
protected

Definition at line 163 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by Doca().

◆ x0

double MdcxHel::x0
protected

◆ xc

double MdcxHel::xc
protected

◆ xh

double MdcxHel::xh
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by derivatives(), and Doca().

◆ xref

double MdcxHel::xref
protected

◆ y0

double MdcxHel::y0
protected

◆ yc

double MdcxHel::yc
protected

◆ yh

double MdcxHel::yh
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by derivatives(), and Doca().

◆ yref

double MdcxHel::yref
protected

◆ z0

double MdcxHel::z0
protected

◆ zh

double MdcxHel::zh
protected

Definition at line 162 of file InstallArea/include/MdcxReco/MdcxReco/MdcxHel.h.

Referenced by Doca(), and Doca_Zh().


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