|
BmnRoot
|
Class representing an instance of a sensor in the BMN-SSD. More...
#include <BmnSsdSensor.h>
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 BmnSsdSensorConditions * | GetConditions () const |
| BmnLink * | GetCurrentLink () const |
| BmnSsdModule * | GetModule () 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 |
| BmnSsdElement * | GetDaughter (Int_t index) const |
| Int_t | GetIndex () const |
| ESsdElementLevel | GetLevel () const |
| BmnSsdElement * | GetMother () 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 | |
| BmnSsdSensor & | operator= (const BmnSsdSensor &)=delete |
| ClassDef (BmnSsdSensor, 2) | |
Protected Member Functions inherited from BmnSsdElement | |
| void | ConstructName () |
| void | SetLevel (Int_t level) |
Protected Attributes | |
| BmnSsdSensorConditions * | fConditions |
| Operating conditions. | |
| BmnLink * | fCurrentLink |
| Link to currently processed MCPoint. | |
| TClonesArray * | fHits |
| Output array for hits. Used in hit finding. | |
| BmnEvent * | fEvent |
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. | |
| BmnSsdElement * | fMother |
| Mother element. | |
Class representing an instance of a sensor in the BMN-SSD.
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.
| BmnSsdSensor::BmnSsdSensor | ( | UInt_t | address = 0, |
| TGeoPhysicalNode * | node = nullptr, |
||
| BmnSsdElement * | mother = nullptr |
||
| ) |
Constructor
| address | Unique element address |
| node | Pointer to geometry node |
| mother | Pointer to mother element (module) |
Definition at line 41 of file BmnSsdSensor.cxx.
|
inlinevirtual |
Destructor
Definition at line 62 of file BmnSsdSensor.h.
|
protecteddelete |
Prevent usage of copy constructor and assignment operator
|
protectedpure virtual |
///< Pointer to current event
Perform response simulation for one MC Point
| point | Pointer to BmnSsdSensorPoint with relevant parameters |
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().
|
protected |
| 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
| xLocal | hit x coordinate in sensor system [cm] |
| yLocal | hit y coordinate in sensor system [cm] |
| varX | Variance in x [cm^2] |
| varY | Variance in y [cm^2] |
| varXY | Covariance of x and y [cm^2] |
| clusterF | pointer to front side cluster |
| clusterB | pointer to back side cluster |
| du | Error in u coordinate (across strips front side) [cm] |
| dv | Error 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().
|
pure virtual |
Find hits in sensor
| clusters | Vector of clusters |
| hitArray | TClonesArray to store the hits in |
| event | Pointer to current event for registering of hits |
| dTime | Max. time difference of clusters in a hit |
Implemented in BmnSsdSensorDssd.
Definition at line 117 of file BmnSsdSensor.cxx.
Referenced by BmnSsdModule::FindHits().
|
static |
Get the address from the sensor name (static)
| name | Name of sensor @value Unique element address |
Definition at line 133 of file BmnSsdSensor.cxx.
References BmnSsdAddress::GetAddress().
Referenced by BmnSsdSetup::SetSensorConditions().
|
inline |
Sensor conditions
Definition at line 104 of file BmnSsdSensor.h.
References fConditions.
Referenced by BmnSsdSensorDssd::CalculateResponse(), BmnSsdSensorDssd::GetClusterPosition(), BmnSsdSensorDssd::LorentzShift(), BmnSsdSensorDssdStereo::PropagateCharge(), and BmnSsdSetup::SetSensorConditions().
|
inline |
Current link object
Definition at line 110 of file BmnSsdSensor.h.
References fCurrentLink.
Referenced by BmnSsdSensorDssd::RegisterCharge().
| 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().
|
inline |
Get physical node
Definition at line 120 of file BmnSsdSensor.h.
References BmnSsdElement::fNode.
Referenced by BmnSsdStation::Init(), and BmnSsdSetup::SetSensorConditions().
|
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().
|
inlinevirtual |
Initialise the sensor, if needed.
The implementation depends on the concrete sensor class.
Reimplemented in BmnSsdSensorDssdStereo.
Definition at line 128 of file BmnSsdSensor.h.
Referenced by BmnSsdSetup::AssignSensor().
|
protecteddelete |
| Int_t BmnSsdSensor::ProcessPoint | ( | const BmnSsdPoint * | point, |
| Double_t | eventTime = 0., |
||
| BmnLink * | link = NULL |
||
| ) |
Process one MC Point
| point | Pointer to BmnSsdPoint object |
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().
|
inline |
Set sensor address.
| address | SSD element address |
Definition at line 151 of file BmnSsdSensor.h.
References BmnSsdElement::ConstructName(), BmnSsdElement::fAddress, and kSsdSensor.
Referenced by BmnSsdSetup::DefaultSensor().
|
inline |
Set the sensor conditions
| vFD | Full depletion voltage [V] |
| vBias | Bias voltage [V] |
| temperature | Temperature [K] |
| cCoupling | Coupling capacitance [pF] |
| cInterstrip | Inter-strip capacitance [pF] |
| bX | Magn. field Bx at sensor centre [T] |
| bY | Magn. field By at sensor centre [T] |
| bZ | Magn. field Bz at sensor centre [T] |
Definition at line 167 of file BmnSsdSensor.h.
References fConditions.
Referenced by BmnSsdSetup::SetSensorConditions().
|
inline |
Set the physical node.
| node | Pointer to associated TGeoPhysicalNode object |
Definition at line 179 of file BmnSsdSensor.h.
References BmnSsdElement::fNode.
Referenced by BmnSsdSetup::AssignSensor(), and BmnSsdSetup::DefaultSensor().
|
pure virtual |
String output
Implemented in BmnSsdSensorDssdStereo, and BmnSsdSensorDssd.
Referenced by BmnSsdSetup::AssignSensor().
|
protected |
Operating conditions.
Definition at line 188 of file BmnSsdSensor.h.
Referenced by GetConditions(), SetConditions(), and BmnSsdSensorDssdStereo::ToString().
|
protected |
Link to currently processed MCPoint.
Definition at line 189 of file BmnSsdSensor.h.
Referenced by GetCurrentLink(), and ProcessPoint().
|
protected |
Definition at line 191 of file BmnSsdSensor.h.
Referenced by CreateHit(), BmnSsdSensorDssd::FindHits(), and FindHits().
|
protected |
Output array for hits. Used in hit finding.
Definition at line 190 of file BmnSsdSensor.h.
Referenced by CreateHit(), BmnSsdSensorDssd::FindHits(), and FindHits().