Back to home page

EIC code displayed by LXR

 
 

    


Warning, /DD4hep/doc/usermanuals/DDG4/sections/Components.tex is written in an unsupported language. File is not indexed.

0001 
0002 %=============================================================================
0003 \section{Existing DDG4 components}
0004 \label{sec:existing-ddg4-components}
0005 %=============================================================================
0006 \noindent
0007 In the introduction the longterm goal was expressed, that with DDG4 users
0008 should be able to pick components from a growing palette and connect the
0009 selected components using the setup mechanisms described in 
0010 Section~\ref{sec:ddg4-implementation-setup}.
0011 
0012 \noindent
0013 Such a palette based approach obviously depends on the availability of
0014 documentation for existing components describing the properties
0015 of each component and the interaction of each component within the \DDG
0016 framework.
0017 
0018 \noindent
0019 All components defer from the basic type \tts{Geant4Action}. This means 
0020 \bold{all} components have the \bold{default} properties described in the
0021 table below:
0022 
0023 \vspace{0.5cm}
0024 \noindent
0025 \begin{tabular}{ l l p{9cm} }
0026 \hline
0027 Component Properties: &  & \tts{default} \\
0028 \hline
0029 \bold{OuputLevel}     & [int]  & Output level of the component to customize printouts             \\
0030 \bold{Name}           & [string]  & Component name [read-only] \\
0031 \bold{Control}        & [boolean] & Steering of the Geant4 Messenger creation \\
0032 \hline
0033 \end{tabular}
0034 
0035 
0036 \vspace{5cm}
0037 
0038 \begin{center}
0039 {\large{\bf{
0040 \begin{tabular} {| p{15cm} |}
0041 \hline\space  \\
0042 
0043 \noindent
0044 {\underline{Important notice for developers:}} \\
0045 
0046 \noindent
0047 Since the documentation of developed components is VERY important,
0048 please never forget to supply the corresponding documentation.\\
0049 \\
0050 \noindent
0051 At least supply the minimal documentation ash shown below
0052 in the appended examples for the "Simple" detector response and I/O
0053 components.
0054 \\ \space\hline 
0055 \end{tabular}
0056 }}}
0057 \end{center}
0058 \clearpage
0059 
0060 %=============================================================================
0061 \subsection{Generic Action Modules}
0062 %=============================================================================
0063 
0064 %=============================================================================
0065 \subsubsection{Geant4UIManager}
0066 %=============================================================================
0067 \noindent
0068 The {\tt{Geant4UIManager}} handles interactivity aspects between Geant4,
0069 its command handlers (i.e. terminal) and the various components the actions
0070 interact.
0071 
0072 \noindent
0073 The {\tt{Geant4UIManager}} is a component attached to the {\tt{Geant4Kernel}}
0074 object. All properties of all {\tt{Geant4Action}} instances may be exported to 
0075 \tts{Geant4} messengers and {\em{may}} hence be accessible directly from 
0076 the \tts{Geant4} prompt. To export properties from any action, call the 
0077 {\tt{enableUI()}} method of the action.
0078 \noindent
0079 The callback signature is: \tts{void operator()(G4Event* event)}.
0080 
0081 \vspace{0.5cm}
0082 \noindent
0083 \begin{tabular}{ l p{10cm} }
0084 \hline
0085 \bold{Class name}      & \tts{Geant4UIManager}                           \\
0086 \bold{File name}       & \tts{DDG4/src/Geant4UIManager.cpp}              \\
0087 \bold{Type}            & \tts{Geant4Action}                              \\
0088 \hline
0089 \bold{Component Properties:}   & defaults apply                          \\
0090 \hline
0091 \bold{SessionType} (string)  & Session type (csh, tcsh, etc.             \\
0092 \bold{SetupUI} (string)   & Name of the UI macro file                    \\
0093 \bold{SetupVIS} (string)  & Name of the visualization macro file         \\
0094 \bold{HaveVIS} (bool)     & Flag to instantiate Vis manager 
0095                             (def:false, unless VisSetup set)             \\
0096 \bold{HaveUI} (bool)      & Flag to instantiate UI (default=true)        \\
0097 \end{tabular}
0098 
0099 %=============================================================================
0100 \subsubsection{Geant4Random}
0101 %=============================================================================
0102 \noindent
0103 Mini interface to the random generator of the application.
0104 Necessary, that on every object creates its own instance, but accesses
0105 the main instance available through the \tts{Geant4Context}.
0106 
0107 \noindent
0108 This is mandatory to ensure reproducibility of the event generation
0109 process. Particular objects may use a dependent generator from
0110 an experiment framework like \tts{GAUDI}.
0111 
0112 \noindent
0113 internally the engine factory mechanism of \tts{CLHEP} is used. Please refer
0114 there within for valid engine names and the random seeding mechanism,
0115 which may vary between different engines.
0116 
0117 \noindent
0118 Any number of independent random objects may be created and used 
0119 in parallel. This however, is not advised to ensure reproducibility.
0120 
0121 \noindent
0122 The first instance of the random action is automatically set
0123 to be the \tts{Geant4} instance. If another instance should be used by 
0124 \tts{Geant4}, use \tts{setMainInstance(Geant4Random* ptr)} class method to 
0125 override this behavior.
0126 Provision, steered by options, is taken to ensure the \tts{gRandom}
0127 of \tts{ROOT} uses the same random number engine.
0128 
0129 \vspace{0.5cm}
0130 \noindent
0131 \begin{tabular}{ l p{10cm} }
0132 \hline
0133 \bold{Class name}                & \tts{Geant4Random}                             \\
0134 \bold{File name}                 & \tts{DDG4/src/Geant4Random.cpp}                \\
0135 \bold{Type}                      & \tts{Geant4Random}                             \\
0136 \hline
0137 \bold{Component Properties:}     & defaults apply                                 \\
0138 \hline
0139 \bold{File}   (string)           & File name if initialized from file.            \\
0140                                  & If set, engine name and seeds are ignored      \\
0141 \bold{Engine} (string)           & Engine type name.                              \\
0142                                  & All engines defined in the
0143                                    \tts{CLHEP::EngineFactory} class are available.
0144                                    If no type is supplied the engine from the 
0145                                    HepRandom generator instance is taken.         \\
0146 \bold{Seed}   (long)             & Initial random seed.                           \\
0147                                  & Default:    123456789.                         \\
0148                                  & If not ZERO terminated, termination is added.  \\
0149 \bold{Replace\_gRandom} (bool)   & Flag to replace the \tts{ROOT} \tts{gRandom}
0150                                    instance with this random number engine.
0151                                    This ensures \tts{ROOT} and \tts{Geant4} 
0152                                    use the same random number engine, hence 
0153                                    the same random sequence.
0154                                                                                   \\
0155 \end{tabular}
0156 
0157 \noindent
0158 %=============================================================================
0159 \subsection{Geant4UserInitialization Implementations}
0160 %=============================================================================
0161 \noindent
0162 %=============================================================================
0163 \subsubsection{Geant4PythonInitialization}
0164 %=============================================================================
0165 \noindent
0166 Please see Section~\ref{sec:ddg4-multi-threading-python} 
0167 for an illustration of the usage.
0168 The configuration by construction must be performed using setter-functions
0169 rather than properties.
0170 
0171 \vspace{0.5cm}
0172 \noindent
0173 \begin{tabular}{ l p{10cm} }
0174 \hline
0175 \bold{Class name}      & \tts{Geant4PythonInitialization}                    \\
0176 \bold{File name}       & \tts{DDG4/src/python/Geant4PythonInitialization.cpp} \\
0177 \bold{Type}            & \tts{Geant4Action}                                  \\
0178 \hline 
0179 \bold{Component Properties:}   & defaults apply                              \\
0180 \end{tabular}
0181 
0182 %=============================================================================
0183 \subsubsection{Geant4PythonDetectorConstruction}
0184 %=============================================================================
0185 \noindent
0186 Please see Section~\ref{sec:ddg4-multi-threading-python} 
0187 for an illustration of the usage.
0188 The configuration by construction must be performed using setter-functions
0189 rather than properties.
0190 
0191 \vspace{0.5cm}
0192 \noindent
0193 \begin{tabular}{ l p{10cm} }
0194 \hline
0195 \bold{Class name}      & \tts{Geant4PythonDetectorConstruction}              \\
0196 \bold{File name}       & \tts{DDG4/src/python/Geant4PythonDetectorConstruction.cpp}  \\
0197 \bold{Type}            & \tts{Geant4Action}                                  \\
0198 \hline 
0199 \bold{Component Properties:}   & defaults apply                              \\
0200 \end{tabular}
0201 
0202 %=============================================================================
0203 \subsection{Predefined Geant4 Physics List Objects}
0204 %=============================================================================
0205 \noindent
0206 The physics list may be defined entirely data driven using the factory mechanism
0207 using a variety of predefined objects. Though users are free to define private 
0208 physics lists, typically the predefined physics lists from \tts{Geant4} are used. 
0209 
0210 \noindent
0211 The inventory changes over time, new lists appear and obsolete lists are purged,
0212 hence we will not list them explicitly here.
0213 For the inventory of available physics lists, please refer to the implementation files:
0214 
0215 \noindent
0216 \begin{itemize}\itemcompact
0217 \item Inventory of predefined physics lists, which may be inherited:\\
0218 \detdesc{html/_geant4_physics_lists_8cpp_source.html}
0219 {DDG4/plugins/Geant4PhysiscsLists.cpp}
0220 \item Inventory of predefined physics constructors, which may be instantiated:\\
0221 \detdesc{html/_geant4_physics_constructors_8cpp_source.html}
0222 {DDG4/plugins/Geant4PhysicsConstructors.cpp}
0223 \item Inventory of predefined process constructors, which may be instantiated:\\
0224 \detdesc{html/_geant4_processes_8cpp_source.html}
0225 {DDG4/plugins/Geant4Processes.cpp}
0226 \item Inventory of predefined particle constructors, which may be instantiated:\\
0227 \detdesc{html/_geant4_particles_8cpp_source.html}
0228 {DDG4/plugins/Geant4Particles.cpp}
0229 \end{itemize}
0230 \newpage
0231 
0232 %=============================================================================
0233 \subsection{Geant4 Generation Action Modules}
0234 %=============================================================================
0235 \noindent
0236 Here we discuss modules, which are intrinsically part of DDG4 and may be
0237 attached to the {\tt{Geant4GeneratorActionSequence}}.
0238 
0239 %=============================================================================
0240 \subsubsection{Base class: Geant4GeneratorAction}
0241 %=============================================================================
0242 \noindent
0243 The \tts{Geant4GeneratorAction} is called for every event.
0244 During the callback all particles are created which form the 
0245 microscopic kinematic action of the particle collision.
0246 This input may either origin directly from an event generator program
0247 or come from file.
0248 
0249 \noindent
0250 The callback signature is: void operator()(G4Event* event)
0251 \noindent
0252 See also:
0253 \detdesc{html/class_d_d4hep_1_1_simulation_1_1_geant4_generator_action.html}
0254 {\tts{Geant4EventAction}} in the doxygen documentation.
0255 
0256 \vspace{0.5cm}
0257 \noindent
0258 \begin{tabular}{ l p{10cm} }
0259 \hline
0260 \bold{Class name}      & \tts{Geant4GeneratorAction}                     \\
0261 \bold{File name}       & \tts{DDG4/src/Geant4GeneratorAction.cpp}        \\
0262 \bold{Type}            & \tts{Geant4Action, Geant4GeneratorAction}       \\
0263 \hline
0264 \bold{Component Properties:}   & defaults apply                          \\
0265 \hline
0266 \end{tabular}
0267 
0268 %=============================================================================
0269 \subsubsection{Geant4GeneratorActionSequence}
0270 %=============================================================================
0271 \noindent
0272 The sequence dispatches the callbacks at the beginning 
0273 of an event to all registered \tts{Geant4GeneratorAction} members and all 
0274 registered callbacks.
0275 
0276 \noindent
0277 See also:
0278 \noindent
0279 The {\tt{Geant4GeneratorActionSequence}} is directly steered by the single
0280 instance of the {\tt{G4VUserPrimaryGeneratorAction}}, the Geant4 provided user hook,
0281 which is private.\\
0282 See also:
0283 \detdesc{html/struct_d_d4hep_1_1_simulation_1_1_geant4_user_generator_action.html}
0284 {\tts{Geant4UserGeneratorAction}} and
0285 \detdesc{html/class_d_d4hep_1_1_simulation_1_1_geant4_generator_action_sequence.html}
0286 {\tts{Geant4GeneratorActionSequence}} in the doxygen documentation.
0287 
0288 \vspace{0.5cm}
0289 \noindent
0290 \begin{tabular}{ l p{10cm} }
0291 \hline
0292 \bold{Class name}      & \tts{Geant4Geant4GeneratorActionSequence}       \\
0293 \bold{File name}       & \tts{DDG4/src/Geant4GeneratorAction.cpp}        \\
0294 \bold{Type}            & \tts{Geant4Action}                              \\
0295 \hline
0296 \bold{Component Properties:}   & defaults apply                          \\
0297 \hline
0298 \end{tabular}
0299 
0300 %=============================================================================
0301 \subsubsection{Geant4GeneratorActionInit}
0302 %=============================================================================
0303 \noindent
0304 Initialize the Geant4Event objects to host generator and MC truth related information
0305 Geant4 actions to collect the MC particle information.
0306 This action should register all event extension required for the further 
0307 processing. We want to avoid that every client has to check if a given 
0308 object is present or not and than later install the required data structures.
0309 
0310 \noindent
0311 These by default are extensions of type:
0312 \begin{itemize}\itemcompact
0313 \item \tts{Geant4PrimaryEvent} with multiple interaction sections, one for each interaction
0314     This is the MAIN and ONLY information to feed Geant4
0315 \item \tts{Geant4PrimaryInteraction} containing the track/vertex information to create 
0316     the primary particles for Geant4. This record is build from the \tts{Geant4PrimaryEvent}
0317     information.
0318 \item \tts{Geant4PrimaryMap} a map of the \tts{Geant4Particles} converted to 
0319     \tts{G4PrimaryParticles} to ease particle handling later.
0320 \item \tts{Geant4ParticleMap} the map of particles created during the event simulation.
0321     This map has directly the correct particle offsets, so that the merging of
0322     \tts{Geant4PrimaryInteraction} particles and the simulation particles is easy....
0323 \end{itemize}
0324 
0325 \vspace{0.5cm}
0326 \noindent
0327 \begin{tabular}{ l p{10cm} }
0328 \hline
0329 \bold{Class name}      & \tts{Geant4Geant4GeneratorActionInit}           \\
0330 \bold{File name}       & \tts{DDG4/src/Geant4GeneratorActionInit.cpp}    \\
0331 \bold{Type}            & \tts{Geant4GeneratorAction}                     \\
0332 \hline
0333 \bold{Component Properties:}   & defaults apply                            \\
0334 \bold{Angle} (double)          & \tts{Lorentz-Angle of boost}                          \\
0335 \bold{Mask} (int.bitmask)      & \tts{Interaction identifier} \\
0336 \hline
0337 \end{tabular}
0338 
0339 %=============================================================================
0340 \subsubsection{Geant4InteractionVertexBoost}
0341 %=============================================================================
0342 \noindent
0343 Boost the primary vertex and all particles outgoing the primary interaction in X-direction.
0344 
0345 \noindent
0346 The interaction to be processed by the component is uniquely identified
0347 by the {\bf{Mask}} property. Two primary interaction may not have the same
0348 mask.
0349 
0350 \noindent
0351 {\bold{Note [special use case]:}}\\
0352 If all contributing interactions of the one event \bold{registered 
0353 in the primary event at the time the action is called} should be handled by 
0354 one single component instance, set the {\bf{Mask}} property to {\bold{-1}}.
0355 
0356 \vspace{0.5cm}
0357 \noindent
0358 \begin{tabular}{ l p{10cm} }
0359 \hline
0360 \bold{Class name}        & \tts{Geant4InteractionVertexBoost}              \\
0361 \bold{File name}         & \tts{DDG4/src/Geant4InteractionVertexBoost.cpp} \\
0362 \bold{Type}              & \tts{Geant4GeneratorAction}                     \\
0363 \hline
0364 \bold{Component Properties:}   & defaults apply                            \\
0365 \bold{Angle} (double)          & \tts{Lorentz-Angle of boost}              \\
0366 \bold{Mask} (int.bitmask)      & \tts{Interaction identifier}              \\
0367 \hline
0368 \end{tabular}
0369 
0370 %=============================================================================
0371 \subsubsection{Geant4InteractionVertexSmear}
0372 %=============================================================================
0373 \noindent
0374 Smear the primary vertex and all particles outgoing the primary interaction.
0375 
0376 \noindent
0377 The interaction to be processed by the component is uniquely identified
0378 by the {\bf{Mask}} property. Two primary interaction may not have the same
0379 mask.
0380 
0381 \noindent
0382 {\bold{Note [special use case]:}}\\
0383 If all contributing interactions of the one event \bold{registered 
0384 in the primary event at the time the action is called} should be handled by 
0385 one single component instance, set the {\bf{Mask}} property to {\bold{-1}}.
0386 
0387 \vspace{0.5cm}
0388 \noindent
0389 \begin{tabular}{ l p{10cm} }
0390 \hline
0391 \bold{Class name}        & \tts{Geant4InteractionVertexSmear}              \\
0392 \bold{File name}         & \tts{DDG4/src/Geant4InteractionVertexSmear.cpp} \\
0393 \hline
0394 \bold{Component Properties:}   & defaults apply                            \\
0395 \bold{Offset}  (PxPyPzEVector) & \tts{Smearing offset}                     \\
0396 \bold{Sigma}   (PxPyPzEVector) & \tts{Sigma (Errors) on offset}            \\
0397 \bold{Mask}    (int.bitmask)   & \tts{Interaction identifier} \\
0398 \hline
0399 \end{tabular}
0400 
0401 %=============================================================================
0402 \subsubsection{Geant4InteractionMerger}
0403 %=============================================================================
0404 \noindent
0405 Merge all interactions created by each {\tt{Geant4InputAction}} into one single
0406 record. The input records are taken from the item {\tt{Geant4PrimaryEvent}}
0407 and are merged into the {\tt{Geant4PrimaryInteraction}} object attached to the
0408 {\tt{Geant4Event}} event context.
0409 
0410 \vspace{0.5cm}
0411 \noindent
0412 \begin{tabular}{ l p{10cm} }
0413 \hline
0414 \bold{Class name}        & \tts{Geant4InteractionMerger}                   \\
0415 \bold{File name}         & \tts{DDG4/src/Geant4InteractionMerger.cpp}      \\
0416 \bold{Type}              & \tts{Geant4GeneratorAction}                     \\
0417 \hline
0418 \bold{Component Properties:}   & defaults apply                            \\
0419 \hline
0420 \end{tabular}
0421 
0422 %=============================================================================
0423 \subsubsection{Geant4PrimaryHandler}
0424 %=============================================================================
0425 \noindent
0426 Convert the primary interaction (object {\tt{Geant4PrimaryInteraction}} object 
0427 attached to the {\tt{Geant4Event}} event context) and pass the result
0428 to Geant4 for simulation.
0429 
0430 \vspace{0.5cm}
0431 \noindent
0432 \begin{tabular}{ l p{10cm} }
0433 \hline
0434 \bold{Class name}        & \tts{Geant4PrimaryHandler}                      \\
0435 \bold{File name}         & \tts{DDG4/src/Geant4PrimaryHandler.cpp}         \\
0436 \bold{Type}              & \tts{Geant4GeneratorAction}                     \\
0437 \hline
0438 \bold{Component Properties:}   & defaults apply                            \\
0439 \hline
0440 \end{tabular}
0441 
0442 %=============================================================================
0443 \subsubsection{Geant4ParticleGun}
0444 %=============================================================================
0445 \noindent
0446 Implementation of a particle gun using Geant4Particles.
0447 
0448 \noindent
0449 The {\tt{Geant4ParticleGun}} is a tool to shoot a number of
0450 particles with identical properties into a given region of the
0451 detector to be simulated.
0452 
0453 \noindent
0454 The particle gun is a input source like any other and participates 
0455 in the general input stage merging process like any other input 
0456 e.g. from file. Hence, there may be several particle guns present
0457 each generating its own primary vertex. Use the mask property to
0458 ensure each gun generates its own, well identified primary vertex.
0459 
0460 \noindent
0461 There is one 'user lazyness' support though:
0462 If there is only one particle gun in use, the property 'Standalone', 
0463 which by default is set to true invokes the interaction merging and the
0464 Geant4 primary generation directly.
0465 
0466 \noindent
0467 The interaction to be created by the component is uniquely identified
0468 by the {\bf{Mask}} property. Two primary interaction may not have the same
0469 mask.
0470 
0471 \vspace{0.5cm}
0472 \noindent
0473 \begin{tabular}{ l p{10cm} }
0474 \hline
0475 \bold{Class name}         & \tts{Geant4PrimaryHandler}                      \\
0476 \bold{File name}          & \tts{DDG4/src/Geant4PrimaryHandler.cpp}         \\
0477 \bold{Type}               & \tts{Geant4GeneratorAction}                     \\
0478 \hline
0479 Component Properties:     & default                                         \\
0480 \bold{particle} (string)  & Particle type to be shot                        \\
0481 \bold{energy} (double)    & Particle energy in $MeV$                        \\
0482 \bold{position} (XYZVector)  & Pole position of the generated particles in $mm$\\
0483 \bold{direction} (XYZVector) & Momentum direction of the generated particles\\
0484 \bold{isotrop} (bool)        & Isotropic particle directions in space.      \\
0485 \bold{Mask} (int.bitmask)    & Interaction identifier                       \\
0486 \bold{Standalone} (bool)     & Setup for standalone execution               \\ 
0487                              & including interaction merging etc.           \\
0488 \hline
0489 \end{tabular}
0490 
0491 %=============================================================================
0492 \subsubsection{Geant4ParticleHandler}
0493 %=============================================================================
0494 \noindent
0495 Extract the relevant particle information during the simulation step.
0496 
0497 \noindent
0498 This procedure works as follows:
0499 \begin{itemize}\itemcompact
0500 \item At the beginning of the event generation the object registers itself as 
0501     Monte-Carlo truth handler to the event context.
0502 \item At the begin of each track action a particle candidate is created and filled
0503     with all properties known at this time.
0504 \item At each stepping action a flag is set if the step produced secondaries.
0505 \item Sensitive detectors call the MC truth handler if a hit was created.
0506     This fact is remembered.
0507 \item At the end of the tracking action a first decision is taken if the candidate is to be 
0508     kept for the final record.
0509 \item At the end of the event action finally all particles are reduced to the 
0510     final record. This logic can be overridden by a user handler to be attached.
0511 \end{itemize}
0512 \noindent
0513 Any of these actions may be intercepted by a {\tt{Geant4UserParticleHandler}}
0514 attached to the particle handler.
0515 See class {\tt{Geant4UserParticleHandler}} for details.
0516 
0517 \vspace{0.5cm}
0518 \noindent
0519 \begin{tabular}{ l p{9cm} }
0520 \hline
0521 \bold{Class name}      & \tts{Geant4ParticleHandler}                     \\
0522 \bold{File name}       & \tts{DDG4/src/Geant4ParticleHandler.cpp}        \\
0523 \bold{Type}            & \tts{Geant4GeneratorAction}                     \\
0524 \hline
0525 \bold{Component Properties:}   & defaults apply                            \\
0526 \bold{KeepAllParticles} (bool)    & Flag to keep entire particle record without any reduction.
0527                             This may result in a huge output record.      \\
0528 \bold{SaveProcesses} (vector(string)) & Array of Geant4 process names, 
0529                             which products and parent should NOT be reduced.\\
0530 \bold{MinimalKineticEnergy} (double) & Minimal energy below which particles should be
0531                             ignored unless other criteria 
0532                             (Process, created hits, etc) apply.\\
0533 \hline
0534 \end{tabular}
0535 \newpage
0536 
0537 %=============================================================================
0538 \subsection{Geant4 Event Action Modules}
0539 %=============================================================================
0540 \noindent
0541 
0542 %=============================================================================
0543 \subsubsection{Base class: Geant4EventAction}
0544 %=============================================================================
0545 \noindent
0546 The EventAction is called for every event.
0547 
0548 \noindent
0549 This class is the base class for all user actions, which have
0550 to hook into the begin- and end-of-event actions.
0551 Typical use cases are the collection/computation of event
0552 related properties.
0553 
0554 \noindent
0555 Examples of this functionality may include for example:
0556 \begin{itemize}\itemcompact
0557 \item Reset variables summing event related information in the
0558   begin-event callback.
0559 \item Monitoring activities such as filling histograms
0560   from hits collected during the end-event action.
0561 \end{itemize}
0562 See also:
0563 \detdesc{html/class_d_d4hep_1_1_simulation_1_1_geant4_event_action.html}
0564 {\tts{Geant4EventAction}} in the doxygen documentation.
0565 
0566 \vspace{0.5cm}
0567 \noindent
0568 \begin{tabular}{ l p{10cm} }
0569 \hline
0570 \bold{Class name}      & \tts{Geant4EventAction}                     \\
0571 \bold{File name}       & \tts{DDG4/src/Geant4EventAction.cpp}        \\
0572 \bold{Type}            & \tts{Geant4EventAction}                     \\
0573 \hline
0574 \bold{Component Properties:}   & defaults apply                        \\
0575 \hline
0576 \end{tabular}
0577 
0578 %=============================================================================
0579 \subsubsection{Geant4EventActionSequence}
0580 %=============================================================================
0581 \noindent
0582 
0583 \noindent
0584 The {\tt{Geant4EventActionSequence}} is directly steered by the single
0585 instance of the {\tt{G4UserEventAction}}, the Geant4 provided user hook,
0586 which is private.\\
0587 See also:
0588 \detdesc{html/struct_d_d4hep_1_1_simulation_1_1_geant4_user_event_action.html}
0589 {\tts{Geant4UserEventAction}} in the doxygen documentation.
0590 
0591 \vspace{0.5cm}
0592 \noindent
0593 \begin{tabular}{ l p{10cm} }
0594 \hline
0595 \bold{Class name}      & \tts{Geant4EventAction}                     \\
0596 \bold{File name}       & \tts{DDG4/src/Geant4EventAction.cpp}        \\
0597 \bold{Type}            & \tts{Geant4EventAction}                     \\
0598 \hline
0599 \bold{Component Properties:}   & defaults apply                      \\
0600 \hline
0601 \end{tabular}
0602 
0603 %=============================================================================
0604 \subsubsection{Geant4ParticlePrint}
0605 %=============================================================================
0606 \noindent
0607 Geant4Action to print MC particle information.
0608 
0609 \vspace{0.5cm}
0610 \noindent
0611 \begin{tabular}{ l p{10cm} }
0612 \hline
0613 \bold{Class name}      & \tts{Geant4ParticlePrint}                     \\
0614 \bold{File name}       & \tts{DDG4/src/Geant4ParticlePrint.cpp}        \\
0615 \bold{Type}            & \tts{Geant4EventAction}                       \\
0616 \hline
0617 \bold{Component Properties:}   & defaults apply                        \\
0618 \bold{OutputType} (bool)       & Flag to steer output type.            \\
0619                                 & 1: Print table of particles.          \\
0620                                 & 2: Print table of particles.          \\
0621                                 & 3: Print table and tree of particles. \\
0622 \bold{PrintHits} & Print associated hits to every particle (big output!)\\
0623 \hline
0624 \end{tabular}
0625 \newpage
0626 
0627 
0628 %=============================================================================
0629 \subsection{Sensitive Detectors}
0630 %=============================================================================
0631 \noindent
0632 
0633 %=============================================================================
0634 \subsubsection{Geant4TrackerAction}
0635 %=============================================================================
0636 \noindent
0637 Simple sensitive detector for tracking detectors. These trackers create one
0638 single hit collection. The created hits may be written out with the output
0639 modules described in Section~\ref{sec:ddg4-components-IO-ROOT-simple} 
0640 and~\ref{sec:ddg4-components-IO-LCIO-simple}. \\
0641 The basic specifications are:
0642 
0643 \vspace{0.5cm}
0644 \noindent
0645 \begin{tabular}{ l p{10cm} }
0646 \hline
0647 Basics: & \\
0648 \hline
0649 \bold{Class name}      & \tts{Geant4SensitiveAction<Geant4Tracker>}  \\
0650 \bold{File name}       & \tts{DDG4/plugins/Geant4SDActions.cpp}      \\
0651 \bold{Hit collection}  & \tts{Name of the readout object}            \\
0652 \bold{Hit class}       & \tts{Geant4Tracker::Hit}                    \\
0653 \bold{File name}       & \tts{DDG4/include/Geant4Data.h}             \\
0654 \hline
0655 \bold{Component Properties:}   & defaults apply                       \\
0656 \hline
0657 \end{tabular}
0658 
0659 %=============================================================================
0660 \subsubsection{Geant4CalorimeterAction}
0661 %=============================================================================
0662 \noindent
0663 Simple sensitive detector for calorimeters. The sensitive detector creates one
0664 single hit collection. The created hits may be written out with the output
0665 modules described in Section~\ref{sec:ddg4-components-IO-ROOT-simple} 
0666 and~\ref{sec:ddg4-components-IO-LCIO-simple}. \\
0667 The basic specifications are:
0668 
0669 \vspace{0.5cm}
0670 \noindent
0671 \begin{tabular}{ l p{10cm} }
0672 \hline
0673 Basics: & \\
0674 \hline
0675 \bold{Class name}      & \tts{Geant4SensitiveAction<Geant4Calorimeter>}  \\
0676 \bold{File name}       & \tts{DDG4/plugins/Geant4SDActions.cpp}      \\
0677 \bold{Hit collection}  & \tts{Name of the readout object}            \\
0678 \bold{Hit class}       & \tts{Geant4Calorimeter::Hit}                \\
0679 \bold{File name}       & \tts{DDG4/include/Geant4Data.h}             \\
0680 \hline
0681 \bold{Component Properties:}   & defaults apply                       \\
0682 \hline
0683 \end{tabular}
0684 
0685 \newpage
0686 
0687 %=============================================================================
0688 \subsection{I/O Components}
0689 %=============================================================================
0690 \noindent
0691 
0692 %=============================================================================
0693 \subsubsection{ROOT Output "Simple"}
0694 \label{sec:ddg4-components-IO-ROOT-simple}
0695 %=============================================================================
0696 \noindent
0697 
0698 %=============================================================================
0699 \subsubsection{LCIO Output "Simple"}
0700 \label{sec:ddg4-components-IO-LCIO-simple}
0701 %=============================================================================
0702 \noindent
0703