KaliVeda
Toolkit for HIC analysis
KVCalibratedSignal Class Reference

Detailed Description

Output signal from detector obtained by calibration.

Created by KVClassFactory on Thu Jun 13 09:49:14 2019 Author: John Frankland,,,

Calibrated signals are added to detectors when a calibration is available for a given run of a dataset (experiment). A calibration basically defines how a new calibrated signal is generated from an existing input signal using a KVCalibrator or derived class:

KVDetectorSignal _______\ KVCalibrator _______\ KVCalibratedSignal
'input' / / 'output'
Base class for output signal data produced by a detector.

Supposing a KVCalibrator object has been defined which transforms a signal raw_ADC into a signal Energy,

auto cal = new KVCalibrator("[0]+[1]*x","Energy Calibration");
cal->SetInputSignalType("raw_ADC");
cal->SetOutputSignalType("Energy");
cal->SetParameter(0,0.034)
cal->SetParameter(1,2.465e-03)
Base class for all detector calibrations.
Definition: KVCalibrator.h:99

adding this calibration to a detector which has a signal raw_ADC will add a new KVCalibratedSignal Energy to the detector:

det.AddDetectorSignal("raw_ADC");
det.AddCalibrator(cal);
OBJ: KVUniqueNameList KVSeqCollection_156 Optimised list in which objects with the same name can only be placed once : 0
KVDetectorSignal raw_ADC Signal raw_ADC of detector Det_1 [0.000000]
KVCalibratedSignal Energy Signal Energy calculated from signal raw_ADC of detector Det_1 [0.034000]
Output signal from detector obtained by calibration.
Base class for detector geometry description.
Definition: KVDetector.h:160
void AddDetectorSignal(KVDetectorSignal *ds)
Definition: KVDetector.h:261
const KVSeqCollection & GetListOfDetectorSignals() const
Definition: KVDetector.h:786
Bool_t AddCalibrator(KVCalibrator *cal, const KVNameValueList &opts="")
Definition: KVDetector.cpp:478
Optimised list in which named objects can only be placed once.

and now whenever the raw_ADC signal is read/set from data, the Energy signal will be calculated from the calibration:

det.SetDetectorSignalValue("raw_ADC",45630);
(double) 112.51195
det.GetEnergy() // special case: KVDetector::GetEnergy() returns value of "Energy" signal
(double) 112.51195
void SetDetectorSignalValue(const KVString &type, Double_t val) const
Definition: KVDetector.h:506
virtual Double_t GetEnergy() const
Definition: KVDetector.h:349
Double_t GetDetectorSignalValue(const KVString &type, const KVNameValueList &params="") const
Definition: KVDetector.h:493

See Detector signals and calibrations in the User's Guide for more details.

See also
KVCalibrator

Definition at line 67 of file KVCalibratedSignal.h.

#include <KVCalibratedSignal.h>

Inheritance diagram for KVCalibratedSignal:

Public Member Functions

 KVCalibratedSignal ()
 
virtual ~KVCalibratedSignal ()
 
KVCalibratorGetCalibrator () const
 
KVDetectorSignalGetInputSignal () const
 
Double_t GetInverseValue (Double_t out_val, const TString &in_sig, const KVNameValueList &params="") const
 
Double_t GetValue (const KVNameValueList &params="") const
 
Bool_t InversionFailure () const
 
virtual Bool_t IsAvailableFor (const KVNameValueList &params) const
 
Bool_t IsRaw () const
 
- Public Member Functions inherited from KVDetectorSignal
 KVDetectorSignal ()
 
 KVDetectorSignal (const Char_t *type, const KVDetector *det=nullptr)
 
virtual ~KVDetectorSignal ()
 
void Clear (Option_t *="")
 
const KVDetectorGetDetector () const
 
TString GetFullName () const
 
virtual Int_t GetStatus (const TString &) const
 Override in child classes to report on the 'status' of the signal. More...
 
const Char_t * GetType () const
 
virtual Bool_t GetValueNeedsExtraParameters () const
 
virtual Bool_t IsExpression () const
 
Bool_t IsFired () const
 
virtual Bool_t IsValid () const
 
void ls (Option_t *="") const
 Print compact listing of infos on signal: name/type, associated detector, value. More...
 
virtual void Reset ()
 
void SetDetector (const KVDetector *d)
 
void SetFired (Bool_t yes=true)
 
void SetType (const Char_t *typ)
 
virtual void SetValue (Double_t x)
 
- 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 ()
 
virtual void Copy (TObject &) const
 Make a copy of this object. More...
 
const Char_t * GetLabel () const
 
UInt_t GetNumber () const
 
UInt_t GetNumberOfObjects () const
 
virtual TObject * GetObject () 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...
 
virtual void Print (Option_t *option="") const
 
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)
 

Private Member Functions

 KVCalibratedSignal (KVDetectorSignal *input, const KVString &output)
 
 KVCalibratedSignal (KVDetectorSignal *input, KVCalibrator *calib)
 

Private Attributes

