1from __future__
import division
2from __future__
import print_function
3import ROOT,os,sys,getopt,math
5import proton_bremsstrahlung
8PDG = ROOT.TDatabasePDG.Instance()
13 if (pdg==9900015
or pdg==4900023):
19 if doprint: print(
"A' production rate per p.o.t: \t %.8g"%(xswg))
21 if doprint: print(
"A' rho form factor: \t %.8g"%rhoff)
22 if doprint: print(
"A' rescaled production rate per p.o.t:\t %.8g"%(xswg*rhoff))
27 if doprint: print(
"A' production rate per p.o.t: \t %.8g"%(xswg))
29 if doprint: print(
"A' penalty factor: \t %.8g"%penalty)
30 if doprint: print(
"A' rescaled production rate per p.o.t:\t %.8g"%(xswg*penalty))
35 if (mumPdg==111):
return 6.166
36 if (mumPdg==221):
return 0.7012
37 if (mumPdg==223):
return 0.8295
38 if (mumPdg==331):
return 0.07825
39 print(
" -- ERROR, unknown mother pdgId %d"%mumPdg)
45 if (mumPdg==111): br = 0.9879900
46 if (mumPdg==221): br = 0.3931181
47 if (mumPdg==223): br = 0.0834941
48 if (mumPdg==331): br = 0.0219297
49 if (doprint==
True): print(
"BR of %d meson to photons: %.8g"%(mumPdg,br))
53 mMeson = PDG.GetParticle(mumPdg).Mass()
54 if (doprint==
True): print(
"Mass of mother %d meson is %3.3f"%(mumPdg,mMeson))
55 if (mass<mMeson): br = 2*epsilon**2*pow((1-mass**2/mMeson**2),3)*
mesonBRtoPhoton(mumPdg,doprint)
57 if (doprint==
True): print(
"Branching ratio of %d meson to DP is %.8g"%(mumPdg,br))
61 mMeson = PDG.GetParticle(mumPdg).Mass()
62 mDaughterMeson = PDG.GetParticle(dauPdg).Mass()
63 if (doprint==
True): print(
"Mass of mother %d meson is %3.3f"%(mumPdg,mMeson))
64 if (doprint==
True): print(
"Mass of daughter %d meson is %3.3f"%(dauPdg,mDaughterMeson))
65 if (mass<(mMeson-mDaughterMeson)):
66 fac1 = pow(mMeson**2.-mDaughterMeson**2.,-3.)
67 fac2 = pow((mass**2.-(mMeson+mDaughterMeson)**2.)*(mass**2.-(mMeson-mDaughterMeson)**2.),1.5)
68 massfactor = fac1*fac2
71 if (doprint==
True): print(
"Branching ratio of %d meson to DP is %.8g"%(mumPdg,br))
76 elif (mumPdg==111
or mumPdg==221):
return brMesonToGammaDP(mass,epsilon,mumPdg,doprint)
79 print(
"Warning! Unknown mother pdgId %d, not implemented. Setting br to 0."%mumPdg)
87 return avgMeson*0.6, avgMeson1*0.6
96 xs = math.exp(-5.928-0.8669*mass)
98 xs = math.exp(-4.1477-1.4745*mass)
101 return xs*epsilon*epsilon
104 if (
'pbrem' in prodMode):
107 elif (
'pbrem1' in prodMode):
110 elif (
'meson' in prodMode):
112 elif (
'qcd' in prodMode):
115 print(
"Unknown production mode! Choose among pbrem, meson or qcd.")
qcdprodRate(mass, epsilon, doprint=False)
brMesonToDP(mass, epsilon, mumPdg, doprint=False)
getDPprodRate(mass, epsilon, prodMode, mumPdg, doprint=False)
pbremProdRateDipole(mass, epsilon, doprint=False)
pbremProdRateVDM(mass, epsilon, doprint=True)
mesonBRtoPhoton(mumPdg, doprint=False)
brMesonToMesonDP(mass, epsilon, mumPdg, dauPdg, doprint=False)
getAverageMesonRate(mumPdg)
mesonProdRate(mass, epsilon, mumPdg, doprint=False)
brMesonToGammaDP(mass, epsilon, mumPdg, doprint=False)
prodRate(mDarkPhoton, epsilon, tmin=-0.5 *math.pi, tmax=0.5 *math.pi)