KaliVeda  1.13/01
Heavy-Ion Analysis Toolkit
List of all members | Classes | Public Member Functions | Protected Attributes | List of all members
KVTemplateEvent< Particle > Class Template Reference

template<typename Particle>
class KVTemplateEvent< Particle >

Base class for event classes (containers for different types of particle objects)

Template Parameters
ParticleClass used to describe particles belonging to the event: must derive from KVParticle

An event is a container for a collection of objects representing massive particles (derived from KVParticle): Particles are added to an event using methods AddParticle() or AddNucleus(). The first method returns a pointer to the added particle which is of the same type as the particle objects contained in the event, while the latter casts the pointer to KVNucleus* for classes which derive from KVNucleus, returning nullptr if not (but a particle is still created and added to the event):

auto p = part_event.AddParticle(); // KVParticle* p
auto n = part_event.AddNucleus(); // KVNucleus* n == nullptr
auto r = recon_event.AddParticle(); // KVReconstructedNucleus* r
auto s = recon_event.AddNucleus(); // KVNucleus* s == r
ROOT::R::TRInterface & r
KVNucleus * AddNucleus()
Definition: KVEvent.cpp:109
Base class for event classes (containers for different types of particle objects)
Particle * AddParticle()
const Int_t n
const long double s
Definition: KVUnits.h:94

Particles in events can be iterated over using range-based for loops:

for(auto& p : part_event) std::cout << p.GetMass() << std::endl; // p is type KVParticle&
for(auto& r : recon_event) if(r.IsAMeasured()) std::cout << r.GetRealA() << std::endl; // r is type KVReconstructedNucleus&
Note
that in such event loops, you should always use a reference to access each particle of the event as shown in these examples.

The iteration can be limited to only a subset of particles in the event using arbitrary particle selections (see KVTemplateParticleCondition):

int ztot=0;
for(auto& p : recon_event.ConditionalIterator({"IDZ", [](const KVReconstructedNucleus* n){ return n->IsZMeasured(); }}))
ztot += p.GetZ();
EventIterator ConditionalIterator(const KVTemplateParticleCondition< Particle > &c)

For a full description of event iterators, see Nuclei & Events

See also
Nuclei & Events, KVEvent, KVParticle, KVTemplateParticleCondition, KVNucleusEvent, KVSimEvent, KVReconstructedEvent
Examples
KVEvent_iterator_example.C.

Definition at line 90 of file KVTemplateEvent.h.

Classes

struct  EventGroupIterator
 
struct  EventIterator
 
struct  EventOKIterator
 
class  Iterator
 Class used for iterating over particles in events. More...
 

Public Member Functions

 KVTemplateEvent (Int_t mult=50)
 internal iterator used by GetNextParticle() More...
 
Particle * AddParticle ()
 
Iterator begin () const
 
void ChangeDefaultFrame (const Char_t *newdef, const Char_t *defname="")
 
void ChangeFrame (const KVFrameTransform &ft, const KVString &name="")
 
EventIterator ConditionalIterator (const KVTemplateParticleCondition< Particle > &c)
 
void DefineGroup (const Char_t *groupname, const Char_t *from="")
 
void DefineGroup (const Char_t *groupname, KVTemplateParticleCondition< Particle > *cond, const Char_t *from="")
 
Iterator end () const
 
void FillHisto (TH1 *h, const Char_t *Nucleus_method, const Char_t *method_prototype, const Char_t *args, Option_t *opt="")
 
void FillHisto (TH1 *h, const Char_t *Nucleus_method, Option_t *opt="")
 
template<typename U = Particle>
std::enable_if< std::is_base_of< KVNucleus, U >::value >::type FillIntegerList (KVIntegerList *IL, Option_t *opt)
 
template<typename U = Particle>
std::enable_if< std::is_base_of< KVNucleus, U >::value, Double_t >::type get_channel_qvalue () const
 
template<typename U = Particle>
std::enable_if< !std::is_base_of< KVNucleus, U >::value, Double_t >::type get_channel_qvalue () const
 
template<typename U = Particle>
std::enable_if< std::is_base_of< KVNucleus, U >::value, KVString >::type get_partition_name ()
 
template<typename U = Particle>
std::enable_if< !std::is_base_of< KVNucleus, U >::value, KVString >::type get_partition_name ()
 
Double_t GetChannelQValue () const
 
template<typename U = Particle>
std::enable_if< std::is_base_of< KVNucleus, U >::value, Double_t >::type GetGSChannelQValue () const
 
template<typename U = Particle>
std::enable_if< std::is_base_of< KVNucleus, U >::value >::type GetGSMasses (std::vector< Double_t > &mass)
 
void GetMasses (std::vector< Double_t > &mass)
 
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="")
 
Particle * GetNextParticle (Option_t *opt="") const
 
Iterator GetNextParticleIterator (Option_t *opt) const
 
Particle * GetParticle (const Char_t *group_name) const
 
Particle * GetParticle (Int_t npart) const
 
Particle * GetParticleWithName (const Char_t *name) const
 
KVString GetPartitionName ()
 
Double_t GetSum (const Char_t *Nucleus_method, const Char_t *method_prototype, const Char_t *args, Option_t *opt="")
 
Double_t GetSum (const Char_t *Nucleus_method, Option_t *opt="")
 
virtual void ls (Option_t *t="") const
 
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 &name)
 
void UpdateAllFrames ()
 
- Public Member Functions inherited from KVEvent
 KVEvent (const TClass *particle_class, Int_t mult=50)
 
virtual ~KVEvent ()
 
KVNucleusAddNucleus ()
 
void Clear (Option_t *opt="")
 Clear object properties : name, type/title, number, label. More...
 
void Copy (TObject &obj) const
 
void CustomStreamer ()
 
const Char_tGetFrameName () const
 
Int_t GetMinimumOKMultiplicity () const
 
KVNucleusGetNextNucleus (Option_t *opt="") const
 
KVNucleusGetNucleus (Int_t npart) const
 
KVNameValueListGetParameters () const
 
const TClonesArrayGetParticleArray () const
 
virtual Bool_t IsOK () const
 
virtual void MergeEventFragments (TCollection *events, Option_t *opt="")
 
void ResetGetNextNucleus () const
 
void SetMinimumOKMultiplicity (Int_t x)
 
template<typename ValType >
void SetParameter (const Char_t *name, ValType value) const
 
- 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 ()
 
const Char_tGetLabel () const
 
UInt_t GetNumber () const
 
UInt_t GetNumberOfObjects () const
 
virtual TObjectGetObject () const
 
