Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /npsim/src/plugins/include/npdet/EICInteractionVertexBoost.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 #ifndef DD4HEP_DDG4_EICInteractionVertexBoost_H
0002 #define DD4HEP_DDG4_EICInteractionVertexBoost_H
0003 
0004 /** \addtogroup GeneratorAction Generator Actions
0005  * \brief  Here are some generator actions.
0006  *
0007  *  Generator A B C
0008  *
0009  * @{
0010    \addtogroup VertexBoosting Vertex Boost
0011  * \brief Boost the primary vertex (and all outgoing particles) of a single interaction.
0012  *
0013  * Generates the crossing angle.
0014  *
0015  * Here is an example of usage in python:
0016  *
0017  */
0018 
0019 // Framework include files
0020 #include "DDG4/Geant4GeneratorAction.h"
0021 
0022 namespace npdet {
0023 
0024   namespace sim {
0025 
0026     using namespace dd4hep::sim;
0027     /// Action class to boost the primary vertex (and all outgoing particles) of a single interaction
0028     /**
0029      * The vertex boost is steered by the Lorentz transformation angle.
0030      * The interaction to be modified is identified by the interaction's unique mask.
0031      *
0032      *  \ingroup GeneratorAction VertexBoosting EIC
0033      */
0034     class EICInteractionVertexBoost: public Geant4GeneratorAction {
0035     public:
0036       /// Interaction definition
0037       using Interaction = Geant4PrimaryInteraction ;
0038 
0039     protected:
0040       /// Property: The constant Lorentz transformation angle
0041       //double m_angle;
0042       /// Crossing angles relative to central B-field solenoid.
0043       double m_ionCrossingAngle = 0.0166667;
0044       double m_eCrossingAngle   = 0.00833333;
0045       /// Property: Unique identifier of the interaction to be modified
0046       int m_mask;
0047 
0048       /// Action routine to boost one single interaction according to the properties
0049       void boost(Interaction* interaction)  const;
0050 
0051     public:
0052       /// Inhibit default constructor
0053       EICInteractionVertexBoost() = delete;
0054       /// Standard constructor
0055       EICInteractionVertexBoost(Geant4Context* context, const std::string& name);
0056       /// Default destructor
0057       virtual ~EICInteractionVertexBoost();
0058       /// Callback to generate primary particles
0059       virtual void operator()(G4Event* event);
0060     };
0061   }    // End namespace sim
0062 }      // End namespace dd4hep
0063 
0064 //@}
0065 #endif /* DD4HEP_DDG4_EICInteractionVertexBoost_H  */