KaliVeda
1.13/01
Heavy-Ion Analysis Toolkit
|
Simple class for sorting events according to global variables.
This is a simple class for sorting events according to the value of some global variable (see KVVarGlob). Based on either a set of \(N\) cuts or a set of \(N+1\) bins (defined by lower and upper bounds), this class will attribute an integer value \(0,...,N\) to each event based on the value of the variable.
As for any global variable, the event class value can be retrieved with the usual GetValue() method after Calculate() is called. It can be used for event selection (see SetEventSelection()) or be stored with other analysis results in a TTree (see KVGVList::MakeBranches()).
In any analysis class derived from KVEventSelector, an event classifier can be added to the list of global variables in order to define cuts or bins for any variable which is already in the list:
See method KVGVList::AddEventClassifier().
Additionally, if the global variable used provides several named values, a mathematical expression can be used involving these values. For example, with the KVSource variable, it is possible to do
in order to sort according to the excitation energy per nucleon of the reconstructed source.
If the global variable list is then used to create automatic branches in a TTree (KVGVList::MakeBranches()), this event classification object will add a branch mtot_EC
in order to store its values.
This will class events according to:
mtot | mtot_EC |
---|---|
<5 | 0 |
[5, 9] | 1 |
[10, 14] | 2 |
[15, 19] | 3 |
[20, 24] | 4 |
[25, 29] | 5 |
>=30 | 6 |
This will class events according to the 3 bins with the following numbers:
mtot | mtot_EC |
---|---|
[5, 9] | 0 |
[15, 19] | 1 |
[25, 29] | 2 |
other | -1 |
Note that in this case, any value outside of a defined bin is unclassified.
If the global variable used for event classification is detected to be of integer type (KVVarGlob::GetValueType()=='I') then a random value in the range [-0.5,+0.5] will be added to the current value of the variable before testing the cuts. This allows to use non-integer cuts in a statistically correct way.
Definition at line 91 of file KVEventClassifier.h.
Public Member Functions | |
KVEventClassifier () | |
KVEventClassifier (KVVarGlob *b, const TString &value="") | |
virtual | ~KVEventClassifier () |
void | AddBin (double xmin, double xmax) |
void | AddCut (double x) |
void | Calculate () |
void | Copy (TObject &other) const |
Make a copy of this object. More... | |
int | GetEventClassification () const |
int | GetMaxEventClassNumber () const |
void | Init () |
Bool_t | IsGlobalVariable () const |
void | Reset () |
Public Member Functions inherited from KVVarGlob1 | |
KVVarGlob1 () | |
KVVarGlob1 (const Char_t *nom) | |
virtual | ~KVVarGlob1 () |
void | Copy (TObject &obj) const |
Make a copy of this object. More... | |
Int_t | GetNumberOfValues () const |
void | Init () |
void | Reset () |
Public Member Functions inherited from KVVarGlob | |
KVVarGlob () | |
KVVarGlob (const Char_t *nom) | |
virtual | ~KVVarGlob (void) |
void | AddSelection (const KVParticleCondition &sel) |
Double_t | AsDouble () const |
void | DefineNewFrame (KVEvent *e) const |
void | Fill (const KVNucleus *c) |
void | Fill2 (const KVNucleus *n1, const KVNucleus *n2) |
virtual void | FillN (const KVEvent *) |
const TString & | GetFrame () const |
Int_t | GetNameIndex (const Char_t *name) const |
Double_t | GetNormalization () const |
Int_t | GetNumberOfBranches () const |
TString | GetOptionString (const Char_t *opt) const |
Double_t | GetParameter (const Char_t *par) const |
Double_t | GetValue (const Char_t *name) const |
Double_t | GetValue (Int_t i) const |
Double_t | GetValue (void) const |
virtual TString | GetValueName (Int_t i) const |
const KVNameValueList & | GetValueNameList () const |
virtual Char_t | GetValueType (Int_t) const |
virtual std::vector< Double_t > | GetValueVector (void) const |
Bool_t | HasValue (const Char_t *name) const |
Bool_t | IsNBody () const |
Bool_t | IsOneBody () const |
Bool_t | IsOptionGiven (const Char_t *opt) |
Bool_t | IsParameterSet (const Char_t *par) |
Bool_t | IsTwoBody () const |
void | ListInit () |
operator double () const | |
Double_t | operator() (const Char_t *name) const |
Double_t | operator() (Int_t i) const |
Double_t | operator() (void) const |
void | Print (Option_t *="") const |
void | SetDefineGroup (const KVString &groupname="") |
void | SetEventSelection (const EventSelector &f) |
void | SetFrame (const Char_t *ref) |
void | SetMaxNumBranches (Int_t n) |
void | SetNewFrameDefinition (const FrameSetter &f) |
virtual void | SetNormalization (Double_t norm) |
void | SetOption (const Char_t *option, const Char_t *value) |
void | SetParameter (const Char_t *par, Double_t value) |
void | SetSelection (const KVParticleCondition &sel) |
bool | TestEventSelection () const |
void | UnsetOption (const Char_t *opt) |
void | UnsetParameter (const Char_t *par) |
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... | |
const Char_t * | GetLabel () const |
UInt_t | GetNumber () const |
UInt_t | GetNumberOfObjects () 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) |
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 |
Private Member Functions | |
int | calc_where () const |
Private Attributes | |
bool | fBcuts |
true if cuts are to be used More... | |
bool | fBins |
true if separate bins are to be used More... | |
std::vector< double > | fCuts |
cuts in variable to define event classes More... | |
std::unique_ptr< TFormula > | fFormula |
in case a combination of values is used More... | |
bool | fIntegerVariable |
true if global variable used for cuts has integer values More... | |
TString | fVal |
optional name of value calculated by variable to use More... | |
std::vector< std::string > | fValues |
indices of values in parsed expression More... | |
KVVarGlob * | fVar |
variable used for event classification More... | |
bool | fWithExpression |
true if an expression using several values is used More... | |
bool | fWithVal |
true if named value given More... | |
Additional Inherited Members | |
Public Types inherited from KVVarGlob | |
enum | { kOneBody , kTwoBody , kNBody } |
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 KVVarGlob1 | |
static void | MakeClass (const Char_t *classname, const Char_t *classdesc, int type=KVVarGlob::kOneBody) |
Static Public Member Functions inherited from KVVarGlob | |
static void | MakeClass (const Char_t *classname, const Char_t *classdesc, int type=kOneBody) |
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 () |
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) |
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 KVVarGlob1 | |
void | FillVar (Double_t val) |
Double_t | getvalue_int (Int_t) const |
void | SetValue (Double_t val) |
Protected Member Functions inherited from KVVarGlob | |
void | ClearNameIndex () |
virtual void | fill (const KVNucleus *) |
virtual void | fill2 (const KVNucleus *, const KVNucleus *) |
int | GetIndexAtListPosition (int pos) const |
TString | GetNameAtListPosition (int pos) const |
KVNameValueList & | GetParameters () |
const KVNameValueList & | GetParameters () const |
virtual Double_t | getvalue_char (const Char_t *name) const |
virtual Double_t | getvalue_void () const |
void | SetNameIndex (const Char_t *name, Int_t index) |
Protected Member Functions inherited from TObject | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
void | MakeZombie () |
Static Protected Member Functions inherited from KVVarGlob1 | |
static void | FillMethodBody (KVString &body, int type) |
Static Protected Member Functions inherited from KVVarGlob | |
static void | AddFillMethod (KVClassFactory &cf, int type) |
static void | AddFillMethodBody (KVClassFactory &cf, KVString &body, int type) |
static void | AddInitMethod (KVClassFactory &cf, KVString &body) |
static void | FillMethodBody (KVString &body, int type) |
static void | ImplementInitMethod (KVClassFactory &cf, KVString &body, int type) |
Protected Attributes inherited from KVVarGlob | |
Int_t | fType |
type of variable global; = kOneBody, kTwoBody or kNBody More... | |
Char_t | fValueType |
type (='I' integer or 'D' double) of global variable value More... | |
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 <KVEventClassifier.h>
|
inline |
Definition at line 106 of file KVEventClassifier.h.
[in] | b | address of global variable to use for event classification |
[in] | value | [optional] for multi-valued variables, you can specify which value to use by name, or a mathematical expression involving one or more of the available values |
Definition at line 109 of file KVEventClassifier.h.
|
inlinevirtual |
Definition at line 117 of file KVEventClassifier.h.
Add a bin to be used to sort events. The order in which bins are added is unimportant, events are always classed from the lowest to the highest value of the variable.
This will class events according to the 2 bins with the following numbers:
variable | EC |
---|---|
[5, 9] | 0 |
[15, 19] | 1 |
[25, 29] | 2 |
other | -1 |
Note that in this case, any value outside of a defined bin is unclassified.
Definition at line 200 of file KVEventClassifier.h.
Add a cut to be used to sort events. The order in which cuts are added is unimportant, events are always classed from the lowest to the highest value of the variable.
This will class events according to:
variable | EC |
---|---|
<5 | 0 |
[5, 9] | 1 |
[10, 14] | 2 |
[15, 19] | 3 |
[20, 24] | 4 |
[25, 29] | 5 |
>=30 | 6 |
Definition at line 168 of file KVEventClassifier.h.
|
private |
Definition at line 6 of file KVEventClassifier.cpp.
Implements KVVarGlob.
Definition at line 231 of file KVEventClassifier.h.
Make a copy of this object.
Copy this object into other
Reimplemented from KVBase.
Definition at line 121 of file KVEventClassifier.h.
|
inline |
Returns event class number according to current value of global variable:
odd values correspond to bins
Definition at line 140 of file KVEventClassifier.h.
|
inline |
Returns the largest possible value returned by GetEventClassification() or GetValue():
Definition at line 157 of file KVEventClassifier.h.
Sort cuts/bins into ascending order
Also set up TFormula if we need to use an expression
Implements KVVarGlob.
Definition at line 41 of file KVEventClassifier.cpp.
|
inlinevirtual |
Reimplemented from KVVarGlob.
Definition at line 136 of file KVEventClassifier.h.
Implements KVVarGlob.
Definition at line 230 of file KVEventClassifier.h.
|
private |
true if cuts are to be used
Definition at line 95 of file KVEventClassifier.h.
|
private |
true if separate bins are to be used
Definition at line 96 of file KVEventClassifier.h.
|
private |
cuts in variable to define event classes
Definition at line 94 of file KVEventClassifier.h.
|
private |
in case a combination of values is used
Definition at line 100 of file KVEventClassifier.h.
|
private |
true if global variable used for cuts has integer values
Definition at line 99 of file KVEventClassifier.h.
|
private |
optional name of value calculated by variable to use
Definition at line 93 of file KVEventClassifier.h.
|
private |
indices of values in parsed expression
Definition at line 101 of file KVEventClassifier.h.
|
private |
variable used for event classification
Definition at line 92 of file KVEventClassifier.h.
|
private |
true if an expression using several values is used
Definition at line 98 of file KVEventClassifier.h.
|
private |
true if named value given
Definition at line 97 of file KVEventClassifier.h.