KaliVeda
Toolkit for HIC analysis
KVDetectorStack Class Reference

Detailed Description

Easily calculate energy losses etc. in a stack of detectors.

A KVDetectorStack is initialised with pointers/references to a set of existing detectors. Particle energy losses, punch-through energies, etc. can then be calculated for the entire stack.

Definition at line 20 of file KVDetectorStack.h.

#include <KVDetectorStack.h>

Inheritance diagram for KVDetectorStack:

Public Member Functions

 KVDetectorStack ()=default
 
 KVDetectorStack (const KVDetectorStack &)=default
 
 KVDetectorStack (KVDetectorStack &&)=default
 
void Add (KVDetector &)
 
void Add (KVDetector *)
 
void Clear (Option_t *opt="") override
 Calls KVDetector::Clear() for each detector in stack. More...
 
void DetectParticle (KVNucleus &, TVector3 *=nullptr)
 
Double_t GetDeltaE (Int_t Z, Int_t A, Double_t Einc)
 
Double_t GetDeltaEFromERes (Int_t Z, Int_t A, Double_t Eres)
 
Double_t GetERes (Int_t Z, Int_t A, Double_t Einc)
 
Double_t GetIncidentEnergyFromERes (Int_t Z, Int_t A, Double_t Eres, std::optional< int >=std::nullopt)
 
Double_t GetPunchThroughEnergy (Int_t Z, Int_t A)
 
void Reset (Option_t *opt="")
 
- 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...
 
void Clear (Option_t *opt="") override
 Clear object properties : name, type/title, number, label. More...
 
void Copy (TObject &) const override
 Make a copy of this object. More...
 
const Char_t * GetLabel () const
 
UInt_t GetNumber () const
 
virtual TObject * GetObject () const
 
virtual const Char_t * GetType () const
 
Bool_t HasLabel () const
 
Bool_t IsCalled (const Char_t *name, bool case_insensitive=false) const
 
Bool_t IsLabelled (const Char_t *l, bool case_insensitive=false) const
 
Bool_t IsType (const Char_t *typ, bool case_insensitive=false) const
 
virtual void List ()
 
KVBase & operator= (const KVBase &)
 copy assignment operator More...
 
void Print (Option_t *option="") const override
 
void SetLabel (const Char_t *lab)
 
virtual void SetNumber (UInt_t num)
 
virtual void SetType (const Char_t *str)
 

Additional Inherited Members

- Public Types inherited from KVBase
enum  EKaliVedaBits { kIsKaliVedaObject = BIT(23) }
 
enum class  GetX_status {
  ok , above_maximum , below_minimum , at_maximum ,
  at_minimum
}
 
- Static Public Member Functions inherited from KVBase
static std::optional< TString > AbsoluteUnixPath (const TString &)
 
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 KVString &class_name, KVString &imp_file, KVString &dec_file, const KVString &dir_name=".")
 
static Bool_t FindExecutable (TString &exec, const Char_t *path="$(PATH)")
 
static const Char_t * FindFile (const Char_t *search, TString &wfil)
 
static const Char_t * GetBINDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetDATABASEFilePath ()
 
static const Char_t * GetDATADIRFilePath (const Char_t *namefile="")
 
template<typename ValType >
static ValType GetDataSetEnv (const KVString &dataset, const KVString &type, const ValType &defval={})
 
static const Char_t * GetETCDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetExampleFilePath (const Char_t *library, const Char_t *namefile)
 Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) More...
 
static const Char_t * GetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetKVBuildDate ()
 Returns KaliVeda build date. More...
 
static const Char_t * GetKVBuildDir ()
 Returns top-level directory used for build. More...
 
static const Char_t * GetKVBuildTime ()
 Returns KaliVeda build time. More...
 
static const Char_t * GetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More...
 
static const Char_t * GetKVBuildUser ()
 Returns username of person who performed build. More...
 
static int GetKVMajorVersion ()
 
static int GetKVMinorVersion ()
 
static int GetKVPatchVersion ()
 
static const Char_t * GetKVSourceDir ()
 Returns top-level directory of source tree used for build. More...
 
static const Char_t * GetKVVersion ()
 Returns KaliVeda version string. More...
 
static const Char_t * GetLIBDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetListOfPlugins (const Char_t *base)
 
