43 for (ConstMuonRecHitContainer::const_iterator ir =
hits.begin(); ir !=
hits.end(); ir++) {
44 if (!(*ir)->isValid()) {
45 output <<
"invalid RecHit" << endl;
50 output <<
"pos" <<
pos <<
"radius " <<
pos.perp() <<
" dim " << (*ir)->dimension() <<
" det " 51 << (*ir)->det()->geographicalId().det() <<
" sub det " << (*ir)->det()->subDetector() << endl;
63 for (MuonRecHitContainer::const_iterator ir =
hits.begin(); ir !=
hits.end(); ir++) {
64 if (!(*ir)->isValid()) {
65 output <<
"invalid RecHit" << endl;
70 output <<
"pos" <<
pos <<
"radius " <<
pos.perp() <<
" dim " << (*ir)->dimension() <<
" det " 71 << (*ir)->det()->geographicalId().det() <<
" sub det " << (*ir)->det()->subDetector() << endl;
83 for (TransientTrackingRecHit::ConstRecHitContainer::const_iterator ir =
hits.begin(); ir !=
hits.end(); ir++) {
84 if (!(*ir)->isValid()) {
85 output <<
"invalid RecHit" << endl;
90 output <<
"pos" <<
pos <<
"radius " <<
pos.perp() <<
" dim " << (*ir)->dimension() <<
" det " 91 << (*ir)->det()->geographicalId().det() <<
" sub det " << (*ir)->det()->subDetector() << endl;
106 ConstRecHitContainer::const_iterator frontHit =
hits.begin();
107 ConstRecHitContainer::const_iterator backHit =
hits.end() - 1;
110 while (!(*frontHit)->isValid() && frontHit != backHit) {
113 while (!(*backHit)->isValid() && backHit != frontHit) {
117 if (frontHit == backHit)
120 GlobalPoint frontPos = (*frontHit)->globalPosition();
121 GlobalPoint backPos = (*backHit)->globalPosition();
125 if (deltaPos.
mag() < 100.0)
127 if (fabs(deltaPos.
z()) > 500.0)
129 if (deltaPos.
perp() > 350.0)
132 (frontPos.
x() + backPos.
x()) / 2, (frontPos.
y() + backPos.
y()) / 2, (frontPos.
z() + backPos.
z()) / 2);
134 return ((middle.
perp() < frontPos.
perp()) && (middle.
perp() < backPos.
perp()));
152 float totalDis = StepVector.
mag();
158 float oneStep = totalDis /
steps;
160 for (
int istep = 0; istep <
steps - 1; istep++) {
161 GP += oneStep * UnitStepVector;
173 predTsos = prop.
propagate(currTsos,
hit->det()->surface());
void reverseDirection(TrajectoryStateOnSurface &, const MagneticField *) const
const std::string metname
ReturnType plane(const PositionType &pos, const RotationType &rot) const
const SurfaceType & surface() const
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
bool isTraversing(const Trajectory &) const
const CartesianTrajectoryError cartesianError() const
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
GlobalPoint globalPosition() const
TrajectoryStateOnSurface stepPropagate(const TrajectoryStateOnSurface &, const ConstRecHitPointer &, const Propagator &) const
TrackCharge charge() const
std::vector< ConstMuonRecHitPointer > ConstMuonRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
GlobalVector globalMomentum() const
std::string print(const ConstMuonRecHitContainer &) const
virtual ~CosmicMuonUtilities()
Vector3DBase unit() const
std::vector< MuonRecHitPointer > MuonRecHitContainer