| 1 | //
|
|---|
| 2 | // Macro to calculate the colored resonance width
|
|---|
| 3 | //
|
|---|
| 4 | // Set the coupling (qqtrip) and then the code loops over triplet particle
|
|---|
| 5 | // masses and prints them to the screen and into a text file and shell script
|
|---|
| 6 | // that is convenient to use for event generation.
|
|---|
| 7 | //
|
|---|
| 8 | // Author: Reinhard Schwienhorst, from the bprime one
|
|---|
| 9 | //
|
|---|
| 10 | // Date: July 2012
|
|---|
| 11 | //
|
|---|
| 12 | //
|
|---|
| 13 | #include "TMath.h"
|
|---|
| 14 | #include <iostream>
|
|---|
| 15 | ofstream fout, fout1,fshell;
|
|---|
| 16 | //
|
|---|
| 17 | // coupling parameters. You could change these if you wanted to
|
|---|
| 18 | double qqtrip = 0.3; // default: 1
|
|---|
| 19 |
|
|---|
| 20 | // SM parameters
|
|---|
| 21 | double MT = 172.5;
|
|---|
| 22 | double MW = 80.267;
|
|---|
| 23 | double MB = 4.2;
|
|---|
| 24 | double MH = 125.0;
|
|---|
| 25 | double k_z = 1.;
|
|---|
| 26 | double gs = 1.2177158;
|
|---|
| 27 | double MZ = 91.545;
|
|---|
| 28 |
|
|---|
| 29 | double gwrs=0.65189214;
|
|---|
| 30 | double cwrs=0.876812409;
|
|---|
| 31 | double vrs=246.259632;
|
|---|
| 32 |
|
|---|
| 33 | oneMRes (const double& MRes=700, const double& qqt=0.3);
|
|---|
| 34 |
|
|---|
| 35 | resonanceWidth(){
|
|---|
| 36 |
|
|---|
| 37 | fout.open("colored_resonance_masswidth.lst");
|
|---|
| 38 | fout1.open("colored_resonance_widthdetails.lst");
|
|---|
| 39 | fshell.open("masswidth.sh");
|
|---|
| 40 | fout << " qqtrip = " << qqtrip <<endl;
|
|---|
| 41 | fout << " M_T = " << MT << endl;
|
|---|
| 42 | fout << "colored resonance Mass [GeV] Width [GeV] " << endl;
|
|---|
| 43 | fout1<< "colored res Mass [GeV] Width [GeV]" << endl;
|
|---|
| 44 | for(int i=0; i<60; i++){
|
|---|
| 45 | double inMR = 300 + 50 * i ;
|
|---|
| 46 | cout << inMR<<" qqtrip = " << qqtrip<<endl;
|
|---|
| 47 | oneMRes(inMR,qqtrip);
|
|---|
| 48 | }
|
|---|
| 49 | fout.close();
|
|---|
| 50 | fout1.close();
|
|---|
| 51 | fshell.close();
|
|---|
| 52 | }
|
|---|
| 53 |
|
|---|
| 54 | // helper functions for the width calculation
|
|---|
| 55 | double lambda(const double& m0,const double& m1,const double& m2) {
|
|---|
| 56 | return (pow(m0,4) + pow(m1,4) + pow(m2,4)
|
|---|
| 57 | - 2.*pow(m0,2)*pow(m1,2)
|
|---|
| 58 | - 2.*pow(m0,2)*pow(m2,2)
|
|---|
| 59 | - 2.*pow(m1,2)*pow(m2,2));
|
|---|
| 60 | }
|
|---|
| 61 | double lambda2(const double& xf,const double& xv) { return lambda(xf,xv,1.); }
|
|---|
| 62 | double FFV1(const double& g,const double& fL, const double& fR, const double& mB,const double& mv, const double& xf, const double& xv) {
|
|---|
| 63 | return (pow(g,2)/(32.*TMath::Pi())
|
|---|
| 64 | * pow(mB,3)/pow(mv,2)
|
|---|
| 65 | * TMath::Sqrt(lambda2(xf,xv))
|
|---|
| 66 | * ((pow(fL,2)+pow(fR,2))*(1.+pow(xv,2)-2.*pow(xf,2)-2.*pow(xv,4)
|
|---|
| 67 | +pow(xv,2)*pow(xf,2)+pow(xf,4))
|
|---|
| 68 | - 12.*fL*fR*pow(xv,2)*xf) );
|
|---|
| 69 | }
|
|---|
| 70 |
|
|---|
| 71 |
|
|---|
| 72 | //
|
|---|
| 73 | // function to compute the partial and total widths at one mass
|
|---|
| 74 | //
|
|---|
| 75 | oneMRes(const double& MRes, const double& qqt){
|
|---|
| 76 | //
|
|---|
| 77 | // RS implementing what Jianghao has:
|
|---|
| 78 | double fL=qqt;
|
|---|
| 79 | double fR=qqt;
|
|---|
| 80 | double wtb = MRes/16./TMath::Pi()
|
|---|
| 81 | * TMath::Sqrt(lambda2(MT/MRes,MB/MRes))
|
|---|
| 82 | * ( (pow(fL,2)+pow(fR,2))*(1.-pow(MT/MRes,2)-pow(MB/MRes,2))
|
|---|
| 83 | - 4.*fL*fR*MT/MRes*MB/MRes);
|
|---|
| 84 |
|
|---|
| 85 | // output to text file and script that updates the param_card.dat-bak file
|
|---|
| 86 | fout << MRes << " \t\t " << wtb << endl;
|
|---|
| 87 | fout1 << MRes << " \t " << wtb << endl;
|
|---|
| 88 | //
|
|---|
| 89 | // now for light quarks:
|
|---|
| 90 | double wqq = MRes/16./TMath::Pi()
|
|---|
| 91 | * 1.
|
|---|
| 92 | * (pow(fL,2)+pow(fR,2));
|
|---|
| 93 |
|
|---|
| 94 | cout<<MRes<<", tb width "<<wtb<<", qq' width "<<wqq<<", total width "<<2.*wqq+wtb<<endl;
|
|---|
| 95 | //cout << "Width of " << MRes << " GeV colored resonance is : " << wtb << endl;
|
|---|
| 96 |
|
|---|
| 97 | }
|
|---|
| 98 |
|
|---|