static const Char_t * GetListOfPluginURIs (const Char_t *base)
 
static const Char_t * GetPluginURI (const Char_t *base, const Char_t *plugin)
 
static void GetTempFileName (TString &base)
 
static const Char_t * GetTEMPLATEDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetWORKDIRFilePath (const Char_t *namefile="")
 
static const Char_t * gitBranch ()
 Returns git branch of sources. More...
 
static const Char_t * gitCommit ()
 Returns last git commit of sources. More...
 
static void InitEnvironment ()
 
static bool is_gnuinstall ()
 
static Bool_t IsEnvInit ()
 
static Bool_t IsThisAPlugin (const TString &uri, TString &base)
 
static TPluginHandler * LoadPlugin (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 Double_t ProtectedGetX (const TF1 &func, Double_t val, GetX_status &status, std::optional< Double_t > xmin={}, std::optional< Double_t > xmax={})
 
static Double_t ProtectedGetX (const TF1 *func, Double_t val, GetX_status &status, std::optional< Double_t > xmin={}, std::optional< Double_t > xmax={})
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, KVSQLite::database &dbfile, const Char_t *kvsubdir="")
 
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_t * WorkingDirectory ()
 

Constructor & Destructor Documentation

◆ KVDetectorStack() [1/3]

KVDetectorStack::KVDetectorStack ( )
default

◆ KVDetectorStack() [2/3]

KVDetectorStack::KVDetectorStack ( const KVDetectorStack &  )
default

◆ KVDetectorStack() [3/3]

KVDetectorStack::KVDetectorStack ( KVDetectorStack &&  )
default

Member Function Documentation

◆ Add() [1/2]

void KVDetectorStack::Add ( KVDetector &  D)

Definition at line 18 of file KVDetectorStack.cpp.

◆ Add() [2/2]

void KVDetectorStack::Add ( KVDetector *  D)

Definition at line 9 of file KVDetectorStack.cpp.

◆ Clear()

void KVDetectorStack::Clear ( Option_t *  opt = "")
override

Calls KVDetector::Clear() for each detector in stack.

Definition at line 158 of file KVDetectorStack.cpp.

◆ DetectParticle()

void KVDetectorStack::DetectParticle ( KVNucleus &  N,
TVector3 *  norm = nullptr 
)

Simulate passage of charged particle through the detector stack.

Particle energy will decrease according to energy losses in detectors.

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

Definition at line 137 of file KVDetectorStack.cpp.

◆ GetDeltaE()

Double_t KVDetectorStack::GetDeltaE ( Int_t  Z,
Int_t  A,
Double_t  Einc 
)
Returns
total energy loss in stack for given incident energy

Definition at line 28 of file KVDetectorStack.cpp.

◆ GetDeltaEFromERes()

Double_t KVDetectorStack::GetDeltaEFromERes ( Int_t  Z,
Int_t  A,
Double_t  Eres 
)
Returns
total energy loss in stack given residual energy

Definition at line 58 of file KVDetectorStack.cpp.

◆ GetERes()

Double_t KVDetectorStack::GetERes ( Int_t  Z,
Int_t  A,
Double_t  Einc 
)
Returns
residual energy after all detectors in stack

Definition at line 46 of file KVDetectorStack.cpp.

◆ GetIncidentEnergyFromERes()

Double_t KVDetectorStack::GetIncidentEnergyFromERes ( Int_t  Z,
Int_t  A,
Double_t  Eres,
std::optional< int >  layers = std::nullopt 
)
Returns
incident energy for particle having residual energy after stack
Parameters
layersoptional:
  • layers<0 - ignore last abs(layers) detectors
  • layers>0 - ignore first layers detectors

Definition at line 74 of file KVDetectorStack.cpp.

◆ GetPunchThroughEnergy()

Double_t KVDetectorStack::GetPunchThroughEnergy ( Int_t  Z,
Int_t  A 
)
Returns
punch through energy for particle

This is the incident energy required to arrive just before the last detector with the punch through energy for that detector, i.e. having that as residual energy after passing all but the last layer of the stack

Definition at line 113 of file KVDetectorStack.cpp.

◆ Reset()

void KVDetectorStack::Reset ( Option_t *  opt = "")
inline

Same as Clear()

Definition at line 39 of file KVDetectorStack.h.