KaliVeda  1.12/06
Heavy-Ion Analysis Toolkit
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes | Private Attributes | List of all members
KVMaterial Class Reference

Description of physical materials used to construct detectors; interface to range tables.

Definition at line 41 of file KVMaterial.h.

Public Types

enum  SolType { kEmax , kEmin }
 
- Public Types inherited from KVBase
enum  EKaliVedaBits { kIsKaliVedaObject = BIT(23) }
 
- Public Types inherited from TObject
enum  EDeprecatedStatusBits
 
enum  EStatusBits
 

Public Member Functions

 KVMaterial ()
 default ctor More...
 
 KVMaterial (const Char_t *gas, const Double_t thick, const Double_t pressure, const Double_t temperature=19.0)
 
 KVMaterial (const Char_t *type, const Double_t thick=0.0)
 Create material with given type and linear thickness in cm. More...
 
 KVMaterial (const KVMaterial &)
 Copy ctor. More...
 
 KVMaterial (Double_t area_density, const Char_t *type)
 Create material with given area density in g/cm**2 and given type. More...
 
virtual ~ KVMaterial ()
 
virtual void Clear (Option_t *opt="")
 Reset absorber - set energy lost by particles to zero. More...
 
virtual void Copy (TObject &obj) const
 Copy this to obj. More...
 
virtual void DetectParticle (KVNucleus *, TVector3 *norm=0)
 
virtual TGeoVolumeGetAbsGeoVolume () const
 
virtual KVMaterialGetActiveLayer () const
 
Double_t GetAreaDensity () const
 Return area density of material in g/cm**2. More...
 
virtual Double_t GetDeltaE (Int_t Z, Int_t A, Double_t Einc)
 
virtual Double_t GetDeltaEFromERes (Int_t Z, Int_t A, Double_t Eres)
 
Double_t GetDensity () const
 
Double_t GetEffectiveAreaDensity (TVector3 &norm, TVector3 &direction)
 
Double_t GetEffectiveThickness (TVector3 &norm, TVector3 &direction)
 
virtual Double_t GetEIncOfMaxDeltaE (Int_t Z, Int_t A)
 Incident energy for which the DE(E) curve has a maximum. More...
 
virtual Double_t GetELostByParticle (KVNucleus *, TVector3 *norm=0)
 
virtual Double_t GetEmaxValid (Int_t Z, Int_t A)
 
virtual Double_t GetEnergyLoss () const
 
virtual Double_t GetERes (Int_t Z, Int_t A, Double_t Einc)
 
virtual Double_t GetEResFromDeltaE (Int_t Z, Int_t A, Double_t dE=-1.0, enum SolType type=kEmax)
 
virtual TGeoMediumGetGeoMedium (const Char_t *="")
 
virtual Double_t GetIncidentEnergy (Int_t Z, Int_t A, Double_t delta_e=-1.0, enum SolType type=kEmax)
 
virtual Double_t GetIncidentEnergyFromERes (Int_t Z, Int_t A, Double_t Eres)
 Get incident energy from residual energy. More...
 
virtual Double_t GetLinearRange (Int_t Z, Int_t A, Double_t Einc)
 
Double_t GetMass () const
 Returns atomic mass of material. Will be isotopic mass if set. More...
 
virtual Double_t GetMaxDeltaE (Int_t Z, Int_t A)
 
virtual Double_t GetParticleEIncFromERes (KVNucleus *, TVector3 *norm=0)
 
virtual Double_t GetPressure () const
 
virtual Double_t GetPunchThroughEnergy (Int_t Z, Int_t A)
 
virtual Double_t GetRange (Int_t Z, Int_t A, Double_t Einc)
 
virtual Double_t GetTemperature () const
 
virtual Double_t GetThickness () const
 
Double_t GetZ () const
 Returns atomic number of material. More...
 
void init ()
 
Bool_t IsGas () const
 Returns kTRUE for gaseous materials/detectors. More...
 
Bool_t IsIsotopic () const
 
Bool_t IsNat () const
 
virtual void Print (Option_t *option="") const
 Show information on this material. More...
 
virtual void SetAbsGeoVolume (TGeoVolume *v)
 
void SetAreaDensity (Double_t dens)
 
virtual void SetEnergyLoss (Double_t e) const
 
void SetMass (Double_t a)
 
virtual void SetMaterial (const Char_t *type)
 
