Skip to content

Commit 517fcb3

Browse files
authored
Merge branch 'develop' into bugfix/ncryo
2 parents df24238 + 8c6324b commit 517fcb3

2 files changed

Lines changed: 23 additions & 10 deletions

File tree

sbncode/EventGenerator/MeVPrtl/Tools/Higgs/HiggsMakeDecay_tool.cc

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ class HiggsMakeDecay : public IMeVPrtlDecay {
8282
bool fAllowMuonDecay;
8383
bool fAllowPionDecay;
8484
bool fAllowPi0Decay;
85+
bool fNewFormFactor;
8586
bool fAddTimeOfFlight;
8687

8788
};
@@ -127,24 +128,34 @@ double MuonPartialWidth(double higs_mass, double mixing) {
127128
return LeptonPartialWidth(Constants::Instance().muon_mass, higs_mass, mixing);
128129
}
129130

130-
double PionPartialWidth(double pion_mass, double higs_mass, double mixing) {
131+
double PionPartialWidth(double pion_mass, double higs_mass, double mixing, bool use_new_ff) {
131132
if (pion_mass * 2 >= higs_mass) return 0.;
132133

133134
double higgs_vev = Constants::Instance().higgs_vev;
134135

135-
double form_factor = (2. / 9.) * higs_mass * higs_mass + (11. / 9.) * pion_mass * pion_mass;
136+
double form_factor = 0.;
137+
if (use_new_ff) {
138+
// New, improved form factor based on the plot in arXiv:1909.11670v4
139+
// This form factor is significnatly different than in older versions
140+
// The expression is a fit to the Fig. 1 left panel in arXiv:1909.11670v4
141+
form_factor = 0.537569 * pow(higs_mass - 2 * Constants::Instance().pizero_mass,0.75);
142+
}
143+
else {
144+
// Old form factor
145+
form_factor = (2. / 9.) * higs_mass * higs_mass + (11. / 9.) * pion_mass * pion_mass;
146+
}
136147

137148
double width = (mixing * mixing * 3 * form_factor * form_factor / (32 * M_PI * higgs_vev * higgs_vev * higs_mass)) * pow(1- 4. * pion_mass * pion_mass / (higs_mass * higs_mass), 1. / 2.);
138149

139150
return width;
140151
}
141152

142-
double PiPlusPartialWidth(double higs_mass, double mixing) {
143-
return 2*PionPartialWidth(Constants::Instance().piplus_mass, higs_mass, mixing);
153+
double PiPlusPartialWidth(double higs_mass, double mixing, bool use_new_ff) {
154+
return 2*PionPartialWidth(Constants::Instance().piplus_mass, higs_mass, mixing, use_new_ff);
144155
}
145156

146-
double PiZeroPartialWidth(double higs_mass, double mixing) {
147-
return PionPartialWidth(Constants::Instance().pizero_mass, higs_mass, mixing);
157+
double PiZeroPartialWidth(double higs_mass, double mixing, bool use_new_ff) {
158+
return PionPartialWidth(Constants::Instance().pizero_mass, higs_mass, mixing, use_new_ff);
148159
}
149160

150161
HiggsMakeDecay::HiggsMakeDecay(fhicl::ParameterSet const &pset):
@@ -173,6 +184,7 @@ void HiggsMakeDecay::configure(fhicl::ParameterSet const &pset)
173184
fAllowMuonDecay = pset.get<bool>("AllowMuonDecay", true);
174185
fAllowPionDecay = pset.get<bool>("AllowPionDecay", true);
175186
fAllowPi0Decay = pset.get<bool>("AllowPi0Decay", true);
187+
fNewFormFactor = pset.get<bool>("NewFormFactor", true);
176188
fAddTimeOfFlight = pset.get<bool>("AddTimeOfFlight", true);
177189

178190
if (fReferenceHiggsEnergy < 0. && fReferenceHiggsKaonEnergy > 0.) {
@@ -185,8 +197,8 @@ void HiggsMakeDecay::configure(fhicl::ParameterSet const &pset)
185197
// Get each partial width
186198
double width_elec = ElectronPartialWidth(fReferenceHiggsMass, fReferenceHiggsMixing);
187199
double width_muon = MuonPartialWidth(fReferenceHiggsMass, fReferenceHiggsMixing);
188-
double width_piplus = PiPlusPartialWidth(fReferenceHiggsMass, fReferenceHiggsMixing);
189-
double width_pizero = PiZeroPartialWidth(fReferenceHiggsMass, fReferenceHiggsMixing);
200+
double width_piplus = PiPlusPartialWidth(fReferenceHiggsMass, fReferenceHiggsMixing, fNewFormFactor);
201+
double width_pizero = PiZeroPartialWidth(fReferenceHiggsMass, fReferenceHiggsMixing, fNewFormFactor);
190202

191203
// total lifetime
192204
double lifetime_ns = Constants::Instance().hbar / (width_elec + width_muon + width_piplus + width_pizero);
@@ -241,8 +253,8 @@ bool HiggsMakeDecay::Decay(const MeVPrtlFlux &flux, const TVector3 &in, const TV
241253
// Get each partial width
242254
double width_elec = ElectronPartialWidth(flux.mass, mixing);
243255
double width_muon = MuonPartialWidth(flux.mass, mixing);
244-
double width_piplus = PiPlusPartialWidth(flux.mass, mixing);
245-
double width_pizero = PiZeroPartialWidth(flux.mass, mixing);
256+
double width_piplus = PiPlusPartialWidth(flux.mass, mixing, fNewFormFactor);
257+
double width_pizero = PiZeroPartialWidth(flux.mass, mixing, fNewFormFactor);
246258

247259
// total lifetime
248260
double lifetime_ns = Constants::Instance().hbar / (width_elec + width_muon + width_piplus + width_pizero);

sbncode/EventGenerator/MeVPrtl/config/Higgs/dissonant_higgs.fcl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ decay_higgs: {
4141
ReferenceRayLength: 2100 # 21m
4242
ReferenceHiggsMass: @local::higgsM
4343
ReferenceHiggsMixing: 1e-5
44+
NewFormFactor: true
4445
ReferenceRayDistance: 80000 # 800m
4546
ReferenceHiggsEnergyFromKaonEnergy: 15. # GeV
4647
AddTimeOfFlight: true

0 commit comments

Comments
 (0)