BmnRoot
Loading...
Searching...
No Matches
CbmStsSensorDssdOrtho Class Reference

Detector response for DSSD sensors with orthogonal strips. More...

#include <CbmStsSensorDssdOrtho.h>

Inheritance diagram for CbmStsSensorDssdOrtho:
[legend]
Collaboration diagram for CbmStsSensorDssdOrtho:
[legend]

Public Member Functions

 CbmStsSensorDssdOrtho (UInt_t address=0, TGeoPhysicalNode *node=nullptr, CbmStsElement *mother=nullptr)
 
virtual ~CbmStsSensorDssdOrtho ()
 
virtual Double_t GetPitch (Int_t side) const
 Strip pitch for front and back side.
 
virtual void ModifyStripPitch (Double_t pitch)
 Modify the strip pitch.
 
Bool_t SetParameters (Int_t nStripsF, Double_t pitchF, Int_t nStripsB, Double_t pitchB)
 Set the internal sensor parameters.
 
std::string ToString () const
 

Protected Member Functions

virtual void Diffusion (Double_t x, Double_t y, Double_t sigma, Int_t side, Double_t &fracL, Double_t &fracC, Double_t &fracR)
 Strip pitch front/back side [cm].
 
virtual Int_t GetModuleChannel (Int_t strip, Int_t side, Int_t sensorId) const
 Get the readout channel in the module for a given strip.
 
virtual Int_t GetNofStrips (Int_t side) const
 Number of strips on front or back side.
 
virtual Int_t GetStripNumber (Double_t x, Double_t y, Int_t side) const
 Get strip number from point coordinates.
 
virtual void PropagateCharge (Double_t x, Double_t y, Double_t z, Double_t charge, Double_t bY, Int_t side)
 

Protected Attributes

Int_t fNofStrips [2]
 Number of strips on front/back side.
 
Double_t fPitch [2]
 

Detailed Description

Detector response for DSSD sensors with orthogonal strips.

Author
V.Friese v.fri.nosp@m.ese@.nosp@m.gsi.d.nosp@m.e
Version
1.0

This class describes the response of double-sided silicon strip sensors with vertical strips on the front side, which are read out at the top edge, and horizontal strips at the back side, which are read out at the left edge.

For these sensors, a daisy-chain with other sensors is not allowed. The mapping of strip number and module channel is thus trivial.

Definition at line 29 of file CbmStsSensorDssdOrtho.h.

Constructor & Destructor Documentation

◆ CbmStsSensorDssdOrtho()

CbmStsSensorDssdOrtho::CbmStsSensorDssdOrtho ( UInt_t  address = 0,
TGeoPhysicalNode *  node = nullptr,
CbmStsElement mother = nullptr 
)

Constructor

Parameters
addressUnique element address
nodePointer to geometry node
motherPointer to mother element (module)

Definition at line 22 of file CbmStsSensorDssdOrtho.cxx.

◆ ~CbmStsSensorDssdOrtho()

virtual CbmStsSensorDssdOrtho::~CbmStsSensorDssdOrtho ( )
inlinevirtual

Destructor

Definition at line 44 of file CbmStsSensorDssdOrtho.h.

Member Function Documentation

◆ Diffusion()

void CbmStsSensorDssdOrtho::Diffusion ( Double_t  x,
Double_t  y,
Double_t  sigma,
Int_t  side,
Double_t &  fracL,
Double_t &  fracC,
Double_t &  fracR 
)
protectedvirtual

Strip pitch front/back side [cm].

Charge diffusion into adjacent strips

Parameters
[in]xx coordinate of charge centre (local c.s.) [cm]
[in]yy coordinate of charge centre (local c.s.) [cm]
[in]sigmaDiffusion width [cm]
[in]side0 = front (p) side, 1 = back (n) side
[out]fracLFraction of charge in left neighbour strip
[out]fracCFraction of charge in centre strip
[out]fracRFraction of charge in right neighbour strip

Calculates the fraction of charge in the most significant (centre) strip and its left and right neighbours. The charge distribution is assumed to be a 2-d Gaussian (resulting from thermal diffusion) with centre (x,y) and width sigma in both dimensions. The integration is performed in the coordinate across the strips. For simplicity, all charge left (right) of the centre strip is accumulated in the left (right) neighbour; this is justified since typical values of the diffusion width are much smaller than the strip pitch. The charge in the neighbouring strip is neglected if it is more distant than 3 sigma from the charge centre. Edge effects are neglected, i.e. diffusion into the inactive area is allowed.

