11 : theMagField(magField)
15 for (
int i=0;
i<5;
i++ ) {
44 for (
int i=0;
i<5;
i++ ) {
62 fill(recVertex, recTrackV, simv, recSimColl, time);
104 std::pair<bool, reco::TrackBase::ParameterVector> paramPair =
106 (
float) (**simTrack).charge(),
108 recTrackV.front().stateAtBeamLine().beamSpot());
109 if (paramPair.first) {
121 for(TTrackCont::const_iterator recTrack =recTrackV.begin();
122 (recTrack != recTrackV.end()
130 std::vector<std::pair<TrackingParticleRef, double> > simFound;
133 if ((ttt!=0) && (recSimColl!=0)) simFound = (*recSimColl)[ttt->
trackBaseRef()];
143 if(simFound.size() != 0) {
146 find(simTrackV.
begin(), simTrackV.
end(), simFound[0].first);
147 if (simTrackI!=simTrackV.
end()) ++
tracks[2];
148 int simTrackIndex = simTrackI-simTrackV.
begin();
186 float* params[5],
int trackNumber)
188 params[0][trackNumber] = perigee[0];
189 params[1][trackNumber] = perigee[1];
190 params[2][trackNumber] = perigee[2];
191 params[3][trackNumber] = perigee[3];
192 params[4][trackNumber] = perigee[4];
196 float* params[5],
int trackNumber)
199 params[0][trackNumber] = perigee[0];
200 params[1][trackNumber] = perigee[1];
201 params[2][trackNumber] = perigee[2];
202 params[3][trackNumber] = perigee[3];
203 params[4][trackNumber] = perigee[4];
207 float*
errors[5],
int trackNumber)
211 errors[2][trackNumber] = pte.
phiError();
218 for (
int i=0;
i<3; ++
i ) {
229 for (
int i=0;
i<5; ++
i ) {
239 for (
int i=0;
i<5; ++
i ) {
GlobalError positionError() const
const AlgebraicVector5 & vector() const
tp_iterator daughterTracks_begin() const
double longitudinalImpactParameterError() const
const MagneticField * theMagField
void fillErrors(const PerigeeTrajectoryError &pte, float *errors[5], int trackNumber)
const PerigeeTrajectoryError & perigeeError() const
std::vector< reco::TransientTrack > TTrackCont
double thetaError() const
void fill(const TransientVertex &recv, const TrackingVertex *simv=0, reco::RecoToSimCollection *recSimColl=0, const float &time=0)
float totalChiSquared() const
void fillParameters(const reco::TrackBase::ParameterVector &perigee, float *params[5], int trackNumber)
math::Vector< dimension >::type ParameterVector
parameter vector
const_iterator end() const
Termination of iteration.
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
const_iterator begin() const
Initialize an iterator over the RefVector.
TrackBaseRef trackBaseRef() const
std::vector< reco::TransientTrack > const & originalTracks() const
float degreesOfFreedom() const
GlobalPoint position() const
float ChiSquaredProbability(double chiSquared, double nrDOF)
tp_iterator daughterTracks_end() const
double transverseImpactParameterError() const
ROOT::Math::SVector< double, 5 > AlgebraicVector5
std::pair< bool, reco::TrackBase::ParameterVector > trackingParametersAtClosestApproachToBeamSpot(const Basic3DVector< double > &vertex, const Basic3DVector< double > &momAtVtx, float charge, const MagneticField &magField, const BeamSpot &bs)
const TrackingParticleRefVector & daughterTracks() const
const float * time() const
double transverseCurvatureError() const
VertexFitterResult(const int maxTracks=100, const MagneticField *=0)
const LorentzVector & position() const