5 #include "boost/bind.hpp" 6 #include "boost/lambda/lambda.hpp" 18 : peakMode_(latency.singleReadOutMode() == 1),
21 LorentzAngleMap_(LorentzAngle),
22 BackPlaneCorrectionMap_(BackPlaneCorrection)
24 typedef std::map<std::string,SiStripDetId::ModuleGeometry> map_t;
41 const unsigned size = max_element( modules.begin(),modules.end(),
47 for(map_t::const_iterator it=modules.begin(); it!=modules.end(); it++) {
50 xtalk1S(
"xtalk1_" + it->first + modeS ),
51 xtalk2S(
"xtalk2_" + it->first + modeS );
56 xtalk1[it->second] = confObj.
get<
double>(xtalk1S);
57 xtalk2[it->second] = confObj.
get<
double>(xtalk2S);
77 return topology->coveredStrips(lpos + 0.5
f*lvec,lpos - 0.5
f*lvec);
86 float dir_x = -tanLorentzAnglePerTesla * lbfield.
y();
87 float dir_y = tanLorentzAnglePerTesla * lbfield.
x();
98 for(
unsigned int i=1;
i<7;++
i) {
99 LogDebug(
"LookingForFirstStrip") <<
"Subdetector " <<
i 108 LogDebug(
"LookingForFirstStrip") <<
" Chosen offset: " <<
m_off;
110 for (
auto i=
m_off;
i!=dus.size();++
i) {
119 p.thickness = bounds.thickness();
120 p.invThickness = 1.f/
p.thickness;
123 p.nstrips =
p.topology->nstrips();
128 p.pitch_rel_err2 = (rtop)
Local3DVector LocalVector
Point3DBase< Scalar, LocalTag > LocalPoint
CaloTopology const * topology(0)
StripCPE(edm::ParameterSet &conf, const MagneticField &, const TrackerGeometry &, const SiStripLorentzAngle &, const SiStripBackPlaneCorrection &, const SiStripConfObject &, const SiStripLatency &)
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
virtual LocalError localError(float strip, float stripErr2) const =0
StripTopology const * topology
float localPitch(const LocalPoint &) const override
const Bounds & bounds() const
std::pair< LocalPoint, LocalError > LocalValues
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
float angularWidth() const override
StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &cl, const GeomDetUnit &) const override
const TrackerGeometry & geom_
const Plane & surface() const
The nominal surface of the GeomDet.
float backplanecorrection
bool isTrackerStrip() const
uint32_t rawId() const
get the raw id
U second(std::pair< T, U > const &p)
const SiStripLorentzAngle & LorentzAngleMap_
std::vector< float > xtalk1
float getLorentzAngle(const uint32_t &) const
virtual StripGeomDetType const & specificType() const
virtual LocalPoint localPosition(float strip) const =0
unsigned int offsetDU(SubDetector sid) const
virtual const TopologyType & specificTopology() const
float getBackPlaneCorrection(const uint32_t &) const
LocalVector driftDirection(const StripGeomDetUnit *det) const override
DetId geographicalId() const
The label of this GeomDet.
const MagneticField & magfield_
float coveredStrips(const LocalVector &, const LocalPoint &) const
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
float stripLength() const override
const GeomDetType & type() const override
Detector identifier class for the strip tracker.
const SiStripBackPlaneCorrection & BackPlaneCorrectionMap_
const Topology & topology() const override
Returns a reference to the strip proxy topology.
valueType get(const std::string &name) const
std::vector< float > xtalk2
Param const & param(const GeomDetUnit &det) const
bool isParameter(const std::string &name) const
const PositionType & position() const
Power< A, B >::type pow(const A &a, const B &b)
const DetUnitContainer & detUnits() const override
Returm a vector of all GeomDetUnit.
const Plane & specificSurface() const
Same as surface(), kept for backward compatibility.