Helper Classes
File HepMC_helper - interface IMChelper
This file contains a set of function objects within the HepMC_helper
name space.
The classes contain the function operator, which takes HepMC::particle*
as an arguement.
The classes return a boolean value, and can be used as particle selectors.
They are of particular use with the STL functions, and the HepMC copy_if
function.
Class MChelperWrapper
Because the STL functions will not take a virtual class as a formal
parameter, MChelperWrapper has been provided.
This is a concrete class that takes
a IMChelper* in its constuctor.
As it is a concrete class, it can be
used with the STL functions. It delegates its functionality to
the IMChelper class it contains.
Class NCutter
To aid in building up complex HepMC_helper functions from simple components,
the HepMC_helper class NCutter has been provided.
This maintains a list of HepMC_helper functions, and applies each one to the HepMC::Particle
passed to function operator, when this operator is called.
File FunctionObjects - interface IKinematic
This file contains function Objects which are in the SortAttribute and
PartitionCondition name spaces.
A class SimpleKinematic converts from HepMC::Particle to IKinematic
thus allowing access also
for HepMC::Particles to the functionality described below.
These provide function operators to sort objects through the IKinematic
interface.
The sorting can be done by phi,eta,
pt, et,
mt, delta phi,
delta eta, delta R,
where the delta functions have a
reference value given by an IKinematic.
The partition conditions are above or below threshold values for delta R,
delta Et and delta pt, where these functions give the difference
with respect to a reference IKinematic.
Class TesIO
This helper class encapsulates the functionality needed to read or write
ContainedObjects,
or containers of ContainedObjects, from or to the TES.
The class provides a getMC function, which can be passed an object of type
IMChelper*, thus allowing a flexible choice of which HepMC particles
to process.