13 sprintf( tmp,
" ( id, z, dz, RadL )= ( %i, %f, %f, %f )",
21 Bool_t downstream, Double_t &QP0 ){
28 Double_t Q5, Q8, Q9, Ecor;
47CbmKFTube::CbmKFTube(Int_t ID_, Double_t x_, Double_t y_, Double_t z_, Double_t dz_, Double_t r_, Double_t R_, Double_t radL_):
66 sprintf(tmp,
" tube ( id, x,y,z, dz, r, R, RadL )= ( %i, %f, %f, %f, %f, %f, %f, %f )",
71CbmKFBox::CbmKFBox(Int_t ID_, Double_t x_, Double_t y_, Double_t z_, Double_t dx_, Double_t dy_, Double_t dz_, Double_t radL_):
87 return ( TMath::Abs(X-
x)>
dx05 || TMath::Abs(Y-
y)>
dy05 ) ;
92 sprintf(tmp,
" box ( id, x,y,z, dx, dy, dz, RadL )= ( %i, %f, %f, %f, %f, %f, %f, %f )",
100 Bool_t downstream, Double_t &QP0 ){
109 for(Int_t j=0; j<6; j++ ) T_tmp[j] = T[j];
111 if( err )
return err;
112 Double_t cz1, ct1, cz2, ct2;
114 Double_t iz1, iz2, iZ1, iZ2;
117 if ( err1 || iz1<z1 || iz1>
z2 ) iz1 = -200;
118 if ( err1 || iz2<z1 || iz2>
z2 ) iz2 = -200;
119 if ( err2 || iZ1<z1 || iZ1>
z2 ) iZ1 = -200;
120 if ( err2 || iZ2<z1 || iZ2>
z2 ) iZ2 = -200;
122 if ( iz1>-200 && iZ1>-200 )
124 cz1 = ( iz1 + iZ1 )/2;
125 ct1 =
fabs( iZ1 - iz1 );
133 if ( iz2>-200 && iZ2>-200 )
135 cz2 = ( iz2 + iZ2 )/2;
136 ct2 =
fabs( iZ2 - iz2 );
144 if ( iz1<=-200 && iz2<=-200 && iZ1>-200 && iZ2>-200 )
146 cz1 = ( iZ1 + iZ2 )/2;
147 ct1 =
fabs( iZ2 - iZ1 );
152 Double_t dz1 = cz1 - T[5];
153 Double_t dz2 = cz2 - T[5];
162 err = err || KF->
Propagate( T, C, zcross, QP0 );
164 Double_t Q5, Q8, Q9, Ecor;
169 if( err )
return err;
friend F32vec4 fabs(const F32vec4 &a)
Bool_t IsOutside(Double_t X, Double_t Y)
Int_t Pass(Double_t ZCross, Double_t ZThick, CbmKFTrackInterface &track, Bool_t downstream, Double_t &QP0)
virtual Bool_t IsOutside(Double_t x, Double_t y)
virtual Int_t Pass(Double_t ZCross, Double_t ZThick, CbmKFTrackInterface &track, Bool_t downstream, Double_t &QP0)
virtual TString Info() const
static Bool_t intersectCone(Double_t zCone, Double_t ZCone, Double_t rCone, Double_t RCone, const Double_t x[], Double_t *z1, Double_t *z2)
static Int_t GetNoise(Double_t Lrl, Double_t F, Double_t Fe, Double_t tx, Double_t ty, Double_t qp, Double_t mass, Bool_t is_electron, Bool_t downstream_direction, Double_t *Q5, Double_t *Q8, Double_t *Q9, Double_t *Ecor)
virtual Double_t * GetTrack()
Is it electron.
virtual Double_t * GetCovMatrix()
array[6] of track parameters(x,y,tx,ty,qp,z)
virtual Double_t GetMass()
virtual Bool_t IsElectron()
Mass hypothesis.
Int_t Propagate(Double_t *T, Double_t *C, Double_t z_out, Double_t QP0, Bool_t line=false)
static CbmKF * Instance()