All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
evgen::GaisserParam Class Reference

module to produce single or multiple specified particles in the detector More...

Inheritance diagram for evgen::GaisserParam:

Public Member Functions

 GaisserParam (fhicl::ParameterSet const &pset)
 

Private Types

typedef std::map< double, TH1 * > dhist_Map
 
typedef std::map< double, TH1 * >
::iterator 
dhist_Map_it
 

Private Member Functions

void produce (art::Event &evt) override
 
void beginJob () override
 
void beginRun (art::Run &run) override
 
void SampleOne (unsigned int i, simb::MCTruth &mct, CLHEP::HepRandomEngine &engine)
 
void Sample (simb::MCTruth &mct, CLHEP::HepRandomEngine &engine)
 
std::pair< double, double > GetThetaAndEnergy (double rand1, double rand2)
 
void MakePDF ()
 
void ResetMap ()
 
double GaisserMuonFlux_Integrand (Double_t *x, Double_t *par)
 
double GaisserFlux (double e, double theta)
 
std::vector< double > GetBinning (const TAxis *axis, bool finalEdge=true)
 

Private Attributes

TFile * m_File
 
dhist_Mapm_PDFmap
 
TH1 * m_thetaHist
 
CLHEP::HepRandomEngine & fEngine
 art-managed random-number engine More...
 
int fMode
 
bool fPadOutVectors
 
std::vector< int > fPDG
 PDG code of particles to generate. More...
 
int fCharge
 Charge. More...
 
std::string fInputDir
 Input Directory. More...
 
double fEmin
 Minimum Kinetic Energy (GeV) More...
 
double fEmax
 Maximum Kinetic Energy (GeV) More...
 
double fEmid
 Energy to go from low to high (GeV) More...
 
int fEBinsLow
 Number of low energy Bins. More...
 
int fEBinsHigh
 Number of high energy Bins. More...
 
double fThetamin
 Minimum theta. More...
 
double fThetamax
 Maximum theta. More...
 
int fThetaBins
 Number of theta Bins. More...
 
double fXHalfRange
 Max X position. More...
 
double fYInput
 Max Y position. More...
 
double fZHalfRange
 Max Z position. More...
 
double fT0
 Central t position (ns) in world coordinates. More...
 
double fSigmaT
 Variation in t position (ns) More...
 
int fTDist
 How to distribute t (gaus, or uniform) More...
 
bool fSetParam
 Which version of Gaissers Param. More...
 
bool fSetRead
 Whether to Read. More...
 
bool fSetWrite
 Whether to Write. More...
 
bool fSetReWrite
 Whether to ReWrite pdfs. More...
 
double fEpsilon
 Minimum integration sum.... More...
 
double fCryoBoundaries [6]
 
double xNeg = 0
 
double xPos = 0
 
double zNeg = 0
 
double zPos = 0
 
double fCenterX = 0
 
double fCenterZ = 0
 
TTree * fTree
 
double Time
 
double Momentum
 
double KinEnergy
 
double Gamma
 
double Energy
 
double Theta
 
double Phi
 
double pnorm
 
double XPosition
 
double YPosition
 
double ZPosition
 
double DirCosineX
 
double DirCosineY
 
double DirCosineZ
 

Static Private Attributes

static constexpr int kGAUS = 1
 

Detailed Description

module to produce single or multiple specified particles in the detector

Definition at line 61 of file GaisserParam_module.cc.

Member Typedef Documentation

typedef std::map<double, TH1*> evgen::GaisserParam::dhist_Map
private

Definition at line 74 of file GaisserParam_module.cc.

typedef std::map<double, TH1*>::iterator evgen::GaisserParam::dhist_Map_it
private

Definition at line 75 of file GaisserParam_module.cc.

Constructor & Destructor Documentation

evgen::GaisserParam::GaisserParam ( fhicl::ParameterSet const &  pset)
explicit

Definition at line 163 of file GaisserParam_module.cc.

