BmnRoot
Loading...
Searching...
No Matches
BmnSsdSensor Class Referenceabstract

Class representing an instance of a sensor in the BMN-SSD. More...

#include <BmnSsdSensor.h>

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

Public Member Functions

 BmnSsdSensor (UInt_t address=0, TGeoPhysicalNode *node=nullptr, BmnSsdElement *mother=nullptr)
 
virtual ~BmnSsdSensor ()
 
void CreateHit (Double_t xLocal, Double_t yLocal, Double_t varX, Double_t varY, Double_t varXY, BmnSsdCluster *clusterF, BmnSsdCluster *clusterB, Double_t du=0., Double_t dv=0.)
 
virtual Int_t FindHits (std::vector< BmnSsdCluster * > &clusters, TClonesArray *hitArray, BmnEvent *event, Double_t dTime)=0
 
const BmnSsdSensorConditionsGetConditions () const
 
BmnLinkGetCurrentLink () const
 
BmnSsdModuleGetModule () const
 
TGeoPhysicalNode * GetNode () const
 
virtual Bool_t Init ()
 Initialise the sensor, if needed.
 
Int_t GetSensorId () const
 
Int_t ProcessPoint (const BmnSsdPoint *point, Double_t eventTime=0., BmnLink *link=NULL)
 
void SetAddress (Int_t address)
 Set sensor address.
 
void SetConditions (Double_t vFD, Double_t vBias, Double_t temperature, Double_t cCoupling, Double_t cInterstrip, Double_t bX, Double_t bY, Double_t bZ)
 
void SetNode (TGeoPhysicalNode *node)
 Set the physical node.
 
virtual std::string ToString () const =0
 
- Public Member Functions inherited from BmnSsdElement
 BmnSsdElement ()
 
 BmnSsdElement (Int_t address, Int_t level, TGeoPhysicalNode *node=nullptr, BmnSsdElement *mother=nullptr)
 
virtual ~BmnSsdElement ()
 
Int_t GetAddress () const
 
BmnSsdElementGetDaughter (Int_t index) const
 
Int_t GetIndex () const
 
ESsdElementLevel GetLevel () const
 
BmnSsdElementGetMother () const
 
Int_t GetNofDaughters () const
 
Int_t GetNofElements (Int_t level) const
 
TGeoPhysicalNode * GetPnode () const
 
virtual void InitDaughters ()
 
void SetMother (BmnSsdElement *mother)
 
virtual void Print (Option_t *opt="") const
 

Static Public Member Functions

static UInt_t GetAddressFromName (TString name)
 Get the address from the sensor name (static)
 
- Static Public Member Functions inherited from BmnSsdElement
static TString ConstructName (Int_t address, ESsdElementLevel level)
 

Protected Member Functions

virtual Int_t CalculateResponse (BmnSsdSensorPoint *point)=0
 ///< Pointer to current event
 
 BmnSsdSensor (const BmnSsdSensor &)=delete
 
BmnSsdSensoroperator= (const BmnSsdSensor &)=delete
 
 ClassDef (BmnSsdSensor, 2)
 
- Protected Member Functions inherited from BmnSsdElement
void ConstructName ()
 
void SetLevel (Int_t level)
 

Protected Attributes

BmnSsdSensorConditionsfConditions
 Operating conditions.
 
BmnLinkfCurrentLink
 Link to currently processed MCPoint.
 
TClonesArray * fHits
 Output array for hits. Used in hit finding.
 
BmnEventfEvent
 
- Protected Attributes inherited from BmnSsdElement
Int_t fAddress
 Unique element address.
 
ESsdElementLevel fLevel
 Level in hierarchy.
 
TGeoPhysicalNode * fNode
 Pointer to geometry.
 
std::vector< BmnSsdElement * > fDaughters
 Array of daughters.
 
BmnSsdElementfMother
 Mother element.
 

Detailed Description

Class representing an instance of a sensor in the BMN-SSD.

Version
2.0

The sensor is the smallest geometric element in the SSD setup. It is the daughter node of a module, which may contain one sensor or several daisy-chained ones. The sensor class represents the physical node through its member fNode, but also performs detector response simulation through its member fType. After being instantiated by the initialisation of BmnSsdSetup, the sensor type must be assigned to the sensor. This is currently done by the digitiser task. The sensor class performs the coordinate transformation from the global system to the sensor system, having the sensor midpoint as origin. The analog response is then modelled by the pure virtual method CalulateResponse.

Definition at line 47 of file BmnSsdSensor.h.

Constructor & Destructor Documentation

◆ BmnSsdSensor() [1/2]

BmnSsdSensor::BmnSsdSensor ( UInt_t  address = 0,
TGeoPhysicalNode *  node = nullptr,
BmnSsdElement mother = nullptr 
)