Definition at line 34 of file CbmStsSensorDssdOrtho.cxx.

References fPitch.

Referenced by PropagateCharge().

◆ GetModuleChannel()

Int_t CbmStsSensorDssdOrtho::GetModuleChannel ( Int_t  strip,
Int_t  side,
Int_t  sensorId 
) const
protectedvirtual

Get the readout channel in the module for a given strip.

Parameters
stripStrip number
sideSide (0 = front, 1 = back)
sensorIdIndex of sensor within module
Returns
Channel number in module

This method defines the mapping of the sensor strips to the readout channels in the module.

Definition at line 76 of file CbmStsSensorDssdOrtho.cxx.

References fNofStrips.

◆ GetNofStrips()

virtual Int_t CbmStsSensorDssdOrtho::GetNofStrips ( Int_t  side) const
inlineprotectedvirtual

Number of strips on front or back side.

Parameters
side0 = front side, 1 = back side
Returns
Number of strips

Definition at line 132 of file CbmStsSensorDssdOrtho.h.

References fNofStrips.

◆ GetPitch()

virtual Double_t CbmStsSensorDssdOrtho::GetPitch ( Int_t  side) const
inlinevirtual

Strip pitch for front and back side.

Parameters
side0 = front side, 1 = back side @value Strip pitch [cm] on the specified sensor side

Definition at line 51 of file CbmStsSensorDssdOrtho.h.

References fPitch.

◆ GetStripNumber()

Int_t CbmStsSensorDssdOrtho::GetStripNumber ( Double_t  x,
Double_t  y,
Int_t  side 
) const
protectedvirtual

Get strip number from point coordinates.

Parameters
xx coordinate [cm]
yy coordinate [cm]
side0 = front side, 1 = back side
Returns
strip number on selected side

Definition at line 94 of file CbmStsSensorDssdOrtho.cxx.

References dist(), and fPitch.

Referenced by PropagateCharge().

◆ ModifyStripPitch()

void CbmStsSensorDssdOrtho::ModifyStripPitch ( Double_t  pitch)
virtual

Modify the strip pitch.

Parameters
Newstrip pitch [cm]

The number of strips is re-calculated accordingly.

Definition at line 124 of file CbmStsSensorDssdOrtho.cxx.

References fNofStrips, and fPitch.

◆ PropagateCharge()

void CbmStsSensorDssdOrtho::PropagateCharge ( Double_t  x,
Double_t  y,
Double_t  z,
Double_t  charge,
Double_t  bY,
Int_t  side 
)
protectedvirtual

Propagate a charge created in the sensor to the readout strips

Parameters
xx origin of charge in local c.s. [cm]
yy origin of charge in local c.s. [cm]
zz origin of charge in local c.s. [cm]
chargeCharge [e]
bYMagnetic field (y component) [T]
side0 = front (n) side; 1 = back (p) side
sensorPointer to sensor object

Definition at line 146 of file CbmStsSensorDssdOrtho.cxx.

References Diffusion(), fNofStrips, GetStripNumber(), and CbmStsSetup::Instance().

◆ SetParameters()

Bool_t CbmStsSensorDssdOrtho::SetParameters ( Int_t  nStripsF,
Double_t  pitchF,
Int_t  nStripsB,
Double_t  pitchB 
)

Set the internal sensor parameters.

Parameters
nStripsFNumber of strips front side (vertical)
pitchFStrip pitch front side [cm]
stereoFStrip stereo angle front side [degrees]
nStripsBNumber of strips back side (horizontal)
pitchBStrip pitch back side [cm]
stereoBStrip stereo angle back side [degrees] @value kTRUE if parameters are successfully set; else kFALSE

Definition at line 236 of file CbmStsSensorDssdOrtho.cxx.

References fNofStrips, and fPitch.

◆ ToString()

string CbmStsSensorDssdOrtho::ToString ( ) const

String output

Definition at line 277 of file CbmStsSensorDssdOrtho.cxx.

References fNofStrips, and fPitch.

Member Data Documentation

◆ fNofStrips

Int_t CbmStsSensorDssdOrtho::fNofStrips[2]
protected

Number of strips on front/back side.

Definition at line 85 of file CbmStsSensorDssdOrtho.h.

Referenced by GetModuleChannel(), GetNofStrips(), ModifyStripPitch(), PropagateCharge(), SetParameters(), and ToString().

◆ fPitch

Double_t CbmStsSensorDssdOrtho::fPitch[2]
protected

The documentation for this class was generated from the following files: