Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-15 10:30:44

0001 #ifndef ATOOLS_Phys_Flow_H
0002 #define ATOOLS_Phys_Flow_H
0003 
0004 #include <iostream>
0005 #include <map>
0006 #include <set>
0007 
0008 namespace ATOOLS {
0009 
0010   class Particle;
0011 
0012   class Flow {
0013   private:
0014 
0015     static unsigned int s_qcd_counter;
0016 
0017     unsigned int m_codes[2];
0018 
0019     friend std::ostream& operator<<(std::ostream &ostr,const Flow &flow);
0020 
0021   public:
0022 
0023     Flow();
0024     Flow(const Flow &flow);
0025     ~Flow();
0026 
0027     void SetCode(const Flow &flow);
0028 
0029     /// Sets the code for code_index, which is expected to be either 1 or 2.
0030     /// If the code is left at its default, -1, a previously unused value is
0031     /// used as a colour code.
0032     void SetCode(const unsigned int code_index=1,const int code=-1);
0033 
0034     /// Returns the code for index, which is expected to be either 1 or 2.
0035     unsigned int Code(const unsigned int index=1) const;
0036 
0037     /// Returns the index for code, if it exists, or -1 otherwise
0038     int          Index(const unsigned int code) const;
0039 
0040     void         SwapColourIndices();
0041 
0042     inline static void ResetCounter() { s_qcd_counter=600; }
0043     inline static unsigned int Counter() { return ++s_qcd_counter; }
0044 
0045   };// end of class Flow
0046 
0047 }// end of namespace ATOOLS
0048 
0049 #endif