CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
StripCPEfromTrackAngle.cc
Go to the documentation of this file.
3 
4 
6 localParameters( const SiStripCluster& cluster, const GeomDetUnit& det, const LocalTrajectoryParameters& ltp) const {
7  return localParameters(cluster,ltp);
8 }
9 
11 localParameters( const SiStripCluster& cluster, const LocalTrajectoryParameters& ltp) const {
12  StripCPE::Param const & p = param(cluster.geographicalId());
13 
14  LocalVector track = ltp.momentum();
15  track *=
16  (track.z()<0) ? std::abs(p.thickness/track.z()) :
17  (track.z()>0) ? -std::abs(p.thickness/track.z()) :
18  p.maxLength/track.mag() ;
19 
20  const unsigned N = cluster.amplitudes().size();
21  const float fullProjection = p.coveredStrips( track+p.drift, ltp.position());
22  const float uerr2 = stripErrorSquared( N, std::abs(fullProjection) );
23  const float strip = cluster.barycenter() - 0.5f*(1.f-shift[p.moduleGeom]) * fullProjection
24  + 0.5f*p.coveredStrips(track, ltp.position());
25 
26  return std::make_pair( p.topology->localPosition(strip, ltp.vector()),
27  p.topology->localError(strip, uerr2, ltp.vector()) );
28 }
29 
30 inline
32 stripErrorSquared(const unsigned N, const float uProj) const
33 {
34  if( (float(N)-uProj) > 3.5f )
35  return float(N*N)/12.f;
36  else {
37  const float P1=-0.339f;
38  const float P2=0.90f;
39  const float P3=0.279f;
40  const float uerr = P1*uProj*std::exp(-uProj*P2)+P3;
41  return uerr*uerr;
42  }
43 }
void strip(std::string &input, const std::string &blanks=" \n\t")
Definition: stringTools.cc:16
LocalPoint position() const
Local x and y position coordinates.
float thickness
Definition: StripCPE.h:45
StripTopology const * topology
Definition: StripCPE.h:43
#define abs(x)
Definition: mlp_lapack.h:159
Exp< T >::type exp(const T &t)
Definition: Exp.h:22
std::pair< LocalPoint, LocalError > LocalValues
StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &, const LocalTrajectoryParameters &) const
uint32_t geographicalId() const
AlgebraicVector5 vector() const
SiStripDetId::ModuleGeometry moduleGeom
Definition: StripCPE.h:47
float stripErrorSquared(const unsigned, const float) const
double f[11][100]
float barycenter() const
std::vector< double > shift
Definition: StripCPE.h:37
LocalVector momentum() const
Momentum vector in the local frame.
float coveredStrips(const LocalVector &, const LocalPoint &) const
Definition: StripCPE.cc:74
virtual LocalError localError(float strip, float stripErr2) const =0
float maxLength
Definition: StripCPE.h:45
LocalVector drift
Definition: StripCPE.h:44
virtual LocalPoint localPosition(float strip) const =0
Param const & param(const uint32_t detid) const
Definition: StripCPE.cc:94
const std::vector< uint8_t > & amplitudes() const