Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef PHASIC_Channels_FSR_Channel_H
0002 #define PHASIC_Channels_FSR_Channel_H
0003 
0004 #include "PHASIC++/Channels/Single_Channel.H"
0005 #include "PHASIC++/Channels/Vegas.H"
0006 
0007 namespace PHASIC {
0008   class S1Channel : public Single_Channel {
0009     /*!
0010       This channel is meant to be the default s-channel integrator.
0011       There is no specific angular dependence, i.e. cos(theta) in the rest 
0012       frame is distributed uniformly.
0013     */
0014     double E,s;
0015     double E1,E2,Ehat,shat,phat;
0016     double pt,pl,pt2,pt2min,pt2max,smin,smax;
0017     double zmin,zmax,z;
0018     double mass,width;
0019     int    type;
0020     int    chnumber;
0021     Vegas *p_vegas;
0022   public :
0023     S1Channel(int,int,ATOOLS::Flavour *,
0024           ATOOLS::Flavour=ATOOLS::Flavour(kf_none)); 
0025     ~S1Channel();
0026     void GeneratePoint(ATOOLS::Vec4D * p,Cut_Data *,double * _ran);
0027     void GenerateWeight(ATOOLS::Vec4D * p,Cut_Data *);
0028     void ISRInfo(int &,double &,double &);
0029     void MPISync() { p_vegas->MPISync(); }
0030     void Optimize() { p_vegas->Optimize(); }
0031     void EndOptimize() { p_vegas->EndOptimize(); }
0032     void WriteOut(std::string pId) { p_vegas->WriteOut(pId); }
0033     void ReadIn(std::string pId) { p_vegas->ReadIn(pId); }
0034     int  ChNumber()                 { return chnumber;      }
0035     void SetChNumber(int _chnumber) { chnumber = _chnumber; }
0036     std::string ChID();
0037   };
0038 
0039   class T1Channel : public Single_Channel {
0040     /*!
0041       This channel is meant to be the default t-channel integrator.
0042       There is no specific angular dependence, i.e. cos(theta) in the rest 
0043       frame is distributed uniformly.
0044     */
0045     double E,s;
0046     double E1,E2,Ehat,shat,phat;
0047     double pt,pl,pt2,pt2min,pt2max,smin,smax;
0048     double zmin,zmax,z;
0049     double mass,width;
0050     int    type;
0051     int    chnumber;
0052     Vegas *p_vegas;
0053   public :
0054     T1Channel(int,int,ATOOLS::Flavour *,
0055           ATOOLS::Flavour=ATOOLS::Flavour(kf_none)); 
0056     ~T1Channel();
0057     void GeneratePoint(ATOOLS::Vec4D * p,Cut_Data *,double * _ran);
0058     void GenerateWeight(ATOOLS::Vec4D * p,Cut_Data *);
0059     void ISRInfo(int &,double &,double &);
0060     void MPISync() { p_vegas->MPISync(); }
0061     void Optimize() { p_vegas->Optimize(); }
0062     void EndOptimize() { p_vegas->EndOptimize(); }
0063     void WriteOut(std::string pId) { p_vegas->WriteOut(pId); }
0064     void ReadIn(std::string pId) { p_vegas->ReadIn(pId); }
0065     int  ChNumber()                 { return chnumber;      }
0066     void SetChNumber(int _chnumber) { chnumber = _chnumber; }
0067     std::string ChID();
0068   };
0069 
0070 
0071   class U1Channel : public Single_Channel {
0072     /*!
0073       This channel is meant to be the default u-channel integrator.
0074       There is no specific angular dependence, i.e. cos(theta) in the rest 
0075       frame is distributed uniformly.
0076     */
0077     double E,s;
0078     double E1,E2,Ehat,shat,phat;
0079     double pt,pl,pt2,pt2min,pt2max,smin,smax;
0080     double zmin,zmax,z;
0081     double mass,width;
0082     int    type;
0083     int    chnumber;
0084     Vegas *p_vegas;
0085   public :
0086     U1Channel(int,int,ATOOLS::Flavour *,
0087           ATOOLS::Flavour=ATOOLS::Flavour(kf_none)); 
0088     ~U1Channel();
0089     void GeneratePoint(ATOOLS::Vec4D * p,Cut_Data *,double * _ran);
0090     void GenerateWeight(ATOOLS::Vec4D * p,Cut_Data *);
0091     void ISRInfo(int &,double &,double &);
0092     void MPISync() { p_vegas->MPISync(); }
0093     void Optimize() { p_vegas->Optimize(); }
0094     void EndOptimize() { p_vegas->EndOptimize(); }
0095     void WriteOut(std::string pId) { p_vegas->WriteOut(pId); }
0096     void ReadIn(std::string pId) { p_vegas->ReadIn(pId); }
0097     int  ChNumber()                 { return chnumber;      }
0098     void SetChNumber(int _chnumber) { chnumber = _chnumber; }
0099     std::string ChID();
0100   };
0101 
0102 
0103   class Decay2Channel : public Single_Channel {
0104     /*!
0105       This channel is meant to be the default s-channel integrator.
0106       There is no specific angular dependence, i.e. cos(theta) in the rest 
0107       frame is distributed uniformly.
0108     */
0109     double E,s;
0110     double E1,E2,Ehat,shat,phat;
0111     double pt,pl,pt2,pt2min,pt2max,smin,smax;
0112     double zmin,zmax,z;
0113     double mass,width;
0114     int    type;
0115     int    chnumber;
0116   public :
0117     Decay2Channel(int,int,const ATOOLS::Flavour *,
0118           ATOOLS::Flavour=ATOOLS::Flavour(kf_none)); 
0119     void GeneratePoint(ATOOLS::Vec4D * p,double *);
0120     void GenerateWeight(ATOOLS::Vec4D * p);
0121     void GeneratePoint(ATOOLS::Vec4D * p,Cut_Data *,double * _ran) { GeneratePoint(p,_ran); } 
0122     void GenerateWeight(ATOOLS::Vec4D * p,Cut_Data *)              { GenerateWeight(p); }
0123     void ISRInfo(int &,double &,double &);
0124     void MPISync() { }
0125     int  ChNumber()                 { return chnumber;      }
0126     void SetChNumber(int _chnumber) { chnumber = _chnumber; }
0127   };
0128 
0129 
0130   class NoChannel : public Single_Channel {
0131     /*!
0132       This channel is meant to be the integrator for s-channel instanton production
0133       and similar processes, where an s-channel object with no specific mass is
0134 produced.
0135     */
0136     double E,s;
0137     double pt2min,pt2max,smin,smax;
0138     double mass,width;
0139     int    type;
0140     int    chnumber;
0141   public :
0142     NoChannel(int,int,ATOOLS::Flavour *,
0143           ATOOLS::Flavour=ATOOLS::Flavour(kf_none)); 
0144     ~NoChannel() {}
0145     void GeneratePoint(ATOOLS::Vec4D * p,Cut_Data *,double * _ran);
0146     void GenerateWeight(ATOOLS::Vec4D * p,Cut_Data *);
0147     void ISRInfo(int &,double &,double &);
0148     void MPISync()                  { }
0149     void Optimize()                 { }
0150     void EndOptimize()              { }
0151     void WriteOut(std::string pId)  { }
0152     void ReadIn(std::string pId)    { }
0153     int  ChNumber()                 { return chnumber;      }
0154     void SetChNumber(int _chnumber) { chnumber = _chnumber; }
0155     std::string ChID();
0156   };
0157 }
0158 
0159 
0160 #endif