Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:09:47

0001 #ifndef AMEGIC_Main_Topology_H
0002 #define AMEGIC_Main_Topology_H
0003 
0004 #include "AMEGIC++/Main/Point.H"
0005 
0006 namespace AMEGIC {
0007   //! A list of topologies with the same number of legs.
0008   struct Single_Topology {
0009     //! Number of topologies.
0010     int number;
0011     //! Depth of the topology.
0012     int depth;
0013     //! The list of point lists.
0014     Point** p;//[number][depth]
0015     //! Prints a Single_Topology
0016     void   Print(std::ostream &);
0017     void   Print(Point*,std::ostream &,size_t &);
0018   };
0019   
0020   //! Creates and handles topologies.
0021   class Topology {
0022     //! Maximum number of topologies
0023     int              ntop;
0024     //! The list of topology lists, one entry equals a certain number of legs.
0025     Single_Topology* top;
0026     //! Build all topologies to a maximum number of legs.
0027     void   Build_All(int);
0028     //! Build all topologies for a certain number of legs.
0029     void   Build_Single(int,Single_Topology*);
0030   public:
0031     //! Default Constructor.
0032     Topology(); 
0033     //! Constructs all topologies.
0034     Topology(int); 
0035     //! Destructs all topologies.
0036     ~Topology();
0037     //! Returns a list of topologies with a certain number of legs.
0038     inline int NTop() const {return ntop;}
0039     //! Returns a list of topologies with a certain number of legs.
0040     inline Single_Topology* Get(int N) {return &top[N];}
0041     //! Copies a given point list into another.
0042     Point* Copy(Point*,Point*,int&);
0043     //! Prints a topology.
0044     void   Print(int,std::ostream &);
0045     void   Print(std::ostream &);
0046   };
0047 
0048   std::ostream & operator<<(std::ostream &s,Single_Topology &stop);
0049   std::ostream & operator<<(std::ostream &s,Topology &top);
0050 }
0051 #endif
0052 
0053 
0054 
0055 
0056 
0057 
0058 
0059 
0060 
0061 
0062