BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
CbmStsRadTool Class Reference

Tool class to calculate the non-ionising radiation damage on the STS silicon. More...

#include <CbmStsRadTool.h>

Inheritance diagram for CbmStsRadTool:
Collaboration diagram for CbmStsRadTool:

Public Member Functions

 CbmStsRadTool ()
 Constructor.
virtual ~CbmStsRadTool ()
 Destructor.
Double_t GetLeakageCurrent (Double_t fluence, Double_t volume, Double_t temperature)
 Get leakage current.
Double_t GetNiel (Int_t type, Double_t energy)
 Get NIEL factor.
Double_t GetVfd (Double_t fluence, Double_t d)
 Get full depletion voltage.
 CbmStsRadTool ()
 Constructor.
virtual ~CbmStsRadTool ()
 Destructor.
Double_t GetLeakageCurrent (Double_t fluence, Double_t volume, Double_t temperature)
 Get leakage current.
Double_t GetNiel (Int_t type, Double_t energy)
 Get NIEL factor.
Double_t GetVfd (Double_t fluence, Double_t d)
 Get full depletion voltage.
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 Clear (Option_t *="")
virtual TObject * Clone (const char *newname="") const
virtual Int_t Compare (const TObject *obj) const
virtual void Copy (TObject &object) 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 const char * GetName () const
virtual char * GetObjectInfo (Int_t px, Int_t py) const
virtual Option_t * GetOption () const
virtual const char * GetTitle () const
virtual UInt_t GetUniqueID () const
virtual Bool_t HandleTimer (TTimer *timer)
virtual ULong_t Hash () const
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)
virtual TClass * IsA () const
Bool_t IsDestructed () const
virtual Bool_t IsEqual (const TObject *obj) const
virtual Bool_t IsFolder () const
R__ALWAYS_INLINE Bool_t IsOnHeap () const
virtual Bool_t IsSortable () const
R__ALWAYS_INLINE Bool_t IsZombie () const
virtual void ls (Option_t *option="") 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 void Print (Option_t *option="") const
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)
virtual void Streamer (TBuffer &)
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

void Init ()
 Initialisation.
void ReadData (const char *file, map< Double_t, Double_t > &map)
 Read data from file.
void Init ()
 Initialisation.
void ReadData (const char *file, map< Double_t, Double_t > &map)
 Read data from file.

Private Attributes

map< Double_t, Double_t > niel_neutron
 Tables of NIEL factors as fnct.
map< Double_t, Double_t > niel_proton
map< Double_t, Double_t > niel_pion
map< Double_t, Double_t > niel_electron
Double_t fIAlpha
 Proportionality constant of leakage current and fluence.
Double_t fEGap0
 Constants for temperature dependence of leakage current.
Double_t fEGapAlpha
Double_t fEGapBeta
Double_t fNeff0
 Constants for effective doping concentration as function of fluence.
Double_t fNeffC
Double_t fNeffGc
Double_t fEpsilon
 Permittivity of Silicon.

Additional Inherited Members

Public Types inherited from TObject
enum  EDeprecatedStatusBits
enum  EStatusBits
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 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 TObject
 kOnlyPrepStep

Detailed Description

Author
Volker Friese v.fri.nosp@m.ese@.nosp@m.gsi.d.nosp@m.e
Date
6 December 2011

This class provides some functionality to calculate the effects of non-ionising irradiation on Silicon.

While the calculation of the NIEL factor is independent of the type of silicon used, those of leakage current and full depletion voltage depend on the specific silicon properties (effective doping concentration 9 x 10^11 cm^-3).

Definition at line 29 of file CbmStsRadTool.h.

Constructor & Destructor Documentation

◆ CbmStsRadTool() [1/2]

CbmStsRadTool::CbmStsRadTool ( )

Definition at line 15 of file CbmStsRadTool.cxx.

References TObject::TObject(), fEGap0, fEGapAlpha, fEGapBeta, fEpsilon, fIAlpha, fNeff0, fNeffC, fNeffGc, Init(), niel_electron, niel_neutron, niel_pion, and niel_proton.