KVCalibratorfCalibrator
 calibrator used to transform input signal More...
 
KVDetectorSignalfInputSignal
 signal which is used as input to generate calibrated signal More...
 
Bool_t fInversionFail
 set to true when failing to compute an inverted calibrator More...
 

Friends

class KVDetector
 

Additional Inherited Members

- Public Types inherited from KVBase
enum  EKaliVedaBits { kIsKaliVedaObject = BIT(23) }
 
- 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_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 Bool_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval)
 
static const Char_t * GetDataSetEnv (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_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 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 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 ()
 

Constructor & Destructor Documentation

◆ KVCalibratedSignal() [1/3]

KVCalibratedSignal::KVCalibratedSignal ( KVDetectorSignal input,
const KVString output 
)
inlineprivate

Constructor used by KVZDependentCalibratedSignal

Definition at line 76 of file KVCalibratedSignal.h.

◆ KVCalibratedSignal() [2/3]

KVCalibratedSignal::KVCalibratedSignal ( KVDetectorSignal input,
KVCalibrator calib 
)
inlineprivate

Constructor used by KVDetector::AddCalibrator()

Definition at line 82 of file KVCalibratedSignal.h.

◆ KVCalibratedSignal() [3/3]

KVCalibratedSignal::KVCalibratedSignal ( )
inline

Definition at line 89 of file KVCalibratedSignal.h.

◆ ~KVCalibratedSignal()

virtual KVCalibratedSignal::~KVCalibratedSignal ( )
inlinevirtual

Definition at line 92 of file KVCalibratedSignal.h.

Member Function Documentation

◆ GetCalibrator()

KVCalibrator* KVCalibratedSignal::GetCalibrator ( ) const
inline

Definition at line 102 of file KVCalibratedSignal.h.

◆ GetInputSignal()

KVDetectorSignal* KVCalibratedSignal::GetInputSignal ( ) const
inline

Definition at line 97 of file KVCalibratedSignal.h.

◆ GetInverseValue()

Double_t KVCalibratedSignal::GetInverseValue ( Double_t  out_val,
const TString &  in_sig,
const KVNameValueList params = "" 
) const
virtual

Returns the value of the input signal "in_sig" for a given value of this signal, using the inverse calibration function.

Note that "in_sig" may not be the name/type of the direct input signal for this signal, in which case the chain of signals/calibrators is followed back to the required signal.

In case a problem occurs with the calculation, InversionFailure() will return kTRUE.

Any additional parameters required by the calibration can be passed as a comma-separated list of 'parameter=value' pairs

Reimplemented from KVDetectorSignal.

Reimplemented in KVZDependentCalibratedSignal.

Definition at line 58 of file KVCalibratedSignal.cpp.

◆ GetValue()

Double_t KVCalibratedSignal::GetValue ( const KVNameValueList params = "") const
virtual

Returns the value of the calibrated signal using the current value of the input signal* and the current parameters of the calibration

Any additional parameters required by the calibration can be passed as a comma-separated list of parameter=value pairs

In case a problem occurs with the calculation [in case of an inverted calibration function], InversionFailure() will return kTRUE.

*if a parameter INPUT is given, its value is used instead of the input signal.

Reimplemented from KVDetectorSignal.

Reimplemented in KVZDependentCalibratedSignal.

Definition at line 21 of file KVCalibratedSignal.cpp.

◆ InversionFailure()

Bool_t KVCalibratedSignal::InversionFailure ( ) const
inline

Definition at line 111 of file KVCalibratedSignal.h.

◆ IsAvailableFor()

virtual Bool_t KVCalibratedSignal::IsAvailableFor ( const KVNameValueList params) const
inlinevirtual

Determine if a calibration is effectively available based on the extra parameters in the KVNameValueList.

All of the parent signals which are used by this signal must also be available - therefore we check recursively

Reimplemented from KVDetectorSignal.

Reimplemented in KVZDependentCalibratedSignal.

Definition at line 115 of file KVCalibratedSignal.h.

◆ IsRaw()

Bool_t KVCalibratedSignal::IsRaw ( ) const
inlinevirtual

Return kFALSE: this is not raw data, it is produced by a calibration procedure

Reimplemented from KVDetectorSignal.

Definition at line 106 of file KVCalibratedSignal.h.

Friends And Related Function Documentation

◆ KVDetector

friend class KVDetector
friend

Definition at line 69 of file KVCalibratedSignal.h.

Member Data Documentation

◆ fCalibrator

KVCalibrator* KVCalibratedSignal::fCalibrator
private

calibrator used to transform input signal

Definition at line 72 of file KVCalibratedSignal.h.

◆ fInputSignal

KVDetectorSignal* KVCalibratedSignal::fInputSignal
private

signal which is used as input to generate calibrated signal

Definition at line 71 of file KVCalibratedSignal.h.

◆ fInversionFail

Bool_t KVCalibratedSignal::fInversionFail
mutableprivate

set to true when failing to compute an inverted calibrator

Definition at line 73 of file KVCalibratedSignal.h.