Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-11-15 09:35:24

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 /** \addtogroup Geant4GeneratorAction
0014  *
0015  @{
0016    \package Geant4InteractionVertexBoost
0017  * \brief Action class to boost the primary vertex (and all outgoing particles) of a single interaction
0018  *
0019  *
0020 @}
0021  */
0022 
0023 #ifndef DDG4_GEANT4INTERACTIONVERTEXBOOST_H
0024 #define DDG4_GEANT4INTERACTIONVERTEXBOOST_H
0025 
0026 // Framework include files
0027 #include <DDG4/Geant4GeneratorAction.h>
0028 #include <DDG4/Geant4Primary.h>
0029 
0030 /// Namespace for the AIDA detector description toolkit
0031 namespace dd4hep {
0032 
0033   /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
0034   namespace sim {
0035 
0036     /// Action class to boost the primary vertex (and all outgoing particles) of a single interaction
0037     /**
0038      * The vertex boost is steered by the Lorentz transformation angle.
0039      * The interaction to be modified is identified by the interaction's unique mask.
0040      *
0041      *  \author  M.Frank
0042      *  \version 1.0
0043      *  \ingroup DD4HEP_SIMULATION
0044      */
0045     class Geant4InteractionVertexBoost: public Geant4GeneratorAction {
0046     public:
0047       /// Interaction definition
0048       typedef Geant4PrimaryInteraction Interaction;
0049 
0050     protected:
0051       /// Property: The constant Lorentz transformation angle
0052       double m_angle;
0053       /// Property: Unique identifier of the interaction to be modified
0054       int m_mask;
0055 
0056       /// Action routine to boost one single interaction according to the properties
0057       void boost(Interaction* interaction)  const;
0058 
0059     public:
0060       /// Inhibit default constructor
0061       Geant4InteractionVertexBoost() = delete;
0062       /// Standard constructor
0063       Geant4InteractionVertexBoost(Geant4Context* context, const std::string& name);
0064       /// Default destructor
0065       virtual ~Geant4InteractionVertexBoost();
0066       /// Callback to generate primary particles
0067       virtual void operator()(G4Event* event);
0068     };
0069   }    // End namespace sim
0070 }      // End namespace dd4hep
0071 #endif // DDG4_GEANT4INTERACTIONVERTEXBOOST_H