164  : art::EDProducer{pset}
165  // create a default random engine; obtain the random seed from NuRandomService,
166  // unless overridden in configuration with key "Seed"
167  , fEngine(art::ServiceHandle<rndm::NuRandomService>{}->createEngine(*this, pset, "Seed"))
CLHEP::HepRandomEngine & fEngine
art-managed random-number engine

Member Function Documentation

void evgen::GaisserParam::beginJob ( )
overrideprivate
void evgen::GaisserParam::beginRun ( art::Run &  run)
overrideprivate
double evgen::GaisserParam::GaisserFlux ( double  e,
double  theta 
)
private
double evgen::GaisserParam::GaisserMuonFlux_Integrand ( Double_t *  x,
Double_t *  par 
)
private
std::vector<double> evgen::GaisserParam::GetBinning ( const TAxis *  axis,
bool  finalEdge = true 
)
private
std::pair<double,double> evgen::GaisserParam::GetThetaAndEnergy ( double  rand1,
double  rand2 
)
private
void evgen::GaisserParam::MakePDF ( )
private
void evgen::GaisserParam::produce ( art::Event &  evt)
overrideprivate
void evgen::GaisserParam::ResetMap ( )
private
void evgen::GaisserParam::Sample ( simb::MCTruth &  mct,
CLHEP::HepRandomEngine &  engine 
)
private
void evgen::GaisserParam::SampleOne ( unsigned int  i,
simb::MCTruth &  mct,
CLHEP::HepRandomEngine &  engine 
)
private

Member Data Documentation

double evgen::GaisserParam::DirCosineX
private

Definition at line 156 of file GaisserParam_module.cc.

double evgen::GaisserParam::DirCosineY
private

Definition at line 156 of file GaisserParam_module.cc.

double evgen::GaisserParam::DirCosineZ
private

Definition at line 156 of file GaisserParam_module.cc.

double evgen::GaisserParam::Energy
private

Definition at line 155 of file GaisserParam_module.cc.

double evgen::GaisserParam::fCenterX = 0
private

Definition at line 150 of file GaisserParam_module.cc.

double evgen::GaisserParam::fCenterZ = 0
private

Definition at line 151 of file GaisserParam_module.cc.

int evgen::GaisserParam::fCharge
private

Charge.

Definition at line 102 of file GaisserParam_module.cc.

double evgen::GaisserParam::fCryoBoundaries[6]
private

Definition at line 145 of file GaisserParam_module.cc.

int evgen::GaisserParam::fEBinsHigh
private

Number of high energy Bins.

Definition at line 109 of file GaisserParam_module.cc.

int evgen::GaisserParam::fEBinsLow
private

Number of low energy Bins.

Definition at line 108 of file GaisserParam_module.cc.

double evgen::GaisserParam::fEmax
private

Maximum Kinetic Energy (GeV)

Definition at line 106 of file GaisserParam_module.cc.

double evgen::GaisserParam::fEmid
private

Energy to go from low to high (GeV)

Definition at line 107 of file GaisserParam_module.cc.

double evgen::GaisserParam::fEmin
private

Minimum Kinetic Energy (GeV)

Definition at line 105 of file GaisserParam_module.cc.

CLHEP::HepRandomEngine& evgen::GaisserParam::fEngine
private

art-managed random-number engine

Definition at line 90 of file GaisserParam_module.cc.

double evgen::GaisserParam::fEpsilon
private

Minimum integration sum....

Definition at line 127 of file GaisserParam_module.cc.

std::string evgen::GaisserParam::fInputDir
private

Input Directory.

Definition at line 103 of file GaisserParam_module.cc.

int evgen::GaisserParam::fMode
private

Particle Selection Mode 0–generate a list of all particles, 1–generate a single particle selected randomly from the list

Definition at line 94 of file GaisserParam_module.cc.

bool evgen::GaisserParam::fPadOutVectors
private

Select to pad out configuration vectors if they are not of of the same length as PDG false: don't pad out - all values need to specified true: pad out - default values assumed and printed out

Definition at line 97 of file GaisserParam_module.cc.

std::vector<int> evgen::GaisserParam::fPDG
private

