GENIEGenerator
Loading...
Searching...
No Matches
HNLFluxContainer.h
Go to the documentation of this file.
1//____________________________________________________________________________
2/*!
3
4\class genie::hnl::FluxContainer
5
6\brief A GENIE flux container specific for HNL containers.
7 Based on the dk2nu flux paradigm and genie::flux::GNuMIFluxPassThroughInfo
8
9 Also see $GENIE/src/contrib/beamhnl/write_dk2nus.C for an example of
10 expected flux-input structure
11
12\author John Plows
13
14\created Feb 16, 2023
15
16\cpright Copyright (c) 2003-2025, The GENIE Collaboration
17 For the full text of the license visit http://copyright.genie-mc.org
18
19*/
20//____________________________________________________________________________
21
22#ifndef _HNL_FLUX_CONTAINER_H_
23#define _HNL_FLUX_CONTAINER_H_
24
25#include <string>
26#include <iostream>
27#include <vector>
28#include <set>
29
30#include <TVector3.h>
31#include <TLorentzVector.h>
32
36
38
39class TFile;
40class TChain;
41class TTree;
42class TBranch;
43
44using std::string;
45using std::ostream;
46
47namespace genie{
48
49 namespace hnl {
50
51 class FluxContainer;
52 ostream & operator << (ostream & stream, const FluxContainer & gnmf);
53
54 /// FluxContainer:
55 /// =============================
56 /// A C-struct that is based on the flux::GNuMIFluxPassThroughInfo
57 /// struct, but which is not GNuMI specific. Accepts enough information
58 /// about the HNL fluxes and the base flux to pass all the necessary
59 /// information to the hnl::FluxCreator class for flux calculations.
60 /// =============================
61
62 class FluxContainer: public TObject {
63
64 public:
66 virtual ~FluxContainer() {};
67
68 void ResetCopy() const;
69 void Print(const Option_t * /* opt */) const;
70
71 friend ostream & operator << (ostream & stream, const FluxContainer & gnmf);
72
73 // members
74
75 mutable int evtno; ///< Event number
76
77 mutable int pdg; ///< HNL PDG code
78 mutable int parPdg; ///< parent PDG code
79 mutable int lepPdg; ///< PDG code of lepton produced with HNL on parent decay
80 mutable int nuPdg; ///< PDG code of SM neutrino that would have been produced
81
82 mutable int prodChan; ///< Decay mode that produced HNL
83 mutable int nuProdChan; ///< Decay mode that would have produced SM neutrino
84
85 mutable TVector3 startPoint; ///< parent decay vertex in NEAR coords [m]
86 mutable TVector3 targetPoint; ///< point in detector HNL is forced towards in NEAR coords [m]
87 mutable TVector3 startPointUser; ///< parent decay vertex in USER coords [m]
88 mutable TVector3 targetPointUser; ///< point in detector HNL is forced towards in USER coords [m]
89 mutable double delay; ///< delay HNL would have wrt SMv [ns]
90
91 mutable TVector3 polz; ///< HNL polarisation vector, in HNL rest frame, in NEAR coords
92
93 mutable TLorentzVector p4; ///< HNL momentum in NEAR coords [GeV/c]
94 mutable TLorentzVector parp4; ///< parent momentum at HNL production in NEAR coords [GeV/c]
95 mutable TLorentzVector p4User; ///< HNL momentum in USER coords [GeV/c]
96 mutable TLorentzVector parp4User; ///< parent momentum at HNL production in USER coords [GeV/c]
97
98 mutable double Ecm; ///< Parent rest-frame energy of HNL [GeV]
99 mutable double nuEcm; ///< Parent rest-frame energy of equivalent SM neutrino [GeV]
100
101 mutable double XYWgt; ///< geometric acceptance (angular size of detector in parent rest frame)
102 mutable double boostCorr; ///< boost correction wrt parent rest-frame (ELAB = ECM * boostCorr)
103
104 mutable double accCorr; ///< acceptance correction (collimation effect. SM v == 1)
105 mutable double zetaMinus; ///< minimum angular deviation from parent momentum to reach detector [deg]
106 mutable double zetaPlus; ///< maximum angular deviation from parent momentum to reach detector [deg]
107
108 mutable double acceptance; ///< full acceptance == XYWgt * boostCorr^2 * accCorr
109
110 mutable double nimpwt; ///< Weight of parent
111
112
113 }; // class FluxContainer
114
115 } // namespace hnl
116
117} // namespace genie
118
119#endif // #ifndef _HNL_FLUX_CONTAINER_H_
A GENIE flux container specific for HNL containers. Based on the dk2nu flux paradigm and genie::flux:...
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.
friend ostream & operator<<(ostream &stream, const FluxContainer &gnmf)
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)
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25