Referenced by ReadData().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~CbmStsRadTool() [1/2]

CbmStsRadTool::~CbmStsRadTool ( )
virtual

Definition at line 35 of file CbmStsRadTool.cxx.

◆ CbmStsRadTool() [2/2]

CbmStsRadTool::CbmStsRadTool ( )

◆ ~CbmStsRadTool() [2/2]

virtual CbmStsRadTool::~CbmStsRadTool ( )
virtual

Member Function Documentation

◆ GetLeakageCurrent() [1/2]

Double_t CbmStsRadTool::GetLeakageCurrent ( Double_t fluence,
Double_t volume,
Double_t temperature )
Parameters
[in]fluenceFluence [neq/cm^2]
[in]volumeVolume [cm^3]
[in]temperatureTemperature [K]
Returns
Leakage current [A]

Calculates the leakage current in Silicon as function of irradiation fluence, volume and temperature.

Formulae provided by S. Chatterji.

Definition at line 39 of file CbmStsRadTool.cxx.

References TMath::Exp(), fEGap0, fEGapAlpha, fEGapBeta, fIAlpha, TMath::K(), and TMath::Qe().

Here is the call graph for this function:

◆ GetLeakageCurrent() [2/2]

Double_t CbmStsRadTool::GetLeakageCurrent ( Double_t fluence,
Double_t volume,
Double_t temperature )
Parameters
[in]fluenceFluence [neq/cm^2]
[in]volumeVolume [cm^3]
[in]temperatureTemperature [K]
Returns
Leakage current [A]

Calculates the leakage current in Silicon as function of irradiation fluence, volume and temperature.

Formulae provided by S. Chatterji.

◆ GetNiel() [1/2]

Double_t CbmStsRadTool::GetNiel ( Int_t type,
Double_t energy )
Parameters
typeParticle Id (PDG code)
energyEnergy in GeV
Returns
NIEL factor

Calculates the NIEL factor for a given particle type and energy from interpolation of the values tabulated in http://sesam.desy.de/members/gunnar/Si-dfuncs.htm

Will return 0 for particle types other than proton, neutron, pion or electron, or if the energy is below the lowest tabulated value. Will return an asymptotic value if the energy is above the highest tabulated value.

Definition at line 60 of file CbmStsRadTool.cxx.

References TMath::Abs(), niel_electron, niel_neutron, niel_pion, niel_proton, and v.

Here is the call graph for this function:

◆ GetNiel() [2/2]

Double_t CbmStsRadTool::GetNiel ( Int_t type,
Double_t energy )
Parameters
typeParticle Id (PDG code)
energyEnergy in GeV
Returns
NIEL factor

Calculates the NIEL factor for a given particle type and energy from interpolation of the values tabulated in http://sesam.desy.de/members/gunnar/Si-dfuncs.htm

Will return 0 for particle types other than proton, neutron, pion or electron, or if the energy is below the lowest tabulated value. Will return an asymptotic value if the energy is above the highest tabulated value.

◆ GetVfd() [1/2]

Double_t CbmStsRadTool::GetVfd ( Double_t fluence,
Double_t d )
Parameters
fluenceFluence [neq/cm^2]
dThickness [cm]
Returns
Full depletion voltage [V]

Calculates the full depletion voltage of Silicon as function of non-ionising dose and thickness.

Formulae and values provided by S. Chatterji.

Definition at line 136 of file CbmStsRadTool.cxx.

References d, TMath::Exp(), fEpsilon, fNeff0, fNeffC, fNeffGc, and TMath::Qe().

Here is the call graph for this function:

◆ GetVfd() [2/2]

Double_t CbmStsRadTool::GetVfd ( Double_t fluence,
Double_t d )
Parameters
fluenceFluence [neq/cm^2]
dThickness [cm]
Returns
Full depletion voltage [V]

Calculates the full depletion voltage of Silicon as function of non-ionising dose and thickness.

Formulae and values provided by S. Chatterji.

References d, fEGap0, fEGapAlpha, fEGapBeta, fEpsilon, fIAlpha, fNeff0, fNeffC, fNeffGc, niel_electron, niel_neutron, niel_pion, and niel_proton.

