KaliVeda
Toolkit for HIC analysis
|
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 92 of file KVEventClassifier.h.
#include <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 |
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 |
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 | IsDefiningNewFrame () const |
Bool_t | IsNBody () const |
Bool_t | IsOneBody () const |
Bool_t | IsOptionGiven (const Char_t *opt) |
Bool_t | IsParameterSet (const Char_t *par) |
bool | IsSelectingEvents () const |
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. | |
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. | |
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 | |
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 |
TObject * | Clone (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 |
TClass * | IsA () const override |
Bool_t | IsSortable () const override |
void | ls (Option_t *option="") const override |
TNamed & | operator= (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 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=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 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 | |
int | calc_where () const |
Private Attributes | |
bool | fBcuts |
true if cuts are to be used | |
bool | fBins |
true if separate bins are to be used | |
std::vector< double > | fCuts |
cuts in variable to define event classes | |
std::unique_ptr< TFormula > | fFormula |
in case a combination of values is used | |
bool | fIntegerVariable |
true if global variable used for cuts has integer values | |
TString | fVal |
optional name of value calculated by variable to use | |
std::vector< std::string > | fValues |
indices of values in parsed expression | |
KVVarGlob * | fVar |
variable used for event classification | |
bool | fWithExpression |
true if an expression using several values is used | |
bool | fWithVal |
true if named value given | |
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. | |
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.) | |
static const Char_t * | GetINCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetKVBuildDate () |
Returns KaliVeda build date. | |
static const Char_t * | GetKVBuildDir () |
Returns top-level directory used for build. | |
static const Char_t * | GetKVBuildTime () |
Returns KaliVeda build time. | |
static const Char_t * | GetKVBuildType () |
Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) | |
static const Char_t * | GetKVBuildUser () |
Returns username of person who performed build. | |
static const Char_t * | GetKVSourceDir () |
Returns top-level directory of source tree used for build. | |
static const Char_t * | GetKVVersion () |
Returns KaliVeda version string. | |
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. | |
static const Char_t * | gitCommit () |
Returns last git commit of sources. | |
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. | |
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 | |
|
inline |
Definition at line 107 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 110 of file KVEventClassifier.h.
|
inlinevirtual |
Definition at line 118 of file KVEventClassifier.h.
|
inline |
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 201 of file KVEventClassifier.h.
|
inline |
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 169 of file KVEventClassifier.h.
|
private |
Definition at line 6 of file KVEventClassifier.cpp.
Implements KVVarGlob.
Definition at line 232 of file KVEventClassifier.h.
Copy this object into other
Reimplemented from KVBase.
Definition at line 122 of file KVEventClassifier.h.
|
inline |
Returns event class number according to current value of global variable:
odd values correspond to bins
Definition at line 141 of file KVEventClassifier.h.
|
inline |
Returns the largest possible value returned by GetEventClassification() or GetValue():
Definition at line 158 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 137 of file KVEventClassifier.h.
Implements KVVarGlob.
Definition at line 231 of file KVEventClassifier.h.
|
private |
true if cuts are to be used
Definition at line 96 of file KVEventClassifier.h.
|
private |
true if separate bins are to be used
Definition at line 97 of file KVEventClassifier.h.
|
private |
cuts in variable to define event classes
Definition at line 95 of file KVEventClassifier.h.
|
private |
in case a combination of values is used
Definition at line 101 of file KVEventClassifier.h.
|
private |
true if global variable used for cuts has integer values
Definition at line 100 of file KVEventClassifier.h.
|
private |
optional name of value calculated by variable to use
Definition at line 94 of file KVEventClassifier.h.
|
private |
indices of values in parsed expression
Definition at line 102 of file KVEventClassifier.h.
|
private |
variable used for event classification
Definition at line 93 of file KVEventClassifier.h.
|
private |
true if an expression using several values is used
Definition at line 99 of file KVEventClassifier.h.
|
private |
true if named value given
Definition at line 98 of file KVEventClassifier.h.