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