Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:12

0001 #ifndef PHOTONS_Main_Dipole_Type_H
0002 #define PHOTONS_Main_Dipole_Type_H
0003 
0004 #include <ostream>
0005 #include <cstdlib>
0006 #include <vector>
0007 
0008 // #define PHOTONS_DEBUG
0009 
0010 namespace ATOOLS {
0011   class Particle;
0012   typedef std::vector<Particle* > Particle_Vector;
0013 }
0014 
0015 namespace PHOTONS {
0016 
0017   typedef std::vector<ATOOLS::Particle_Vector> Particle_Vector_Vector;
0018 
0019   struct IdPair {
0020     public:
0021       size_t i,j;
0022       IdPair(size_t _i, size_t _j): i(_i), j(_j) {}
0023   };
0024 
0025   std::ostream& operator<<(std::ostream&,const IdPair&);
0026 
0027   struct IdPairNbar {
0028     public:
0029       IdPair ij;
0030       double nbar;
0031       IdPairNbar(IdPair _ij, double _nbar) : 
0032         ij(_ij), nbar(_nbar) {}
0033       IdPairNbar(size_t _i, size_t _j, double _nbar) : 
0034         ij(IdPair(_i,_j)), nbar(_nbar) {}
0035   };
0036 
0037   std::ostream& operator<<(std::ostream&,const IdPairNbar&);
0038 
0039   typedef std::vector<IdPairNbar> IdPairNbarVector;
0040 
0041   struct Dipole_Type {
0042     public:
0043       enum code {
0044         ii     =   1,     // initial-initial
0045         fi     =   2,     // final-initial
0046         ff     =   3,     // final-final
0047 
0048         unknown =   0
0049       };
0050   };
0051 
0052 
0053   
0054 
0055   /*!
0056     \file Dipole_Type.H
0057     \brief contains the class Dipole_Type and additional typedefs for Particle handling
0058   */
0059 
0060   /*!
0061     \class Dipole_Type
0062     \brief defines a numbering scheme for the different dipole types
0063   */
0064 
0065   /*!
0066     \enum Dipole_Type::code
0067     \brief enumeration of the Dipole_Type
0068 
0069     - ii  -- initial-initial; all charged particles are initial state
0070     - fi  -- final-initial; charged particles are both initial and final state
0071     - ff  -- final-final; all charged particles are final state
0072 
0073     - unknown
0074     .
0075   */
0076 
0077   /*!
0078     \typedef std::vector<Particle_Vector>    Particle_Vector_Vector
0079     \brief builds a vector out of Particle_Vector's
0080   */
0081 
0082 }
0083 
0084 #endif