Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // Interface.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_Interface_H
0010 #define THEPEG_Interface_H
0011 //
0012 // This is the declaration of the Interface namespace.
0013 //
0014 
0015 namespace ThePEG {
0016 
0017 /**
0018  * The Interface namespace declares a number of enums to set options
0019  * for subclasses of InteracedBase.
0020  */
0021 namespace Interface {
0022 
0023 /**
0024  * Determine whether an interface is dependency safe or
0025  * not. Dependency safe means that other objects do not depend on the
0026  * variable being interfaced.
0027  */
0028 enum DepSafe {
0029   unsafe = false, /**< The interface is not dependency safe. */
0030   safe = true     /**< The interface is dependency safe. */
0031 };
0032 
0033 /**
0034  * Determine whether an interface is read-only or not.
0035  */
0036 enum ReadOnly {
0037   readwrite = false, /**< The interface is mutable. */
0038   readonly = true    /**< The interface is read-only. */
0039 };
0040 
0041 /**
0042  * Determine whether a Parameter or ParVector is limited, either
0043  * upper, lower or both.
0044  */
0045 enum Limits {
0046   nolimits = 0, /**< The parameter is not limited. */
0047   limited = 1,  /**< The parameter is limited (both up- and downwards. */
0048   upperlim = 2, /**< The parameter has only an upper limit. */
0049   lowerlim = 3  /**< The parameter has only an lower limit. */
0050 };
0051 
0052 /**
0053  * Determine whether a the objects referred to by a Reference or a
0054  * RefVector should be automaticlly rebound (i.e. do not need to be
0055  * explicitly rebound in the rebind() function).
0056  */
0057 enum Rebind {
0058   norebind = true, /**< The reference is not automatically rebound. */
0059   rebind = false     /**< The reference is automatically rebound. */
0060 };
0061 
0062 /**
0063  * Determine whether a Reference or RefVector object may be null.
0064  */
0065 enum Nullable {
0066   nonull = false, /**< The reference may not be null. */
0067   nullok = true   /**< The reference may be null. */
0068 };
0069 
0070 /**
0071  * Determine whether a null reference should be given a default value
0072  * if suitable object is registered as default in the Strategy object
0073  * of a run.
0074  */
0075 enum NullDefault {
0076   nodefnull = false, /**< The reference will not be set to default if null. */
0077   defnull = true     /**< The reference will be set to default if null. */
0078 };
0079 
0080 
0081 }
0082 
0083 }
0084 
0085 #endif /* THEPEG_Interface_H */