Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // Pointers.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_Pointers_H
0010 #define ThePEG_Pointers_H
0011 
0012 /** \file
0013  * This file declares typedefs of commonly used pointers in
0014  * ThePEG. The standard way of declaring the typedefs is by using the
0015  * ThePEG_DECLARE_CLASS_POINTERS macro which in turn used the Ptr
0016  * traits class to define normal pointers, normal const pointers,
0017  * transient pointers and transient const pointers for a given
0018  * class. For the standard classes, the following typedefs should be
0019  * introduced for a class abbreviated with <code>T</code>:
0020  * <code>TPtr</code> for a normal (smart) pointer, <code>cTPtr</code>
0021  * for a normal const pointer, <code>tTPtr</code> for a transient
0022  * pointer and <code>tcTPtr</code> for transient const pointer.
0023  *
0024  * Do not make changes in this file. If you need to modify any of the
0025  * standard pointer declarations used in ThePEG, edit a copy of this
0026  * file and include it in an alternative config file which can be
0027  * included in the main ThePEG.h config file using the macro
0028  * ThePEG_ALTERNATE_CONFIG.
0029  */
0030 
0031 #include "ThePEG/Config/ThePEG.h"
0032 
0033 namespace ThePEG {
0034 
0035 /** This macro helps us to declare pointers and stuff to standard classes. */
0036 #define ThePEG_DECLARE_TEMPLATE_POINTERS(full, abbrev)                     \
0037   /** Alias for a reference counted pointer to full. */                    \
0038   typedef typename ThePEG::Ptr<full>::pointer abbrev;                      \
0039   /** Alias for a reference counted pointer to a const full. */            \
0040   typedef typename ThePEG::Ptr<full>::const_pointer c ## abbrev;           \
0041   /** Alias for a transient pointer to full. */                            \
0042   typedef typename ThePEG::Ptr<full>::transient_pointer t ## abbrev;       \
0043   /** Alias for a transient pointer to a const full. */                    \
0044   typedef typename ThePEG::Ptr<full>::transient_const_pointer tc ## abbrev
0045 
0046 /** This macro helps us to declare pointers and stuff to standard classes. */
0047 #define ThePEG_DECLARE_POINTERS(full, abbrev)                      \
0048   /** Alias for a reference counted pointer to full. */            \
0049  typedef ThePEG::Ptr<full>::pointer abbrev;            \
0050   /** Alias for a reference counted pointer to a const full. */    \
0051   typedef ThePEG::Ptr<full>::const_pointer c ## abbrev;            \
0052   /** Alias for a transient pointer to full. */                    \
0053   typedef ThePEG::Ptr<full>::transient_pointer t ## abbrev;        \
0054   /** Alias for a transient pointer to a const full. */            \
0055   typedef ThePEG::Ptr<full>::transient_const_pointer tc ## abbrev
0056 
0057 /** This macro helps us to declare pointers and stuff to standard classes. */
0058 #define ThePEG_DECLARE_CLASS_POINTERS(full, abbrev)                \
0059   class full;                                                      \
0060   ThePEG_DECLARE_POINTERS(full, abbrev)
0061 
0062 ThePEG_DECLARE_CLASS_POINTERS(InterfacedBase,IBPtr);
0063 ThePEG_DECLARE_CLASS_POINTERS(Interfaced,IPtr);
0064 ThePEG_DECLARE_CLASS_POINTERS(ParticleData,PDPtr);
0065 ThePEG_DECLARE_CLASS_POINTERS(MatcherBase,PMPtr);
0066 ThePEG_DECLARE_CLASS_POINTERS(DecayMode,DMPtr);
0067 ThePEG_DECLARE_CLASS_POINTERS(Particle,PPtr);
0068 ThePEG_DECLARE_CLASS_POINTERS(EventGenerator,EGPtr);
0069 ThePEG_DECLARE_CLASS_POINTERS(EventHandler,EHPtr);
0070 ThePEG_DECLARE_CLASS_POINTERS(StepHandler,StepHdlPtr);
0071 ThePEG_DECLARE_CLASS_POINTERS(Hint,HintPtr);
0072 ThePEG_DECLARE_CLASS_POINTERS(HadronizationHandler,HadrHdlPtr);
0073 ThePEG_DECLARE_CLASS_POINTERS(CascadeHandler,CascHdlPtr);
0074 ThePEG_DECLARE_CLASS_POINTERS(MultipleInteractionHandler,MIHdlPtr);
0075 ThePEG_DECLARE_CLASS_POINTERS(DecayHandler,DecayHdlPtr);
0076 ThePEG_DECLARE_CLASS_POINTERS(PileupHandler,PileHdlPtr);
0077 ThePEG_DECLARE_CLASS_POINTERS(LuminosityFunction,LumiFnPtr);
0078 ThePEG_DECLARE_CLASS_POINTERS(PartonExtractor,PExtrPtr);
0079 ThePEG_DECLARE_CLASS_POINTERS(RandomGenerator,RanGenPtr);
0080 ThePEG_DECLARE_CLASS_POINTERS(AnalysisHandler,AnaPtr);
0081 ThePEG_DECLARE_CLASS_POINTERS(EventManipulator, EvtManipPtr);
0082 ThePEG_DECLARE_CLASS_POINTERS(Decayer,DecayerPtr);
0083 ThePEG_DECLARE_CLASS_POINTERS(Event,EventPtr);
0084 ThePEG_DECLARE_CLASS_POINTERS(Collision,CollPtr);
0085 ThePEG_DECLARE_CLASS_POINTERS(Step,StepPtr);
0086 ThePEG_DECLARE_CLASS_POINTERS(SubProcess,SubProPtr);
0087 ThePEG_DECLARE_CLASS_POINTERS(Strategy,StrategyPtr);
0088 ThePEG_DECLARE_CLASS_POINTERS(XComb,XCombPtr);
0089 ThePEG_DECLARE_CLASS_POINTERS(RemnantHandler,RemHPtr);
0090 ThePEG_DECLARE_CLASS_POINTERS(PDFBase,PDFPtr);
0091 ThePEG_DECLARE_CLASS_POINTERS(StandardModelBase,SMPtr);
0092 ThePEG_DECLARE_CLASS_POINTERS(ColourBase,CBPtr);
0093 ThePEG_DECLARE_CLASS_POINTERS(SpinInfo,SpinPtr);
0094 ThePEG_DECLARE_CLASS_POINTERS(EventInfoBase,EIPtr);
0095 ThePEG_DECLARE_CLASS_POINTERS(ReweightBase,ReweightPtr);
0096 ThePEG_DECLARE_CLASS_POINTERS(ColourLine,ColinePtr);
0097 ThePEG_DECLARE_POINTERS(Base,BPtr);
0098 
0099 // ThePEG_DECLARE_CLASS_POINTERS(,);
0100 
0101 }
0102 
0103 // #include "Pointers.icc"
0104 #ifndef ThePEG_TEMPLATES_IN_CC_FILE
0105 // #include "Pointers.tcc"
0106 #endif
0107 
0108 #endif /* ThePEG_Pointers_H */