virtual void SetPressure (Double_t)
 
virtual void SetTemperature (Double_t)
 
virtual void SetThickness (Double_t thick)
 
- Public Member Functions inherited from KVBase
 KVBase ()
 Default constructor. More...
 
 KVBase (const Char_t *name, const Char_t *title="")
 Ctor for object with given name and type. More...
 
 KVBase (const KVBase &)
 copy ctor More...
 
virtual ~ KVBase ()
 
const Char_tGetLabel () const
 
UInt_t GetNumber () const
 
UInt_t GetNumberOfObjects () const
 
virtual TObjectGetObject () const
 
const Char_tGetType () const
 
Bool_t HasLabel () const
 
virtual Bool_t IsCalled (const Char_t *name) const
 
Bool_t IsLabelled (const Char_t *l) const
 
virtual Bool_t IsType (const Char_t *typ) const
 
virtual void List ()
 
KVBaseoperator= (const KVBase &)
 copy assignment operator More...
 
Double_t ProtectedGetX (const TF1 *func, Double_t val, int &status, Double_t xmin=0.0, Double_t xmax=0.0) const
 
void SetLabel (const Char_t *lab)
 
virtual void SetNumber (UInt_t num)
 
virtual void SetType (const Char_t *str)
 
- 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 ()
 
virtual TObjectClone (const char *newname="") const
 
virtual Int_t Compare (const TObject *obj) const
 
virtual void FillBuffer (char *&buffer)
 
virtual const char * GetName () const
 
virtual const char * GetTitle () const
 
virtual ULong_t Hash () const
 
virtual Bool_t IsSortable () const
 
virtual void ls (Option_t *option="") const
 
TNamedoperator= (const TNamed &rhs)
 
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
 
- 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 TObjectDrawClone (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=0)
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 
virtual TObjectFindObject (const char *name) const
 
virtual TObjectFindObject (const TObject *obj) const
 
virtual Option_tGetDrawOption () const
 
virtual const char * GetIconName () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 
virtual Option_tGetOption () 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)
 
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)
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (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)
 
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=0, Int_t option=0, Int_t bufsize=0)
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 

Static Public Member Functions

static KVIonRangeTableChangeRangeTable (const Char_t *name)
 
static KVIonRangeTableGetRangeTable ()
 
- Static Public Member Functions inherited from KVBase
static Bool_t AreEqual (Double_t x, Double_t y, Long64_t maxdif=1)
 Comparison between two 64-bit floating-point values. More...
 
static void BackupFileWithDate (const Char_t *path)
 
static void CombineFiles (const Char_t *file1, const Char_t *file2, const Char_t *newfilename, Bool_t keep=kTRUE)
 
static void Deprecated (const char *method, const char *advice)
 
static Bool_t FindClassSourceFiles (const Char_t *class_name, KVString &imp_file, KVString &dec_file, const Char_t *dir_name=".")
 
static Bool_t FindExecutable (TString &exec, const Char_t *path="$(PATH)")
 
static const Char_tFindFile (const Char_t *search, TString &wfil)
 
static const Char_tGetBINDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetDATABASEFilePath ()
 
static const Char_tGetDATADIRFilePath (const Char_t *namefile="")
 
static Bool_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval)
 
static const Char_tGetDataSetEnv (const Char_t *dataset, const Char_t *type, const Char_t *defval)
 
static Double_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Double_t defval)
 
static const Char_tGetETCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetExampleFilePath (const Char_t *library, const Char_t *namefile)
 Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) More...
 
static const Char_tGetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetKVBuildDate ()
 Returns KaliVeda build date. More...
 
static const Char_tGetKVBuildDir ()
 Returns top-level directory used for build. More...
 
static const Char_tGetKVBuildTime ()
 Returns KaliVeda build date. More...
 
static const Char_tGetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More...
 
static const Char_tGetKVBuildUser ()
 Returns username of person who performed build. More...
 
static const Char_tGetKVSourceDir ()
 Returns top-level directory of source tree used for build. More...
 
static const Char_tGetKVVersion ()
 Returns KaliVeda version string. More...
 
static const Char_tGetLIBDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetListOfPlugins (const Char_t *base)
 
static const Char_tGetListOfPluginURIs (const Char_t *base)
 
static const Char_tGetPluginURI (const Char_t *base, const Char_t *plugin)
 
