KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVLightEnergyCsI Class Reference

Detailed Description

Light-energy calibration function for CsI detectors using a Fermi-function dependence on energy for delta-ray production.

Parameterization of the total light output, \(L\), as a function of deposited energy, \(E\), (in MeV) for CsI detectors, using a Fermi-function dependence on energy for the delta-ray production, instead of a sharp cut-off at \(E=a_{3}A\):

\[ L = a_{1}E\left\{1 - \frac{a_{2}AZ^{2}}{E}\left[ \ln\left( 1+\frac{E}{a_{2}AZ^{2}} \right) - \frac{a_{4}}{1+\exp\left( \frac{E_{\delta}-E}{8A} \right)}\ln\left(\frac{E+a_{2}AZ^{2}}{E_{\delta}+a_{2}AZ^{2}}\right) + \frac{a_{4}}{1+\exp (E_{\delta}/8A)\ln\left(\frac{a_{2}AZ^{2}}{E_{\delta}+a_{2}AZ^{2}}\right)} \right] \right\} \]

with \(E_{\delta}=a_{3}A\) and the parameters:

Parameter Meaning
\(a_{1}\) gain factor
\(a_{2}\) nuclear & recombination quenching term
\(a_{3}\) threshold (MeV/u) for delta-ray production
\(a_{4}\) fractional energy loss removed by delta rays

See M. Parlog et al., Nuclear Instruments and Methods in Physics Research A 482 (2002) 693–706

In order to correctly reproduce the light-energy relationship for all ions, two parameterizations should be used: one for Z=1 and another for Z>1. The main difference is the gain parameter, a1, which compensates the understimation of total light output for high energy protons.

The parameter a3 normally has a fixed value (a3=6), but this is not "hard-coded" : it should be fixed when fitting data.

Definition at line 39 of file KVLightEnergyCsI.h.

#include <KVLightEnergyCsI.h>

Inheritance diagram for KVLightEnergyCsI:

Public Member Functions

 KVLightEnergyCsI (Bool_t make_func=kTRUE)
 
virtual ~KVLightEnergyCsI ()
 
virtual Double_t Compute (Double_t chan, const KVNameValueList &z_and_a="") const
 
virtual Double_t Invert (Double_t, const KVNameValueList &z_and_a="") const
 
Bool_t IsAvailableFor (const KVNameValueList &z_and_a) const
 
- Public Member Functions inherited from KVCalibrator
 KVCalibrator ()
 
 KVCalibrator (const TString &formula, const TString &type)
 
virtual ~KVCalibrator ()
 
KVDetectorGetDetector () const
 
TGraphGetGraphOfCalibration (int npts, KVValueRange< double > input_range, const KVNameValueList &par="")
 
TString GetInputSignalType () const
 
Int_t GetNumberParams () const
 
TString GetOutputSignalType () const
 
Double_t GetParameter (int i) const
 
Bool_t GetStatus () const
 
Bool_t InversionFailure () const
 
Bool_t IsUseInverseFunction () const
 
Double_t operator() (Double_t x, const KVNameValueList &par="")
 
virtual void Print (Option_t *opt="") const
 Print a description of the calibration object, including a list of its parameters.
 
virtual void Reset ()
 
void SetDetector (KVDetector *d)
 
void SetInputSignalType (const TString &type)
 
virtual void SetOptions (const KVNameValueList &)
 
void SetOutputSignalType (const TString &type)
 
void SetParameter (int i, Double_t par_val) const
 
void SetStatus (Bool_t ready)
 
void SetUseInverseFunction (Bool_t yes=kTRUE)
 
- Public Member Functions inherited from KVBase
 KVBase ()
 Default constructor.
 
 KVBase (const Char_t *name, const Char_t *title="")
 Ctor for object with given name and type.
 
 KVBase (const KVBase &)
 copy ctor
 
virtual ~KVBase ()
 
virtual void Clear (Option_t *opt="")
 Clear object properties : name, type/title, number, label.
 
virtual void Copy (TObject &) const
 Make a copy of this object.
 
const Char_tGetLabel () const
 
UInt_t GetNumber () const
 
UInt_t GetNumberOfObjects () const
 
virtual TObjectGetObject () const
 
virtual 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
 
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 ()
 
void Clear (Option_t *option="") override
 
TObjectClone (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
 
TClassIsA () const override
 
Bool_t IsSortable () const override
 
void ls (Option_t *option="") const override
 
TNamedoperator= (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 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=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 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)
 
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)
 
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)
 
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

Double_t CalculLumiere (Double_t *, Double_t *)
 

Private Attributes

Double_t A
 
Double_t Z
 

Additional Inherited Members

- Public Types inherited from KVBase
enum  EKaliVedaBits { kIsKaliVedaObject = BIT(23) }
 
- Public Types inherited from TObject
enum  EDeprecatedStatusBits
 
enum  EStatusBits
 
- Static Public Member Functions inherited from KVCalibrator
static KVCalibratorMakeCalibrator (const Char_t *type)
 
- 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.
 
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.)
 
static const Char_tGetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetKVBuildDate ()
 Returns KaliVeda build date.
 
static const Char_tGetKVBuildDir ()
 Returns top-level directory used for build.
 
static const Char_tGetKVBuildTime ()
 Returns KaliVeda build time.
 
static const Char_tGetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...)
 
static const Char_tGetKVBuildUser ()
 Returns username of person who performed build.
 
static const Char_tGetKVSourceDir ()
 Returns top-level directory of source tree used for build.
 
static const Char_tGetKVVersion ()
 Returns KaliVeda version string.
 
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.
 
static const Char_tgitCommit ()
 Returns last git commit of sources.
 
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.
 
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_tWorkingDirectory ()
 
- Static Public Member Functions inherited from TNamed
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
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
 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 ()
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TObject
 kOnlyPrepStep
 

Constructor & Destructor Documentation

◆ KVLightEnergyCsI()

KVLightEnergyCsI::KVLightEnergyCsI ( Bool_t  make_func = kTRUE)
Parameters
[in]make_funcused by child class constructors to inhibit creation of internal calibration function

Definition at line 58 of file KVLightEnergyCsI.cpp.

◆ ~KVLightEnergyCsI()

virtual KVLightEnergyCsI::~KVLightEnergyCsI ( )
inlinevirtual

Definition at line 49 of file KVLightEnergyCsI.h.

Member Function Documentation

◆ CalculLumiere()

Double_t KVLightEnergyCsI::CalculLumiere ( Double_t x,
Double_t par 
)
private

Calcul de la lumiere totale a partir de Z, A d'une particule et son energie

x[0] = energie (MeV)
par[0] = a1 : gain factor
par[1] = a2 : nuclear & recombination quenching term
par[2] = a3 : threshold (MeV/u) for delta-ray production
par[3] = a4 : fractional energy loss removed by delta rays
Double_t x[n]

Definition at line 22 of file KVLightEnergyCsI.cpp.

◆ Compute()

Double_t KVLightEnergyCsI::Compute ( Double_t  light,
const KVNameValueList z_and_a = "" 
) const
virtual

Calculate the calibrated energy (in MeV) for a given total light output.

The Z and A of the particle should be given as extra parameters:

Compute(light, "Z=3,A=7");
virtual Double_t Compute(Double_t chan, const KVNameValueList &z_and_a="") const

Reimplemented from KVCalibrator.

Definition at line 79 of file KVLightEnergyCsI.cpp.

◆ Invert()

Double_t KVLightEnergyCsI::Invert ( Double_t  energy,
const KVNameValueList z_and_a = "" 
) const
virtual

Given the calibrated (or simulated) energy in MeV, calculate the corresponding total light output according to the calibration parameters (useful for filtering simulations).

The Z and A of the particle should be given as extra parameters:

Invert(light, "Z=3,A=7");
virtual Double_t Invert(Double_t, const KVNameValueList &z_and_a="") const

Reimplemented from KVCalibrator.

Definition at line 114 of file KVLightEnergyCsI.cpp.

◆ IsAvailableFor()

Bool_t KVLightEnergyCsI::IsAvailableFor ( const KVNameValueList z_and_a) const
virtual
Returns
kFALSE if parameter list does not contain "Z=..." and "A=..."

Reimplemented from KVCalibrator.

Definition at line 141 of file KVLightEnergyCsI.cpp.

Member Data Documentation

◆ A

Double_t KVLightEnergyCsI::A
mutableprivate

Definition at line 45 of file KVLightEnergyCsI.h.

◆ Z

Double_t KVLightEnergyCsI::Z
mutableprivate

Definition at line 44 of file KVLightEnergyCsI.h.