CMS 3D CMS Logo

Functions
siStripClusterTools Namespace Reference

Functions

template<typename Iter >
float chargePerCM (DetId detid, Iter a, Iter b)
 
template<typename Clus >
float chargePerCM (DetId detid, Clus const &cl)
 
template<typename Clus >
float chargePerCM (DetId detid, Clus const &cl, LocalTrajectoryParameters const &tp)
 
template<typename Clus >
float chargePerCM (Clus const &cl, LocalTrajectoryParameters const &tp, float invThick)
 
template<typename Clus >
float chargePerCM (DetId detid, Clus const &cl, const LocalVector &ldir)
 
float sensorThicknessInverse (DetId detid)
 

Function Documentation

◆ chargePerCM() [1/5]

template<typename Iter >
float siStripClusterTools::chargePerCM ( DetId  detid,
Iter  a,
Iter  b 
)
inline

◆ chargePerCM() [2/5]

template<typename Clus >
float siStripClusterTools::chargePerCM ( DetId  detid,
Clus const &  cl 
)
inline

Definition at line 34 of file SiStripClusterTools.h.

References haddnano::cl, and sensorThicknessInverse().

34  {
35  return cl.charge() * sensorThicknessInverse(detid);
36  }
float sensorThicknessInverse(DetId detid)

◆ chargePerCM() [3/5]

template<typename Clus >
float siStripClusterTools::chargePerCM ( DetId  detid,
Clus const &  cl,
LocalTrajectoryParameters const &  tp 
)
inline

Definition at line 39 of file SiStripClusterTools.h.

References chargePerCM(), haddnano::cl, and cmsswSequenceInfo::tp.

39  {
40  return chargePerCM(detid, cl) * tp.absdz();
41  }
float chargePerCM(DetId detid, Clus const &cl, const LocalVector &ldir)

◆ chargePerCM() [4/5]

template<typename Clus >
float siStripClusterTools::chargePerCM ( Clus const &  cl,
LocalTrajectoryParameters const &  tp,
float  invThick 
)
inline

Definition at line 44 of file SiStripClusterTools.h.

References haddnano::cl, and cmsswSequenceInfo::tp.

44  {
45  return cl.charge() * invThick * tp.absdz();
46  }

◆ chargePerCM() [5/5]

template<typename Clus >
float siStripClusterTools::chargePerCM ( DetId  detid,
Clus const &  cl,
const LocalVector ldir 
)
inline

Definition at line 49 of file SiStripClusterTools.h.

References funct::abs(), chargePerCM(), haddnano::cl, PV3DBase< T, PVType, FrameType >::mag(), and PV3DBase< T, PVType, FrameType >::z().

49  {
50  return chargePerCM(detid, cl) * std::abs(ldir.z()) / ldir.mag();
51  }
T z() const
Definition: PV3DBase.h:61
T mag() const
Definition: PV3DBase.h:64
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
float chargePerCM(DetId detid, Clus const &cl, const LocalVector &ldir)

◆ sensorThicknessInverse()

float siStripClusterTools::sensorThicknessInverse ( DetId  detid)
inline

Definition at line 12 of file SiStripClusterTools.h.

References f, SiStripDetId::moduleGeometry(), DetId::subdetId(), SiStripDetId::TIB, SiStripDetId::TOB, W5, W6, and W7.

Referenced by chargePerCM().

12  {
13  if (detid.subdetId() >= SiStripDetId::TIB) {
14  SiStripDetId siStripDetId = detid();
15  if (siStripDetId.subdetId() == SiStripDetId::TOB)
16  return 1.f / 0.047f;
17  if (siStripDetId.moduleGeometry() == SiStripModuleGeometry::W5 ||
18  siStripDetId.moduleGeometry() == SiStripModuleGeometry::W6 ||
19  siStripDetId.moduleGeometry() == SiStripModuleGeometry::W7)
20  return 1.f / 0.047f;
21  return 1.f / 0.029f; // so it is TEC ring 1-4 or TIB or TOB;
22  } else if (detid.subdetId() == 1)
23  return 1.f / 0.0285f;
24  else
25  return 1.f / 0.027f;
26  }
SiStripModuleGeometry moduleGeometry() const
Definition: SiStripDetId.h:109
double f[11][100]
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
static constexpr auto TOB
Definition: SiStripDetId.h:39
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:18
static constexpr auto TIB
Definition: SiStripDetId.h:37