static void GetTempFileName (TString &base)
 
static const Char_tGetTEMPLATEDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetWORKDIRFilePath (const Char_t *namefile="")
 
static const Char_tgitBranch ()
 Returns git branch of sources. More...
 
static const Char_tgitCommit ()
 Returns last git commit of sources. More...
 
static void InitEnvironment ()
 
static bool is_gnuinstall ()
 
static Bool_t IsThisAPlugin (const TString &uri, TString &base)
 
static TPluginHandlerLoadPlugin (const Char_t *base, const Char_t *uri="0")
 
static Bool_t OpenContextMenu (const char *method, TObject *obj, const char *alt_method_name="")
 
static void OpenTempFile (TString &base, std::ofstream &fp)
 
static void PrintSplashScreen ()
 Prints welcome message and infos on version etc. More...
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ifstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ofstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchKVFile (const Char_t *name, TString &fullpath, const Char_t *kvsubdir="")
 
static const Char_tWorkingDirectory ()
 
- Static Public Member Functions inherited from TObject
static Longptr_t GetDtorOnly ()
 
static Bool_t GetObjectStat ()
 
static void SetDtorOnly (void *obj)
 
static void SetObjectStat (Bool_t stat)
 

Protected Attributes

TGeoVolumefAbsorberVolume
 pointer to corresponding volume in ROOT geometry More...
 
- Protected Attributes inherited from KVBase
TString fLabel
 label for the object More...
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TObject
 kOnlyPrepStep
 

Static Protected Attributes

static KVIonRangeTablefIonRangeTable = 0x0
 pointer to class used to calculate charged particle ranges & energy losses More...
 

Private Attributes

Int_t fAmasr
 isotopic mass of element More...
 
Double_t fELoss
 total of energy lost by all particles traversing absorber More...
 
Double_t fPressure
 gas pressure in torr More...
 
Double_t fTemp
 gas temperature in degrees celsius More...
 
Double_t fThick
 area density of absorber in g/cm**2 More...
 

Additional Inherited Members

- Public Attributes inherited from TObject
 kBitMask
 
 kCanDelete
 
 kCannotPick
 
 kHasUUID
 
 kInconsistent
 
 kInvalidObject
 
 kIsOnHeap
 
 kIsReferenced
 
 kMustCleanup
 
 kNoContextMenu
 
 kNotDeleted
 
 kObjInCanvas
 
 kOverwrite
 
 kSingleKey
 
 kWriteDelete
 
 kZombie
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 
void MakeZombie ()
 

#include <KVMaterial.h>

Inheritance diagram for KVMaterial:
Inheritance graph
[legend]

Member Enumeration Documentation

◆ SolType

Enumerator
kEmax 
kEmin 

Definition at line 58 of file KVMaterial.h.

Constructor & Destructor Documentation

◆ KVMaterial() [1/5]

KVMaterial::KVMaterial ( )

default ctor

Definition at line 70 of file KVMaterial.cpp.

◆ KVMaterial() [2/5]

KVMaterial::KVMaterial ( const Char_t type,
const Double_t  thick = 0.0 
)

Create material with given type and linear thickness in cm.

Definition at line 81 of file KVMaterial.cpp.

◆ KVMaterial() [3/5]

KVMaterial::KVMaterial ( const Char_t gas,
const Double_t  thick,
const Double_t  pressure,
const Double_t  temperature = 19.0 
)

Create gaseous material with given type, linear thickness in cm, pressure in Torr, and temperature in degrees C (default value 19°C).

Examples 15 cm of CF4 gas at 1 atm and 19°C : KVMaterial("CF4", 15., 1.*KVUnits::atm) 50 mm of C3F8 at 30 mbar and 25°C : KVMaterial("C3F8", 50.*KVUnitsmm, 30.*KVUnits::mbar, 25.)

Definition at line 114 of file KVMaterial.cpp.

◆ KVMaterial() [4/5]

KVMaterial::KVMaterial ( Double_t  area_density,
const Char_t type 
)

Create material with given area density in g/cm**2 and given type.

Definition at line 95 of file KVMaterial.cpp.

◆ KVMaterial() [5/5]

KVMaterial::KVMaterial ( const KVMaterial obj)

Copy ctor.

Definition at line 136 of file KVMaterial.cpp.

◆ ~ KVMaterial()

virtual KVMaterial::~ KVMaterial ( )
virtual

