CMS 3D CMS Logo

StripCPE.h
Go to the documentation of this file.
1 #ifndef RecoLocalTracker_SiStripRecHitConverter_StripCPE_H
2 #define RecoLocalTracker_SiStripRecHitConverter_StripCPE_H
3 
5 
13 
14 class StripTopology;
15 
17 {
18 public:
20 
22 
23  StripCPE( edm::ParameterSet & conf,
24  const MagneticField&,
25  const TrackerGeometry&,
26  const SiStripLorentzAngle&,
28  const SiStripConfObject&,
29  const SiStripLatency&);
30  LocalVector driftDirection(const StripGeomDetUnit* det) const override;
31 
32  struct Param {
37  int nstrips;
40  float coveredStrips(const LocalVector&, const LocalPoint&) const;
41  };
42 
43 
44  struct AlgoParam {
45  Param const & p; const LocalTrajectoryParameters & ltp;
46  SiStripDetId::SubDetector loc; float afullProjection; float corr;
47  };
48 
49 
51  localParameters( const SiStripCluster& cl, AlgoParam const & ap) const {
52  return std::make_pair(LocalPoint(), LocalError());
53  }
54 
56 
57  StripCPE::Param const & p = param(det);
58  SiStripDetId::SubDetector loc = SiStripDetId( det.geographicalId() ).subDetector();
59 
61  track *= -p.thickness;
62 
63  const float fullProjection = p.coveredStrips( track+p.drift, ltp.position());
64 
65  auto const corr = - 0.5f*(1.f-p.backplanecorrection) * fullProjection
66  + 0.5f*p.coveredStrips(track, ltp.position());
67 
68  return AlgoParam{p,ltp,loc,std::abs(fullProjection),corr};
69  }
70 
71  protected:
72 
73  const bool peakMode_;
78  std::vector<float> xtalk1;
79  std::vector<float> xtalk2;
80 
81  Param const & param(const GeomDetUnit& det) const {
82  return m_Params[det.index()-m_off];
83  }
84 
85 private:
86 
87  void fillParams();
88  typedef std::vector<Param> Params;
89  Params m_Params;
90  unsigned int m_off;
91 
92 };
93 #endif
float invThickness
Definition: StripCPE.h:36
const bool peakMode_
Definition: StripCPE.h:73
Params m_Params
Definition: StripCPE.h:89
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:32
std::vector< Param > Params
Definition: StripCPE.h:88
StripCPE(edm::ParameterSet &conf, const MagneticField &, const TrackerGeometry &, const SiStripLorentzAngle &, const SiStripBackPlaneCorrection &, const SiStripConfObject &, const SiStripLatency &)
Definition: StripCPE.cc:11
float pitch_rel_err2
Definition: StripCPE.h:36
LocalPoint position() const
Local x and y position coordinates.
float thickness
Definition: StripCPE.h:36
void fillParams()
Definition: StripCPE.cc:95
virtual void localParameters(AClusters const &clusters, ALocalValues &retValues, const GeomDetUnit &gd, const LocalTrajectoryParameters &ltp) const
StripTopology const * topology
Definition: StripCPE.h:34
SiStripDetId::SubDetector loc
Definition: StripCPE.h:46
std::pair< LocalPoint, LocalError > LocalValues
StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &cl, const GeomDetUnit &) const override
Definition: StripCPE.cc:65
#define nullptr
const TrackerGeometry & geom_
Definition: StripCPE.h:74
float backplanecorrection
Definition: StripCPE.h:38
unsigned int m_off
Definition: StripCPE.h:90
const SiStripLorentzAngle & LorentzAngleMap_
Definition: StripCPE.h:76
std::vector< float > xtalk1
Definition: StripCPE.h:78
SiStripDetId::ModuleGeometry moduleGeom
Definition: StripCPE.h:39
LocalVector directionNotNormalized() const
Momentum vector unit in the local frame.
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LocalVector driftDirection(const StripGeomDetUnit *det) const override
Definition: StripCPE.cc:81
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
virtual StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &cl, AlgoParam const &ap) const
Definition: StripCPE.h:51
double f[11][100]
const MagneticField & magfield_
Definition: StripCPE.h:75
int index() const
Definition: GeomDet.h:99
AlgoParam getAlgoParam(const GeomDetUnit &det, const LocalTrajectoryParameters &ltp) const
Definition: StripCPE.h:55
float coveredStrips(const LocalVector &, const LocalPoint &) const
Definition: StripCPE.cc:76
JetCorrectorParameters corr
Definition: classes.h:5
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:17
const SiStripBackPlaneCorrection & BackPlaneCorrectionMap_
Definition: StripCPE.h:77
std::vector< float > xtalk2
Definition: StripCPE.h:79
float maxLength
Definition: StripCPE.h:36
Param const & param(const GeomDetUnit &det) const
Definition: StripCPE.h:81
LocalVector drift
Definition: StripCPE.h:35
Param const & p
Definition: StripCPE.h:45