|  | KaliVeda
 Toolkit for HIC analysis | 
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, \(a_{1}\), which compensates the understimation of total light output for high energy protons.
Typical values of \(a_{2}\) are 0.2-0.5, in any case between 0 and 1. For INDRA data, the parameter \(a_{3}\) normally has a fixed value corresponding to 6 MeV/u, but this is not "hard-coded" : it should be fixed when fitting data. Similarly, the parameter \(a_{4}\) often has a fixed value of 0.385; if not, it typically varies in a range 0.35-0.45.
Definition at line 39 of file KVLightEnergyCsI.h.
#include <KVLightEnergyCsI.h>

| Public Member Functions | |
| KVLightEnergyCsI (Bool_t make_func=kTRUE) | |
| Double_t | Compute (Double_t chan, const KVNameValueList &z_and_a="") const override | 
| void | Fit (TH1 *, int z, int a, double a3=6.0, double a4=0.385) | 
| Double_t | Invert (Double_t, const KVNameValueList &z_and_a="") const override | 
| void | invFit (TH1 *, int z, int a, double a3=6.0, double a4=0.385) | 
| Bool_t | IsAvailableFor (const KVNameValueList &z_and_a) const override | 
| void | SetZandA (double z, double a) | 
|  Public Member Functions inherited from KVCalibrator | |
| KVCalibrator () | |
| KVCalibrator (const TString &formula, const TString &type) | |
| virtual | ~KVCalibrator () | 
| TF1 * | GetCalibFunction () const | 
| KVDetector * | GetDetector () const | 
| TGraph * | GetGraphOfCalibration (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="") | 
| void | Print (Option_t *opt="") const override | 
| Print a description of the calibration object, including a list of its parameters.  More... | |
| 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.  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... | |
| void | Error (const char *method, const char *msgfmt,...) const override | 
| const Char_t * | GetLabel () const | 
| UInt_t | GetNumber () const | 
| virtual TObject * | GetObject () const | 
| virtual const Char_t * | GetType () 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 () | 
| KVBase & | operator= (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) | 
| void | Warning (const char *method, const char *msgfmt,...) const override | 
|  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 () | 
| TObject * | Clone (const char *newname="") const override | 
| Int_t | Compare (const TObject *obj) 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) | 
| 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 | 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 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 *) | 
| Double_t | InvCalc (Double_t *, Double_t *) | 
| Private Attributes | |
| Double_t | A | 
| std::unique_ptr< TF1 > | inv_fit_func | 
| 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 KVCalibrator * | MakeCalibrator (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.  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="") | 
| static KVString | GetDataSetEnv (const KVString &dataset, const KVString &type, const char *defval) | 
| 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 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 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 () | 
|  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 | |
| 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 | |
| [in] | make_func | used by child class constructors to inhibit creation of internal calibration function | 
Definition at line 84 of file KVLightEnergyCsI.cpp.
Calculate total light output for given Z, A and energy
Definition at line 25 of file KVLightEnergyCsI.cpp.
| 
 | overridevirtual | 
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:
Reimplemented from KVCalibrator.
Definition at line 105 of file KVLightEnergyCsI.cpp.
Allows to easily fit a TProfile of mean total light output versus CsI energy for a given isotope \((Z,A)\).
Reasonable ranges for \(a_{1}\) and \(a_{2}\) parameters are set.
\(a_{3}\) is fixed to the value given by argument a3 (default=6); if a3<0 we let the parameter vary between 0 and (-a3)
\(a_{4}\) is fixed to the value given by argument a4 (default=0.385); if argument a4<0 we let it vary by +/-(-a4) around this value
Definition at line 185 of file KVLightEnergyCsI.cpp.
Inverse function for fitting data of calculated CsI energy vs. measured light output
x[0] = light
Same parameters as CalculLumiere, we plug their values into the calibration function then return its inverted value
Definition at line 66 of file KVLightEnergyCsI.cpp.
| 
 | overridevirtual | 
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:
Reimplemented from KVCalibrator.
Definition at line 140 of file KVLightEnergyCsI.cpp.
Allows to easily fit a TProfile of mean calculated CsI energy vs. measured total light output for a given isotope \((Z,A)\) using the inverted light-energy relation.
Reasonable ranges for \(a_{1}\) and \(a_{2}\) parameters are set.
\(a_{3}\) is fixed to the value given by argument a3 (default=6); if a3<0 we let the parameter vary between 0 and (-a3)
\(a_{4}\) is fixed to the value given by argument a4 (default=0.385); if argument a4<0 we let it vary by +/-(-a4) around this value
Definition at line 228 of file KVLightEnergyCsI.cpp.
| 
 | overridevirtual | 
Reimplemented from KVCalibrator.
Definition at line 167 of file KVLightEnergyCsI.cpp.
| 
 | inline | 
Set values of Z and A used in calibration function
Definition at line 59 of file KVLightEnergyCsI.h.
| 
 | mutableprivate | 
Definition at line 47 of file KVLightEnergyCsI.h.
| 
 | private | 
Definition at line 43 of file KVLightEnergyCsI.h.
| 
 | mutableprivate | 
Definition at line 46 of file KVLightEnergyCsI.h.