00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef ATLFAST_ASSOCIATORHELPER_H
00011 #define ATLFAST_ASSOCIATORHELPER_H
00012
00013 #include "AtlfastCode/Association.h"
00014 #include "AtlfastCode/Cluster.h"
00015 #include "AtlfastCode/ClusterCollection.h"
00016 #include "AtlfastCode/ReconstructedParticle.h"
00017 #include "AtlfastCode/Fallible.h"
00018
00019 namespace Atlfast{
00027 typedef list<ReconstructedParticle*> RpList;
00028 typedef list<ReconstructedParticle*>::iterator RpI;
00029 typedef list<ReconstructedParticle*>::const_iterator RpConstI;
00030 class AssociatorHelper {
00031 public:
00032 AssociatorHelper(){}
00036 std::list<Cluster*> oneToOne(std::list<ReconstructedParticle*>,
00037 std::list<Cluster*>,
00038 double) const;
00042 std::list<Cluster*> manyToOne(std::list<ReconstructedParticle*>,
00043 std::list<Cluster*>,
00044 double) const;
00045 private:
00046 std::list<Cluster*> match(std::list<ReconstructedParticle*>,
00047 std::list<Cluster*>,
00048 double,
00049 bool) const;
00050 Fallible<Association> closest( const ClusListI, RpList&,
00051 const double) const;
00052
00053 };
00054 }
00055 #endif
00056
00057
00058
00059
00060
00061
00062
00063