PDG code of particles to generate.

Definition at line 101 of file GaisserParam_module.cc.

bool evgen::GaisserParam::fSetParam
private

Which version of Gaissers Param.

Definition at line 123 of file GaisserParam_module.cc.

bool evgen::GaisserParam::fSetRead
private

Whether to Read.

Definition at line 124 of file GaisserParam_module.cc.

bool evgen::GaisserParam::fSetReWrite
private

Whether to ReWrite pdfs.

Definition at line 126 of file GaisserParam_module.cc.

bool evgen::GaisserParam::fSetWrite
private

Whether to Write.

Definition at line 125 of file GaisserParam_module.cc.

double evgen::GaisserParam::fSigmaT
private

Variation in t position (ns)

Definition at line 120 of file GaisserParam_module.cc.

double evgen::GaisserParam::fT0
private

Central t position (ns) in world coordinates.

Definition at line 119 of file GaisserParam_module.cc.

int evgen::GaisserParam::fTDist
private

How to distribute t (gaus, or uniform)

Definition at line 121 of file GaisserParam_module.cc.

int evgen::GaisserParam::fThetaBins
private

Number of theta Bins.

Definition at line 113 of file GaisserParam_module.cc.

double evgen::GaisserParam::fThetamax
private

Maximum theta.

Definition at line 112 of file GaisserParam_module.cc.

double evgen::GaisserParam::fThetamin
private

Minimum theta.

Definition at line 111 of file GaisserParam_module.cc.

TTree* evgen::GaisserParam::fTree
private

Definition at line 154 of file GaisserParam_module.cc.

double evgen::GaisserParam::fXHalfRange
private

Max X position.

Definition at line 115 of file GaisserParam_module.cc.

double evgen::GaisserParam::fYInput
private

Max Y position.

Definition at line 116 of file GaisserParam_module.cc.

double evgen::GaisserParam::fZHalfRange
private

Max Z position.

Definition at line 117 of file GaisserParam_module.cc.

double evgen::GaisserParam::Gamma
private

Definition at line 155 of file GaisserParam_module.cc.

constexpr int evgen::GaisserParam::kGAUS = 1
staticprivate

Definition at line 92 of file GaisserParam_module.cc.

double evgen::GaisserParam::KinEnergy
private

Definition at line 155 of file GaisserParam_module.cc.

TFile* evgen::GaisserParam::m_File
private

Definition at line 76 of file GaisserParam_module.cc.

dhist_Map* evgen::GaisserParam::m_PDFmap
private

Definition at line 77 of file GaisserParam_module.cc.

TH1* evgen::GaisserParam::m_thetaHist
private

Definition at line 78 of file GaisserParam_module.cc.

double evgen::GaisserParam::Momentum
private

Definition at line 155 of file GaisserParam_module.cc.

double evgen::GaisserParam::Phi
private

Definition at line 155 of file GaisserParam_module.cc.

double evgen::GaisserParam::pnorm
private

Definition at line 155 of file GaisserParam_module.cc.

double evgen::GaisserParam::Theta
private

Definition at line 155 of file GaisserParam_module.cc.

double evgen::GaisserParam::Time
private

Definition at line 155 of file GaisserParam_module.cc.

double evgen::GaisserParam::xNeg = 0
private

Definition at line 146 of file GaisserParam_module.cc.

double evgen::GaisserParam::xPos = 0
private

Definition at line 147 of file GaisserParam_module.cc.

double evgen::GaisserParam::XPosition
private

Definition at line 156 of file GaisserParam_module.cc.

double evgen::GaisserParam::YPosition
private

Definition at line 156 of file GaisserParam_module.cc.

double evgen::GaisserParam::zNeg = 0
private

Definition at line 148 of file GaisserParam_module.cc.

double evgen::GaisserParam::zPos = 0
private

Definition at line 149 of file GaisserParam_module.cc.

double evgen::GaisserParam::ZPosition
private

Definition at line 156 of file GaisserParam_module.cc.


The documentation for this class was generated from the following file: