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
0011
0012
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
0042
0043
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
0074
0075
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
0106
0107
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
0133
0134
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