00001 #ifndef StiMapUtilities_h
00002 #define StiMapUtilities_h
00003
00004 #include <string>
00005 using std::string;
00006 class StiDetector;
00007 class StiHit;
00008 class StTpcHit;
00009 class StiTrackNode;
00010 template<class NodeType> class StiCompositeTreeNode;
00011
00012
00013 struct HitMapKey {
00014 bool operator==(const HitMapKey&) const;
00015 double refangle;
00016 double position;
00017 };
00018
00019
00020 struct MapKeyLessThan{
00021 MapKeyLessThan() : reftolerance(.01), postolerance(.01) {};
00022 bool operator() (const HitMapKey&, const HitMapKey&) const;
00023 double reftolerance;
00024 double postolerance;
00025 };
00026
00027
00028 struct NameMapKey {
00029 NameMapKey(const string& str){ name = str; }
00030 NameMapKey(){}
00031 bool operator==(const NameMapKey&) const;
00032 bool operator<(const NameMapKey&) const;
00033 string name;
00034 };
00035
00036
00037 struct StiDetectorNodePositionLessThan
00038 {
00039 bool operator() (const StiCompositeTreeNode<StiDetector> *, const StiCompositeTreeNode<StiDetector> *) const;
00040 };
00041
00042 struct SetHitUsed
00043 {
00044 void operator() (StiTrackNode&);
00045 };
00046
00047 #endif
00048
00049