Member Function Documentation

◆ ChangeRangeTable()

KVIonRangeTable * KVMaterial::ChangeRangeTable ( const Char_t name)
static

Static method Changes the default range table used for energy loss calculations The name must correspond to a Plugin defined for class KVIonRangeTable

Definition at line 170 of file KVMaterial.cpp.

◆ Clear()

void KVMaterial::Clear ( Option_t opt = "")
virtual

Reset absorber - set energy lost by particles to zero.

Reimplemented from KVBase.

Reimplemented in KVTarget, KVDetector, and KVFAZIADetector.

Definition at line 879 of file KVMaterial.cpp.

◆ Copy()

void KVMaterial::Copy ( TObject obj) const
virtual

Copy this to obj.

Reimplemented from KVBase.

Reimplemented in KVTarget, KVDetector, and KVFAZIADetector.

Definition at line 891 of file KVMaterial.cpp.

◆ DetectParticle()

void KVMaterial::DetectParticle ( KVNucleus kvp,
TVector3 norm = 0 
)
virtual

The energy loss of a charged particle traversing the absorber is calculated, and the particle is slowed down.

If the optional argument 'norm' is given, it is supposed to be a unit vector normal to the material, oriented from the origin towards the material. In this case the effective thickness of the material 'seen' by the particle depending on its direction of motion is used for the calculation. set flag to say that particle has been slowed down

Reimplemented in KVTarget, and KVDetector.

Definition at line 844 of file KVMaterial.cpp.

◆ GetAbsGeoVolume()

virtual TGeoVolume* KVMaterial::GetAbsGeoVolume ( ) const
inlinevirtual

Returns pointer to volume representing this absorber in the ROOT geometry.

Definition at line 146 of file KVMaterial.h.

◆ GetActiveLayer()

virtual KVMaterial* KVMaterial::GetActiveLayer ( ) const
inlinevirtual

to facilitate polymorphism with KVDetector class

Reimplemented in KVDetector.

Definition at line 124 of file KVMaterial.h.

◆ GetAreaDensity()

Double_t KVMaterial::GetAreaDensity ( ) const

Return area density of material in g/cm**2.

Definition at line 427 of file KVMaterial.cpp.

◆ GetDeltaE()

Double_t KVMaterial::GetDeltaE ( Int_t  Z,
Int_t  A,
Double_t  Einc 
)
virtual

Calculate energy loss in absorber for incident nucleus (Z,A) with kinetic energy Einc (MeV)

Reimplemented in KVDetector, and KVSilicon.

Definition at line 662 of file KVMaterial.cpp.

◆ GetDeltaEFromERes()

Double_t KVMaterial::GetDeltaEFromERes ( Int_t  Z,
Int_t  A,
Double_t  Eres 
)
virtual

Calculate energy loss in absorber for nucleus (Z,A) having a residual kinetic energy Eres (MeV) after the absorber

Reimplemented in KVDetector.

Definition at line 717 of file KVMaterial.cpp.

◆ GetDensity()

Double_t KVMaterial::GetDensity ( ) const

Returns density of material in g/cm**3. For a gas, density is calculated from current pressure & temperature according to ideal gas law

Definition at line 335 of file KVMaterial.cpp.

◆ GetEffectiveAreaDensity()

Double_t KVMaterial::GetEffectiveAreaDensity ( TVector3 norm,
TVector3 direction 
)

Calculate effective area density of absorber (in g/cm**2) as 'seen' in 'direction', taking into account the arbitrary orientation of the 'norm' normal to the material's surface

Definition at line 553 of file KVMaterial.cpp.

◆ GetEffectiveThickness()

Double_t KVMaterial::GetEffectiveThickness ( TVector3 norm,
TVector3 direction 
)

Calculate effective linear thickness of absorber (in cm) as 'seen' in 'direction', taking into account the arbitrary orientation of the 'norm' normal to the material's surface

Definition at line 533 of file KVMaterial.cpp.

◆ GetEIncOfMaxDeltaE()

Double_t KVMaterial::GetEIncOfMaxDeltaE ( Int_t  Z,
Int_t  A 
)
virtual

Incident energy for which the DE(E) curve has a maximum.

Reimplemented in KVDetector.

Definition at line 927 of file KVMaterial.cpp.

◆ GetELostByParticle()

Double_t KVMaterial::GetELostByParticle ( KVNucleus kvn,
TVector3 norm = 0 
)
virtual

Method to simulate passage of an ion through a given thickness of material. The energy loss of the particle (in MeV) in the material is returned by the method.

If the optional argument 'norm' is given, it is supposed to be a vector normal to the material, oriented from the origin towards the material. In this case the effective thickness of the material 'seen' by the particle depending on its direction of motion is used for the calculation.

Reimplemented in KVTarget, and KVDetector.

Definition at line 597 of file KVMaterial.cpp.

◆ GetEmaxValid()

Double_t KVMaterial::GetEmaxValid ( Int_t  Z,
Int_t  A 
)
virtual

Return maximum incident energy for which range tables are valid for this material and ion (Z,A). For detectors, return max energy for active layer.

Definition at line 1042 of file KVMaterial.cpp.

◆ GetEnergyLoss()

virtual Double_t KVMaterial::GetEnergyLoss ( ) const
inlinevirtual

Reimplemented in KVDetector.

Definition at line 91 of file KVMaterial.h.

◆ GetERes()

Double_t KVMaterial::GetERes ( Int_t  Z,
Int_t  A,
Double_t  Einc 
)
virtual

Calculate residual energy after absorber for incident nucleus (Z,A) with kinetic energy Einc (MeV)

Reimplemented in KVDetector.

Definition at line 816 of file KVMaterial.cpp.

◆ GetEResFromDeltaE()

Double_t KVMaterial::GetEResFromDeltaE ( Int_t  Z,
Int_t  A,
Double_t  dE = -1.0,
enum SolType  type = kEmax 
)
virtual

Calculate residual kinetic energy Eres (MeV) after the absorber from energy loss in absorber for nucleus (Z,A). If dE is not given, the energy loss in this absorber is used. For a KVDetector, dE = energy loss in the ACTIVE layer, not the total energy lost in crossing the detector (i.e. the incident energy of the particle is NOT given by dE + Eres: due to losses in the inactive layers of the detector, Einc > dE + Eres).

By default the solution corresponding to the highest incident energy is returned This is the solution found for Einc greater than the maximum of the dE(Einc) curve. If you want the low energy solution (i.e. below Bragg peak for gas detector) set SolType = KVMaterial::kEmin.

If the given energy loss in the absorber is greater than the maximum theoretical dE (dE > GetBraggDE) then we return the residual energy corresponding to the maximum dE.

Definition at line 750 of file KVMaterial.cpp.

◆ GetGeoMedium()

TGeoMedium * KVMaterial::GetGeoMedium ( const Char_t med_name = "")
virtual

By default, return pointer to TGeoMedium corresponding to this KVMaterial. If argument "med_name" is given and corresponds to the name of an already existing medium, we return a pointer to this medium, or 0x0 if it does not exist. med_name = "Vacuum" is a special case: if the "Vacuum" does not exist, we create it.

Instance of geometry manager class TGeoManager must be created before calling this method, otherwise 0x0 will be returned. If the required TGeoMedium is not already available in the TGeoManager, we create a new TGeoMedium corresponding to the properties of this KVMaterial. The name of the TGeoMedium (and associated TGeoMaterial) is the name of the KVMaterial.

Definition at line 971 of file KVMaterial.cpp.

◆ GetIncidentEnergy()

Double_t KVMaterial::GetIncidentEnergy ( Int_t  Z,
Int_t  A,
Double_t  delta_e = -1.0,
enum SolType  type = kEmax 
)
virtual

Calculate incident energy of nucleus (Z,A) corresponding to the energy loss in this absorber. If delta_e is not given, the energy loss in this absorber is used.

By default the solution corresponding to the highest incident energy is returned This is the solution found for Einc greater than the maximum of the dE(Einc) curve. If you want the low energy solution set SolType = KVIonRangeTable::kEmin.

If the given energy loss in the absorber is greater than the maximum theoretical dE (dE > GetMaxDeltaE(Z,A)) then we return the incident energy corresponding to the maximum, GetEIncOfMaxDeltaE(Z,A)

Reimplemented in KVDetector.

Definition at line 788 of file KVMaterial.cpp.

◆ GetIncidentEnergyFromERes()

Double_t KVMaterial::GetIncidentEnergyFromERes ( Int_t  Z,
Int_t  A,
Double_t  Eres 
)
virtual

