CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes
RPTopology Class Reference

Geometrical and topological information on RP silicon detector. Uses coordinate a frame with origin in the center of the wafer. More...

#include <RPTopology.h>

Inheritance diagram for RPTopology:
RPSimTopology

Public Types

using Vector = ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > >
 

Public Member Functions

double DetEdgeLength () const
 
double DetPitch () const
 
unsigned short DetStripNo () const
 
double DetThickness () const
 
double DetXWidth () const
 
double DetYWidth () const
 
double GetHitPositionInReadoutDirection (double strip_no) const
 
const VectorGetNormalDirection () const
 
const VectorGetStripDirection () const
 
const VectorGetStripReadoutAxisDir () const
 
 RPTopology ()
 

Static Public Member Functions

static bool IsHit (double u, double v, double insensitiveMargin=0)
 

Public Attributes

Vector normal_direction_
 
Vector strip_direction_
 
Vector strip_readout_direction_
 

Static Public Attributes

static const double last_strip_to_border_dist_ = 1.4175
 
static const double last_strip_to_center_dist_
 
static const unsigned short no_of_strips_ = 512
 
static const double phys_edge_lenght_
 
static const double pitch_ = 66E-3
 
static const double sqrt_2 = std::sqrt(2.0)
 
static const double thickness_ = 0.3
 
static const double x_width_ = 36.07
 
static const double y_width_ = 36.07
 

Detailed Description

Geometrical and topological information on RP silicon detector. Uses coordinate a frame with origin in the center of the wafer.

Definition at line 19 of file RPTopology.h.

Member Typedef Documentation

◆ Vector

using RPTopology::Vector = ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> >

Definition at line 21 of file RPTopology.h.

Constructor & Destructor Documentation

◆ RPTopology()

RPTopology::RPTopology ( )

Definition at line 27 of file RPTopology.cc.

27 : strip_readout_direction_(0, 1, 0), strip_direction_(1, 0, 0), normal_direction_(0, 0, 1) {}
Vector strip_readout_direction_
Definition: RPTopology.h:60
Vector strip_direction_
Definition: RPTopology.h:61
Vector normal_direction_
Definition: RPTopology.h:62

Member Function Documentation

◆ DetEdgeLength()

double RPTopology::DetEdgeLength ( ) const
inline

Definition at line 39 of file RPTopology.h.

References phys_edge_lenght_.

39 { return phys_edge_lenght_; }
static const double phys_edge_lenght_
Definition: RPTopology.h:56

◆ DetPitch()

double RPTopology::DetPitch ( ) const
inline

Definition at line 41 of file RPTopology.h.

References pitch_.

41 { return pitch_; }
static const double pitch_
Definition: RPTopology.h:51

◆ DetStripNo()

unsigned short RPTopology::DetStripNo ( ) const
inline

Definition at line 42 of file RPTopology.h.

References no_of_strips_.

Referenced by RPDetDigitizer::RPDetDigitizer(), RPLinearInduceChargeOnStrips::RPLinearInduceChargeOnStrips(), and RPVFATSimulator::RPVFATSimulator().

42 { return no_of_strips_; }
static const unsigned short no_of_strips_
Definition: RPTopology.h:53

◆ DetThickness()

double RPTopology::DetThickness ( ) const
inline

Definition at line 40 of file RPTopology.h.

References thickness_.

Referenced by RPLinearChargeCollectionDrifter::RPLinearChargeCollectionDrifter().

40 { return thickness_; }
static const double thickness_
Definition: RPTopology.h:52

◆ DetXWidth()

double RPTopology::DetXWidth ( ) const
inline

Definition at line 37 of file RPTopology.h.

References x_width_.

37 { return x_width_; }
static const double x_width_
Definition: RPTopology.h:54

◆ DetYWidth()

double RPTopology::DetYWidth ( ) const
inline

Definition at line 38 of file RPTopology.h.

References y_width_.

38 { return y_width_; }
static const double y_width_
Definition: RPTopology.h:55

◆ GetHitPositionInReadoutDirection()

double RPTopology::GetHitPositionInReadoutDirection ( double  strip_no) const
inline

method converts strip number to a hit position [mm] in det readout coordinate in the origin in the middle of the si detector strip_no is assumed in the range 0 ... no_of_strips_ - 1

Definition at line 31 of file RPTopology.h.

References last_strip_to_border_dist_, no_of_strips_, pitch_, and y_width_.

Referenced by TotemRPRecHitProducerAlgorithm::buildRecoHits().

33  {
34  return last_strip_to_border_dist_ + (no_of_strips_ - 1) * pitch_ - y_width_ / 2. - strip_no * pitch_;
35  }
static const unsigned short no_of_strips_
Definition: RPTopology.h:53
static const double y_width_
Definition: RPTopology.h:55
static const double last_strip_to_border_dist_
Definition: RPTopology.h:57
static const double pitch_
Definition: RPTopology.h:51

◆ GetNormalDirection()

const Vector& RPTopology::GetNormalDirection ( ) const
inline

Definition at line 26 of file RPTopology.h.

References normal_direction_.

26 { return normal_direction_; }
Vector normal_direction_
Definition: RPTopology.h:62

◆ GetStripDirection()

const Vector& RPTopology::GetStripDirection ( ) const
inline

Definition at line 25 of file RPTopology.h.

References strip_direction_.

25 { return strip_direction_; }
Vector strip_direction_
Definition: RPTopology.h:61

◆ GetStripReadoutAxisDir()

const Vector& RPTopology::GetStripReadoutAxisDir ( ) const
inline

Definition at line 24 of file RPTopology.h.

References strip_readout_direction_.

24 { return strip_readout_direction_; }
Vector strip_readout_direction_
Definition: RPTopology.h:60

◆ IsHit()

bool RPTopology::IsHit ( double  u,
double  v,
double  insensitiveMargin = 0 
)
static

returns true if hit at coordinates u, v (in mm) falls into the sensitive area can take into account insensitive margin (in mm) at the beam-facing edge

Definition at line 29 of file RPTopology.cc.

References last_strip_to_center_dist_, phys_edge_lenght_, sqrt_2, findQualityFiles::v, x_width_, and y.

Referenced by PPSFastLocalSimulation::GenerateTrack(), and PPSDirectProtonSimulation::processProton().

29  {
30  // assumes square shape
31 
32  if (fabs(u) > last_strip_to_center_dist_)
33  return false;
34 
35  if (fabs(v) > last_strip_to_center_dist_)
36  return false;
37 
38  double y = (u + v) / sqrt_2;
39  double edge_to_ceter_dist = (x_width_ - phys_edge_lenght_ / sqrt_2) / sqrt_2 - insensitiveMargin;
40  if (y < -edge_to_ceter_dist)
41  return false;
42 
43  return true;
44 }
static const double phys_edge_lenght_
Definition: RPTopology.h:56
static const double last_strip_to_center_dist_
Definition: RPTopology.h:58
static const double x_width_
Definition: RPTopology.h:54
static const double sqrt_2
Definition: RPTopology.h:49

Member Data Documentation

◆ last_strip_to_border_dist_

const double RPTopology::last_strip_to_border_dist_ = 1.4175
static

◆ last_strip_to_center_dist_

const double RPTopology::last_strip_to_center_dist_
static
Initial value:

Definition at line 58 of file RPTopology.h.

Referenced by IsHit().

◆ no_of_strips_

const unsigned short RPTopology::no_of_strips_ = 512
static

◆ normal_direction_

Vector RPTopology::normal_direction_

Definition at line 62 of file RPTopology.h.

Referenced by GetNormalDirection().

◆ phys_edge_lenght_

const double RPTopology::phys_edge_lenght_
static
Initial value:
=
22.276

Definition at line 56 of file RPTopology.h.

Referenced by DetEdgeLength(), IsHit(), and RPSimTopology::RPSimTopology().

◆ pitch_

const double RPTopology::pitch_ = 66E-3
static

◆ sqrt_2

const double RPTopology::sqrt_2 = std::sqrt(2.0)
static

◆ strip_direction_

Vector RPTopology::strip_direction_

Definition at line 61 of file RPTopology.h.

Referenced by GetStripDirection().

◆ strip_readout_direction_

Vector RPTopology::strip_readout_direction_

Definition at line 60 of file RPTopology.h.

Referenced by GetStripReadoutAxisDir().

◆ thickness_

const double RPTopology::thickness_ = 0.3
static

Definition at line 52 of file RPTopology.h.

Referenced by DetThickness().

◆ x_width_

const double RPTopology::x_width_ = 36.07
static

Definition at line 54 of file RPTopology.h.

Referenced by DetXWidth(), IsHit(), and RPSimTopology::RPSimTopology().

◆ y_width_

const double RPTopology::y_width_ = 36.07
static