virtual const Char_tGetType () 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...
 
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 TObjectClone (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
 
TNamedoperator= (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 TObjectDrawClone (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 TObjectFindObject (const char *name) const
 
virtual TObjectFindObject (const TObject *obj) const
 
virtual Option_tGetDrawOption () const
 
virtual const char * GetIconName () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 
virtual Option_tGetOption () 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)
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (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
 

Protected Attributes

Iterator fIter
 
- Protected Attributes inherited from KVEvent
KVNameValueList fParameters
 general-purpose list of parameters More...
 
TClonesArrayfParticles
 array of particles in event 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
 

Additional Inherited Members

- 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 KVEvent
static KVEventFactory (const char *plugin)
 
template<typename T >
static void MakeEventBranch (TTree *tree, const TString &branchname, T &event, Int_t bufsize=10000000)
 
- 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_tFindFile (const Char_t *search, TString &wfil)
 
static const Char_tGetBINDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetDATABASEFilePath ()
 
static const Char_tGetDATADIRFilePath (const Char_t *namefile="")
 
static Bool_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval)
 
static const Char_tGetDataSetEnv (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_tGetETCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetExampleFilePath (const Char_t *library, const Char_t *namefile)
 Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) More...
 
static const Char_tGetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetKVBuildDate ()
 Returns KaliVeda build date. More...
 
static const Char_tGetKVBuildDir ()
 Returns top-level directory used for build. More...
 
static const Char_tGetKVBuildTime ()
 Returns KaliVeda build time. More...
 
static const Char_tGetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More...
 
static const Char_tGetKVBuildUser ()
 Returns username of person who performed build. More...
 
static const Char_tGetKVSourceDir ()
 Returns top-level directory of source tree used for build. More...
 
static const Char_tGetKVVersion ()
 Returns KaliVeda version string. More...
 
static const Char_tGetLIBDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetListOfPlugins (const Char_t *base)
 
static const Char_tGetListOfPluginURIs (const Char_t *base)
 
static const Char_tGetPluginURI (const Char_t *base, const Char_t *plugin)
 
static void GetTempFileName (TString &base)
 
static const Char_tGetTEMPLATEDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetWORKDIRFilePath (const Char_t *namefile="")
 
static const Char_tgitBranch ()
 Returns git branch of sources. More...
 
static const Char_tgitCommit ()
 Returns last git commit of sources. More...
 
static void InitEnvironment ()
 
static bool is_gnuinstall ()
 
static Bool_t IsThisAPlugin (const TString &uri, TString &base)
 
static TPluginHandlerLoadPlugin (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_tWorkingDirectory ()
 
- 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 TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 
void MakeZombie ()
 

#include <KVTemplateEvent.h>

Inheritance diagram for KVTemplateEvent< Particle >:
Inheritance graph
[legend]

Constructor & Destructor Documentation

◆ KVTemplateEvent()

template<typename Particle >
KVTemplateEvent< Particle >::KVTemplateEvent ( Int_t  mult = 50)
inline

internal iterator used by GetNextParticle()

Definition at line 363 of file KVTemplateEvent.h.

Member Function Documentation

◆ AddParticle()

template<typename Particle >
Particle* KVTemplateEvent< Particle >::AddParticle ( )
inlinevirtual

Add a particle to the event and return a pointer to it.

All particles belong to the event and will be deleted either by the event destructor or when method Clear() is called.

Implements KVEvent.

Examples
KVEvent_iterator_example.C.

Definition at line 367 of file KVTemplateEvent.h.

◆ begin()

template<typename Particle >
Iterator KVTemplateEvent< Particle >::begin ( ) const
inline

return iterator to beginning of event

Definition at line 614 of file KVTemplateEvent.h.

◆ ChangeDefaultFrame()

template<typename Particle >
void KVTemplateEvent< Particle >::ChangeDefaultFrame ( const Char_t newdef,
const Char_t defname = "" 
)
inlinevirtual

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.

Implements KVEvent.

Definition at line 753 of file KVTemplateEvent.h.

◆ ChangeFrame()

template<typename Particle >
void KVTemplateEvent< Particle >::ChangeFrame ( const KVFrameTransform ft,
const KVString name = "" 
)
inline

Permanently change the reference frame used for particle kinematics in the event. The transformation is applied to all 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 739 of file KVTemplateEvent.h.

◆ ConditionalIterator()

template<typename Particle >
EventIterator KVTemplateEvent< Particle >::ConditionalIterator ( const KVTemplateParticleCondition< Particle > &  c)
inline

Can be used in a range-for loop to iterate over only particles which satisfy the given condition:

for(auto& n : e.ConditionalIterator( {"Z>0",[](const KVNucleus* n){ return n->GetZ()>0; }} ))
std::cout << n.GetZ() << std::endl;
#define e(i)

Definition at line 1000 of file KVTemplateEvent.h.

◆ DefineGroup() [1/2]

template<typename Particle >
void KVTemplateEvent< Particle >::DefineGroup ( const Char_t groupname,
const Char_t from = "" 
)
inline

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 689 of file KVTemplateEvent.h.

◆ DefineGroup() [2/2]

template<typename Particle >
void KVTemplateEvent< Particle >::DefineGroup ( const Char_t groupname,
KVTemplateParticleCondition< Particle > *  cond,
const Char_t from = "" 
)
inline

allow to affiliate a group name to particles of the event selected according to cond.

if "from" is not null, a test of previously stored group name such as "OK" is checked

Definition at line 700 of file KVTemplateEvent.h.

◆ end()

template<typename Particle >
Iterator KVTemplateEvent< Particle >::end ( ) const
inline

return iterator to end of event (a nullptr)

Definition at line 619 of file KVTemplateEvent.h.

◆ FillHisto() [1/2]

template<typename Particle >
void KVTemplateEvent< Particle >::FillHisto ( TH1 h,
const Char_t Nucleus_method,
const Char_t method_prototype,
const Char_t args,
Option_t opt = "" 
)
inline

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 551 of file KVTemplateEvent.h.

◆ FillHisto() [2/2]

template<typename Particle >
void KVTemplateEvent< Particle >::FillHisto ( TH1 h,
const Char_t Nucleus_method,
Option_t opt = "" 
)
inline

Fill histogram with values of the observable given by the indicated Nucleus_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 519 of file KVTemplateEvent.h.

◆ FillIntegerList()

template<typename Particle >
template<typename U = Particle>
std::enable_if<std::is_base_of<KVNucleus, U>::value>::type KVTemplateEvent< Particle >::FillIntegerList ( KVIntegerList IL,
Option_t opt 
)
inline

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 780 of file KVTemplateEvent.h.

◆ get_channel_qvalue() [1/2]

template<typename Particle >
template<typename U = Particle>
std::enable_if<std::is_base_of<KVNucleus, U>::value, Double_t>::type KVTemplateEvent< Particle >::get_channel_qvalue ( ) const
inline

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 818 of file KVTemplateEvent.h.

◆ get_channel_qvalue() [2/2]

template<typename Particle >
template<typename U = Particle>
std::enable_if< !std::is_base_of<KVNucleus, U>::value, Double_t >::type KVTemplateEvent< Particle >::get_channel_qvalue ( ) const
inline

for non nuclear particle types: returns 0

Definition at line 846 of file KVTemplateEvent.h.

◆ get_partition_name() [1/2]

template<typename Particle >
template<typename U = Particle>
std::enable_if<std::is_base_of<KVNucleus, U>::value, KVString>::type KVTemplateEvent< Particle >::get_partition_name ( )
inline

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 883 of file KVTemplateEvent.h.

◆ get_partition_name() [2/2]

template<typename Particle >
template<typename U = Particle>
std::enable_if< !std::is_base_of<KVNucleus, U>::value, KVString >::type KVTemplateEvent< Particle >::get_partition_name ( )
inline

for non nuclear particle species: returns empty string

Definition at line 914 of file KVTemplateEvent.h.

◆ GetChannelQValue()

template<typename Particle >
Double_t KVTemplateEvent< Particle >::GetChannelQValue ( ) const
inlinevirtual

Implements KVEvent.

Definition at line 851 of file KVTemplateEvent.h.

◆ GetGSChannelQValue()

template<typename Particle >
template<typename U = Particle>
std::enable_if<std::is_base_of<KVNucleus, U>::value, Double_t>::type KVTemplateEvent< Particle >::GetGSChannelQValue ( ) const
inline

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 857 of file KVTemplateEvent.h.

◆ GetGSMasses()

template<typename Particle >
template<typename U = Particle>
std::enable_if<std::is_base_of<KVNucleus, U>::value>::type KVTemplateEvent< Particle >::GetGSMasses ( std::vector< Double_t > &  mass)
inline

Fill vector with ground state mass of each nucleus of event (in MeV).

Definition at line 806 of file KVTemplateEvent.h.

◆ GetMasses()

template<typename Particle >
void KVTemplateEvent< Particle >::GetMasses ( std::vector< Double_t > &  mass)
inlinevirtual

Fill vector with mass of each nucleus of event (in MeV) [note: this is the mass including any excitation energy, not ground state]

Implements KVEvent.

Definition at line 794 of file KVTemplateEvent.h.

◆ GetMult()

template<typename Particle >
virtual Int_t KVTemplateEvent< Particle >::GetMult ( Option_t opt = "") const
inlinevirtual

Returns multiplicity (number of particles) in event.

Parameters
[in]optoptional argument which may limit multiplicity to certain nuclei:
  • opt="" (default): all nuclei of event are counted
  • opt="OK": only nuclei for which KVNucleus::IsOK() returns true are counted
  • opt="group": only nuclei belonging to given group are counted
Note
Any value given for opt is case-insensitive

Reimplemented from KVEvent.

Definition at line 398 of file KVTemplateEvent.h.

◆ GetMultiplicities()

template<typename Particle >
void KVTemplateEvent< Particle >::GetMultiplicities ( Int_t  mult[],
const TString species,
Option_t opt = "" 
)
inline

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 425 of file KVTemplateEvent.h.

◆ GetMultiplicity()

template<typename Particle >
Int_t KVTemplateEvent< Particle >::GetMultiplicity ( Int_t  Z,
Int_t  A = 0,
Option_t opt = "" 
)
inline

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 414 of file KVTemplateEvent.h.

◆ GetNextParticle()

template<typename Particle >
Particle* KVTemplateEvent< Particle >::GetNextParticle ( Option_t opt = "") const
inlinevirtual

Use this method to iterate over the list of nuclei in the event After the last particle GetNextNucleus() 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 nuclei whose KVNucleus::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 ResetGetNextNucleus() before continuing.

If you interrupt an iteration before the end, then start another iteration without calling ResetGetNextNucleus(), even if you change the argument of the call to GetNextNucleus(), 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 Iterator KVTemplateEvent::EventIterator

continue iteration

start new iteration

Implements KVEvent.

Definition at line 625 of file KVTemplateEvent.h.

◆ GetNextParticleIterator()

template<typename Particle >
Iterator KVTemplateEvent< Particle >::GetNextParticleIterator ( Option_t opt) const
inline

Provide correct iterator using same options as for GetNextParticle() method:

  • if opt="" (default) => iterator over all particles
  • if opt="ok"/"OK" => iterator for all "OK" particles
  • if opt!="" && opt!="ok"/"OK" => iterator for all particles in group with name given by opt (case-insensitive)

Definition at line 982 of file KVTemplateEvent.h.

◆ GetParticle() [1/2]

template<typename Particle >
Particle* KVTemplateEvent< Particle >::GetParticle ( const Char_t group_name) const
inline

Find first particle in event belonging to group with name "group_name"

Definition at line 604 of file KVTemplateEvent.h.

◆ GetParticle() [2/2]

template<typename Particle >
Particle* KVTemplateEvent< Particle >::GetParticle ( Int_t  npart) const
inlinevirtual

Access to event member with index npart (1<=npart<=GetMult() : error if out of bounds)

Implements KVEvent.

Definition at line 386 of file KVTemplateEvent.h.

◆ GetParticleWithName()

template<typename Particle >
Particle* KVTemplateEvent< Particle >::GetParticleWithName ( const Char_t name) const
inline

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 596 of file KVTemplateEvent.h.

◆ GetPartitionName()

template<typename Particle >
KVString KVTemplateEvent< Particle >::GetPartitionName ( )
inlinevirtual

Implements KVEvent.

Definition at line 920 of file KVTemplateEvent.h.

◆ GetSum() [1/2]

template<typename Particle >
Double_t KVTemplateEvent< Particle >::GetSum ( const Char_t Nucleus_method,
const Char_t method_prototype,
const Char_t args,
Option_t opt = "" 
)
inline

Returns sum over particles of the observable given by the indicated Nucleus_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 484 of file KVTemplateEvent.h.

◆ GetSum() [2/2]

template<typename Particle >
Double_t KVTemplateEvent< Particle >::GetSum ( const Char_t Nucleus_method,
Option_t opt = "" 
)
inlinevirtual

Returns sum over particles of the observable given by the indicated Nucleus_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.

Implements KVEvent.

Definition at line 448 of file KVTemplateEvent.h.

◆ ls()

template<typename Particle >
virtual void KVTemplateEvent< Particle >::ls ( Option_t t = "") const
inlinevirtual

Reimplemented from TNamed.

Reimplemented in KVReconstructedEvent.

Definition at line 592 of file KVTemplateEvent.h.

◆ Print()

template<typename Particle >
virtual void KVTemplateEvent< Particle >::Print ( Option_t t = "") const
inlinevirtual

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 582 of file KVTemplateEvent.h.

◆ ResetEnergies()

template<typename Particle >
void KVTemplateEvent< Particle >::ResetEnergies ( )
inline

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 674 of file KVTemplateEvent.h.

◆ ResetGetNextParticle()

template<typename Particle >
void KVTemplateEvent< Particle >::ResetGetNextParticle ( ) const
inlinevirtual

Reset iteration over event particles so that next call to GetNextParticle will begin a new iteration (possibly with different criteria).

Implements KVEvent.

Definition at line 665 of file KVTemplateEvent.h.

◆ SetFrame() [1/2]

template<typename Particle >
void KVTemplateEvent< Particle >::SetFrame ( const Char_t frame,
const KVFrameTransform ft 
)
inlinevirtual

Define a Lorentz-boosted and/or rotated frame for all 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()).

Implements KVEvent.

Definition at line 711 of file KVTemplateEvent.h.

◆ SetFrame() [2/2]

template<typename Particle >
void KVTemplateEvent< Particle >::SetFrame ( const Char_t newframe,
const Char_t oldframe,
const KVFrameTransform ft 
)
inlinevirtual

Define a Lorentz-boosted frame "newframe" for all 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");

Implements KVEvent.

Definition at line 723 of file KVTemplateEvent.h.

◆ SetFrameName()

template<typename Particle >
void KVTemplateEvent< Particle >::SetFrameName ( const KVString name)
inlinevirtual

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"

Implements KVEvent.

Definition at line 925 of file KVTemplateEvent.h.

◆ UpdateAllFrames()

template<typename Particle >
void KVTemplateEvent< Particle >::UpdateAllFrames ( )
inline

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 766 of file KVTemplateEvent.h.

Member Data Documentation

◆ fIter

template<typename Particle >
Iterator KVTemplateEvent< Particle >::fIter
mutableprotected

Definition at line 360 of file KVTemplateEvent.h.


The documentation for this class was generated from the following file: