17 template <
class T>
T sqr(
T t) {
return t*
t;}
19 using namespace GeomDetEnumerators;
22 std::ostringstream str;
32 return layer->
hits(ev,es);
44 float outerred_r =
sqrt(
sqr(ohit.
x()-origin().x())+
sqr(ohit.
y()-origin().y()) );
55 if ((!thePrecise) &&(isPixel )) {
58 return new HitEtaCheck(isBarrel, outerred, VcotMax, VcotMin);
62 float errZ = nSigmaPhi*outerHit->errorGlobalZ();
63 float errR = nSigmaPhi*outerHit->errorGlobalR();
71 else if (outerred.z() > 0) {
82 float innerScatt = 3 * iSigma(
ptMin(), vtxMean, outerred);
93 float sinTheta = 1/
sqrt(1+
sqr(cotTheta));
94 float corrZ = innerScatt/sinTheta + errZ;
97 float cosTheta = 1/
sqrt(1+
sqr(1/cotTheta));
98 float corrR = innerScatt/cosTheta + errR;
virtual std::string print() const
virtual HitRZCompatibility * checkRZ(const DetLayer *layer, const Hit &outerHit, const edm::EventSetup &iSetup) const
virtual Location location() const =0
Which part of the detector (barrel, endcap)
static const double nSigmaPhi
virtual SubDetector subDetector() const =0
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
virtual std::string print() const
virtual TrackingRegion::Hits hits(const edm::Event &ev, const edm::EventSetup &es, const ctfseeding::SeedingLayer *layer) const
get hits from layer compatible with region constraints
static GlobalPoint vtxMean(const GlobalPoint &p1, const GlobalError &e1, const GlobalPoint &p2, const GlobalError &e2)
void hits(const edm::Event &ev, const edm::EventSetup &es, Hits &) const
Square< F >::type sqr(const F &f)