TypeVisitor.cxx

Go to the documentation of this file.
00001 #include "AtlfastEvent/TypeVisitor.h"
00002 
00003 #include "AtlfastEvent/ReconstructedParticle.h" 
00004 #include "AtlfastEvent/Cell.h"
00005 #include "AtlfastEvent/TwoCptCell.h"
00006 #include "AtlfastEvent/Cluster.h"
00007 #include "AtlfastEvent/KtCluster.h"
00008 #include "AtlfastEvent/Jet.h"
00009 #include "AtlfastEvent/SimpleKinematic.h"
00010 #include "AtlfastEvent/Track.h"
00011 
00012 #include <iostream>
00013 
00014 namespace Atlfast{
00015   void TypeVisitor::reset() {
00016     m_cells.clear() ;
00017     m_twoCptCells.clear() ;
00018     m_clusters.clear() ;
00019     m_jets.clear() ;
00020     m_reconstructedParticles.clear() ;
00021     m_simpleKinematics.clear() ;
00022     m_tracks.clear() ;
00023     m_iKinematics.clear() ;
00024   }
00025     
00027   void TypeVisitor::operator()(const IAOO* iaoo){iaoo->accept(this);}
00028   
00029   void TypeVisitor::process(const Cell* t){
00030     m_cells.push_back(t);
00031   }
00032   void TypeVisitor::process(const Cluster* t){m_clusters.push_back(t);}
00033   void TypeVisitor::process(const KtCluster* t){m_ktClusters.push_back(t);}
00034   void TypeVisitor::process(const Jet* t){m_jets.push_back(t);}
00035 
00036   void TypeVisitor::process(const ReconstructedParticle* t){
00037     m_reconstructedParticles.push_back(t);
00038   }
00039 
00040   void TypeVisitor::process(const SimpleKinematic* t){
00041     m_simpleKinematics.push_back(t);
00042   }
00043 
00044   void TypeVisitor::process(const Track* t){m_tracks.push_back(t);}
00045 
00046   void TypeVisitor::process(const TwoCptCell* t){
00047     m_twoCptCells.push_back(t);
00048   }
00049 
00050   vector<const Cell*>       TypeVisitor::typeVector( const Cell&)      const {
00051     return m_cells ;
00052   } 
00053   vector<const TwoCptCell*> TypeVisitor::typeVector(const TwoCptCell&) const {
00054     return m_twoCptCells ;
00055   }
00056   vector<const Cluster*>    TypeVisitor::typeVector( const Cluster&)   const {
00057     return m_clusters ;
00058   }
00059   vector<const KtCluster*>    TypeVisitor::typeVector( const KtCluster&)   const {
00060     return m_ktClusters ;
00061   }
00062   vector<const Jet*>        TypeVisitor::typeVector( const Jet&)       const {
00063     return m_jets ;
00064   }
00065   vector<const SimpleKinematic*> 
00066                 TypeVisitor::typeVector( const SimpleKinematic&)       const {
00067     return m_simpleKinematics ;
00068   }
00069   vector<const Track*>      TypeVisitor::typeVector( const Track& )    const {
00070     return m_tracks ;
00071   }
00072   vector<const ReconstructedParticle*> 
00073             TypeVisitor::typeVector( const ReconstructedParticle&)     const {
00074     return m_reconstructedParticles ;
00075   }
00076   std::vector<const IKinematic*> TypeVisitor::ikinematics() const {
00077     
00078     std::vector<const IKinematic*> iKinematics;
00079     std::copy(
00080               m_cells.begin(),             
00081               m_cells.end(),   
00082               back_inserter(iKinematics)
00083               );
00084 
00085     std::copy(
00086               m_twoCptCells.begin(), 
00087               m_twoCptCells.end(),   
00088               back_inserter(iKinematics)
00089               );
00090     
00091     std::copy(
00092               m_clusters.begin(),       
00093               m_clusters.end(),   
00094               back_inserter(iKinematics)
00095               );
00096     std::copy(
00097               m_jets.begin(),               
00098               m_jets.end(),   
00099               back_inserter(iKinematics)
00100               );
00101     std::copy(
00102               m_reconstructedParticles.begin(), 
00103               m_reconstructedParticles.end(), 
00104               back_inserter(iKinematics)
00105               );
00106     std::copy(
00107               m_simpleKinematics.begin(), 
00108               m_simpleKinematics.end(), 
00109               back_inserter(iKinematics)
00110               );
00111     
00112     std::copy(
00113               m_tracks.begin(), 
00114               m_tracks.end(), 
00115               back_inserter(iKinematics)
00116               );
00117     
00118     return iKinematics;
00119   }
00120 
00121 
00122   std::vector<const I4Momentum*> TypeVisitor::i4momenta() const {    
00123 
00124     std::vector<const I4Momentum*> i4s;
00125     std::copy(
00126               m_cells.begin(),             
00127               m_cells.end(),   
00128               back_inserter(i4s)
00129               );
00130 
00131     std::copy(
00132               m_twoCptCells.begin(), 
00133               m_twoCptCells.end(),   
00134               back_inserter(i4s)
00135               );
00136     
00137     std::copy(
00138               m_clusters.begin(),       
00139               m_clusters.end(),   
00140               back_inserter(i4s)
00141               );
00142     std::copy(
00143               m_jets.begin(),               
00144               m_jets.end(),   
00145               back_inserter(i4s)
00146               );
00147     std::copy(
00148               m_reconstructedParticles.begin(), 
00149               m_reconstructedParticles.end(), 
00150               back_inserter(i4s)
00151               );
00152     std::copy(
00153               m_simpleKinematics.begin(), 
00154               m_simpleKinematics.end(), 
00155               back_inserter(i4s)
00156               );
00157     
00158     std::copy(
00159               m_tracks.begin(), 
00160               m_tracks.end(), 
00161               back_inserter(i4s)
00162               );
00163     
00164     return i4s;
00165   }
00166 }//namespace;

Generated on Fri Sep 21 13:00:10 2007 for AtlfastEvent by  doxygen 1.5.1