Back to home page

EIC code displayed by LXR

 
 

    


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

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 #ifndef DDG4_GEANT4VERTEX_H
0014 #define DDG4_GEANT4VERTEX_H
0015 
0016 // Framework include files
0017 #include <DD4hep/Memory.h>
0018 
0019 // C/C++ include files
0020 #include <set>
0021 
0022 /// Namespace for the AIDA detector description toolkit
0023 namespace dd4hep {
0024 
0025   /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
0026   namespace sim {
0027 
0028     // Forward declarations
0029     class Geant4Vertex;
0030 
0031     /// Base class to extend the basic vertex class used by DDG4 with user information
0032     class VertexExtension  {
0033     public:
0034       /// Default constructor
0035       VertexExtension() {}
0036       /// Default destructor
0037       virtual ~VertexExtension();
0038     };
0039 
0040     /// Data structure to store the MC vertex information
0041     /**
0042      * @author  M.Frank
0043      * @version 1.0
0044      */
0045     class Geant4Vertex {
0046     public:
0047       typedef std::set<int> Particles;
0048       /// Reference counter
0049       int ref;            //! not persistent
0050       /// Vertex mask to associate particles from collision
0051       int mask;
0052       /// Vertex data
0053       double x,y,z,time;
0054       /// The list of outgoing particles
0055       Particles out;
0056       /// The list of incoming particles
0057       Particles in;
0058       /// User data extension if required
0059       dd4hep_ptr<VertexExtension> extension;   //! not persistent: ROOT cannot handle yet
0060       /// Default constructor
0061       Geant4Vertex();
0062       /// Copy constructor
0063       Geant4Vertex(const Geant4Vertex& c);
0064       /// Default destructor
0065       virtual ~Geant4Vertex();
0066       /// Assignment operator
0067       Geant4Vertex& operator=(const Geant4Vertex& c);
0068       /// Increase reference count
0069       Geant4Vertex* addRef();
0070       /// Decrease reference count. Deletes object if NULL
0071       void release();
0072     };
0073 
0074   }    // End namespace sim
0075 }      // End namespace dd4hep
0076 #endif // DDG4_GEANT4VERTEX_H