FinalStateParticleDumper.h

Go to the documentation of this file.
00001 // ================================================
00002 // FinalStateParticleDumper class description
00003 // ================================================
00004 //
00005 // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT
00006 //
00007 //
00008 // This version....
00009 //
00010 //
00011 // Namespace Atlfast::
00012 //
00013 // class: FinalStateParticleDumper
00014 //
00015 // Description: 
00016 //
00017 //  formatted output of collection of Reconstructed Particles from the TES
00018 //  for debugging purposes
00019 // ................................................................
00020 //
00021 
00022 #ifndef ATLFAST_FINALSTATERPARTICLEDUMPER_H
00023 #define ATLFAST_FINALSTATERPARTICLEDUMPER_H
00024 
00025 // STL
00026 #include <vector>
00027 #include <string>
00028 
00029 // Gaudi 
00030 #include "GaudiKernel/ISvcLocator.h"
00031 #include "GaudiKernel/IAlgorithm.h"
00032 #include "GaudiKernel/Algorithm.h"
00033 #include "GaudiKernel/MsgStream.h"
00034 #include "GaudiKernel/DataObject.h"
00035 
00036 // Other
00037 #include "CLHEP/Vector/LorentzVector.h"
00038 #include "HepMC/GenVertex.h"
00039 
00040 // Atlfast
00041 #include "AtlfastEvent/Cell.h"
00042 #include "AtlfastUtils/TesIO.h"
00043 
00044 
00045 namespace HepMC_helper{
00046   class IMCselector;
00047   class MCselectorWrapper;
00048 }
00049 
00050 namespace Atlfast {
00051   using std::string;
00052   
00058   class FinalStateParticleDumper : public Algorithm {
00059 
00060  public:
00061 
00062   //-------------------------
00063   // Constructors/Destructors
00064   //
00065   // Gaudi requires that the constructor takes certain arguments
00066   // (and passes them directly to the constructor of the base class)
00067   //-------------------------
00069   FinalStateParticleDumper( const std::string& name, ISvcLocator* pSvcLocator ) ; 
00071   virtual ~FinalStateParticleDumper();
00072 
00073 
00074   //------------------------------------------------------
00075   // Methods used by Gaudi to run the algorithm
00076   //------------------------------------------------------
00078   virtual StatusCode initialize() ;
00080   virtual StatusCode execute() ;
00082   virtual StatusCode finalize() ;
00083 
00084  
00085 
00086  private:
00088   std::string m_inputLocation ;
00089 
00091   TesIO* m_tesIO;
00092 
00094   std::string m_mcLocation;
00095 
00097   void        DumpParticle(std::string, const HepMC::GenParticle*);
00098   void        DumpFlat(std::string space,
00099                        MCparticleCollection::const_iterator ib,
00100                        MCparticleCollection::const_iterator ie);
00101   void        DumpTwoGenerations(std::string space,
00102                        MCparticleCollection::const_iterator ib,
00103                        MCparticleCollection::const_iterator ie);
00104   void        DumpTree(std::string space,
00105                        MCparticleCollection::const_iterator ib,
00106                        MCparticleCollection::const_iterator ie);
00107   void        DumpTree(std::string space,
00108                        HepMC::GenVertex::particle_iterator ib,
00109                        HepMC::GenVertex::particle_iterator ie);
00110   std::string m_selectorName;
00112   HepMC_helper::MCselectorWrapper* m_mcSelector;
00113   //-------------------------------
00114   // Default Values
00115   //-------------------------------
00116 
00117   };
00118   
00119 }  //end of namespace bracket
00120 
00121 #endif
00122 
00123 
00124 
00125 
00126 
00127 
00128 
00129 
00130 
00131 
00132 
00133 
00134 

Generated on Mon Sep 24 14:19:10 2007 for AtlfastAlgs by  doxygen 1.5.1