![]() |
|
|||
File indexing completed on 2024-04-06 12:13:30
0001 //-*-c++-*- 0002 //-*-GG.cpp-*- 0003 // Written by James Monk and Andrew Pilkington 0004 ////////////////////////////////////////////////////////////////////////////// 0005 0006 #include "GeneratorInterface/ExhumeInterface/interface/GG.h" 0007 0008 ////////////////////////////////////////////////////////////////////////////// 0009 Exhume::GG::GG(const edm::ParameterSet& pset) : TwoSpace(pset) { 0010 std::cout << std::endl << " =Glu Glu production selected=" << std::endl; 0011 SetThetaMin(acos(0.95)); 0012 Partons[0].id = 21; 0013 Partons[1].id = 21; 0014 Partons[0].Colour = 101; 0015 Partons[0].AntiColour = 102; 0016 Partons[1].Colour = 102; 0017 Partons[1].AntiColour = 101; 0018 0019 EighteenPI = 18.0 * M_PI; 0020 0021 Name = "di-gluon"; 0022 } 0023 ////////////////////////////////////////////////////////////////////////////// 0024 double Exhume::GG::SubProcess() { 0025 //error ? 0.5 factor from integration over t -> cos theta? 0026 double AlphaS_ = AlphaS(0.5 * SqrtsHat); 0027 double InvSinTheta2 = InvSinTheta * InvSinTheta; 0028 return (EighteenPI * AlphaS_ * AlphaS_ * InvsHat * InvSinTheta2 * InvSinTheta2 * Gev2fb / (2 * M_PI)); 0029 } 0030 void Exhume::GG::LIPS2Amp() { 0031 double Theta = acos(CosTheta); 0032 //SinTheta = sin(Theta); 0033 InvSinTheta = 1.0 / sin(Theta); 0034 0035 return; 0036 } 0037 0038 void Exhume::GG::Amp2LIPS() { return; } 0039 /* 0040 ////////////////////////////////////////////////////////////////////////////// 0041 void Exhume::GG::SetSubParameters(){ 0042 double ThetaRand = double(rand())/RAND_MAX; 0043 CosTheta = GetValue(ThetaRand); 0044 Theta = acos(CosTheta); 0045 SinTheta = sin(Theta); 0046 InvSinTheta = 1.0/sin(Theta); 0047 } 0048 ////////////////////////////////////////////////////////////////////////////// 0049 double Exhume::GG::SubParameterRange(){ 0050 return(TotalIntegral); 0051 } 0052 ////////////////////////////////////////////////////////////////////////////// 0053 void Exhume::GG::MaximiseSubParameters(){ 0054 WeightInit(CosThetaMin,CosThetaMax); 0055 Theta = ThetaMin; 0056 InvSinTheta = 1.0/SinThetaMin; 0057 } 0058 ////////////////////////////////////////////////////////////////////////////// 0059 double Exhume::GG::SubParameterWeight(){ 0060 SubWgt = GetFunc(CosTheta); 0061 return(SubWgt); 0062 } 0063 ////////////////////////////////////////////////////////////////////////////// 0064 void Exhume::GG::SetPartons(){ 0065 E = 0.5*SqrtsHat; 0066 Phi = 2*M_PI*double(rand())/RAND_MAX; 0067 Px = E*SinTheta*cos(Phi); 0068 Py = E*SinTheta*sin(Phi); 0069 Pz = E*CosTheta; 0070 0071 Partons[0].p.setPx(Px); 0072 Partons[0].p.setPy(Py); 0073 Partons[0].p.setPz(Pz); 0074 Partons[0].p.setE(E); 0075 0076 Partons[1].p.setPx(-Px); 0077 Partons[1].p.setPy(-Py); 0078 Partons[1].p.setPz(-Pz); 0079 Partons[1].p.setE(E); 0080 0081 Partons[0].p.boost(CentralVector.boostVector()); 0082 Partons[1].p.boost(CentralVector.boostVector()); 0083 0084 return; 0085 0086 } 0087 0088 ///////////////////////////////////////////////////////////////////////////// 0089 void Exhume::GG::SetThetaMin(const double& ThetaMin_){ 0090 ThetaMin = ThetaMin_; 0091 ThetaMax = M_PI - ThetaMin_; 0092 // SinThetaMin = sin(ThetaMin); 0093 CosThetaMin = cos(ThetaMax); 0094 CosThetaMax = cos(ThetaMin); 0095 return; 0096 } 0097 0098 0099 ////////////////////////////////////////////////////////////////////////////// 0100 double Exhume::GG::WeightFunc(const double& CosTheta_){ 0101 InvSinTheta = 1.0/sin(acos(CosTheta_)); 0102 return(SinThetaMin*SinThetaMin*SinThetaMin*SinThetaMin 0103 *InvSinTheta*InvSinTheta*InvSinTheta*InvSinTheta); 0104 } 0105 ////////////////////////////////////////////////////////////////////////////// 0106 */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |