@@ -73,7 +73,6 @@ class HiggsMakeDecay : public IMeVPrtlDecay {
7373 double fReferenceRayDistance ;
7474 double fReferenceHiggsMass ;
7575 double fReferenceHiggsMixing ;
76- bool fNewFormFactor ;
7776 double fReferenceHiggsEnergy ;
7877 double fReferenceHiggsKaonEnergy ;
7978
@@ -83,6 +82,7 @@ class HiggsMakeDecay : public IMeVPrtlDecay {
8382 bool fAllowMuonDecay ;
8483 bool fAllowPionDecay ;
8584 bool fAllowPi0Decay ;
85+ bool fNewFormFactor ;
8686 bool fAddTimeOfFlight ;
8787
8888};
@@ -128,34 +128,34 @@ double MuonPartialWidth(double higs_mass, double mixing) {
128128 return LeptonPartialWidth (Constants::Instance ().muon_mass , higs_mass, mixing);
129129}
130130
131- 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 ) {
132132 if (pion_mass * 2 >= higs_mass) return 0 .;
133133
134134 double higgs_vev = Constants::Instance ().higgs_vev ;
135135
136136 double form_factor = 0 .;
137- if (fNewFormFactor ) {
137+ if (use_new_ff ) {
138138 // New, improved form factor based on the plot in arXiv:1909.11670v4
139139 // This form factor is significnatly different than in older versions
140140 // The expression is a fit to the Fig. 1 left panel in arXiv:1909.11670v4
141141 form_factor = pow (0.289 * pow (higs_mass - 2 * Constants::Instance ().pizero_mass ,1.5 ),0.5 );
142142 }
143143 else {
144144 // Old form factor
145- (2 . / 9 .) * higs_mass * higs_mass + (11 . / 9 .) * pion_mass * pion_mass;
145+ form_factor = (2 . / 9 .) * higs_mass * higs_mass + (11 . / 9 .) * pion_mass * pion_mass;
146146 }
147147
148148 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 .);
149149
150150 return width;
151151}
152152
153- double PiPlusPartialWidth (double higs_mass, double mixing) {
154- 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 );
155155}
156156
157- double PiZeroPartialWidth (double higs_mass, double mixing) {
158- 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 );
159159}
160160
161161HiggsMakeDecay::HiggsMakeDecay (fhicl::ParameterSet const &pset):
@@ -177,14 +177,14 @@ void HiggsMakeDecay::configure(fhicl::ParameterSet const &pset)
177177 fReferenceRayDistance = pset.get <double >(" ReferenceRayDistance" , 0 .);
178178 fReferenceHiggsMass = pset.get <double >(" ReferenceHiggsMass" , -1 );
179179 fReferenceHiggsMixing = pset.get <double >(" ReferenceHiggsMixing" , -1 );
180- fNewFormFactor = pset.get <bool >(" NewFormFactor" , -1 );
181180 fReferenceHiggsEnergy = pset.get <double >(" ReferenceHiggsEnergy" , -1 );
182181 fReferenceHiggsKaonEnergy = pset.get <double >(" ReferenceHiggsEnergyFromKaonEnergy" , -1 .);
183182
184183 fAllowElectronDecay = pset.get <bool >(" AllowElectronDecay" , true );
185184 fAllowMuonDecay = pset.get <bool >(" AllowMuonDecay" , true );
186185 fAllowPionDecay = pset.get <bool >(" AllowPionDecay" , true );
187186 fAllowPi0Decay = pset.get <bool >(" AllowPi0Decay" , true );
187+ fNewFormFactor = pset.get <bool >(" NewFormFactor" , true );
188188 fAddTimeOfFlight = pset.get <bool >(" AddTimeOfFlight" , true );
189189
190190 if (fReferenceHiggsEnergy < 0 . && fReferenceHiggsKaonEnergy > 0 .) {
@@ -197,8 +197,8 @@ void HiggsMakeDecay::configure(fhicl::ParameterSet const &pset)
197197 // Get each partial width
198198 double width_elec = ElectronPartialWidth (fReferenceHiggsMass , fReferenceHiggsMixing );
199199 double width_muon = MuonPartialWidth (fReferenceHiggsMass , fReferenceHiggsMixing );
200- double width_piplus = PiPlusPartialWidth (fReferenceHiggsMass , fReferenceHiggsMixing );
201- double width_pizero = PiZeroPartialWidth (fReferenceHiggsMass , fReferenceHiggsMixing );
200+ double width_piplus = PiPlusPartialWidth (fReferenceHiggsMass , fReferenceHiggsMixing , fNewFormFactor );
201+ double width_pizero = PiZeroPartialWidth (fReferenceHiggsMass , fReferenceHiggsMixing , fNewFormFactor );
202202
203203 // total lifetime
204204 double lifetime_ns = Constants::Instance ().hbar / (width_elec + width_muon + width_piplus + width_pizero);
@@ -253,8 +253,8 @@ bool HiggsMakeDecay::Decay(const MeVPrtlFlux &flux, const TVector3 &in, const TV
253253 // Get each partial width
254254 double width_elec = ElectronPartialWidth (flux.mass , mixing);
255255 double width_muon = MuonPartialWidth (flux.mass , mixing);
256- double width_piplus = PiPlusPartialWidth (flux.mass , mixing);
257- 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 );
258258
259259 // total lifetime
260260 double lifetime_ns = Constants::Instance ().hbar / (width_elec + width_muon + width_piplus + width_pizero);
0 commit comments