Back to home page

EIC code displayed by LXR

 
 

    


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

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 //  Define the ROOT dictionaries for all data classes to be saved
0015 //  which are created by the DDG4 examples.
0016 //
0017 //====================================================================
0018 #ifndef DDG4_DDG4DICT_H
0019 #define DDG4_DDG4DICT_H
0020 
0021 #if defined(__GNUC__)
0022 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
0023 #pragma GCC diagnostic ignored "-Wdeprecated"
0024 #pragma GCC diagnostic ignored "-Wunused"
0025 #pragma GCC diagnostic ignored "-Woverlength-strings"
0026 
0027 #elif defined(__llvm__) || defined(__APPLE__)
0028 
0029 #pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
0030 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
0031 #pragma clang diagnostic ignored "-Wdeprecated"
0032 #pragma clang diagnostic ignored "-Wunused"
0033 #pragma clang diagnostic ignored "-Woverlength-strings"
0034 #endif
0035 
0036 // FRamework include files
0037 #include <DD4hep/Memory.h>
0038 #include <DDG4/Geant4Data.h>
0039 #include <DDG4/Geant4Particle.h>
0040 
0041 namespace dd4hep {
0042   namespace DDSegmentation { }
0043   namespace detail   { }
0044   namespace sim { }
0045 }
0046 
0047 namespace { class DDG4Dict {};   }
0048 
0049 // CINT configuration
0050 #if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)
0051 #pragma link off all globals;
0052 #pragma link off all classes;
0053 #pragma link off all functions;
0054 
0055 /// Define namespaces
0056 #pragma link C++ namespace dd4hep;
0057 #pragma link C++ namespace dd4hep::sim;
0058 #pragma link C++ namespace dd4hep::detail;
0059 
0060 /// Simple stuff
0061 #pragma link C++ class dd4hep::sim::SimpleRun+;
0062 #pragma link C++ class dd4hep::sim::SimpleEvent+;
0063 #pragma link C++ class dd4hep::sim::DataExtension+;
0064 
0065 /// Dictionaires for Geant4 particles
0066 #pragma link C++ class dd4hep::sim::ParticleExtension+;
0067 
0068 #pragma link C++ class dd4hep::sim::Geant4Particle+;
0069 #pragma link C++ class std::vector<dd4hep::sim::Geant4Particle*>+;
0070 #pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>+;
0071 #pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>::iterator;
0072 #pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>::const_iterator;
0073 
0074 #ifdef R__MACOSX
0075 // We only need these declarations for the clang compiler
0076 #pragma link C++ function operator==( const std::map<int,dd4hep::sim::Geant4Particle*>::iterator&, const std::map<int,dd4hep::sim::Geant4Particle*>::iterator& );
0077 #pragma link C++ function operator!=( const std::map<int,dd4hep::sim::Geant4Particle*>::iterator&, const std::map<int,dd4hep::sim::Geant4Particle*>::iterator& );
0078 #endif
0079 
0080 /// Dictionaires for basic Hit data structures
0081 #pragma link C++ class dd4hep::sim::Geant4HitData+;
0082 namespace dd4hep { namespace sim { typedef Geant4HitData* Geant4HitData_ptr_t; }}
0083 #pragma link C++ typedef dd4hep::sim::Geant4HitData_ptr_t;
0084 #pragma link C++ class std::vector<dd4hep::sim::Geant4HitData_ptr_t>+;
0085 #pragma link C++ class dd4hep::sim::Geant4HitData::Contribution+;
0086 #pragma link C++ class dd4hep::sim::Geant4HitData::Contributions+;
0087 
0088 /// Dictionaires for Tracker Hit data structures
0089 #pragma link C++ class dd4hep::sim::Geant4Tracker+;
0090 #pragma link C++ class dd4hep::sim::Geant4Tracker::Hit+;
0091 #pragma link C++ class std::vector<dd4hep::sim::Geant4Tracker::Hit*>+;
0092 
0093 /// Dictionaires for Calorimeter Hit data structures
0094 #pragma link C++ class dd4hep::sim::Geant4Calorimeter+;
0095 #pragma link C++ class dd4hep::sim::Geant4Calorimeter::Hit+;
0096 #pragma link C++ class std::vector<dd4hep::sim::Geant4Calorimeter::Hit*>+;
0097 
0098 #endif
0099 
0100 #ifdef __DDG4_STANDALONE_DICTIONARIES__
0101 /*
0102  *   dd4hep namespace declaration
0103  */
0104 namespace dd4hep {
0105 
0106   /*
0107    *   Simulation namespace declaration
0108    */
0109   namespace sim {
0110 #define NO_CALL {      throw "This function shoule never ever be called!";    }
0111     /// Default constructor
0112     inline SimpleRun::SimpleRun() : runID(0), numEvents(0)  {    }
0113     /// Default destructor
0114     inline SimpleRun::~SimpleRun() {    }
0115     /// Default constructor
0116     inline SimpleEvent::SimpleEvent() : runID(0), eventID(0) {    }
0117     /// Default destructor
0118     inline SimpleEvent::~SimpleEvent() {    }
0119 
0120     /// Default destructor
0121     inline DataExtension::~DataExtension()  {    }
0122     /// Default destructor
0123     inline ParticleExtension::~ParticleExtension()  {    }
0124     /// Default constructor
0125     inline Geant4Particle::Geant4Particle()   {     }
0126     /// Default destructor
0127     inline Geant4Particle::~Geant4Particle()   {     }
0128     /// Remove daughter from set
0129     inline void Geant4Particle::removeDaughter(int)   {   NO_CALL  }
0130     /// Default constructor
0131     inline Geant4HitData::Geant4HitData(): cellID(0), flag(0), g4ID(0)   {    }
0132     /// Default destructor
0133     inline  Geant4HitData::~Geant4HitData()  {    }
0134     /// Extract the MC contribution for a given hit from the step information
0135     inline Geant4HitData::Contribution Geant4HitData::extractContribution(const G4Step*) { return Contribution(); }
0136     /// Extract the MC contribution for a given hit from the spot information
0137     inline Geant4HitData::Contribution Geant4HitData::extractContribution(const Geant4FastSimSpot*) { return Contribution(); }
0138     /// Default constructor
0139     inline Geant4Tracker::Hit::Hit() : length(0), energyDeposit(0e0)  {    }
0140     /// Initializing constructor
0141     //inline Geant4Tracker::Hit::Hit(int, int, double, double)   {}
0142     /// Default destructor
0143     inline Geant4Tracker::Hit::~Hit()  {    }
0144     /// Explicit assignment operation
0145     inline void Geant4Tracker::Hit::copyFrom(const Hit&)   {   }
0146     /// Clear hit content
0147     inline Geant4Tracker::Hit& Geant4Tracker::Hit::clear()    { return *this; }
0148     /// Store Geant4 point and step information into tracker hit structure.
0149     inline Geant4Tracker::Hit& Geant4Tracker::Hit::storePoint(const G4Step*, const G4StepPoint*)  { return *this;}
0150     /// Store Geant4 spot information into tracker hit structure.
0151     inline Geant4Tracker::Hit& Geant4Tracker::Hit::storePoint(const Geant4FastSimSpot*)  { return *this;}    
0152     /// Default constructor
0153     inline Geant4Calorimeter::Hit::Hit() : energyDeposit(0e0)  {    }
0154     /// Initializing constructor
0155     inline Geant4Calorimeter::Hit::Hit(const Position&) : energyDeposit(0e0) {}
0156     /// Default destructor
0157     inline Geant4Calorimeter::Hit::~Hit()   {    }
0158   }
0159 }
0160 #undef NO_CALL
0161 
0162 #endif // __DDG4_STANDALONE_DICTIONARIES__
0163 
0164 #endif // DDG4_DDG4DICT_H