SND@LHC Software
Loading...
Searching...
No Matches
dpProductionRates Namespace Reference

Functions

 isDP (pdg)
 
 pbremProdRateVDM (mass, epsilon, doprint=True)
 
 pbremProdRateDipole (mass, epsilon, doprint=False)
 
 getAverageMesonRate (mumPdg)
 
 mesonBRtoPhoton (mumPdg, doprint=False)
 
 brMesonToGammaDP (mass, epsilon, mumPdg, doprint=False)
 
 brMesonToMesonDP (mass, epsilon, mumPdg, dauPdg, doprint=False)
 
 brMesonToDP (mass, epsilon, mumPdg, doprint=False)
 
 mesonProdRate (mass, epsilon, mumPdg, doprint=False)
 
 qcdprodRate (mass, epsilon, doprint=False)
 
 getDPprodRate (mass, epsilon, prodMode, mumPdg, doprint=False)
 

Variables

 PDG = ROOT.TDatabasePDG.Instance()
 
int protonFlux = 2e20
 

Function Documentation

◆ brMesonToDP()

dpProductionRates.brMesonToDP (   mass,
  epsilon,
  mumPdg,
  doprint = False 
)

Definition at line 74 of file dpProductionRates.py.

74def brMesonToDP(mass,epsilon,mumPdg,doprint=False):
75 if mumPdg==223: return brMesonToMesonDP(mass,epsilon,mumPdg,111,doprint)
76 elif (mumPdg==111 or mumPdg==221): return brMesonToGammaDP(mass,epsilon,mumPdg,doprint)
77 elif mumPdg==331: return brMesonToMesonDP(mass,epsilon,mumPdg,113,doprint),brMesonToGammaDP(mass,epsilon,mumPdg,doprint)
78 else:
79 print("Warning! Unknown mother pdgId %d, not implemented. Setting br to 0."%mumPdg)
80 return 1
81

◆ brMesonToGammaDP()

dpProductionRates.brMesonToGammaDP (   mass,
  epsilon,
  mumPdg,
  doprint = False 
)

Definition at line 52 of file dpProductionRates.py.

52def brMesonToGammaDP(mass,epsilon,mumPdg,doprint=False):
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)
56 else: br = 0
57 if (doprint==True): print("Branching ratio of %d meson to DP is %.8g"%(mumPdg,br))
58 return br
59

◆ brMesonToMesonDP()

dpProductionRates.brMesonToMesonDP (   mass,
  epsilon,
  mumPdg,
  dauPdg,
  doprint = False 
)

Definition at line 60 of file dpProductionRates.py.

60def brMesonToMesonDP(mass,epsilon,mumPdg,dauPdg,doprint=False):
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
69 br = (epsilon**2.)*mesonBRtoPhoton(mumPdg,doprint)*massfactor
70 else: br = 0
71 if (doprint==True): print("Branching ratio of %d meson to DP is %.8g"%(mumPdg,br))
72 return br
73

◆ getAverageMesonRate()

dpProductionRates.getAverageMesonRate (   mumPdg)

Definition at line 34 of file dpProductionRates.py.

34def getAverageMesonRate(mumPdg):
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)
40 return 0
41
42#from the PDG, decay to photon channels available for mixing with DP

◆ getDPprodRate()

dpProductionRates.getDPprodRate (   mass,
  epsilon,
  prodMode,
  mumPdg,
  doprint = False 
)

Definition at line 103 of file dpProductionRates.py.

103def getDPprodRate(mass,epsilon,prodMode,mumPdg,doprint=False):
104 if ('pbrem' in prodMode):
105 print("VDM")
106 return pbremProdRateVDM(mass,epsilon,doprint)
107 elif ('pbrem1' in prodMode):
108 print("Dipole")
109 return pbremProdRateDipole(mass,epsilon,doprint)
110 elif ('meson' in prodMode):
111 return mesonProdRate(mass,epsilon,mumPdg,doprint)
112 elif ('qcd' in prodMode):
113 return qcdprodRate(mass,epsilon,doprint)
114 else:
115 print("Unknown production mode! Choose among pbrem, meson or qcd.")
116 return 1

◆ isDP()

dpProductionRates.isDP (   pdg)

Definition at line 12 of file dpProductionRates.py.

12def isDP(pdg):
13 if (pdg==9900015 or pdg==4900023):
14 return True
15 return False
16

◆ mesonBRtoPhoton()

dpProductionRates.mesonBRtoPhoton (   mumPdg,
  doprint = False 
)

Definition at line 43 of file dpProductionRates.py.

43def mesonBRtoPhoton(mumPdg,doprint=False):
44 br = 1
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))
50 return br
51

◆ mesonProdRate()

dpProductionRates.mesonProdRate (   mass,
  epsilon,
  mumPdg,
  doprint = False 
)

Definition at line 82 of file dpProductionRates.py.

82def mesonProdRate(mass,epsilon,mumPdg,doprint=False):
83 brM2DP=brMesonToDP(mass,epsilon,mumPdg,doprint)
84 if mumPdg==331:
85 avgMeson = getAverageMesonRate(mumPdg)*brM2DP[0]
86 avgMeson1 = getAverageMesonRate(mumPdg)*brM2DP[1]
87 return avgMeson*0.6, avgMeson1*0.6
88 #return avgMeson + avgMeson1
89 if not mumPdg==331:
90 avgMeson = getAverageMesonRate(mumPdg)*brM2DP
91 return avgMeson*0.6
92
93#from interpolation of Pythia XS, normalised to epsilon^2

◆ pbremProdRateDipole()

dpProductionRates.pbremProdRateDipole (   mass,
  epsilon,
  doprint = False 
)

Definition at line 25 of file dpProductionRates.py.

25def pbremProdRateDipole(mass,epsilon,doprint=False):
26 xswg = proton_bremsstrahlung.prodRate(mass, epsilon)
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))
31 return xswg*penalty
32
33#obtained with Pythia8: average number of meson expected per p.o.t from inclusive pp to X production, 100k events produced
prodRate(mDarkPhoton, epsilon, tmin=-0.5 *math.pi, tmax=0.5 *math.pi)

◆ pbremProdRateVDM()

dpProductionRates.pbremProdRateVDM (   mass,
  epsilon,
  doprint = True 
)

Definition at line 17 of file dpProductionRates.py.

17def pbremProdRateVDM(mass,epsilon,doprint=True):
18 xswg = proton_bremsstrahlung.prodRate(mass, epsilon)
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))
23 return xswg*rhoff
24

◆ qcdprodRate()

dpProductionRates.qcdprodRate (   mass,
  epsilon,
  doprint = False 
)

Definition at line 94 of file dpProductionRates.py.

94def qcdprodRate(mass,epsilon,doprint=False):
95 if (mass > 3.):
96 xs = math.exp(-5.928-0.8669*mass)
97 elif (mass > 1.4):
98 xs = math.exp(-4.1477-1.4745*mass)
99 else:
100 xs = 0.
101 return xs*epsilon*epsilon
102

Variable Documentation

◆ PDG

dpProductionRates.PDG = ROOT.TDatabasePDG.Instance()

Definition at line 8 of file dpProductionRates.py.

◆ protonFlux

int dpProductionRates.protonFlux = 2e20

Definition at line 9 of file dpProductionRates.py.