|
BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
|
Class describing double-sided silicon strip sensors. More...
#include <CbmStsSensorTypeDssd.h>
Public Member Functions | |
| CbmStsSensorTypeDssd () | |
| Constructor. | |
| virtual | ~CbmStsSensorTypeDssd () |
| Destructor. | |
| virtual void | Print (Option_t *opt="") const |
| Print parameters. | |
| virtual void | ProcessPoint (CbmStsSensorPoint *point, const CbmStsSenzor *sensor) const |
| Process a point. | |
| void | SetParameters (Double_t dx, Double_t dy, Double_t dz, Int_t nStripsF, Int_t nStripsB, Double_t stereoF, Double_t stereoB) |
| Set the parameters. | |
| Public Member Functions inherited from CbmStsSensorType | |
| CbmStsSensorType () | |
| Constructor. | |
| virtual | ~CbmStsSensorType () |
| Destructor. | |
| Int_t | GetTypeId () const |
| Type identifier. | |
| Public Member Functions inherited from TNamed | |
| TNamed () | |
| TNamed (const char *name, const char *title) | |
| TNamed (const TNamed &named) | |
| TNamed (const TString &name, const TString &title) | |
| virtual | ~TNamed () |
| void | Clear (Option_t *option="") override |
| TObject * | Clone (const char *newname="") const override |
| Int_t | Compare (const TObject *obj) const override |
| void | Copy (TObject &named) const override |
| virtual void | FillBuffer (char *&buffer) |
| const char * | GetName () const override |
| const char * | GetTitle () const override |
| ULong_t | Hash () const override |
| TClass * | IsA () const override |
| Bool_t | IsSortable () const override |
| void | ls (Option_t *option="") const override |
| TNamed & | operator= (const TNamed &rhs) |
| void | Print (Option_t *option="") const override |
| virtual void | SetName (const char *name) |
| virtual void | SetNameTitle (const char *name, const char *title) |
| virtual void | SetTitle (const char *title="") |
| virtual Int_t | Sizeof () const |
| void | Streamer (TBuffer &) override |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
| Public Member Functions inherited from TObject | |
| TObject () | |
| TObject (const TObject &object) | |
| virtual | ~TObject () |
| void | AbstractMethod (const char *method) const |
| virtual void | AppendPad (Option_t *option="") |
| virtual void | Browse (TBrowser *b) |
| ULong_t | CheckedHash () |
| virtual const char * | ClassName () const |
| virtual void | Delete (Option_t *option="") |
| virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
| virtual void | Draw (Option_t *option="") |
| virtual void | DrawClass () const |
| virtual TObject * | DrawClone (Option_t *option="") const |
| virtual void | Dump () const |
| virtual void | Error (const char *method, const char *msgfmt,...) const |
| virtual void | Execute (const char *method, const char *params, Int_t *error=nullptr) |
| virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr) |
| virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
| virtual void | Fatal (const char *method, const char *msgfmt,...) const |
| virtual TObject * | FindObject (const char *name) const |
| virtual TObject * | FindObject (const TObject *obj) const |
| virtual Option_t * | GetDrawOption () const |
| virtual const char * | GetIconName () const |
| virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
| virtual Option_t * | GetOption () const |
| virtual UInt_t | GetUniqueID () const |
| virtual Bool_t | HandleTimer (TTimer *timer) |
| Bool_t | HasInconsistentHash () const |
| virtual void | Info (const char *method, const char *msgfmt,...) const |
| virtual Bool_t | InheritsFrom (const char *classname) const |
| virtual Bool_t | InheritsFrom (const TClass *cl) const |
| virtual void | Inspect () const |
| void | InvertBit (UInt_t f) |
| Bool_t | IsDestructed () const |
| virtual Bool_t | IsEqual (const TObject *obj) const |
| virtual Bool_t | IsFolder () const |
| R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
| R__ALWAYS_INLINE Bool_t | IsZombie () const |
| void | MayNotUse (const char *method) const |
| virtual Bool_t | Notify () |
| void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
| void | operator delete (void *ptr) |
| void | operator delete (void *ptr, void *vp) |
| void | operator delete[] (void *ptr) |
| void | operator delete[] (void *ptr, void *vp) |
| void * | operator new (size_t sz) |
| void * | operator new (size_t sz, void *vp) |
| void * | operator new[] (size_t sz) |
| void * | operator new[] (size_t sz, void *vp) |
| TObject & | operator= (const TObject &rhs) |
| virtual void | Paint (Option_t *option="") |
| virtual void | Pop () |
| virtual Int_t | Read (const char *name) |
| virtual void | RecursiveRemove (TObject *obj) |
| void | ResetBit (UInt_t f) |
| virtual void | SaveAs (const char *filename="", Option_t *option="") const |
| virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
| void | SetBit (UInt_t f) |
| void | SetBit (UInt_t f, Bool_t set) |
| virtual void | SetDrawOption (Option_t *option="") |
| virtual void | SetUniqueID (UInt_t uid) |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
| virtual void | SysError (const char *method, const char *msgfmt,...) const |
| R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
| Int_t | TestBits (UInt_t f) const |
| virtual void | UseCurrentStyle () |
| virtual void | Warning (const char *method, const char *msgfmt,...) const |
| virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) |
| virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const |
Private Member Functions | |
| Int_t | GetModuleChannel (Int_t strip, Int_t side, Int_t sensorId) const |
| Shift in number of strips from bottom to top. | |
| void | GetStrip (Int_t channel, Int_t sensorId, Int_t &strip, Int_t &side) |
| Get strip and side from module channel. | |
| void | ProduceCharge (CbmStsSensorPoint *point, Int_t side, const CbmStsSenzor *sensor) const |
| Produce charge on front or back side from a CbmStsPoint. | |
| void | RegisterCharge (const CbmStsSenzor *sensor, Int_t side, Int_t strip, Double_t charge, Double_t time) const |
| Register produced charge in one strip. | |
| Bool_t | SelfTest () |
| Test the consistent implementation of GetModuleChannel and GetStrip. | |
Private Attributes | |
| Double_t | fDx |
| Dimension of active area in x [cm]. | |
| Double_t | fDy |
| Dimension of active area in y [cm]. | |
| Double_t | fDz |
| Thickness in z [cm]. | |
| Int_t | fNofStrips [2] |
| Number of strips on front/back side. | |
| Double_t | fStereo [2] |
| Stereo angle front/back side [degrees]. | |
| Bool_t | fIsSet |
| Flag whether parameters are set. | |
| Double_t | fPitch [2] |
| Temporary variables to avoid frequent calculations. | |
| Double_t | fCosStereo [2] |
| Strip pitch front/back side [cm]. | |
| Double_t | fSinStereo [2] |
| cos of stereo angle front/back side | |
| Int_t | fStripShift [2] |
| sin if stereo angle front/back side | |
Additional Inherited Members | |
| Public Types inherited from TObject | |
| enum | EDeprecatedStatusBits |
| enum | EStatusBits |
| Static Public Member Functions inherited from TNamed | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static const char * | DeclFileName () |
| Static Public Member Functions inherited from TObject | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static const char * | DeclFileName () |
| static Longptr_t | GetDtorOnly () |
| static Bool_t | GetObjectStat () |
| static void | SetDtorOnly (void *obj) |
| static void | SetObjectStat (Bool_t stat) |
| Public Attributes inherited from TObject | |
| kIsOnHeap | |
| kNotDeleted | |
| kZombie | |
| kInconsistent | |
| kBitMask | |
| kSingleKey | |
| kOverwrite | |
| kWriteDelete | |
| kObjInCanvas | |
| kCanDelete | |
| kMustCleanup | |
| kIsReferenced | |
| kHasUUID | |
| kCannotPick | |
| kNoContextMenu | |
| kInvalidObject | |
| Protected Member Functions inherited from TNamed | |
| void | SavePrimitiveNameTitle (std::ostream &out, const char *variable_name) |
| Protected Member Functions inherited from TObject | |
| virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
| void | MakeZombie () |
| Static Protected Member Functions inherited from TObject | |
| static void | SavePrimitiveConstructor (std::ostream &out, TClass *cl, const char *variable_name, const char *constructor_agrs="", Bool_t empty_line=kTRUE) |
| static void | SavePrimitiveDraw (std::ostream &out, const char *variable_name, Option_t *option=nullptr) |
| static TString | SavePrimitiveVector (std::ostream &out, const char *prefix, Int_t len, Double_t *arr, Bool_t empty_line=kFALSE) |
| Protected Attributes inherited from TNamed | |
| TString | fName |
| TString | fTitle |
| Protected Attributes inherited from TObject | |
| kOnlyPrepStep | |
This class describes the response of double-sided silicon strip sensors in the STS. Its free parameters are the dimensions of the active area, the number of strips at the top (readout) edge and the stereo angles on front and back side.
The active area does not necessarily coincide with the geometric dimensions of the sensor. It is, however, centred in the latter, meaning that the width of inactive regions (guard ring) are the same on the left and on the right side and also the same at the top and and the bottom.
The stereo angle is defined with respect to the y (vertical) axis. Readout is performed at the top edge of the sensor. In case of finite stereo angle, the corner strips not reaching the top edge are connected horizontally to the corresponding strip in the other corner.
The response to charged particles is modelled by a uniform charge distribution along the particle trajectory in the active volume, which is projected to the readout edge, where it is discretised on the active strips. The charge is then delivered to the corresponding channel of the readout module (CbmStsModule).
The mapping of strip number and module channel is trivial in the case of just one sensor per module. In case of several daisy-chained sensors, the top-edge strip is vertically connected vertically to the corresponding strip on the bottom edge of the sensor above. This results in an offset of strip number to channel number which depends on the position of the' sensor in the daisy chain. The behaviour is implemented in the methods GetStrip and GetModuleChannel.
Definition at line 47 of file CbmStsSensorTypeDssd.h.
| CbmStsSensorTypeDssd::CbmStsSensorTypeDssd | ( | ) |
Definition at line 23 of file CbmStsSensorTypeDssd.cxx.
References CbmStsSensorType::CbmStsSensorType(), fCosStereo, fDx, fDy, fDz, fIsSet, fNofStrips, fPitch, fSinStereo, fStereo, and fStripShift.
|
inlinevirtual |
Definition at line 55 of file CbmStsSensorTypeDssd.h.
|
private |
Get the readout channel in the module for a given strip and side
| strip | Strip number |
| side | Side (0 = front, 1 = back) |
| sensorId | Index of sensor within module |
Definition at line 39 of file CbmStsSensorTypeDssd.cxx.
References fNofStrips, and fStripShift.
Referenced by RegisterCharge(), and SelfTest().
|
private |
| [in] | channel | Channel number in module |
| [in] | sensorId | Sensor index in module |
| [out] | strip | Strip number in sensor |
| [out] | side | Sensor side [0 = front, 1 = back] |
Definition at line 66 of file CbmStsSensorTypeDssd.cxx.
References fNofStrips, and fStripShift.
Referenced by SelfTest().
|
virtual |
Reimplemented from TObject.
Definition at line 97 of file CbmStsSensorTypeDssd.cxx.
References fDx, fDy, fDz, fNofStrips, fPitch, fStereo, and TNamed::GetName().
|
virtual |
Implements CbmStsSensorType.
Definition at line 110 of file CbmStsSensorTypeDssd.cxx.
References fIsSet, TNamed::fName, and ProduceCharge().
|
private |
| side | 0 = front, 1 = back side |
Definition at line 125 of file CbmStsSensorTypeDssd.cxx.
References fCosStereo, fDx, fDy, fIsSet, TMath::FloorNint(), TNamed::fName, fNofStrips, fPitch, fSinStereo, CbmStsSensorPoint::GetELoss(), CbmStsSensorPoint::GetTime(), CbmStsSensorPoint::GetX1(), CbmStsSensorPoint::GetX2(), CbmStsSensorPoint::GetY1(), CbmStsSensorPoint::GetY2(), kPairEnergy, TMath::Max(), TMath::Min(), and RegisterCharge().
Referenced by ProcessPoint().
|
private |
| side | 0 = front, 1 = back |
| strip | strip number |
| charge | charge in strip [e] |
| time | time of registration [ns] |
Definition at line 187 of file CbmStsSensorTypeDssd.cxx.
References CbmStsModule::AddSignal(), TNamed::fName, CbmStsSenzor::GetModule(), GetModuleChannel(), and CbmStsSenzor::GetSensorId().
Referenced by ProduceCharge().
|
private |
The latter should be the reverse of the former.
Definition at line 207 of file CbmStsSensorTypeDssd.cxx.
References TNamed::fName, fNofStrips, GetModuleChannel(), and GetStrip().
Referenced by SetParameters().
| void CbmStsSensorTypeDssd::SetParameters | ( | Double_t | dx, |
| Double_t | dy, | ||
| Double_t | dz, | ||
| Int_t | nStripsF, | ||
| Int_t | nStripsB, | ||
| Double_t | stereoF, | ||
| Double_t | stereoB ) |
| dx,dy,dz | Size in x,y,z [cm] |
| nStripsF,nStripsB | Number of strips on front and back side |
| stereoF,stereoB | Strip stereo angle front and back side [degrees] |
Definition at line 232 of file CbmStsSensorTypeDssd.cxx.
References TMath::Abs(), TMath::Cos(), TMath::DegToRad(), fCosStereo, fDx, fDy, fDz, fIsSet, fNofStrips, fPitch, fSinStereo, fStereo, fStripShift, TMath::Nint(), SelfTest(), and TMath::Sin().
|
private |
Definition at line 86 of file CbmStsSensorTypeDssd.h.
Referenced by CbmStsSensorTypeDssd(), ProduceCharge(), and SetParameters().
|
private |
Definition at line 77 of file CbmStsSensorTypeDssd.h.
Referenced by CbmStsSensorTypeDssd(), Print(), ProduceCharge(), and SetParameters().
|
private |
Definition at line 78 of file CbmStsSensorTypeDssd.h.
Referenced by CbmStsSensorTypeDssd(), Print(), ProduceCharge(), and SetParameters().
|
private |
Definition at line 79 of file CbmStsSensorTypeDssd.h.
Referenced by CbmStsSensorTypeDssd(), Print(), and SetParameters().
|
private |
Definition at line 82 of file CbmStsSensorTypeDssd.h.
Referenced by CbmStsSensorTypeDssd(), ProcessPoint(), ProduceCharge(), and SetParameters().
|
private |
Definition at line 80 of file CbmStsSensorTypeDssd.h.
Referenced by CbmStsSensorTypeDssd(), GetModuleChannel(), GetStrip(), Print(), ProduceCharge(), SelfTest(), and SetParameters().
|
private |
Definition at line 85 of file CbmStsSensorTypeDssd.h.
Referenced by CbmStsSensorTypeDssd(), Print(), ProduceCharge(), and SetParameters().
|
private |
Definition at line 87 of file CbmStsSensorTypeDssd.h.
Referenced by CbmStsSensorTypeDssd(), ProduceCharge(), and SetParameters().
|
private |
Definition at line 81 of file CbmStsSensorTypeDssd.h.
Referenced by CbmStsSensorTypeDssd(), Print(), and SetParameters().
|
private |
Definition at line 88 of file CbmStsSensorTypeDssd.h.
Referenced by CbmStsSensorTypeDssd(), GetModuleChannel(), GetStrip(), and SetParameters().