◆ Init() [1/2]

void CbmStsRadTool::Init ( )
private

Reads in tabulated NIEL factors from file and sets proper constants for Silicon.

Definition at line 152 of file CbmStsRadTool.cxx.

References fEGap0, fEGapAlpha, fEGapBeta, fEpsilon, fIAlpha, fNeff0, fNeffC, fNeffGc, niel_electron, niel_neutron, niel_pion, niel_proton, and ReadData().

Referenced by CbmStsRadTool().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Init() [2/2]

void CbmStsRadTool::Init ( )
private

Reads in tabulated NIEL factors from file and sets proper constants for Silicon.

◆ ReadData() [1/2]

void CbmStsRadTool::ReadData ( const char * file,
map< Double_t, Double_t > & map )
private
Parameters
fileFile name (in directory input)
mapMap to be filled

Definition at line 186 of file CbmStsRadTool.cxx.

References TString::Data(), TObject::Fatal(), and v.

Referenced by Init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadData() [2/2]

void CbmStsRadTool::ReadData ( const char * file,
map< Double_t, Double_t > & map )
private
Parameters
fileFile name (in directory input)
mapMap to be filled

References CbmStsRadTool().

Here is the call graph for this function:

Member Data Documentation

◆ fEGap0

Double_t CbmStsRadTool::fEGap0
private

Definition at line 91 of file CbmStsRadTool.h.

Referenced by CbmStsRadTool(), GetLeakageCurrent(), GetVfd(), and Init().

◆ fEGapAlpha

Double_t CbmStsRadTool::fEGapAlpha
private

Definition at line 92 of file CbmStsRadTool.h.

Referenced by CbmStsRadTool(), GetLeakageCurrent(), GetVfd(), and Init().

◆ fEGapBeta

Double_t CbmStsRadTool::fEGapBeta
private

Definition at line 93 of file CbmStsRadTool.h.

Referenced by CbmStsRadTool(), GetLeakageCurrent(), GetVfd(), and Init().

◆ fEpsilon

Double_t CbmStsRadTool::fEpsilon
private

Definition at line 103 of file CbmStsRadTool.h.

Referenced by CbmStsRadTool(), GetVfd(), and Init().

◆ fIAlpha

Double_t CbmStsRadTool::fIAlpha
private

Definition at line 88 of file CbmStsRadTool.h.

Referenced by CbmStsRadTool(), GetLeakageCurrent(), GetVfd(), and Init().

◆ fNeff0

Double_t CbmStsRadTool::fNeff0
private

Definition at line 98 of file CbmStsRadTool.h.

Referenced by CbmStsRadTool(), GetVfd(), and Init().

◆ fNeffC

Double_t CbmStsRadTool::fNeffC
private

Definition at line 99 of file CbmStsRadTool.h.

Referenced by CbmStsRadTool(), GetVfd(), and Init().

◆ fNeffGc

Double_t CbmStsRadTool::fNeffGc
private

Definition at line 100 of file CbmStsRadTool.h.

Referenced by CbmStsRadTool(), GetVfd(), and Init().

◆ niel_electron

map< Double_t, Double_t > CbmStsRadTool::niel_electron
private

Definition at line 85 of file CbmStsRadTool.h.

Referenced by CbmStsRadTool(), GetNiel(), GetVfd(), and Init().

◆ niel_neutron

map< Double_t, Double_t > CbmStsRadTool::niel_neutron
private

of energy

Definition at line 82 of file CbmStsRadTool.h.

Referenced by CbmStsRadTool(), GetNiel(), GetVfd(), and Init().

◆ niel_pion

map< Double_t, Double_t > CbmStsRadTool::niel_pion
private

Definition at line 84 of file CbmStsRadTool.h.

Referenced by CbmStsRadTool(), GetNiel(), GetVfd(), and Init().

◆ niel_proton

map< Double_t, Double_t > CbmStsRadTool::niel_proton
private

Definition at line 83 of file CbmStsRadTool.h.

Referenced by CbmStsRadTool(), GetNiel(), GetVfd(), and Init().


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