29 #ifndef _HNL_FLUXCREATOR_H_
30 #define _HNL_FLUXCREATOR_H_
41 #include "TDecayChannel.h"
43 #include "TGenPhaseSpace.h"
46 #include "TLorentzVector.h"
48 #include "TObjArray.h"
51 #include "TSystemDirectory.h"
56 #include <TGeoVolume.h>
57 #include <TGeoManager.h>
58 #include <TGeoShape.h>
160 TVector3
ApplyUserRotation( TVector3 vec, TVector3 oriVec, std::vector<double> rotVec,
bool doBackwards =
false )
const;
168 static double labangle(
double * x,
double * par );
170 double GetAngDeviation( TLorentzVector p4par, TVector3 detO,
bool seekingMax )
const;
171 void GetAngDeviation( TLorentzVector p4par, TVector3 detO,
double &zm,
double &zp )
const;
176 std::string
CheckGeomPoint( Double_t x, Double_t y, Double_t z )
const;
307 #endif // #ifndef _HNL_FLUXCREATOR_H_
enum genie::hnl::t_HNLProd HNLProd_t
std::vector< double > GetDetRotation() const
std::vector< double > fFixedPolarisation
double CalculateAreaNormalisation()
int decay_ptype
PDG code of parent.
static const int maxArray
std::map< genie::hnl::HNLProd_t, double > dynamicScores_neuk
double nuray_px[maxArray]
TVector3 PointToRandomPointInBBox() const
static double labangle(double *x, double *par)
double potnum
N POT for this SM-v.
double pots
how many pot in this job?
std::vector< double > fB2UTranslation
double ancestor_polz[maxArray]
void ProcessEventRecord(GHepRecord *event_rec) const
std::vector< double > fDetOffset
void ImportBoundingBox(TGeoBBox *box) const
double decay_vz
coordinates of prod vtx [cm]
double GetAngDeviation(TLorentzVector p4par, TVector3 detO, bool seekingMax) const
double location_y[maxArray]
double ancestor_startz[maxArray]
double traj_trkpx[maxArray]
int job
beamsim MC job number
int GetNFluxEntries() const
char location_name[maxArray *maxC]
double CalculateDetectorAcceptanceSAA(TVector3 detO) const
A GENIE flux container specific for HNL containers. Based on the dk2nu flux paradigm and genie::flux:...
genie::hnl::FluxContainer fGnmf
double decay_necm
SM v CM energy [GeV].
double ancestor_pprodpx[maxArray]
double traj_trkz[maxArray]
double decay_nimpwt
Importance weight from beamsim.
std::vector< double > fB2URotation
double ancestor_startx[maxArray]
double traj_trkpy[maxArray]
double CalculateAcceptanceCorrection(TLorentzVector p4par, TLorentzVector p4HNL, double SMECM, double zm, double zp) const
void SetUsingRootGeom(bool IsUsingRootGeom) const
std::vector< double > fDetRotation
std::map< genie::hnl::HNLProd_t, double > dynamicScores
Calculates HNL production kinematics & production vertex. Is a concrete implementation of the FluxRec...
double ancestor_stoppx[maxArray]
double ancestor_starty[maxArray]
std::map< genie::hnl::HNLProd_t, double > dynamicScores_muon
double traj_trkx[maxArray]
std::string CheckGeomPoint(Double_t x, Double_t y, Double_t z) const
double location_z[maxArray]
TVector3 ApplyUserRotation(TVector3 vec, bool doBackwards=false) const
void OpenFluxInput(std::string finpath) const
std::map< genie::hnl::HNLProd_t, double > GetProductionProbs(int parPDG) const
std::map< genie::hnl::HNLProd_t, double > dynamicScores_pion
void InitialiseMeta() const
FluxContainer RetrieveFluxInfo() const
std::map< genie::hnl::HNLProd_t, double > dynamicScores_kaon
double ancestor_startt[maxArray]
double ancestor_startpx[maxArray]
double nuray_py[maxArray]
double decay_pdpz
final parent momentum [GeV]
std::vector< double > GetB2URotation() const
char ancestor_imat[maxArray *maxC]
Expands the EventRecordVisitorI interface to include public interfaces for the HNL FluxCreator module...
void FillNonsense(int iEntry, genie::hnl::FluxContainer &gnmf) const
char ancestor_proc[maxArray *maxC]
double ancestor_startpz[maxArray]
FluxContainer MakeTupleFluxEntry(int iEntry, std::string finpath) const
TVector3 fTargetPointUser
double traj_trkpz[maxArray]
double ancestor_pprodpz[maxArray]
std::vector< double > fU4l2s
std::vector< double > GetB2UTranslation() const
A registry. Provides the container for algorithm configuration parameters.
double ancestor_stoppz[maxArray]
std::vector< double > GetDetOffset() const
void SetFirstFluxEntry(int iFirst) const
double location_x[maxArray]
std::vector< double > fScales
double nuray_wgt[maxArray]
double ancestor_stoppy[maxArray]
void InitialiseTree() const
double ancestor_startpy[maxArray]
double ancestor_pprodpy[maxArray]
void Configure(const Registry &config)
int ancestor_nucleus[maxArray]
double nuray_pz[maxArray]
char ancestor_ivol[maxArray *maxC]
TLorentzVector HNLEnergy(genie::hnl::HNLProd_t hnldm, TLorentzVector p4par) const
GENIE's GHEP MC event record.
double ancestor_poly[maxArray]
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
void SetCurrentEntry(int iCurr) const
int ancestor_pdg[maxArray]
double traj_trky[maxArray]
void SetInputFluxPath(std::string finpath) const
double ancestor_polx[maxArray]
void SetGeomFile(string geomfile) const