24 #include "libxml/xmlmemory.h"
25 #include "libxml/parser.h"
32 #include <TChainElement.h>
34 #include <TStopwatch.h>
37 #include "Framework/Conventions/GBuild.h"
57 using namespace genie;
58 using namespace genie::hnl;
61 FluxContainer::FluxContainer()
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
enum genie::hnl::t_HNLProd HNLProd_t
TLorentzVector parp4
parent momentum at HNL production in NEAR coords [GeV/c]
double Ecm
Parent rest-frame energy of HNL [GeV].
double zetaMinus
minimum angular deviation from parent momentum to reach detector [deg]
double nuEcm
Parent rest-frame energy of equivalent SM neutrino [GeV].
double delay
delay HNL would have wrt SMv [ns]
TVector3 startPoint
parent decay vertex in NEAR coords [m]
int lepPdg
PDG code of lepton produced with HNL on parent decay.
TVector3 polz
HNL polarisation vector, in HNL rest frame, in NEAR coords.
int parPdg
parent PDG code
A GENIE flux container specific for HNL containers. Based on the dk2nu flux paradigm and genie::flux:...
string P4AsString(const TLorentzVector *p)
double zetaPlus
maximum angular deviation from parent momentum to reach detector [deg]
ostream & operator<<(ostream &stream, const FluxContainer &info)
TVector3 startPointUser
parent decay vertex in USER coords [m]
TLorentzVector parp4User
parent momentum at HNL production in USER coords [GeV/c]
void Print(const Option_t *) const
TLorentzVector p4
HNL momentum in NEAR coords [GeV/c].
TLorentzVector p4User
HNL momentum in USER coords [GeV/c].
int prodChan
Decay mode that produced HNL.
string ProdAsString(genie::hnl::HNLProd_t hnlprod)
double acceptance
full acceptance == XYWgt * boostCorr^2 * accCorr
TVector3 targetPointUser
point in detector HNL is forced towards in USER coords [m]
TVector3 targetPoint
point in detector HNL is forced towards in NEAR coords [m]
double nimpwt
Weight of parent.
double accCorr
acceptance correction (collimation effect. SM v == 1)
int nuPdg
PDG code of SM neutrino that would have been produced.
double XYWgt
geometric acceptance (angular size of detector in parent rest frame)
int nuProdChan
Decay mode that would have produced SM neutrino.
double boostCorr
boost correction wrt parent rest-frame (ELAB = ECM * boostCorr)
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
string Vec3AsString(const TVector3 *vec)