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();
153 LogTrace(metname) <<
"stepPropagate: propagate from: " << start <<
" to " <<
dest;
154 LogTrace(metname) <<
"stepPropagate: their distance: " << totalDis;
158 float oneStep = totalDis /
steps;
161 GP += oneStep * UnitStepVector;
163 LogTrace(metname) <<
"stepPropagate: a middle plane: " << pos << endl;
TrackCharge charge() const
const std::string metname
ReturnType plane(const PositionType &pos, const RotationType &rot) const
const CartesianTrajectoryError cartesianError() const
GlobalPoint globalPosition() const
ConstRecHitContainer recHits() const
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
const SurfaceType & surface() const
std::string print(const ConstMuonRecHitContainer &) const
TrajectoryStateOnSurface stepPropagate(const TrajectoryStateOnSurface &, const ConstRecHitPointer &, const Propagator &) const
bool isTraversing(const Trajectory &) const
std::vector< ConstMuonRecHitPointer > ConstMuonRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
Vector3DBase unit() const
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
GlobalVector globalMomentum() const
virtual ~CosmicMuonUtilities()
void reverseDirection(TrajectoryStateOnSurface &, const MagneticField *) const
std::vector< MuonRecHitPointer > MuonRecHitContainer