Association Manager
Header file: IAssociationManager.h
Package: AtlfastEvent
In Atlfast, objects can have related objects - for example, Clusters
can have related objects.
The necessary condition to both being able to have related
objects, and being able to be associated
with another object is to inherit from the interface class IAssociationManager.
At present the following classes inherit from IAssociationManager:
-
ReconstructedParticle
-
Cell
-
TwoCptCell
-
Cluster
-
Track
-
Jet
-
SimpleKinematic
-
IKinematic
IAssociationManager can return associations as concrete types, or as IKinematics
for example, to ask clusters for its cells,
Cluster* cluster (......) //construct a cluster - construction
args not given here
AssociationManager iam = cluster;
Cell cell;
std::vector<const Cell*> vectorOfCells = iam->associations(cell);
To associate a track with the same cluster:
Track* track = new Track(....)
iam->add(track);
AssocTypeRecoverer
(Check Doxygen documentation or code for up to date
method names)
Header file: AssocTypeRecoverer.h
Package:
AtlfastAlgs
AssocTypeRecoverer allows you to revover ALL associations for
EVERY object in a vector:
std::vector::<Cluster*> clusters;
Cluster* c1;
// you have some clusters
clusters.push_back(c1);
// put them in a vector
AssocTypeRecoverer<Cluster> atr(clusters);
// to get all associations that can be IKinematics as IKineamtics...
std::vector<IKinematic*> iks = atr.vectorOfKinematics();
to get cells:
std::vector<ICell*> cells = atr.cell();
|