CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
StripCPEfromTrackAngle.h
Go to the documentation of this file.
1 #ifndef RecoLocalTracker_SiStripRecHitConverter_StripCPEfromTrackAngle_H
2 #define RecoLocalTracker_SiStripRecHitConverter_StripCPEfromTrackAngle_H
3 
5 
7 {
8 
9 private:
11 
12  //Error parameterization, low cluster width function
13  float mLC_P[3];
14  float mHC_P[4][2];
15 
16  //High cluster width is broken down by sub-det
17  std::map<SiStripDetId::SubDetector, float> mHC_P0;
18  std::map<SiStripDetId::SubDetector, float> mHC_P1;
19 
20  //Set to true if we are using the old error parameterization
21  const bool useLegacyError;
22 
23  //Clusters with charge/path > this cut will use old error parameterization
24  // (overridden by useLegacyError; negative value disables the cut)
25  const float maxChgOneMIP;
26 
27 public:
30 
31  float stripErrorSquared(const unsigned N, const float uProj, const SiStripDetId::SubDetector loc ) const ;
32  float legacyStripErrorSquared(const unsigned N, const float uProj) const;
33 
35  const MagneticField& mag,
36  const TrackerGeometry& geom,
37  const SiStripLorentzAngle& lorentz,
38  const SiStripBackPlaneCorrection& backPlaneCorrection,
39  const SiStripConfObject& confObj,
40  const SiStripLatency& latency)
41  : StripCPE(conf, mag, geom, lorentz, backPlaneCorrection, confObj, latency )
42  , useLegacyError(conf.existsAs<bool>("useLegacyError") ? conf.getParameter<bool>("useLegacyError") : true)
43  , maxChgOneMIP(conf.existsAs<float>("maxChgOneMIP") ? conf.getParameter<double>("maxChgOneMIP") : -6000.)
44  {
45  mLC_P[0] = conf.existsAs<double>("mLC_P0") ? conf.getParameter<double>("mLC_P0") : -.326;
46  mLC_P[1] = conf.existsAs<double>("mLC_P1") ? conf.getParameter<double>("mLC_P1") : .618;
47  mLC_P[2] = conf.existsAs<double>("mLC_P2") ? conf.getParameter<double>("mLC_P2") : .300;
48 
49  mHC_P[SiStripDetId::TIB - 3][0] = conf.existsAs<double>("mTIB_P0") ? conf.getParameter<double>("mTIB_P0") : -.742 ;
50  mHC_P[SiStripDetId::TIB - 3][1] = conf.existsAs<double>("mTIB_P1") ? conf.getParameter<double>("mTIB_P1") : .202 ;
51  mHC_P[SiStripDetId::TID - 3][0] = conf.existsAs<double>("mTID_P0") ? conf.getParameter<double>("mTID_P0") : -1.026 ;
52  mHC_P[SiStripDetId::TID - 3][1] = conf.existsAs<double>("mTID_P1") ? conf.getParameter<double>("mTID_P1") : .253 ;
53  mHC_P[SiStripDetId::TOB - 3][0] = conf.existsAs<double>("mTOB_P0") ? conf.getParameter<double>("mTOB_P0") : -1.427 ;
54  mHC_P[SiStripDetId::TOB - 3][1] = conf.existsAs<double>("mTOB_P1") ? conf.getParameter<double>("mTOB_P1") : .433 ;
55  mHC_P[SiStripDetId::TEC - 3][0] = conf.existsAs<double>("mTEC_P0") ? conf.getParameter<double>("mTEC_P0") : -1.885 ;
56  mHC_P[SiStripDetId::TEC - 3][1] = conf.existsAs<double>("mTEC_P1") ? conf.getParameter<double>("mTEC_P1") : .471 ;
57  }
58 };
59 #endif
float legacyStripErrorSquared(const unsigned N, const float uProj) const
T getParameter(std::string const &) const
StripCPEfromTrackAngle(edm::ParameterSet &conf, const MagneticField &mag, const TrackerGeometry &geom, const SiStripLorentzAngle &lorentz, const SiStripBackPlaneCorrection &backPlaneCorrection, const SiStripConfObject &confObj, const SiStripLatency &latency)
std::map< SiStripDetId::SubDetector, float > mHC_P1
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:185
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &cl, const GeomDetUnit &) const
Definition: StripCPE.cc:65
std::map< SiStripDetId::SubDetector, float > mHC_P0
StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &, const GeomDetUnit &, const LocalTrajectoryParameters &) const
tuple conf
Definition: dbtoconf.py:185
#define N
Definition: blowfish.cc:9
std::pair< LocalPoint, LocalError > LocalValues
float stripErrorSquared(const unsigned N, const float uProj, const SiStripDetId::SubDetector loc) const