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_GEANT4INPUTHANDLING_H
0015 #define DDG4_GEANT4INPUTHANDLING_H
0016 
0017 // Framework include files
0018 #include <DDG4/Geant4Primary.h>
0019 
0020 // Forward declarations
0021 class G4Event;
0022 class G4PrimaryVertex;
0023 class G4PrimaryParticle;
0024 
0025 
0026 /// Namespace for the AIDA detector description toolkit
0027 namespace dd4hep {
0028 
0029   /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
0030   namespace sim {
0031 
0032     // Forward declarations
0033     class Geant4Action;
0034     class Geant4Context;
0035 
0036     /** Helpers to import and export G4 records  */
0037 
0038     /// Create a vertex object from its G4 counterpart
0039     Geant4Vertex* createPrimary(const G4PrimaryVertex* g4);
0040     
0041     /// Create a particle object from its G4 counterpart
0042     Geant4Particle* createPrimary(int particle_id, const Geant4Vertex* v, const G4PrimaryParticle* g4p);
0043 
0044     /// Create a DDG4 interaction record from a Geant4 interaction defined by a primary vertex
0045     Geant4PrimaryInteraction* createPrimary(int mask, Geant4PrimaryMap* pm, std::set<G4PrimaryVertex*>const& primaries);
0046 
0047     /// Initialize the generation of one event
0048     int generationInitialization(const Geant4Action* caller,const Geant4Context* context);
0049 
0050     /// Merge all interactions present in the context
0051     int mergeInteractions(const Geant4Action* caller,const Geant4Context* context);
0052 
0053     /// Boost particles of one interaction identified by its mask
0054     int boostInteraction(const Geant4Action* caller,
0055                          Geant4PrimaryEvent::Interaction* inter,
0056                          double alpha);
0057 
0058     /// Smear the primary vertex of an interaction
0059     int smearInteraction(const Geant4Action* caller,
0060                          Geant4PrimaryEvent::Interaction* inter,
0061                          double dx, double dy, double dz, double dt);
0062 
0063 
0064     /// Generate all primary vertices corresponding to the merged interaction
0065     int generatePrimaries(const Geant4Action* caller,
0066                           const Geant4Context* context,
0067                           G4Event* event);
0068 
0069   }    // End namespace sim
0070 }      // End namespace dd4hep
0071 #endif // DDG4_GEANT4INPUTHANDLING_H