Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:38:22

0001 // -*- C++ -*-
0002 //
0003 // MultipleInteractionHandler.h is a part of ThePEG - Toolkit for HEP Event Generation
0004 // Copyright (C) 1999-2019 Leif Lonnblad
0005 //
0006 // ThePEG is licenced under version 3 of the GPL, see COPYING for details.
0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
0008 //
0009 #ifndef ThePEG_MultipleInteractionHandler_H
0010 #define ThePEG_MultipleInteractionHandler_H
0011 // This is the declaration of the MultipleInteractionHandler class.
0012 
0013 #include "StepHandler.h"
0014 
0015 namespace ThePEG {
0016 
0017 /**
0018  * The MultipleInteractionHandler is the base class of all
0019  * handlers implementing models for multiple interactions. It is
0020  * derived from the more general StepHandler class,
0021  * and does not introduce more functioanality as it stands.
0022  *
0023  * @see \ref MultipleInteractionHandlerInterfaces "The interfaces"
0024  * defined for MultipleInteractionHandler.
0025  * @see StepHandler
0026  * @see EventHandler
0027  * @see SubProcessHandler
0028  */
0029 class MultipleInteractionHandler: public StepHandler {
0030 
0031 public:
0032 
0033   /**
0034    * Standard Init function used to initialize the interface.
0035    */
0036   static void Init();
0037 
0038 private:
0039 
0040   /**
0041    * Describe an abstract class without persistent data.
0042    */
0043   static AbstractNoPIOClassDescription<MultipleInteractionHandler>
0044     initMultipleInteractionHandler;
0045 
0046   /**
0047    *  Private and non-existent assignment operator.
0048    */
0049   MultipleInteractionHandler & operator=(const MultipleInteractionHandler &) = delete;
0050 
0051 };
0052 
0053 /** @cond TRAITSPECIALIZATIONS */
0054 
0055 /**
0056  * This template specialization informs ThePEG about the
0057  * base class of MultipleInteractionHandler.
0058  */
0059 template <>
0060 struct BaseClassTrait<MultipleInteractionHandler,1>: public ClassTraitsType {
0061   /** Typedef of the base class of MultipleInteractionHandler. */
0062   typedef StepHandler NthBase;
0063 };
0064 
0065 /**
0066  * This template specialization informs ThePEG about the name of the
0067  * MultipleInteractionHandler class.
0068  */
0069 template <>
0070 struct ClassTraits<MultipleInteractionHandler>:
0071     public ClassTraitsBase<MultipleInteractionHandler> {
0072   /** Return the class name. */
0073   static string className() { return "ThePEG::MultipleInteractionHandler"; }
0074 };
0075 
0076 /** @endcond */
0077 
0078 }
0079 
0080 #endif /* ThePEG_MultipleInteractionHandler_H */