Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

mMuiFindRoad.h

Go to the documentation of this file.
00001 #ifndef __MMUIFINDROAD_HH__
00002 #define __MMUIFINDROAD_HH__
00003 
00004 #include<PHModule.h>
00005 #include<PHTimeServer.h>
00006 #include<PHPoint.h>
00007 #include<TMutFitPar.hh>
00008 #include<vector>
00009 #include<TMuiRoadMapO.h>
00010 #include<TMuiClusterMapO.h>
00011 #include<mMuiFindRoadPar.h>
00012 #include<TMuiRoadFinder.h>
00013 #include<boost/array.hpp>
00014 
00022 
00023 
00049 class mMuiFindRoad : public PHModule
00050 {
00051  public: 
00052   
00053   mMuiFindRoad(); 
00054   ~mMuiFindRoad(); 
00055   virtual PHBoolean event(PHCompositeNode*);
00056   
00057  private:  
00058   
00059   // private methods
00060   //
00061   void set_interface_ptrs(PHCompositeNode* top_node);
00062   
00063   void find_roads();
00064 
00065   void associate_clusters();
00066   
00067   void associate_cluster(TMuiRoadMapO::pointer road_ptr,
00068                          TMuiClusterMapO::pointer in_cluster_ptr,
00069                          const PHPoint& road_point,
00070                          double in_distance);
00071 
00072   void fit_roads();
00073 
00074   void set_road_parameters();
00075 
00076   void apply_road_cuts();
00077   
00078   void eliminate_duplicates();
00079   
00080   bool cluster_list_equal(const TMuiRoadMapO::pointer road1,
00081                           const TMuiRoadMapO::pointer road2);
00082   
00083   // binary predicate for sorting container of shared pointers to 
00084   // keyed objects
00085   //
00086   struct less_ftor
00087   {
00088     bool operator()(const TMuiClusterMapO::pointer& val1, const TMuiClusterMapO::pointer& val2){
00089       return val1->get()->get_key().get_obj_key() < val2->get()->get_key().get_obj_key();
00090     }
00091   };
00092   
00093   struct equal_ftor
00094   {
00095     bool operator()(const TMuiClusterMapO::pointer& val1, const TMuiClusterMapO::pointer& val2){
00096       return val1->get()->get_key().get_obj_key() == val2->get()->get_key().get_obj_key();
00097     }
00098   };
00099   
00100   // Interface pointers
00101   //
00102   const mMuiFindRoadPar* _mod_par;           // parameter table
00103   TMuiClusterMapO* _cluster_map;             // IOC
00104   TMuiRoadMapO* _road_map;                   // IOC
00105   
00106   // Local road list
00107   //
00108   TMuiRoadFinder::road_list _roads;
00109   
00110   // Timer
00111   //
00112   PHTimeServer::timer _timer;
00113 };
00114 
00115 #endif /* __MMUIFINDROAD_HH__ */
00116 
00117 
00118 

MUIOO: PHENIX Muon Identifier Analysis Framework. Documentation by doxygen
Last modified: