32 const TVector3& motherpos)
const
34 TVector3
dx( m_m(0) - motherpos.x(),
35 m_m(1) - motherpos.y(),
36 m_z - motherpos.z()) ;
43 int momindex = momIndex() ;
44 fitparams->
par(momindex+0) = energy*
dx.x()/l ;
45 fitparams->
par(momindex+1) = energy*
dx.y()/l ;
46 fitparams->
par(momindex+2) = energy*
dx.z()/l ;
54 if(
vtxverbose>5){std::cout<<
"RecoPhoton::initPar1: - "<<std::endl;}
55 return initParPhoton( fitparams, TVector3(0,0,0) ) ;
61 if(
vtxverbose>5){std::cout<<
"RecoPhoton::initPar2: - "<<std::endl;}
63 int posindexmother = mother()->posIndex() ;
64 TVector3 motherpos(fitparams->
par(posindexmother+0),
65 fitparams->
par(posindexmother+1),
66 fitparams->
par(posindexmother+2)) ;
67 return initParPhoton(fitparams, motherpos ) ;
73 int momindex = momIndex() ;
74 double varEnergy = m_V(2,2) ;
75 const double factor = 1000;
77 fitparams->
cov()(momindex+
row,momindex+
row) = factor * varEnergy ;
101 if(
vtxverbose>4) std::cout<<
"RecoPhoton::updCache() l."<<__LINE__ <<
" m_m(0) = "<<m_m(0) <<
" cm; m_m(1) = "<<m_m(1) <<
" cm; m_z = "<<m_z <<
"cm; m_M(2) = "<<m_m(2)<<
" GeV" <<std::endl;
103 m_V[0][0]=cov7[0][0];
104 m_V[0][1]=cov7[0][1];
105 m_V[0][2]=cov7[0][6];
106 m_V[1][0]=cov7[1][0];
107 m_V[1][1]=cov7[1][1];
108 m_V[1][2]=cov7[1][6];
109 m_V[2][0]=cov7[6][0];
110 m_V[2][1]=cov7[6][1];
111 m_V[2][2]=cov7[6][6];
133 int momindex = momIndex() ;
134 double px = fitparams->
par()(momindex+0) ;
135 double py = fitparams->
par()(momindex+1) ;
136 double pz = fitparams->
par()(momindex+2) ;
137 double m = pdtMass() ;
140 double dedpx = px/
energy ;
141 double dedpy = py/
energy ;
142 double dedpz = pz/
energy ;
146 double dtxdpx = 1/
pz ;
147 double dtxdpz = -tx/
pz ;
148 double dtydpy = 1/
pz ;
149 double dtydpz = -ty/
pz ;
152 int posindex = mother()->posIndex() ;
154 double dz = m_z - fitparams->
par(posindex+2) ;
155 double dx = m_m(0) - fitparams->
par(posindex+0) - dz * tx ;
156 double dy = m_m(1) - fitparams->
par(posindex+1) - dz * ty ;
167 p.
H(0,posindex+0) = -1 ;
168 p.
H(1,posindex+1) = -1 ;
171 p.
H(0,momindex+0) = -dz * dtxdpx ;
172 p.
H(0,momindex+2) = -dz * dtxdpz ;
173 p.
H(1,momindex+1) = -dz * dtydpy ;
174 p.
H(1,momindex+2) = -dz * dtydpz ;
177 p.
H(2,momindex+0) = -dedpx ;
178 p.
H(2,momindex+1) = -dedpy ;
179 p.
H(2,momindex+2) = -dedpz ;
182 for(
int irow=0; irow<3; irow++)
183 for(
int icol=0; icol<3; icol++)
184 p.
Vfast(irow,icol) = m_V(irow,icol) ;
186 std::cout<<
"RecoPhoton::projectRecoConstraint(): projection is:"<<posindex<<std::endl;
187 std::cout<<
"r "; p.
r().Print();
188 std::cout<<
"V "; p.
V().Print();
const TVectorD & r() const
friend F32vec4 sqrt(const F32vec4 &a)
virtual ErrCode initParPhoton(FitParams *, const TVector3 &motherpos) const
Double_t GetEnergy() const
const TMatrixD & H() const
virtual ErrCode projectRecoConstraint(const FitParams *, Projection &) const
const TMatrixDSym & V() const
virtual ErrCode initPar1(FitParams *)
TVector3 GetLastHit() const
virtual ErrCode initCov(FitParams *) const
RecoPhoton(RhoCandidate *bc, const ParticleBase *mother)
TMatrixT< double > TMatrixD
virtual ErrCode initPar2(FitParams *)
double & Vfast(int row, int col)