Constructor

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

Definition at line 41 of file BmnSsdSensor.cxx.

◆ ~BmnSsdSensor()

virtual BmnSsdSensor::~BmnSsdSensor ( )
inlinevirtual

Destructor

Definition at line 62 of file BmnSsdSensor.h.

◆ BmnSsdSensor() [2/2]

BmnSsdSensor::BmnSsdSensor ( const BmnSsdSensor )
protecteddelete

Prevent usage of copy constructor and assignment operator

Member Function Documentation

◆ CalculateResponse()

virtual Int_t BmnSsdSensor::CalculateResponse ( BmnSsdSensorPoint point)
protectedpure virtual

///< Pointer to current event

Perform response simulation for one MC Point

Parameters
pointPointer to BmnSsdSensorPoint with relevant parameters
Returns
Status variable, depends on concrete type

Perform the appropriate action for a particle trajectory in the sensor characterised by the BmnSsdSensorPoint object. This is specific to the sensor type and has to be implemented in the derived class.

Implemented in BmnSsdSensorDssd.

Referenced by ProcessPoint().

◆ ClassDef()

BmnSsdSensor::ClassDef ( BmnSsdSensor  ,
 
)
protected

◆ CreateHit()

void BmnSsdSensor::CreateHit ( Double_t  xLocal,
Double_t  yLocal,
Double_t  varX,
Double_t  varY,
Double_t  varXY,
BmnSsdCluster clusterF,
BmnSsdCluster clusterB,
Double_t  du = 0.,
Double_t  dv = 0. 
)

Create a new hit in the output array from two clusters

Parameters
xLocalhit x coordinate in sensor system [cm]
yLocalhit y coordinate in sensor system [cm]
varXVariance in x [cm^2]
varYVariance in y [cm^2]
varXYCovariance of x and y [cm^2]
clusterFpointer to front side cluster
clusterBpointer to back side cluster
duError in u coordinate (across strips front side) [cm]
dvError in v coordinate (across strips back side) [cm]

Definition at line 55 of file BmnSsdSensor.cxx.

References BmnEvent::AddData(), fEvent, fHits, BmnSsdElement::fNode, BmnSsdElement::GetAddress(), BmnSsdCluster::GetIndex(), BmnSsdCluster::GetTime(), BmnSsdCluster::GetTimeError(), and kSsdHit.

Referenced by BmnSsdSensorDssdStereo::IntersectClusters().

◆ FindHits()

Int_t BmnSsdSensor::FindHits ( std::vector< BmnSsdCluster * > &  clusters,
TClonesArray *  hitArray,
BmnEvent event,
Double_t  dTime 
)
pure virtual

Find hits in sensor

Parameters
clustersVector of clusters
hitArrayTClonesArray to store the hits in
eventPointer to current event for registering of hits
dTimeMax. time difference of clusters in a hit
Returns
Number of created hits

Implemented in BmnSsdSensorDssd.

Definition at line 117 of file BmnSsdSensor.cxx.

References fEvent, and fHits.

Referenced by BmnSsdModule::FindHits().

◆ GetAddressFromName()

UInt_t BmnSsdSensor::GetAddressFromName ( TString  name)
static

Get the address from the sensor name (static)

Parameters
nameName of sensor @value Unique element address

Definition at line 133 of file BmnSsdSensor.cxx.

References BmnSsdAddress::GetAddress().

Referenced by BmnSsdSetup::SetSensorConditions().

◆ GetConditions()

const BmnSsdSensorConditions * BmnSsdSensor::GetConditions ( ) const
inline

◆ GetCurrentLink()

BmnLink * BmnSsdSensor::GetCurrentLink ( ) const
inline

Current link object

Returns
Pointer to current link object (to BmnSsdPoint)

Definition at line 110 of file BmnSsdSensor.h.

References fCurrentLink.

Referenced by BmnSsdSensorDssd::RegisterCharge().

◆ GetModule()

BmnSsdModule * BmnSsdSensor::GetModule ( ) const

Get mother module

Definition at line 148 of file BmnSsdSensor.cxx.

References BmnSsdElement::GetMother().

Referenced by BmnSsdSensorDssd::CalculateResponse(), and BmnSsdSensorDssd::RegisterCharge().

◆ GetNode()

TGeoPhysicalNode * BmnSsdSensor::GetNode ( ) const
inline

Get physical node

Returns
Pointer to TGeoPhysicalNode of sensor

Definition at line 120 of file BmnSsdSensor.h.

References BmnSsdElement::fNode.

Referenced by BmnSsdStation::Init(), and BmnSsdSetup::SetSensorConditions().

◆ GetSensorId()

Int_t BmnSsdSensor::GetSensorId ( ) const
inline

Get the sensor Id within the module