Get incident energy from residual energy.

Reimplemented in KVTarget, and KVDetector.

Definition at line 911 of file KVMaterial.cpp.

◆ GetLinearRange()

Double_t KVMaterial::GetLinearRange ( Int_t  Z,
Int_t  A,
Double_t  Einc 
)
virtual

Calculate linear range in absorber (in centimetres) for incident nucleus (Z,A) with kinetic energy Einc (MeV)

Reimplemented in KVDetector.

Definition at line 699 of file KVMaterial.cpp.

◆ GetMass()

Double_t KVMaterial::GetMass ( ) const

Returns atomic mass of material. Will be isotopic mass if set.

Definition at line 252 of file KVMaterial.cpp.

◆ GetMaxDeltaE()

Double_t KVMaterial::GetMaxDeltaE ( Int_t  Z,
Int_t  A 
)
virtual

The maximum energy loss of this particle (corresponding to incident energy GetEIncOfMaxDeltaE(Z,A)) For detectors, this is the maximum energy loss in the active layer.

Reimplemented in KVDetector.

Definition at line 943 of file KVMaterial.cpp.

◆ GetParticleEIncFromERes()

Double_t KVMaterial::GetParticleEIncFromERes ( KVNucleus kvn,
TVector3 norm = 0 
)
virtual

Calculate the energy of particle 'kvn' before its passage through the absorber, based on the current kinetic energy, Z & A of nucleus 'kvn'.

If the optional argument 'norm' is given, it is supposed to be a vector normal to the material, oriented from the origin towards the material. In this case the effective thickness of the material 'seen' by the particle depending on its direction of motion is used for the calculation.

Reimplemented in KVTarget, and KVDetector.

Definition at line 632 of file KVMaterial.cpp.

◆ GetPressure()

Double_t KVMaterial::GetPressure ( ) const
virtual

Returns the pressure of a gas (in torr). If the material is not a gas, value is zero.

Reimplemented in KVChIo.

Definition at line 469 of file KVMaterial.cpp.

◆ GetPunchThroughEnergy()

Double_t KVMaterial::GetPunchThroughEnergy ( Int_t  Z,
Int_t  A 
)
virtual

Returns energy (in MeV) for which ion (Z,A) has a range equal to the thickness of this absorber

Reimplemented in KVDetector.

Definition at line 1057 of file KVMaterial.cpp.

◆ GetRange()

Double_t KVMaterial::GetRange ( Int_t  Z,
Int_t  A,
Double_t  Einc 
)
virtual

Calculate range in absorber (in g/cm**2) for incident nucleus (Z,A) with kinetic energy Einc (MeV)

Reimplemented in KVDetector.

Definition at line 681 of file KVMaterial.cpp.

◆ GetRangeTable()

KVIonRangeTable * KVMaterial::GetRangeTable ( )
static

Static method Return pointer to current default range table

Definition at line 153 of file KVMaterial.cpp.

◆ GetTemperature()

Double_t KVMaterial::GetTemperature ( ) const
virtual

Returns temperature of material. The units are: degrees celsius

Definition at line 516 of file KVMaterial.cpp.

◆ GetThickness()

Double_t KVMaterial::GetThickness ( ) const
virtual

Returns the linear thickness of the material in cm. Use Units to change units: mat.GetThickness()/KVUnitsum ; in microns

Reimplemented in KVTarget, and KVSilicon.

Definition at line 380 of file KVMaterial.cpp.

◆ GetZ()

Double_t KVMaterial::GetZ ( ) const

Returns atomic number of material.

Definition at line 320 of file KVMaterial.cpp.

◆ init()

void KVMaterial::init ( void  )

Default initialisations. No properties are set for the material (except standard temperature (19°C) and pressure (1 atm)) Default range table is generated if not already done. By default it is the VEDALOSS table implemented in KVedaLoss. You can change this by changing the value of environment variable KVMaterial.IonRangeTable.

Definition at line 45 of file KVMaterial.cpp.

◆ IsGas()

Bool_t KVMaterial::IsGas ( ) const

Returns kTRUE for gaseous materials/detectors.

Definition at line 305 of file KVMaterial.cpp.

◆ IsIsotopic()

Bool_t KVMaterial::IsIsotopic ( ) const

Returns kTRUE if a specific isotope has been chosen for the material using SetMass(). e.g. for "119Sn" this method returns kTRUE e.g. for "natSn" this method returns kFALSE

