KaliVeda
1.12/06
Heavy-Ion Analysis Toolkit
|
Base class for all detector calibrations.
You can define a basic calibrator object with a mathematical formula string (TFormula) and a type name:
The formula will be used by a TF1, so you can retrieve e.g. the number of parameters with:
Setting and retrieving parameter values are handled by:
Before associating it with a detector to calibrate, you need to define the input 'signal' (see KVDetectorSignal class) which must be provided by the detector, and the name of the output 'signal' resulting from this calibration which will be added to the detector's list:
The input 'signal' is of course the quantity that will be used in place of x
in the formula given to the constructor.
N.B. if the specified input signal is not defined for the detector the calibrator is associated with, no new output signal will be generated for the detector and the calibrator will be unused.
Associating the calibrator with a detector:
N.B. the calibrator object is 'adopted' by the detector and will be deleted by the detector. Do not try to use the same calibrator object with more than one detector!
Adding to the detector will set the name of the calibrator object:
Definition at line 75 of file KVCalibrator.h.
Public Member Functions | |
KVCalibrator () | |
KVCalibrator (const TString &formula, const TString &type) | |
virtual | ~KVCalibrator () |
virtual Double_t | Compute (Double_t x, const KVNameValueList &) 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 |
virtual Double_t | Invert (Double_t x, const KVNameValueList &) const |
virtual Bool_t | IsAvailableFor (const KVNameValueList &) 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. 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... | |
virtual | ~ KVBase () |
virtual void | Clear (Option_t *opt="") |
Clear object properties : name, type/title, number, label. More... | |
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 |
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) |
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 TObject * | Clone (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 |
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 |
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 | 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 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) |
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 * | 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) |
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 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 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 date. 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, 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 TObject | |
static Longptr_t | GetDtorOnly () |
static Bool_t | GetObjectStat () |
static void | SetDtorOnly (void *obj) |
static void | SetObjectStat (Bool_t stat) |
Protected Member Functions | |
void | adjust_range_of_inverse_calibration () |
Double_t | do_inversion (Double_t x) const |
TF1 * | GetCalibFunction () const |
bool | in_range (double X, double Xmin, double Xmax) |
void | SetCalibFunction (TF1 *f) |
Protected Member Functions inherited from TObject | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
void | MakeZombie () |
Private Attributes | |
TF1 * | fCalibFunc |
calibration function More... | |
KVDetector * | fDetector |
associated detector More... | |
Double_t | fInputMax |
required maximum input signal for inverse calibration More... | |
Double_t | fInputMin |
required minimum input signal for inverse calibration More... | |
TString | fInputSignal |
type of signal used as input More... | |
Bool_t | fInversionFail |
problem inverting calibration function More... | |
TString | fOutputSignal |
type of output calibrated signal More... | |
Bool_t | fReady |
= kTRUE if calibration formula & parameters have been set up More... | |
Bool_t | fUseInverseFunction |
true if inverse i.e. TF1::GetX should be used for Compute() More... | |
Additional Inherited Members | |
Public Types inherited from KVBase | |
enum | EKaliVedaBits { kIsKaliVedaObject = BIT(23) } |
Public Types inherited from TObject | |
enum | EDeprecatedStatusBits |
enum | EStatusBits |
Public Attributes inherited from TObject | |
kBitMask | |
kCanDelete | |
kCannotPick | |
kHasUUID | |
kInconsistent | |
kInvalidObject | |
kIsOnHeap | |
kIsReferenced | |
kMustCleanup | |
kNoContextMenu | |
kNotDeleted | |
kObjInCanvas | |
kOverwrite | |
kSingleKey | |
kWriteDelete | |
kZombie | |
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 | |
#include <KVCalibrator.h>
|
inline |
Definition at line 117 of file KVCalibrator.h.
Set up calibrator using mathematical formula
Definition at line 119 of file KVCalibrator.h.
|
inlinevirtual |
Definition at line 124 of file KVCalibrator.h.
|
protected |
For an inverse calibration, the limits [min,max] given in the options concern the Y-values, i.e. the values Y=f(X) of the function which correspond to the input signal. We need to find the corresponding values of X in order to fix the range of the function, and avoid use of TF1::GetX() leading to many error messages.
Definition at line 16 of file KVCalibrator.cpp.
|
inlinevirtual |
Compute calibrated value from input x
Reimplemented in KVRecombination, KVPulseHeightDefect, and KVLightEnergyCsI.
Definition at line 161 of file KVCalibrator.h.
Invert calibration function to find input value corresponding to output value x.
In case of problems with the inversion (x not included in the range of values of the function) InversionFail() will return kTRUE.
Definition at line 98 of file KVCalibrator.h.
|
inlineprotected |
Definition at line 94 of file KVCalibrator.h.
|
inline |
Definition at line 212 of file KVCalibrator.h.
TGraph * KVCalibrator::GetGraphOfCalibration | ( | int | npts, |
KVValueRange< double > | input_range, | ||
const KVNameValueList & | par = "" |
||
) |
Make graph of calibration function in given range with given number of points. Any extra required parameters should be given in the KVNameValueList argument.
Definition at line 269 of file KVCalibrator.cpp.
|
inline |
Definition at line 200 of file KVCalibrator.h.
|
inline |
return number of parameters in formula
Definition at line 129 of file KVCalibrator.h.
|
inline |
Definition at line 204 of file KVCalibrator.h.
|
inline |
Definition at line 138 of file KVCalibrator.h.
Definition at line 149 of file KVCalibrator.h.
return true if X is within the given range
Definition at line 110 of file KVCalibrator.h.
|
inline |
Returns kTRUE after a failed attempt to invert the calibration function Value returned by calibrator should not be used in this case
Definition at line 229 of file KVCalibrator.h.
|
inlinevirtual |
Compute value of input for given output value (inverted calibration)
Reimplemented in KVLightEnergyCsI, KVRecombination, and KVPulseHeightDefect.
Definition at line 167 of file KVCalibrator.h.
|
inlinevirtual |
Used by KVCalibratedSignal to determine whether calibrated signals which depend on extra parameters (in the KVNameValueList) are effectively available for a given set of those extra parameters.
To be overridden as necessary in child classes.
Reimplemented in KVLightEnergyCsI.
Definition at line 178 of file KVCalibrator.h.
|
inline |
Returns true if the calibration function is actually the inverse i.e. if TF1::GetX(x) should be called in Compute() instead of TF1::Eval(x)
Definition at line 223 of file KVCalibrator.h.
|
static |
Create a new KVCalibrator object with class given by the plugin of given type
If type=="" or type is unknown, returns a new base calibrator KVCalibrator
Definition at line 177 of file KVCalibrator.cpp.
|
inline |
Same as Compute(x,par)
Definition at line 173 of file KVCalibrator.h.
Print a description of the calibration object, including a list of its parameters.
Reimplemented from KVBase.
Reimplemented in KVLightEnergyCsIFull.
Definition at line 152 of file KVCalibrator.cpp.
Definition at line 154 of file KVCalibrator.h.
Set function for calibration. Delete any previous function.
Definition at line 88 of file KVCalibrator.h.
|
inline |
Definition at line 208 of file KVCalibrator.h.
Definition at line 192 of file KVCalibrator.h.
|
virtual |
Used to set up a function calibrator from infos in a calibration parameter file. Use an option string like this:
This is the standard case where the calibration function is fitted to output signal vs. input signal. In this case [min,max]
are the expected (allowed) range of input values.
If the calibration function is fitted to input signal vs. output signal then we have what we call an 'inverse calibration function' and in this case you should use options like:
In this case we need to calculate the range of output values we can give to the inverse function in order to have the expected (allowed) range of input values given by [min,max]
. In order to do this, it is necessary to give a reasonable range for the expected output values, [out_min,out_max]
. If these parameters are not given, the calibrator will not be valid.
Throws a std::invalid_argument exception if any of the required options are missing
Reimplemented in KVLightEnergyCsIFull.
Definition at line 220 of file KVCalibrator.cpp.
Definition at line 196 of file KVCalibrator.h.
Definition at line 134 of file KVCalibrator.h.
Definition at line 142 of file KVCalibrator.h.
Set true if the calibration function is actually the inverse i.e. if TF1::GetX(x) should be called in Compute() instead of TF1::Eval(x)
Definition at line 217 of file KVCalibrator.h.
|
private |
calibration function
Definition at line 78 of file KVCalibrator.h.
|
private |
associated detector
Definition at line 77 of file KVCalibrator.h.
|
private |
required maximum input signal for inverse calibration
Definition at line 84 of file KVCalibrator.h.
|
private |
required minimum input signal for inverse calibration
Definition at line 83 of file KVCalibrator.h.
|
private |
type of signal used as input
Definition at line 80 of file KVCalibrator.h.
|
mutableprivate |
problem inverting calibration function
Definition at line 85 of file KVCalibrator.h.
|
private |
type of output calibrated signal
Definition at line 81 of file KVCalibrator.h.
|
private |
= kTRUE if calibration formula & parameters have been set up
Definition at line 79 of file KVCalibrator.h.
|
private |
true if inverse i.e. TF1::GetX should be used for Compute()
Definition at line 82 of file KVCalibrator.h.