Definition at line 132 of file BmnSsdSensor.h.

References BmnSsdElement::fAddress, BmnSsdAddress::GetElementId(), and kSsdSensor.

Referenced by BmnSsdSensorDssd::RegisterCharge().

◆ Init()

virtual Bool_t BmnSsdSensor::Init ( )
inlinevirtual

Initialise the sensor, if needed.

Returns
kTRUE is successfully initialised

The implementation depends on the concrete sensor class.

Reimplemented in BmnSsdSensorDssdStereo.

Definition at line 128 of file BmnSsdSensor.h.

Referenced by BmnSsdSetup::AssignSensor().

◆ operator=()

BmnSsdSensor & BmnSsdSensor::operator= ( const BmnSsdSensor )
protecteddelete

◆ ProcessPoint()

Int_t BmnSsdSensor::ProcessPoint ( const BmnSsdPoint point,
Double_t  eventTime = 0.,
BmnLink link = NULL 
)

Process one MC Point

Parameters
pointPointer to BmnSsdPoint object
Returns
Status variable, depends on sensor type

The point coordinates are converted into the internal coordinate system. The appropriate analogue response is then calculated with the pure virtual method CalculateResponse.

Definition at line 156 of file BmnSsdSensor.cxx.

References CalculateResponse(), fCurrentLink, BmnSsdElement::fNode, BmnSsdPoint::GetPid(), BmnSsdPoint::GetPxOut(), BmnSsdPoint::GetPyOut(), BmnSsdPoint::GetPzOut(), BmnSsdPoint::GetXIn(), BmnSsdPoint::GetXOut(), BmnSsdPoint::GetYIn(), BmnSsdPoint::GetYOut(), BmnSsdPoint::GetZIn(), BmnSsdPoint::GetZOut(), BmnSsdPoint::IsEntry(), and BmnSsdPoint::IsExit().

◆ SetAddress()

void BmnSsdSensor::SetAddress ( Int_t  address)
inline

Set sensor address.

Parameters
addressSSD element address

Definition at line 151 of file BmnSsdSensor.h.

References BmnSsdElement::ConstructName(), BmnSsdElement::fAddress, and kSsdSensor.

Referenced by BmnSsdSetup::DefaultSensor().

◆ SetConditions()

void BmnSsdSensor::SetConditions ( Double_t  vFD,
Double_t  vBias,
Double_t  temperature,
Double_t  cCoupling,
Double_t  cInterstrip,
Double_t  bX,
Double_t  bY,
Double_t  bZ 
)
inline

Set the sensor conditions

Parameters
vFDFull depletion voltage [V]
vBiasBias voltage [V]
temperatureTemperature [K]
cCouplingCoupling capacitance [pF]
cInterstripInter-strip capacitance [pF]
bXMagn. field Bx at sensor centre [T]
bYMagn. field By at sensor centre [T]
bZMagn. field Bz at sensor centre [T]

Definition at line 167 of file BmnSsdSensor.h.

References fConditions.

Referenced by BmnSsdSetup::SetSensorConditions().

◆ SetNode()

void BmnSsdSensor::SetNode ( TGeoPhysicalNode *  node)
inline

Set the physical node.

Parameters
nodePointer to associated TGeoPhysicalNode object

Definition at line 179 of file BmnSsdSensor.h.

References BmnSsdElement::fNode.

Referenced by BmnSsdSetup::AssignSensor(), and BmnSsdSetup::DefaultSensor().

◆ ToString()

virtual std::string BmnSsdSensor::ToString ( ) const
pure virtual

String output

Implemented in BmnSsdSensorDssdStereo, and BmnSsdSensorDssd.

Referenced by BmnSsdSetup::AssignSensor().

Member Data Documentation

◆ fConditions

BmnSsdSensorConditions* BmnSsdSensor::fConditions
protected

Operating conditions.

Definition at line 188 of file BmnSsdSensor.h.

Referenced by GetConditions(), SetConditions(), and BmnSsdSensorDssdStereo::ToString().

◆ fCurrentLink

BmnLink* BmnSsdSensor::fCurrentLink
protected

Link to currently processed MCPoint.

Definition at line 189 of file BmnSsdSensor.h.

Referenced by GetCurrentLink(), and ProcessPoint().

◆ fEvent

BmnEvent* BmnSsdSensor::fEvent
protected

Definition at line 191 of file BmnSsdSensor.h.

Referenced by CreateHit(), BmnSsdSensorDssd::FindHits(), and FindHits().

◆ fHits

TClonesArray* BmnSsdSensor::fHits
protected

Output array for hits. Used in hit finding.

Definition at line 190 of file BmnSsdSensor.h.

Referenced by CreateHit(), BmnSsdSensorDssd::FindHits(), and FindHits().


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