10 : theMagField(magField)
14 for (
int i=0;
i<5;
i++ ) {
43 for (
int i=0;
i<5;
i++ ) {
61 fill(recVertex, recTrackV, simv, recSimColl, time);
103 std::pair<bool, reco::TrackBase::ParameterVector> paramPair =
105 (
float) (**simTrack).charge(),
107 recTrackV.front().stateAtBeamLine().beamSpot());
108 if (paramPair.first) {
120 for(TTrackCont::const_iterator recTrack =recTrackV.begin();
121 (recTrack != recTrackV.end()
129 std::vector<std::pair<TrackingParticleRef, double> > simFound;
132 if ((ttt!=
nullptr) && (recSimColl!=
nullptr)) simFound = (*recSimColl)[ttt->
trackBaseRef()];
142 if(!simFound.empty()) {
145 find(simTrackV.
begin(), simTrackV.
end(), simFound[0].first);
146 if (simTrackI!=simTrackV.
end()) ++
tracks[2];
147 int simTrackIndex = simTrackI-simTrackV.
begin();
185 float* params[5],
int trackNumber)
187 params[0][trackNumber] = perigee[0];
188 params[1][trackNumber] = perigee[1];
189 params[2][trackNumber] = perigee[2];
190 params[3][trackNumber] = perigee[3];
191 params[4][trackNumber] = perigee[4];
195 float* params[5],
int trackNumber)
198 params[0][trackNumber] = perigee[0];
199 params[1][trackNumber] = perigee[1];
200 params[2][trackNumber] = perigee[2];
201 params[3][trackNumber] = perigee[3];
202 params[4][trackNumber] = perigee[4];
206 float*
errors[5],
int trackNumber)
210 errors[2][trackNumber] = pte.
phiError();
217 for (
int i=0;
i<3; ++
i ) {
228 for (
int i=0;
i<5; ++
i ) {
238 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.
std::vector< reco::TransientTrack > const & originalTracks() const
float degreesOfFreedom() const
GlobalPoint position() const
TrackBaseRef trackBaseRef() const override
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