KaliVeda
1.12/06
Heavy-Ion Analysis Toolkit
|
Base class container for multi-particle events.
The main business of KaliVeda is the analysis of multi-body events produced in heavy-ion reactions, therefore it is no surprise that a central role is played by the class KVEvent which can be thought of as a container class for particles and nuclei (see KVParticle & KVNucleus).
In addition to containing a list of particles/nuclei, each event class also has in common the following functionality:
Let us mention in passing the associated KVEventViewer class which can be used to produce 3D images of events using the ROOT OpenGL backend.
See the chapter in the User's Guide for more details: http://indra.in2p3.fr/kaliveda/UsersGuide/events.html
See also KVParticle for accessing/changing reference frames of individual particles.
You can define and use several different reference frames for the particles in an event. Each frame can be used independently, and new frames can be defined based on any of the existing frames:
Example: (for an event accessed through pointer KVEvent* e
):
Note that the same frame can be defined directly from the original frame of all particles in the event by using a combined boost-then-rotation transform:
Note that the frame "rotated_moving_frame"
is directly accessible even if it is defined in two steps as a rotation of the "moving_frame"
.
Let us consider an event for which the different reference frames in the previous paragraph have been defined. Calling method Print() will show all reference frames defined for each particle:
Indentation indicates the relationships between frames: "rotated_moving_frame"
is a child frame of "moving_frame"
. The first line is the default kinematics. As yet it has no name, but if we want we can set a name for the default kinematics of each particle in the event:
Now if we want to change the default kinematical frame for the event by using ChangeDefaultFrame():
Note that the name of the default kinematics is stored as a parameter "frameName"
and can be retrieved with method GetFrameName(). Note also how the relationships between frames are preserved, i.e. if we present the frames as graphs:
with "lab" as default frame:
with "rotated_moving_frame" as default frame:
Classes | |
class | Iterator |
Public Member Functions | |
KVEvent (Int_t mult=50, const char *classname="KVNucleus") | |
virtual | ~ KVEvent () |
KVNucleus * | AddParticle () |
Iterator | begin () const |
void | ChangeDefaultFrame (const Char_t *, const Char_t *defname="") |
void | ChangeFrame (const KVFrameTransform &, const KVString &="") |
virtual void | Clear (Option_t *opt="") |
virtual void | Copy (TObject &obj) const |
Copy this to obj. More... | |
void | CustomStreamer () |
void | DefineGroup (const Char_t *groupname, const Char_t *from="") |
void | DefineGroup (const Char_t *groupname, KVParticleCondition *cond, const Char_t *from="") |
Iterator | end () const |
void | FillHisto (TH1 *h, const Char_t *KVNucleus_method, const Char_t *method_prototype, const Char_t *args, Option_t *opt="") |
void | FillHisto (TH1 *h, const Char_t *KVNucleus_method, Option_t *opt="") |
virtual void | FillIntegerList (KVIntegerList *, Option_t *opt) |
Double_t | GetChannelQValue () const |
const Char_t * | GetFrameName () const |
Double_t | GetGSChannelQValue () const |
virtual void | GetGSMasses (std::vector< Double_t > &) |
Fill vector with ground state mass of each nucleus of event (in MeV). More... | |
virtual void | GetMasses (std::vector< Double_t > &) |
Fill vector with mass of each nucleus of event (in MeV) [note: this is the mass including any excitation energy, not ground state]. More... | |
Int_t | GetMinimumOKMultiplicity () const |
virtual Int_t | GetMult (Option_t *opt="") const |
void | GetMultiplicities (Int_t mult[], const TString &species, Option_t *opt="") |
Int_t | GetMultiplicity (Int_t Z, Int_t A=0, Option_t *opt="") |
KVNucleus * | GetNextParticle (Option_t *opt="") const |
Iterator | GetNextParticleIterator (Option_t *opt) const |
KVNameValueList * | GetParameters () const |
KVNucleus * | GetParticle (const Char_t *group_name) const |
Find first particle in event belonging to group with name "group_name". More... | |
KVNucleus * | GetParticle (Int_t npart) const |
KVNucleus * | GetParticleWithName (const Char_t *name) const |
const Char_t * | GetPartitionName () |
Double_t | GetSum (const Char_t *KVNucleus_method, const Char_t *method_prototype, const Char_t *args, Option_t *opt="") |
Double_t | GetSum (const Char_t *KVNucleus_method, Option_t *opt="") |
virtual Bool_t | IsOK () |
virtual void | ls (Option_t *t="") const |
virtual void | MergeEventFragments (TCollection *, Option_t *opt="") |
virtual void | Print (Option_t *t="") const |
void | ResetEnergies () |
void | ResetGetNextParticle () const |
void | SetFrame (const Char_t *frame, const KVFrameTransform &ft) |
void | SetFrame (const Char_t *newframe, const Char_t *oldframe, const KVFrameTransform &ft) |
void | SetFrameName (const KVString &) |
void | SetMinimumOKMultiplicity (Int_t) |
template<typename ValType > | |
void | SetParameter (const Char_t *name, ValType value) const |
void | UpdateAllFrames () |
![]() | |
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 () |
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) |
![]() | |
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 |
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 |
![]() | |
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 KVEvent * | Factory (const char *) |
Create and return pointer to new event of class given by plugin. More... | |
template<typename T > | |
static void | MakeEventBranch (TTree *tree, const TString &branchname, const TString &classname, T &event, Int_t bufsize=10000000) |
![]() | |
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 Longptr_t | GetDtorOnly () |
static Bool_t | GetObjectStat () |
static void | SetDtorOnly (void *obj) |
static void | SetObjectStat (Bool_t stat) |
Protected Attributes | |
Iterator | fIter |
internal iterator used by GetNextParticle() More... | |
KVNameValueList | fParameters |
general-purpose list of parameters More... | |
TClonesArray * | fParticles |
array of particles in event More... | |
![]() | |
TString | fLabel |
label for the object More... | |
![]() | |
TString | fName |
TString | fTitle |
![]() | |
kOnlyPrepStep | |
Additional Inherited Members | |
![]() | |
enum | EKaliVedaBits { kIsKaliVedaObject = BIT(23) } |
![]() | |
enum | EDeprecatedStatusBits |
enum | EStatusBits |
![]() | |
kBitMask | |
kCanDelete | |
kCannotPick | |
kHasUUID | |
kInconsistent | |
kInvalidObject | |
kIsOnHeap | |
kIsReferenced | |
kMustCleanup | |
kNoContextMenu | |
kNotDeleted | |
kObjInCanvas | |
kOverwrite | |
kSingleKey | |
kWriteDelete | |
kZombie | |
![]() | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
void | MakeZombie () |
#include <KVEvent.h>
KVEvent::KVEvent | ( | Int_t | mult = 50 , |
const char * | classname = "KVNucleus" |
||
) |
Initialise KVEvent to hold mult events of "classname" objects (the class must inherit from KVNucleus). "mult" is the approximate maximum multiplicity of the events (if too small, extra space will be allocated automatically by TClonesArray).
Default argument : classname = "KVNucleus"
Definition at line 77 of file KVEvent.cpp.
|
virtual |
KVNucleus * KVEvent::AddParticle | ( | ) |
Method used for building an event particle by particle. DO NOT USE FOR READING EVENTS - use GetParticle(Int_t npart)!!
This method increases the multiplicity fMult by one and "creates" a new particle with index (fMult-1). In actual fact a new object is only created if needed i.e. if the new multiplicity is greater than previously. Particle objects in the array are reused from one event to another. The default constructor for the class corresponding to the "new" particle will only be called once during its lifetime (i.e. if N events are generated, the particle ctor will be called only once, not N times). Once created, in subsequent events we just call the particle's Clear() method in order to reset its internal variables ready for a new event.
Definition at line 166 of file KVEvent.cpp.
|
inline |
Make existing reference frame 'newdef' the new default frame for particle kinematics. The current default frame will then be accessible from the list of frames using its name (previously set with SetFrameName). You can change this name with 'defname'.
See KVParticle::ChangeDefaultFrame() and KVParticle::SetFrame() for details.
Definition at line 839 of file KVEvent.cpp.
void KVEvent::ChangeFrame | ( | const KVFrameTransform & | ft, |
const KVString & | name = "" |
||
) |
Permanently change the reference frame used for particle kinematics in the event. The transformation is applied to all "ok" particles in the event. You can optionally set the name of this new default kinematical reference frame.
See KVParticle::ChangeFrame() and KVParticle::SetFrame() for details.
Definition at line 815 of file KVEvent.cpp.
Reset the event to zero ready for new event. Any option string is passed on to the Clear() method of the particle objects in the TClonesArray fParticles.
Reimplemented from KVBase.
Definition at line 200 of file KVEvent.cpp.
In the same philosophy as KVINDRAReconEvent::AcceptIDCodes() method allow to affiliate a group name to particles of the event if "from" is not null, a test of previously stored group name such as "OK" is checked
Definition at line 712 of file KVEvent.cpp.
void KVEvent::DefineGroup | ( | const Char_t * | groupname, |
KVParticleCondition * | cond, | ||
const Char_t * | from = "" |
||
) |
In the same philosophy as KVINDRAReconEvent::AcceptIDCodes() method allow to affiliate using a KVParticleCondition a group name to particles of the event if "from" is not null, a test of previously stored group name such as "OK" is checked the method used in KVParticleCondition has to be compatible with the KVNucleus concerned class. This can be done using first KVParticleCondition::SetParticleClassName(const Char_t* cl)
Definition at line 736 of file KVEvent.cpp.
|
inline |
|
static |
Create and return pointer to new event of class given by plugin.
Definition at line 1194 of file KVEvent.cpp.
void KVEvent::FillHisto | ( | TH1 * | h, |
const Char_t * | KVNucleus_method, | ||
const Char_t * | method_prototype, | ||
const Char_t * | args, | ||
Option_t * | opt = "" |
||
) |
Fill histogram with values of given method with given prototype (e.g. method_prototype="int,int") and argument values e.g. args="2,4") for each particle in event.
If opt = "ok" only particles with IsOK()==kTRUE are considered. If opt = "name" only particles belonging to group "name" are considered.
Definition at line 445 of file KVEvent.cpp.
Fill histogram with values of the observable given by the indicated KVNucleus_method. For example: if the method is called this way - FillHisto(h,"GetZ") - it fills histogram with the charge of all particles in the current event.
If opt = "ok" only particles with IsOK()==kTRUE are considered. If opt = "name" only particles belonging to group "name" are considered.
Definition at line 403 of file KVEvent.cpp.
|
virtual |
Clear & fill the KVIntegerList with the contents of this event, the option will be passed to GetNextParticle(opt). IntegerList is then 'Update()'d. (This method was originally KVIntegerList::Fill(KVEvent*,Option_t*), it was moved here in order to make KVIntegerList a base class)
Definition at line 982 of file KVEvent.cpp.
Double_t KVEvent::GetChannelQValue | ( | ) | const |
Calculate the Q-value [MeV] for this event as if all nuclei were produced by the decay of an initial compound nucleus containing the sum of all nuclei in the event, i.e. A -> a1 + a2 + a3 + ... We take into account any excitation energy of the nuclei of the event (see GetGSChannelQValue() for an alternative), i.e. we calculate Q = M(A) - ( m(a1) + m(a2) + m(a3) + ... ) where M(X) = ground state mass of X m(X) = M(X) + E*(X) If Q<0, the excitation energy of the initial compound nucleus, A, would have to be at least equal to (-Q) in order for the decay to occur. i.e. decay is possible if E*(A) > -Q
Definition at line 1044 of file KVEvent.cpp.
|
inline |
Returns name of default kinematical frame for particles in event, if set (see KVEvent::SetFrameName)
Double_t KVEvent::GetGSChannelQValue | ( | ) | const |
Calculate the Q-value [MeV] for this event as if all nuclei were produced by the decay of an initial compound nucleus containing the sum of all nuclei in the event, i.e. A -> a1 + a2 + a3 + ... i.e. we calculate Q = M(A) - ( M(a1) + M(a2) + M(a3) + ... ) where M(X) = ground state mass of X If Q<0, the excitation energy of the initial compound nucleus, A, would have to be at least equal to (-Q) in order for the decay to occur. i.e. decay is possible if E*(A) > -Q
Definition at line 1087 of file KVEvent.cpp.
Fill vector with ground state mass of each nucleus of event (in MeV).
Definition at line 1016 of file KVEvent.cpp.
Fill vector with mass of each nucleus of event (in MeV) [note: this is the mass including any excitation energy, not ground state].
Definition at line 1001 of file KVEvent.cpp.
Int_t KVEvent::GetMinimumOKMultiplicity | ( | ) | const |
Get minimum number of particles with IsOK()=kTRUE in event for it to be considered 'good' for analysis NB: if no minimum has been set, we return 1
Definition at line 666 of file KVEvent.cpp.
Returns multiplicity (number of particles) of event. If opt = "" (default), returns number of particles in TClonesArray* fParticles i.e. the value of fParticles->GetEntriesFast() (we assume there are no gaps in the list) If opt = "ok" only particles with IsOK()==kTRUE are included. If opt = "name" only particles belonging to group "name" are included.
Definition at line 278 of file KVEvent.cpp.
Fill array mult[] with the number of each nuclear species in the comma-separated list in this event. Make sure that mult[] is large enough for the list.
Example: Int_t mult[4]; event.GetMultiplicities(mult, "1n,1H,2H,3H");
N.B. the species name must correspond to that given by KVNucleus::GetSymbol
If given, "opt" will be used to select particles ("OK" or groupname)
Definition at line 513 of file KVEvent.cpp.
Calculate the multiplicity of nuclei given Z (if A not given) or of nuclei with given Z & A (if given)
If opt = "ok" only particles with IsOK()==kTRUE are considered. If opt = "name" only particles belonging to group "name" are considered.
Definition at line 486 of file KVEvent.cpp.
Use this method to iterate over the list of particles in the event After the last particle GetNextParticle() returns a null pointer and resets itself ready for a new iteration over the particle list.
If opt="" all particles are included in the iteration. If opt="ok" or "OK" only particles whose IsOK() method returns kTRUE are included.
Any other value of opt is interpreted as a (case-insensitive) particle group name: only particles with BelongsToGroup(opt) returning kTRUE are included.
If you want to start from the beginning again before getting to the end of the list, especially if you want to change the selection criteria, call method ResetGetNextParticle() before continuing. If you interrupt an iteration before the end, then start another iteration without calling ResetGetNextParticle(), even if you change the argument of the call to GetNextParticle(), you will repeat exactly the same iteration as the previous one.
WARNING: Only one iteration at a time over the event can be performed using this method. If you want/need to perform several i.e. nested iterations, use the KVEvent::Iterator class
Definition at line 564 of file KVEvent.cpp.
KVEvent::Iterator KVEvent::GetNextParticleIterator | ( | Option_t * | opt | ) | const |
Provide correct iterator using same options as for GetNextParticle() method:
Definition at line 47 of file KVEvent.cpp.
|
inline |
Find first particle in event belonging to group with name "group_name".
Definition at line 257 of file KVEvent.cpp.
Access to event member with index npart (1<=npart<=GetMult() : error if out of bounds) This method may be overridden in event classes derived from KVEvent.
Definition at line 137 of file KVEvent.cpp.
Find particle using its name (SetName()/GetName() methods) In case more than one particle has the same name, the first one found is returned.
Definition at line 242 of file KVEvent.cpp.
const Char_t * KVEvent::GetPartitionName | ( | ) |
return list of isotopes of the event with the format : symbol1(population1) symbol2(population2) .... if population==1, it is not indicated : Example : 15C 12C(2) 4He 3He 1H(4) 1n(3)
Definition at line 1123 of file KVEvent.cpp.
Double_t KVEvent::GetSum | ( | const Char_t * | KVNucleus_method, |
const Char_t * | method_prototype, | ||
const Char_t * | args, | ||
Option_t * | opt = "" |
||
) |
Returns sum over particles of the observable given by the indicated KVNucleus_method with given prototype (e.g. method_prototype="int,int") and argument values e.g. args="2,4")
If opt = "ok" only particles with IsOK()==kTRUE are considered. If opt = "name" only particles belonging to group "name" are considered.
Definition at line 357 of file KVEvent.cpp.
Returns sum over particles of the observable given by the indicated KVNucleus_method for example if the method is called this way GetSum("GetZ"), it returns the sum of the charge of particles in the current event
If opt = "ok" only particles with IsOK()==kTRUE are considered. If opt = "name" only particles belonging to group "name" are considered.
Definition at line 310 of file KVEvent.cpp.
|
virtual |
Returns kTRUE if the event is OK for analysis. This means there must be at least MOKmin particles with IsOK()=kTRUE, where MOKmin is set by calling SetMinimumOKMultiplicity(Int_t) (value stored in parameter MIN_OK_MULT)
Definition at line 636 of file KVEvent.cpp.
Reimplemented from TNamed.
Reimplemented in KVReconstructedEvent.
|
inlinestatic |
Use this method when adding a branch to a TTree to store KVEvent-derived objects.
[in] | tree | pointer to TTree |
[in] | branchname | name of branch to create |
[in] | classname | name of actual class of object pointed to by event |
[in] | event | pointer to a valid (constructed) KVEvent-derived object |
[in] | bufsize | size of buffer to use for branch [default: 10000000] |
|
virtual |
Merge all events in the list into one event (this one) We also merge/sum the parameter lists of the events First we clear this event, then we fill it with copies of each particle in each event in the list. If option "opt" is given, it is given as argument to each call to KVEvent::Clear() - this option is then passed on to the Clear() method of each particle in each event. NOTE: the events in the list will be empty and useless after this!
Reimplemented in KVReconstructedEvent.
Definition at line 1164 of file KVEvent.cpp.
Print a list of all particles in the event with some characteristics. Optional argument t can be used to select particles (="ok", "groupname", ...)
Reimplemented from KVBase.
Reimplemented in KVTestEvent, KVSimEvent, KVReconstructedEvent, and KVINDRAReconEvent.
Definition at line 224 of file KVEvent.cpp.
void KVEvent::ResetEnergies | ( | ) |
Used for simulated events after "detection" by some multidetector array.
The passage of the event's particles through the different absorbers modifies their kinetic energies, indeed all those which are correctly identified by the detector actually stop. Calling this method will reset all the particles' energies to their initial value i.e. before they entered the first absorber. Particles which have not encountered any absorbers/detectors are left as they are.
Definition at line 688 of file KVEvent.cpp.
void KVEvent::ResetGetNextParticle | ( | ) | const |
Reset iteration over event particles so that next call to GetNextParticle will begin a new iteration (possibly with different criteria).
Definition at line 618 of file KVEvent.cpp.
void KVEvent::SetFrame | ( | const Char_t * | frame, |
const KVFrameTransform & | ft | ||
) |
Define a Lorentz-boosted and/or rotated frame for all "ok" particles in the event. See KVParticle::SetFrame() for details.
In order to access the kinematics in the boosted frame, use the GetFrame() method of the individual particles (see KVParticle::GetFrame()).
Definition at line 762 of file KVEvent.cpp.
void KVEvent::SetFrame | ( | const Char_t * | newframe, |
const Char_t * | oldframe, | ||
const KVFrameTransform & | ft | ||
) |
Define a Lorentz-boosted frame "newframe" for all "ok" particles in the event. The transformation is applied to the particle coordinates in the existing frame "oldframe"
See KVParticle::SetFrame() for details.
In order to access the kinematics in the boosted frame, use the GetFrame() method of the individual particles in either of these ways : KVParticle* newframe = particle->GetFrame("newframe"); KVParticle* newframe = particle->GetFrame("oldframe")->GetFrame("newframe");
Definition at line 789 of file KVEvent.cpp.
Set name of default frame for all particles in event After using this method, calls to KVParticle::GetFrame(name) will return the address of the particle in question, i.e. its default kinematics The default frame name is stored as a parameter "defaultFrame"
Definition at line 1215 of file KVEvent.cpp.
Set minimum number of particles with IsOK()=kTRUE in event for it to be considered 'good' for analysis
Definition at line 652 of file KVEvent.cpp.
void KVEvent::UpdateAllFrames | ( | ) |
If the kinematics of particles in their default reference frame have been modified, call this method to update the kinematics in all defined reference frames.
See KVParticle::UpdateAllFrames() for details.
Definition at line 861 of file KVEvent.cpp.
|
mutableprotected |
internal iterator used by GetNextParticle()
|
protected |
|
protected |