Definition at line 269 of file KVMaterial.cpp.

◆ IsNat()

Bool_t KVMaterial::IsNat ( ) const

Returns kFALSE if a specific isotope has been chosen for the material using SetMass(). e.g. for "119Sn" this method returns kFALSE e.g. for "natSn" this method returns kTRUE

Definition at line 288 of file KVMaterial.cpp.

◆ Print()

void KVMaterial::Print ( Option_t option = "") const
virtual

Show information on this material.

Reimplemented from KVBase.

Reimplemented in KVDetector, KVCsI, and KVTarget.

Definition at line 571 of file KVMaterial.cpp.

◆ SetAbsGeoVolume()

virtual void KVMaterial::SetAbsGeoVolume ( TGeoVolume v)
inlinevirtual

Definition at line 142 of file KVMaterial.h.

◆ SetAreaDensity()

void KVMaterial::SetAreaDensity ( Double_t  dens)

Set area density in g/cm**2.

For solids, area density can only changed by changing linear dimension (fixed density). For gases, the density depends on temperature and pressure. This method leaves temperature and pressure unchanged, therefore for gases also this method will effectively modify the linear dimension of the gas cell.

Definition at line 406 of file KVMaterial.cpp.

◆ SetEnergyLoss()

virtual void KVMaterial::SetEnergyLoss ( Double_t  e) const
inlinevirtual

Reimplemented in KVDetector.

Definition at line 95 of file KVMaterial.h.

◆ SetMass()

void KVMaterial::SetMass ( Double_t  a)

Set the atomic mass of the material - use if you want to change the default naturally occuring mass for some rarer isotope.

Definition at line 235 of file KVMaterial.cpp.

◆ SetMaterial()

void KVMaterial::SetMaterial ( const Char_t mat_type)
virtual

Intialise material of a given type. The material must exist in the currently used range tables (fIonRangeTable). For materials which are elements of the periodic table you can specify the isotope such as "64Ni", "13C", "natSn", etc. etc.

Reimplemented in KVTarget, and KVDetector.

Definition at line 191 of file KVMaterial.cpp.

◆ SetPressure()

void KVMaterial::SetPressure ( Double_t  p)
virtual

Set the pressure of a gaseous material (in torr) As this changes the density of the gas, it also changes the area density of the absorber (for fixed linear dimension)

Reimplemented in KVChIo.

Definition at line 443 of file KVMaterial.cpp.

◆ SetTemperature()

void KVMaterial::SetTemperature ( Double_t  t)
virtual

Set temperature of material. The units are: degrees celsius As this changes the density of the gas, it also changes the area density of the absorber (for fixed linear dimension)

Definition at line 489 of file KVMaterial.cpp.

◆ SetThickness()

void KVMaterial::SetThickness ( Double_t  t)
virtual

Set the linear thickness of the material in cm or use one of the Units constants: SetThickness( 30.*KVUnitsum ); set thickness to 30 microns

Reimplemented in KVDetector, KVSilicon, and KVINDRADetector.

Definition at line 354 of file KVMaterial.cpp.

Member Data Documentation

◆ fAbsorberVolume

TGeoVolume* KVMaterial::fAbsorberVolume
protected

pointer to corresponding volume in ROOT geometry

Definition at line 46 of file KVMaterial.h.

◆ fAmasr

Int_t KVMaterial::fAmasr
private

isotopic mass of element

Definition at line 51 of file KVMaterial.h.

◆ fELoss

Double_t KVMaterial::fELoss
mutableprivate

total of energy lost by all particles traversing absorber

Definition at line 55 of file KVMaterial.h.

◆ fIonRangeTable

KVIonRangeTable * KVMaterial::fIonRangeTable = 0x0
staticprotected

pointer to class used to calculate charged particle ranges & energy losses

Definition at line 44 of file KVMaterial.h.

◆ fPressure

Double_t KVMaterial::fPressure
private

gas pressure in torr

Definition at line 53 of file KVMaterial.h.

◆ fTemp

Double_t KVMaterial::fTemp
private

gas temperature in degrees celsius

Definition at line 54 of file KVMaterial.h.

◆ fThick

Double_t KVMaterial::fThick
private

area density of absorber in g/cm**2

Definition at line 52 of file KVMaterial.h.


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