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

mMuiEvalO Class Reference

#include <mMuiEvalO.h>

List of all members.

Public Methods

 mMuiEvalO ()
virtual ~mMuiEvalO ()
virtual PHBoolean event (PHCompositeNode *)

Private Methods

void set_interface_ptrs (PHCompositeNode *top_node)
void evaluate ()
void associate_mchit ()
void associate_mctrk ()
void fill_road_eval (TMuiRoadMapO::pointer, TMutMCTrkMap::pointer, TMuiEvalMap::pointer)
std::pair< UShort_t, UShort_t > get_true_hits (TMuiRoadMapO::pointer, TMutMCTrkMap::pointer)
UShort_t get_n_maskhit (TMutMCTrkMap::pointer)
void fill_eval_res (TMuiRoadMapO::pointer, TMutMCTrkMap::pointer, TMuiEvalMap::pointer)

Private Attributes

const mMuiEvalOPar_mod_par
TMuiHitMapO_hit_map
TMuiClusterMapO_cluster_map
TMuiRoadMapO_road_map
TMuiEvalMap_eval_map
TMutMCTrkMap * _mctrk_map
PHTimeServer::timer _timer
 Timer. More...


Constructor & Destructor Documentation

mMuiEvalO  
 

constructor

Definition at line 21 of file mMuiEvalO.cxx.

00021                     :
00022   _timer( PHTimeServer::get()->insert_new( "mMuiEvalO" ) )
00023 {
00024   name = "mMuiEvalO";
00025   MUTOO::TRACE("initializing module " + std::string(name.getString()));
00026 }

~mMuiEvalO   [virtual]
 

destructor

Definition at line 29 of file mMuiEvalO.cxx.

00029 {;}


Member Function Documentation

void associate_mchit   [private]
 

Definition at line 166 of file mMuiEvalO.cxx.

References _cluster_map.

Referenced by event.

00167 {
00168   // TMuiMCHits are associated with TMuiHit objects after running the 
00169   // mMuiResponse module.  It is convienient here to associate TMuiMCHit's 
00170   // with TMuiClusters since these are associated with TMuiRoad objects and 
00171   // are used in the reconstruction.
00172   // So here we loop over TMuiCluster objects -- trace through their 
00173   // association tree until we get to the underlying TMuiMCHit and make 
00174   // the association between TMuiMCHit and TMuiCluster explicit.
00175   //
00176   
00177   TMuiClusterMapO::iterator cluster_iter = _cluster_map->range();
00178   while(TMuiClusterMapO::pointer cluster_ptr = cluster_iter.next()) {
00179     //
00180     TMuiHitMapO::key_iterator hit_iter = cluster_ptr->get()->get_associated<TMuiHitO>();
00181     if(!hit_iter.at_end()){
00182       TMuiHitMapO::pointer hit_ptr = hit_iter.current();
00183       //
00184       TMuiMCHitMapO::key_iterator mc_hit_iter = hit_ptr->get()->get_associated<TMuiMCHitO>();
00185       while(TMuiMCHitMapO::pointer mc_hit_ptr = mc_hit_iter.next()){
00186         // Promote the association (TMuiMCHit -- TMuiCluster)
00187         //
00188         PHKey::associate(mc_hit_ptr,cluster_ptr);
00189       }
00190     }
00191   }
00192   return;
00193 }

void associate_mctrk   [private]
 

Definition at line 196 of file mMuiEvalO.cxx.

References _mctrk_map, and _road_map.

Referenced by event.

00197 {
00198   typedef std::pair<int, int> roadid_pair;
00199   typedef std::vector<roadid_pair> roadid_list;
00200   
00201   // Get iterator to all TMuiRoad's in map
00202   //
00203   TMuiRoadMapO::iterator road_iter = _road_map->range();
00204   
00205   // Loop over TMuiRoads [
00206   //  Find associated TMuiClusters
00207   //  Loop over all the associated TMuiClusters [
00208   //   Find associated TMuiMCHits
00209   //   Loop over all the associated TMuiMCHits [
00210   //    Find associated TMutMCTrks
00211   //    Select the most contributed MC track to the track.
00212   //   ]
00213   //  ]
00214   // 
00215   //  Associate this TMutMCTrk with the TMuiRoad.  
00216   // ]
00217 
00218   while(TMuiRoadMapO::pointer road_ptr = road_iter.next()){
00219     TMuiClusterMapO::const_key_iterator cluster_iter = 
00220       road_ptr->get()->get_associated<TMuiClusterO>();
00221 
00222     // Container for the pointers of  all the MC tracks which has 
00223     // contributed at least a MC hit to the reconstructed track, 
00224     // this container is a vector of pairs.
00225     // In each pair, the first
00226     // element is an int recording how many MC hits this MC track has contributed to the track
00227     // and the the second is the pointer to the MC track
00228     //
00229     roadid_list road_counter;
00230     while(TMuiClusterMapO::const_pointer cluster_ptr = cluster_iter.next()) {
00231 
00232       TMuiMCHitMapO::const_key_iterator mc_hit_iter = 
00233         cluster_ptr->get()->get_associated<TMuiMCHitO>();
00234 
00235       while(TMuiMCHitMapO::const_pointer mc_hit_ptr = mc_hit_iter.next()){
00236 
00237         TMutMCTrkMap::key_iterator mc_trk_iter = 
00238           mc_hit_ptr->get()->get_associated<TMutMCTrk>();
00239 
00240         while(TMutMCTrkMap::pointer mc_trk_ptr=mc_trk_iter.next()){
00241           bool already_in = false;
00242           roadid_list::iterator list_iter = road_counter.begin();
00243 
00244           // Loop over all the pairs, matching the mc track pointer with 
00245           // this mc tracker
00246           // IF find the matching, pair.first + 1 
00247           // else make a new pair and push it back into the vector
00248           //
00249           for(; list_iter!=road_counter.end(); ++list_iter) {
00250             
00251             if(list_iter->second==(mc_trk_ptr->get()->get_track_id())){
00252               list_iter->first=list_iter->first+1;
00253               already_in=true;
00254             }
00255           } 
00256           if(already_in==false) {
00257             road_counter.push_back(std::make_pair(1, 
00258                                    mc_trk_ptr->get()->get_track_id()));
00259           }
00260         }
00261       }
00262     }
00263     // Search for the primary contributor to the track, and 
00264     // associate them together.
00265     //
00266     int max_hit =0;
00267     int max_track_id =0;
00268     roadid_list::iterator list_iter = road_counter.begin();
00269     for(; list_iter!=road_counter.end(); ++list_iter) {
00270 
00271       if(list_iter->first>max_hit) {
00272         max_track_id = list_iter->second;
00273         max_hit = list_iter->first;
00274       }
00275     }
00276     TMutMCTrkMap::iterator mc_trk_iter = _mctrk_map->range();
00277     while(TMutMCTrkMap::pointer mc_trk_ptr =  mc_trk_iter.next()){
00278 
00279       if((mc_trk_ptr->get()->get_track_id())==max_track_id) {
00280         PHKey::associate(mc_trk_ptr, road_ptr);
00281       }
00282     }
00283   }
00284   return;
00285 }

void evaluate   [private]
 

fill the eval_map

Definition at line 114 of file mMuiEvalO.cxx.

References _eval_map, _mctrk_map, fill_eval_res, fill_road_eval, and TMuiEvalMap::insert_new.

Referenced by event.

00115 {
00116   // Loop over all the MC tracks [
00117   //   Insert a new eval object to eval map for each road. 
00118   //   Find associated found roads.
00119   //   If no associated road found, fill one eval object with created hits,etc.
00120   //   If associated roads found:
00121   //     Fill TMuiRoadEval field in TMuiEval object for each associated track. 
00122   //     Fill TMuiEvalRes list in TMuiEval object.
00123   //   Associate TMuiEval with TMuiRoad
00124   // ]
00125   
00126   TMutMCTrkMap::iterator mc_trk_iter = _mctrk_map->range();
00127   while(TMutMCTrkMap::pointer mc_trk_ptr = mc_trk_iter.next()){
00128 
00129     TMuiMCHitMapO::key_iterator mc_hit_iter = 
00130       mc_trk_ptr->get()->get_associated<TMuiMCHitO>();
00131     
00132     TMuiRoadMapO::key_iterator road_iter = 
00133       mc_trk_ptr->get()->get_associated<TMuiRoadO>();
00134     
00135     // If no found track associated with this MC track, 
00136     // fill one eval entry (anyway) with not so much eval info..
00137     //
00138     if (!road_iter.count()){
00139       TMuiEvalMap::iterator eval_iter = 
00140         _eval_map->insert_new(mc_trk_ptr->get()->get_arm());
00141       fill_road_eval(0, mc_trk_ptr, eval_iter.current());
00142       PHKey::associate(mc_trk_ptr, eval_iter.current());
00143     }
00144     
00145     // Fill the TMuiRoadEval object contained in the TMuiEval object
00146     //
00147     while(TMuiRoadMapO::pointer road_ptr = road_iter.next()){
00148       TMuiEvalMap::iterator eval_iter = 
00149         _eval_map->insert_new(mc_trk_ptr->get()->get_arm());
00150       fill_road_eval(road_ptr, mc_trk_ptr, eval_iter.current());
00151 
00152       // Fill the TMuiEvalRes list contained in the TMuiEval object
00153       //
00154       fill_eval_res(road_ptr, mc_trk_ptr, eval_iter.current());
00155       
00156       // Associate the TMuiEval object with the TMuiRoad
00157       //
00158       PHKey::associate(road_ptr,eval_iter.current());
00159       PHKey::associate(mc_trk_ptr,eval_iter.current());
00160     }
00161   }
00162   return;
00163 }

PHBoolean event PHCompositeNode *    top_node [virtual]
 

Event method

Definition at line 33 of file mMuiEvalO.cxx.

References _eval_map, _mctrk_map, _mod_par, _timer, associate_mchit, associate_mctrk, evaluate, mMuiEvalOPar::get_pr_mode, TMuiParBase::get_verbosity, mMuiEvalOPar::NORMAL, MUIOO::PRINT, set_interface_ptrs, and MUIOO::TRACE.

00034 {  
00035   _timer.get()->restart(); 
00036 
00037   try {
00038     // Reset IOC pointers
00039     //
00040     set_interface_ptrs(top_node);
00041 
00042     // Unless we ran perfect pattern recogniton promote
00043     // the TMuiMCHit associations to TMuiCluster and 
00044     // determine the principal contributor to the 
00045     // TMutMCTrk
00046     //
00047     if(_mod_par->get_pr_mode() == mMuiEvalOPar::NORMAL) {
00048       // associate TMuiMCHits with TMuiCluster
00049       //
00050       associate_mchit();      
00051       if( _mod_par->get_verbosity() >= MUIOO::MAX ) {
00052         MUIOO::PRINT(std::cout, " After associate_mc_hit");
00053         _mctrk_map->print();
00054       }
00055 
00056       // associate TMutMCTrk with TMuiRoad
00057       //
00058       associate_mctrk();
00059       if( _mod_par->get_verbosity() >= MUIOO::MAX ) {
00060         MUIOO::PRINT(std::cout, " After associate_mc_trk");
00061         _mctrk_map->print();
00062       }      
00063     }
00064 
00065     // Do the evaluation
00066     //
00067     evaluate();
00068     if( _mod_par->get_verbosity() >= MUIOO::MAX ) {
00069       MUIOO::PRINT(std::cout, " After evaluate");
00070       _mctrk_map->print();
00071     }
00072     
00073   } 
00074   catch(std::exception& e) {
00075     MUIOO::TRACE(e.what());
00076     return False;
00077   }
00078   
00079   _timer.get()->stop();
00080   if(_mod_par->get_verbosity() >= MUIOO::SOME) _timer.get()->print();
00081   // If verbose dump the contents of the eval map
00082   //
00083   if(_mod_par->get_verbosity() >= MUIOO::ALOT) _eval_map->print();
00084   
00085   return True;
00086 }

void fill_eval_res TMuiRoadMapO::pointer   ,
TMutMCTrkMap::pointer   ,
TMuiEvalMap::pointer   
[private]
 

Definition at line 423 of file mMuiEvalO.cxx.

References TMuiEvalRes::get_px_true, TMuiEvalRes::get_py_true, TMuiEvalRes::get_pz_true, MUIOO::pt, TMuiEvalRes::set_arm, TMuiEvalRes::set_orientation, TMuiEvalRes::set_panel, TMuiEvalRes::set_phi_true, TMuiEvalRes::set_plane, TMuiEvalRes::set_px_true, TMuiEvalRes::set_py_true, TMuiEvalRes::set_pz_true, TMuiEvalRes::set_theta_true, TMuiEvalRes::set_x_true, TMuiEvalRes::set_y_true, and TMuiEvalRes::set_z_true.

Referenced by evaluate.

00426 {
00427   // TBI-> In Working Progress.
00428   // Loop over all the TMuiClusterO which are associated with TMutTrk [
00429   //   Pickup the TMutMChit which is associated with TMuiClusterO.
00430   //   Define a buffer for TMuiEvalRes object.
00431   //   Fill the fields of TMuiEvalRes object.
00432   // ]
00433   //
00434 
00435   TMuiClusterMapO::const_key_iterator cluster_iter = 
00436     road_ptr->get()->get_associated<TMuiClusterO>();
00437 
00438   while(TMuiClusterMapO::const_pointer cluster_ptr=cluster_iter.next()){
00439     
00440     TMuiMCHitMapO::const_key_iterator mchit_iter = cluster_ptr->get()->get_associated<TMuiMCHitO>();
00441 
00442     if(mchit_iter.count()<1) {
00443       continue;
00444     }
00445 
00446     while(TMuiMCHitMapO::const_pointer mchit_ptr = mchit_iter.next()){
00447       TMuiEvalRes eval_res;
00448       
00450       eval_res.set_arm(cluster_ptr->get()->get_arm());
00451       eval_res.set_plane(cluster_ptr->get()->get_plane());
00452       eval_res.set_panel(cluster_ptr->get()->get_panel());
00453       eval_res.set_orientation(cluster_ptr->get()->get_orientation());
00454 
00456       eval_res.set_x_true(mchit_ptr->get()->get_x());
00457       eval_res.set_y_true(mchit_ptr->get()->get_y());
00458       eval_res.set_z_true(mchit_ptr->get()->get_z());
00459       eval_res.set_px_true(mchit_ptr->get()->get_px());
00460       eval_res.set_py_true(mchit_ptr->get()->get_py());
00461       eval_res.set_pz_true(mchit_ptr->get()->get_pz());
00462       Float_t pt   = sqrt((eval_res.get_px_true())*(eval_res.get_px_true())+
00463                           (eval_res.get_py_true())*(eval_res.get_py_true()));
00464       Float_t ptot = sqrt((eval_res.get_px_true())*(eval_res.get_px_true())+
00465                           (eval_res.get_py_true())*(eval_res.get_py_true())+
00466                           (eval_res.get_pz_true())*(eval_res.get_pz_true()));
00467 
00468       if(pt==0){
00469         eval_res.set_theta_true(0.0);
00470         eval_res.set_phi_true(-999.0);
00471       }
00472       else{
00473         eval_res.set_theta_true(acos((eval_res.get_pz_true())/ptot));
00474         // We set phi angle range from -PI to PI. If py < 0, we give phi a
00475         // value less than 0.
00476         if(eval_res.get_py_true()>0){
00477           eval_res.set_phi_true(acos((eval_res.get_px_true())/pt));
00478         }
00479         else{
00480           eval_res.set_phi_true(-1.0*acos((eval_res.get_px_true())/pt));
00481         }
00482       }          
00483       eval_ptr->get()->push_eval_res_list(eval_res);
00484     }
00485   }                     
00486 }

void fill_road_eval TMuiRoadMapO::pointer   ,
TMutMCTrkMap::pointer   ,
TMuiEvalMap::pointer   
[private]
 

Definition at line 288 of file mMuiEvalO.cxx.

References get_n_maskhit, get_true_hits, TMuiRoadEval::set_n_masked_hits, TMuiRoadEval::set_n_reco_ghost_hits, TMuiRoadEval::set_n_reco_true_hits, TMuiRoadEval::set_n_true_hits, TMuiRoadEval::set_ptot_true_vx, TMuiRoadEval::set_px_true_vx, TMuiRoadEval::set_py_true_vx, and TMuiRoadEval::set_pz_true_vx.

Referenced by evaluate.

00291 {
00292   // Buffer for TMuiRoadEval field in TMuiEval class.
00293   //
00294   TMuiRoadEval road_eval;
00295   
00296   // Total hits of MC track and what planes are hit. 
00297   //
00298   UShort_t nhits_mc=0;
00299 
00300   // Loop over TMuiMCHitO associated with TMutMCTrk
00301   //  
00302   TMuiMCHitMapO::key_iterator mc_hit_iter = mctrk_ptr->get()->get_associated<TMuiMCHitO>();      
00303   while(TMuiMCHitMapO::pointer mc_hit_ptr = mc_hit_iter.next()){    
00304     
00305     UShort_t plane = mc_hit_ptr->get()->get_plane();            
00306     // Loop over assoicated TMuiClusterO
00307     //
00308     TMuiClusterMapO::key_iterator cluster_iter = mc_hit_ptr->get()->get_associated<TMuiClusterO>();     
00309     while(TMuiClusterMapO::pointer cluster_ptr = cluster_iter.next()){  
00310       // Bit pack cluster pattern associated with this road
00311       //
00312       nhits_mc |= 1 << (plane*MUIOO::MAX_ORIENTATION + cluster_ptr->get()->get_orientation());
00313     }
00314   }
00315   
00316   // Set hit true hit mask
00317   //
00318   road_eval.set_n_true_hits(nhits_mc);
00319   
00320   // Total masked hit for MC track.
00321   //
00322   UShort_t nhits_mask = get_n_maskhit(mctrk_ptr);
00323   road_eval.set_n_masked_hits(nhits_mask);
00324 
00325   // Number of hits in a TMuiRoadO which are from primary contributor.
00326   //
00327   if (road_ptr) {
00328     // get_true_hits returns the true hit pattern and the ghost hit pattern
00329     // as a bit mask
00330     //
00331     std::pair<UShort_t, UShort_t> masks = get_true_hits(road_ptr,mctrk_ptr);
00332     road_eval.set_n_reco_true_hits(masks.first);    
00333     road_eval.set_n_reco_ghost_hits(masks.second);    
00334   }
00335   
00336   // MC Track momentum at primary vertex
00337   //
00338   road_eval.set_px_true_vx(mctrk_ptr->get()->get_px_orig());
00339   road_eval.set_py_true_vx(mctrk_ptr->get()->get_py_orig());
00340   road_eval.set_pz_true_vx(mctrk_ptr->get()->get_pz_orig());
00341   road_eval.set_ptot_true_vx(mctrk_ptr->get()->get_ptot_orig());
00342   
00343   // Fill TMuiRoadEval field of TMuiEval object.
00344   // 
00345   eval_ptr->get()->set_road_eval(road_eval);
00346 
00347   return;  
00348 }

UShort_t get_n_maskhit TMutMCTrkMap::pointer    [private]
 

Definition at line 391 of file mMuiEvalO.cxx.

References TMuiMCTwoPack::MASKED, and TMuiMCHitO::twopack_list.

Referenced by fill_road_eval.

00392 {
00393   // Loop over associated TMuiMCHitO
00394   //  Loop over twopack list
00395   //   if two pack status is MASKED 
00396   //     set the bit for current plane in mask
00397   //   ]
00398   //  ]
00399   // ]
00400   UShort_t mask=0;
00401   typedef TMuiMCHitO::twopack_list twopack_list;
00402   typedef TMuiMCHitO::twopack_list::iterator twopack_iterator;
00403   
00404   TMuiMCHitMapO::const_key_iterator mchit_iter = 
00405     mctrk_ptr->get()->get_associated<TMuiMCHitO>();
00406   while(TMuiMCHitMapO::const_pointer mchit_ptr = mchit_iter.next()){
00407 
00408     // Get an iterator for list of TMuiMCTwoPack from TMuiMCHit
00409     //
00410     twopack_list* twopacks = mchit_ptr->get()->get_mutable_twopack_list();
00411     twopack_iterator twopack_iter = twopacks->begin();    
00412     for(;twopack_iter!=twopacks->end();++twopack_iter){
00413       if(twopack_iter->get_status() == TMuiMCTwoPack::MASKED) {
00414         UShort_t index = mchit_ptr->get()->get_plane()*MUIOO::MAX_ORIENTATION +
00415           twopack_iter->get_orient();
00416         mask |= 1 << index;
00417      }
00418     }
00419   }
00420   return mask;
00421 }

std::pair< UShort_t, UShort_t > get_true_hits TMuiRoadMapO::pointer   ,
TMutMCTrkMap::pointer   
[private]
 

Definition at line 351 of file mMuiEvalO.cxx.

Referenced by fill_road_eval.

00353 {
00354   // Loop for all the associated TMuiClusterO [
00355   //   Loop for all the associated TMuiMCHitO [
00356   //     If(this associated MC track has the same roadid as primary contributor) [
00357   //       n_true_hits+1;
00358   //     ]
00359   //   ]
00360   // ]
00361   // Mod:  Pack planes hit into n_true_hits rather than just recording total number of hits
00362 
00363   // Note in the below we bit pack the actual bit pattern into the word as opposed to
00364   // just keeping track of the totals.
00365   //
00366   UShort_t n_true_hits=0, n_ghost_hits=0;
00367   TMuiClusterMapO::const_key_iterator clus_iter = road_ptr->get()->get_associated<TMuiClusterO>();
00368   while(TMuiClusterMapO::const_pointer clus_ptr=clus_iter.next()){
00369 
00370     UShort_t mask = clus_ptr->get()->get_plane()*MUIOO::MAX_ORIENTATION+ clus_ptr->get()->get_orientation();
00371 
00372     // Iterator to all associated clusters
00373     //
00374     TMuiMCHitMapO::const_key_iterator mchit_iter = clus_ptr->get()->get_associated<TMuiMCHitO>();
00375 
00376     // If no associated TMuiMCHit then increment the ghost counter
00377     //
00378     if(mchit_iter.count() == 0) n_ghost_hits |= 1 << mask;
00379     while(TMuiMCHitMapO::const_pointer mchit_ptr=mchit_iter.next()){
00380       if( mchit_ptr->get()->get_track_id() == mctrk_ptr->get()->get_track_id() ) {
00381         n_true_hits |= 1<<mask;
00382       } else {
00383         n_ghost_hits |= 1<<mask;
00384       }
00385     }
00386   }
00387   return std::make_pair(n_true_hits,n_ghost_hits);
00388 }

void set_interface_ptrs PHCompositeNode *    top_node [private]
 

Reset IOC

Definition at line 90 of file mMuiEvalO.cxx.

References _cluster_map, _eval_map, _hit_map, _mctrk_map, _mod_par, and _road_map.

Referenced by event.

00091 {
00092   // module runtime parameters 
00093   //
00094   _mod_par = TMutNode<mMuiEvalOPar>::find_node(top_node,"mMuiEvalOPar");
00095   // TMuiHit IOC
00096   //
00097   _hit_map = TMutNode<TMuiHitMapO>::find_node(top_node,"TMuiHitMapO");
00098   // TMuiCluster IOC
00099   //
00100   _cluster_map = TMutNode<TMuiClusterMapO>::find_node(top_node,"TMuiClusterMapO");
00101   // TMuiRoad IOC
00102   //
00103   _road_map = TMutNode<TMuiRoadMapO>::find_node(top_node,"TMuiRoadMapO");
00104   // TMutMCTrk IOC
00105   //
00106   _mctrk_map = TMutNode<TMutMCTrkMap>::find_node(top_node,"TMutMCTrkMap");
00107   // TMuiEval IOC
00108   //
00109   _eval_map = TMutNode<TMuiEvalMap>::find_node(top_node,"TMuiEvalMap");
00110 }


Member Data Documentation

TMuiClusterMapO* _cluster_map [private]
 

Definition at line 40 of file mMuiEvalO.h.

Referenced by associate_mchit, and set_interface_ptrs.

TMuiEvalMap* _eval_map [private]
 

Definition at line 42 of file mMuiEvalO.h.

Referenced by evaluate, event, and set_interface_ptrs.

TMuiHitMapO* _hit_map [private]
 

Definition at line 39 of file mMuiEvalO.h.

Referenced by set_interface_ptrs.

TMutMCTrkMap* _mctrk_map [private]
 

Definition at line 43 of file mMuiEvalO.h.

Referenced by associate_mctrk, evaluate, event, and set_interface_ptrs.

const mMuiEvalOPar* _mod_par [private]
 

Definition at line 38 of file mMuiEvalO.h.

Referenced by event, and set_interface_ptrs.

TMuiRoadMapO* _road_map [private]
 

Definition at line 41 of file mMuiEvalO.h.

Referenced by associate_mctrk, and set_interface_ptrs.

PHTimeServer::timer _timer [private]
 

Timer.

Definition at line 46 of file mMuiEvalO.h.

Referenced by event.


The documentation for this class was generated from the following files:
MUIOO: PHENIX Muon Identifier Analysis Framework. Documentation by doxygen
Last modified: