24 const unsigned int mono)
32 if (!theCombinedPredictedState.isValid()) {
36 iidd = theHit->geographicalId().rawId();
41 float xB = 0.;
float sigmaX = 5.0;
42 float yB = 0.;
float sigmaY = 5.0;
43 float sigmaYBond = 0.;
52 if (( mono > 0 ) && isDoubleSided(iidd) ) {
54 unsigned int matched_iidd = iidd-(iidd & 0x3);
55 DetId matched_id(matched_iidd);
66 theCombinedPredictedState = propagator.
propagate(theCombinedPredictedState,
69 if (!theCombinedPredictedState.isValid()) {
70 cout <<
"found invalid combinedpredictedstate after propagation"<< endl;
75 if ((iidd & 0x3)==0) {
78 hasValidHit = theHit->isValid();
84 hasValidHit = theHit->isValid();
98 hasValidHit = theHit->isValid();
101 locX = theCombinedPredictedState.localPosition().x();
102 locY = theCombinedPredictedState.localPosition().y();
103 locZ = theCombinedPredictedState.localPosition().z();
104 locXError =
sqrt(theCombinedPredictedState.localError().positionError().xx());
105 locYError =
sqrt(theCombinedPredictedState.localError().positionError().yy());
106 locDxDz = theCombinedPredictedState.localParameters().vector()[1];
107 locDyDz = theCombinedPredictedState.localParameters().vector()[2];
108 globX = theCombinedPredictedState.globalPosition().x();
109 globY = theCombinedPredictedState.globalPosition().y();
110 globZ = theCombinedPredictedState.globalPosition().z();
121 if (locX < 0. ) xx =
min(locX - xB,locX - sigmaX*locXError);
122 else xx =
max(locX + xB, locX + sigmaX*locXError);
124 if (locY < 0. ) yy =
min(locY - yB,locY - sigmaY*locYError);
125 else yy =
max(locY + yB, locY + sigmaY*locYError);
127 zz = theCombinedPredictedState.localPosition().z();
196 unsigned int subid=strip.
subdetId();
197 unsigned int layer = 0;
200 layer = tibid.
layer();
201 if (layer == 1 || layer == 2)
return true;
206 layer = tobid.
layer() + 4 ;
207 if (layer == 5 || layer == 6)
return true;
212 layer = tidid.
ring() + 10;
213 if (layer == 11 || layer == 12)
return true;
218 layer = tecid.
ring() + 13 ;
219 if (layer == 14 || layer == 15 || layer == 18)
return true;
227 return theCombinedPredictedState;
unsigned int layer() const
layer id
const GeomDetUnit * monoDet() const
unsigned int monodet_id() const
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
TSOS combine(const TSOS &pTsos1, const TSOS &pTsos2) const
TrajectoryStateOnSurface forwardPredictedState() const
Access to forward predicted state (from fitter or builder)
ConstRecHitPointer recHit() const
TrajectoryAtInvalidHit(const TrajectoryMeasurement &, const TrackerGeometry *tracker, const Propagator &propagator, const unsigned int mono=0)
uint32_t rawId() const
get the raw id
const T & max(const T &a, const T &b)
bool isDoubleSided(unsigned int iidd) const
unsigned int ring() const
ring id
DetId geographicalId() const
The label of this GeomDet.
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
virtual const GeomDet * idToDet(DetId) const
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
const Bounds & bounds() const
bool withinAcceptance() const
double localErrorY() const
unsigned int layer() const
layer id
const BoundPlane & surface() const
The nominal surface of the GeomDet.
unsigned int ring() const
ring id
TrajectoryStateOnSurface tsos() const
double localErrorX() const
TrajectoryStateOnSurface backwardPredictedState() const
Access to backward predicted state (from smoother)
const GeomDetUnit * stereoDet() const