28 double pi = 4.*atan(1.);
29 double twopi=8.*atan(1.);
32 std::cout<<
" HICMuonUpdator::update:: can not start::initial tsos is not valid " <<std::endl;
39 std::cout<<
" HICMuonUpdator::update::MTM size "<<MTM.size()<<
" vertex "<<
zvert<<std::endl;
40 std::cout<<
" HICMuonUpdator::update::charge from trajectory"<<(MTM.back()).updatedState().freeTrajectoryState()->parameters().charge()<<std::endl;
42 std::cout<<
" HICMuonUpdator::update::momentum "<<(MTM.back()).updatedState().freeTrajectoryState()->parameters().momentum()<<std::endl;
44 vector<double> phihit,rhit,zhit,dphihit,drhit,dzhit,dzhitl,ehitphi,dehitphi,ehitstrip;
54 GlobalVector pold=(MTM.back()).updatedState().freeTrajectoryState()->parameters().momentum();
57 for(vector<TrajectoryMeasurement>::const_iterator ihit=MTM.begin();ihit!=MTM.end();ihit++){
60 phihit.push_back((*ihit).recHit()->globalPosition().phi());
61 rhit.push_back((*ihit).recHit()->globalPosition().perp());
62 zhit.push_back((*ihit).recHit()->globalPosition().z());
63 GlobalPoint realhit = (*ihit).recHit()->globalPosition();
65 double phierror=
sqrt((*ihit).recHit()->globalPositionError().phierr(realhit));
67 if(fabs(phierror)<0.0000001) {
70 ehitphi.push_back(phierror);
72 #ifdef UPDATOR_BARREL_DEBUG
73 cout<<
" Errors "<<phierror<<
" "<<(*ihit).recHit()->globalPositionError().rerr(realhit)<<
" "<<
tan(theta)<<endl;
78 ehitstrip.push_back(
sqrt((*ihit).recHit()->globalPositionError().czz()));
80 ehitstrip.push_back(
sqrt((*ihit).recHit()->globalPositionError().rerr(realhit)/fabs(
tan(theta))));
85 phihit.push_back(nRecHit->globalPosition().phi());
86 rhit.push_back(nRecHit->globalPosition().perp());
87 zhit.push_back(nRecHit->globalPosition().z());
88 ehitphi.push_back(
sqrt(nRecHit->globalPositionError().phierr(nRecHit->globalPosition())));
95 ehitstrip.push_back(
sqrt(nRecHit->globalPositionError().czz()));
97 ehitstrip.push_back(
sqrt(nRecHit->globalPositionError().rerr(nRecHit->globalPosition()))/fabs(
tan(theta)));
102 rhit.push_back(rvert);
103 zhit.push_back(
zvert);
104 ehitstrip.push_back(ezvert);
106 for(vector<double>::const_iterator iphi=phihit.begin();iphi!=phihit.end()-1;iphi++){
107 double dpnew=fabs(*iphi-*(iphi+1));
108 if(dpnew>pi) dpnew=twopi-dpnew;
110 #ifdef UPDATOR_BARREL_DEBUG
111 cout<<
" dphi=dpnew="<<dpnew<<
" "<<*iphi<<
" "<<*(iphi+1)<<endl;
114 dphihit.push_back(dpnew);
117 for(vector<double>::const_iterator ir=rhit.begin();ir!=rhit.end()-2;ir++){
118 double dpnew=fabs(*ir-*(ir+1));
120 #ifdef UPDATOR_BARREL_DEBUG
121 cout<<
" dr=dpnew="<<dpnew<<
" "<<*ir<<
" "<<*(ir+1)<<endl;
124 drhit.push_back(dpnew);
126 for(vector<double>::const_iterator iz=zhit.begin();iz!=zhit.end()-2;iz++){
127 double dpnew=*iz-*(iz+1);
129 #ifdef UPDATOR_BARREL_DEBUG
130 cout<<
" dZ=dpnew="<<dpnew<<
" "<<*iz<<
" "<<*(iz+1)<<endl;
133 dzhit.push_back(fabs(dpnew));
134 dzhitl.push_back(dpnew);
137 dzhitl.push_back(*(zhit.end()-1)-
zvert);
139 for(vector<double>::const_iterator ie=ehitphi.begin();ie!=ehitphi.end()-1;ie++){
140 double dpnew=(*ie)*1.14;
141 dehitphi.push_back(dpnew);
150 nTsos, chirz, chirf, tType);
154 std::cout<<
" Trajectory is not valid "<<std::endl;
164 nTsos, chirz, chirf, tType);
virtual Location location() const =0
Which part of the detector (barrel, endcap)
FreeTrajectoryState * freeTrajectoryState(bool withErrors=true) const
Geom::Theta< T > theta() const
ConstRecHitPointer recHit() const
TrackCharge charge() const
Geom::Theta< T > theta() const
DataContainer const & measurements() const
Tan< T >::type tan(const T &t)
const DetLayer * layer() const
TrajectoryStateOnSurface updateBarrel(std::vector< double > &rhit, std::vector< double > &zhit, std::vector< double > &dphihit, std::vector< double > &drhit, std::vector< double > &ehitstrip, std::vector< double > &dehitphi, const TransientTrackingRecHit::ConstRecHitPointer &pRecHit, const TransientTrackingRecHit::ConstRecHitPointer &nRecHit, const TrajectoryStateOnSurface &nTsos, double &, double &, int &) const
TrajectoryStateOnSurface updateEndcap(std::vector< double > &rhit, std::vector< double > &zhit, std::vector< double > &dphihit, std::vector< double > &drhit, std::vector< double > &ehitstrip, std::vector< double > &dehitphi, const TransientTrackingRecHit::ConstRecHitPointer &pRecHit, const TransientTrackingRecHit::ConstRecHitPointer &nRecHit, const TrajectoryStateOnSurface &nTsos, double &, double &, int &) const