Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:55:23

0001 //==========================================================================
0002 //  AIDA Detector description implementation 
0003 //--------------------------------------------------------------------------
0004 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
0005 // All rights reserved.
0006 //
0007 // For the licensing terms see $DD4hepINSTALL/LICENSE.
0008 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
0009 //
0010 // Author     : M.Frank
0011 //
0012 //==========================================================================
0013 
0014 #ifndef DDG4_GEANT4DATADUMP_H
0015 #define DDG4_GEANT4DATADUMP_H
0016 
0017 // Framework include files
0018 #include <DD4hep/Printout.h>
0019 #include <DDG4/Geant4Data.h>
0020 #include <DDG4/Geant4Particle.h>
0021 
0022 // C/C++ include files
0023 #include <vector>
0024 
0025 /// Namespace for the AIDA detector description toolkit
0026 namespace dd4hep {
0027 
0028   /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
0029   namespace sim {
0030 
0031     /// Class to dump the records of the intrinsic Geant4 event model.
0032     /**
0033      *  \author  M.Frank
0034      *  \version 1.0
0035      *  \ingroup DD4HEP_SIMULATION
0036      */
0037     class Geant4DataDump  {
0038     public:
0039       typedef Geant4Particle                       Particle;
0040       typedef std::vector<Particle*>               Particles;
0041 
0042       typedef SimpleTracker::Hit                   TrackerHit;
0043       typedef std::vector<SimpleTracker::Hit*>     TrackerHits;
0044 
0045       typedef SimpleCalorimeter::Hit               CalorimeterHit;
0046       typedef std::vector<SimpleCalorimeter::Hit*> CalorimeterHits;
0047 
0048     protected:
0049       /// Tag variable
0050       std::string m_tag;
0051 
0052     public:
0053       /// Default constructor
0054       Geant4DataDump(const std::string& tag);
0055       /// Standard destructor
0056       virtual ~Geant4DataDump();
0057 #if !(defined(G__DICTIONARY) || defined(__CLANG__) || defined(__CINT__) || defined(__MAKECINT__))
0058       /// Print a single particle to the output logging using the specified print level
0059       void print(PrintLevel level, Geant4ParticleHandle p)  const;
0060       /// Print a single particle to the output logging using the specified print level
0061       void print(PrintLevel level, int key, Geant4ParticleHandle p)  const;
0062 #endif
0063       /// Print the particle map to the output logging using the specified print level
0064       void print(PrintLevel level, const Geant4ParticleMap* parts)  const;
0065 
0066       /// Print the particle container to the output logging using the specified print level
0067       void print(PrintLevel level, const std::string& container, const Particles* parts)  const;
0068 
0069       /// Print a single tracker hit to the output logging using the specified print level
0070       void print(PrintLevel level, const TrackerHit* h)  const;
0071       /// Print the tracker hits container to the output logging using the specified print level
0072       void print(PrintLevel level, const std::string& container, const TrackerHits* hits) const;
0073 
0074       /// Print a calorimeter tracker hit to the output logging using the specified print level
0075       void print(PrintLevel level, const CalorimeterHit* h)  const;
0076       /// Print the calorimeter hits container to the output logging using the specified print level
0077       void print(PrintLevel level, const std::string& container, const CalorimeterHits* hits)  const;
0078 
0079     };
0080   }    // End namespace sim
0081 }      // End namespace dd4hep
0082 
0083 #endif // DDG4_GEANT4DATADUMP_H