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