24#include "libxml/xmlmemory.h"
25#include "libxml/parser.h"
32#include <TChainElement.h>
34#include <TStopwatch.h>
37#include "Framework/Conventions/GBuild.h"
86 polz.SetXYZ(0.0, 0.0, 0.0);
88 p4.SetPxPyPzE(0.0, 0.0, 0.0, 0.0);
89 parp4.SetPxPyPzE(0.0, 0.0, 0.0, 0.0);
90 p4User.SetPxPyPzE(0.0, 0.0, 0.0, 0.0);
109 std::cout << *
this << std::endl;
121 std::string sNuProdChan;
122 int typeMod = (info.
pdg > 0) ? 1 : -1;
125 case 1: sNuProdChan = std::string(
"K0L -> nue + pi- + e+");
break;
126 case -1: sNuProdChan = std::string(
"K0L -> nuebar + pi+ + e-");
break;
127 case 2: sNuProdChan = std::string(
"K0L -> numu + pi- + mu");
break;
128 case -2: sNuProdChan = std::string(
"K0L -> numubar + pi+ + mu-");
break;
129 case 3: sNuProdChan = std::string(
"K+ -> numu + mu+");
break;
130 case -3: sNuProdChan = std::string(
"K- -> numubar + mu-");
break;
131 case 4: sNuProdChan = std::string(
"K+ -> nue + e+");
break;
132 case -4: sNuProdChan = std::string(
"K- -> nuebar + e-");
break;
133 case 5: sNuProdChan = std::string(
"K+ -> numu + pi0 + mu+");
break;
134 case -5: sNuProdChan = std::string(
"K- -> numubar + pi0 + mu-");
break;
135 case 6: sNuProdChan = std::string(
"K+ -> nue + pi0 + e+");
break;
136 case -6: sNuProdChan = std::string(
"K- -> nuebar + pi0 + e-");
break;
137 case 7: sNuProdChan = std::string(
"pi+ -> numu + mu+");
break;
138 case -7: sNuProdChan = std::string(
"pi- -> numubar + mu-");
break;
139 case 8: sNuProdChan = std::string(
"pi+ -> nue + e+");
break;
140 case -8: sNuProdChan = std::string(
"pi- -> nuebar + e-");
break;
141 case 9: sNuProdChan = std::string(
"mu- -> numu + nuebar + e-");
break;
142 case -9: sNuProdChan = std::string(
"mu+ -> numubar + nue + e+");
break;
143 default: sNuProdChan = std::string(
"Unknown!");
break;
146 stream <<
"\nEvent number: " << info.
evtno
147 <<
"\nHNL PDG code: " << info.
pdg
148 <<
"\nParent PDG code: " << info.
parPdg
149 <<
"\nCo-produced lepton PDG code: " << info.
lepPdg
150 <<
"\nParent weight: " << info.
nimpwt
152 <<
"\nPDG code of equivalent SM neutrino: " << info.
nuPdg
155 <<
"\nEquivalent neutrino production channel: " << sNuProdChan
157 <<
"\nHNL parent rest-frame energy [GeV]: " << info.
Ecm
158 <<
"\nEquivalent neutrino parent rest-frame energy [GeV]: " << info.
nuEcm
165 <<
"\nHNL delay wrt SM neutrino [ns]: " << info.
delay
168 <<
"\nDeviation angles zeta- = " << info.
zetaMinus <<
", zeta+ = " << info.
zetaPlus
169 <<
"\nGeometric acceptance: " << info.
XYWgt
170 <<
"\nBoost correction: " << info.
boostCorr
171 <<
"\nAcceptance correction: " << info.
accCorr
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils.
double nimpwt
Weight of parent.
double zetaPlus
maximum angular deviation from parent momentum to reach detector [deg]
double Ecm
Parent rest-frame energy of HNL [GeV].
double delay
delay HNL would have wrt SMv [ns]
int nuPdg
PDG code of SM neutrino that would have been produced.
int prodChan
Decay mode that produced HNL.
void Print(const Option_t *) const
TVector3 polz
HNL polarisation vector, in HNL rest frame, in NEAR coords.
TLorentzVector parp4
parent momentum at HNL production in NEAR coords [GeV/c]
double zetaMinus
minimum angular deviation from parent momentum to reach detector [deg]
TVector3 targetPoint
point in detector HNL is forced towards in NEAR coords [m]
int nuProdChan
Decay mode that would have produced SM neutrino.
int parPdg
parent PDG code
TLorentzVector parp4User
parent momentum at HNL production in USER coords [GeV/c]
TLorentzVector p4User
HNL momentum in USER coords [GeV/c].
double accCorr
acceptance correction (collimation effect. SM v == 1)
TVector3 startPointUser
parent decay vertex in USER coords [m]
double nuEcm
Parent rest-frame energy of equivalent SM neutrino [GeV].
double XYWgt
geometric acceptance (angular size of detector in parent rest frame)
double boostCorr
boost correction wrt parent rest-frame (ELAB = ECM * boostCorr)
TVector3 startPoint
parent decay vertex in NEAR coords [m]
TLorentzVector p4
HNL momentum in NEAR coords [GeV/c].
TVector3 targetPointUser
point in detector HNL is forced towards in USER coords [m]
double acceptance
full acceptance == XYWgt * boostCorr^2 * accCorr
int lepPdg
PDG code of lepton produced with HNL on parent decay.
ostream & operator<<(ostream &stream, const FluxContainer &info)
enum genie::hnl::t_HNLProd HNLProd_t
string ProdAsString(genie::hnl::HNLProd_t hnlprod)
string Vec3AsString(const TVector3 *vec)
string P4AsString(const TLorentzVector *p)
THE MAIN GENIE PROJECT NAMESPACE