LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
ART objects. More...
Namespaces | |
gtruthaux | |
Classes | |
class | GTruth |
class | MCFlux |
struct | MCGeneratorInfo |
class | MCNeutrino |
Event generator information. More... | |
class | MCParticle |
class | MCTrajectory |
class | MCTruth |
Event generator information. More... | |
Typedefs | |
typedef enum simb::_ev_generator | Generator_t |
generator used to produce event, if applicable More... | |
typedef enum simb::_ev_origin | Origin_t |
event origin types More... | |
Enumerations | |
enum | flux_code_ { kHistPlusFocus = +1, kHistMinusFocus = -1, kGenerator = 0, kNtuple = 2, kSimple_Flux = 3, kDk2Nu = 4 } |
Which flux was used to generate this event? More... | |
enum | _ev_generator { kUnknown, _ev_generator::kGENIE, _ev_generator::kCRY, _ev_generator::kGIBUU, _ev_generator::kNuWro, _ev_generator::kMARLEY, _ev_generator::kNEUT, _ev_generator::kCORSIKA, _ev_generator::kGEANT, _ev_generator::kNumGenerators } |
generator used to produce event, if applicable More... | |
enum | curr_type_ { kCC, kNC } |
Neutrino interaction categories. More... | |
enum | int_type_ { kUnknownInteraction = -1, kQE = 0, kRes = 1, kDIS = 2, kCoh = 3, kCohElastic = 4, kElectronScattering = 5, kIMDAnnihilation = 6, kInverseBetaDecay = 7, kGlashowResonance = 8, kAMNuGamma = 9, kMEC = 10, kDiffractive = 11, kEM = 12, kWeakMix = 13, kNuanceOffset = 1000, kCCQE = kNuanceOffset + 1, kNCQE = kNuanceOffset + 2, kResCCNuProtonPiPlus = kNuanceOffset + 3, kResCCNuNeutronPi0 = kNuanceOffset + 4, kResCCNuNeutronPiPlus = kNuanceOffset + 5, kResNCNuProtonPi0 = kNuanceOffset + 6, kResNCNuProtonPiPlus = kNuanceOffset + 7, kResNCNuNeutronPi0 = kNuanceOffset + 8, kResNCNuNeutronPiMinus = kNuanceOffset + 9, kResCCNuBarNeutronPiMinus = kNuanceOffset + 10, kResCCNuBarProtonPi0 = kNuanceOffset + 11, kResCCNuBarProtonPiMinus = kNuanceOffset + 12, kResNCNuBarProtonPi0 = kNuanceOffset + 13, kResNCNuBarProtonPiPlus = kNuanceOffset + 14, kResNCNuBarNeutronPi0 = kNuanceOffset + 15, kResNCNuBarNeutronPiMinus = kNuanceOffset + 16, kResCCNuDeltaPlusPiPlus = kNuanceOffset + 17, kResCCNuDelta2PlusPiMinus = kNuanceOffset + 21, kResCCNuBarDelta0PiMinus = kNuanceOffset + 28, kResCCNuBarDeltaMinusPiPlus = kNuanceOffset + 32, kResCCNuProtonRhoPlus = kNuanceOffset + 39, kResCCNuNeutronRhoPlus = kNuanceOffset + 41, kResCCNuBarNeutronRhoMinus = kNuanceOffset + 46, kResCCNuBarNeutronRho0 = kNuanceOffset + 48, kResCCNuSigmaPlusKaonPlus = kNuanceOffset + 53, kResCCNuSigmaPlusKaon0 = kNuanceOffset + 55, kResCCNuBarSigmaMinusKaon0 = kNuanceOffset + 60, kResCCNuBarSigma0Kaon0 = kNuanceOffset + 62, kResCCNuProtonEta = kNuanceOffset + 67, kResCCNuBarNeutronEta = kNuanceOffset + 70, kResCCNuKaonPlusLambda0 = kNuanceOffset + 73, kResCCNuBarKaon0Lambda0 = kNuanceOffset + 76, kResCCNuProtonPiPlusPiMinus = kNuanceOffset + 79, kResCCNuProtonPi0Pi0 = kNuanceOffset + 80, kResCCNuBarNeutronPiPlusPiMinus = kNuanceOffset + 85, kResCCNuBarNeutronPi0Pi0 = kNuanceOffset + 86, kResCCNuBarProtonPi0Pi0 = kNuanceOffset + 90, kCCDIS = kNuanceOffset + 91, kNCDIS = kNuanceOffset + 92, kUnUsed1 = kNuanceOffset + 93, kUnUsed2 = kNuanceOffset + 94, kCCQEHyperon = kNuanceOffset + 95, kNCCOH = kNuanceOffset + 96, kCCCOH = kNuanceOffset + 97, kNuElectronElastic = kNuanceOffset + 98, kInverseMuDecay = kNuanceOffset + 99, kMEC2p2h = kNuanceOffset + 100 } |
Neutrino interaction categories. More... | |
enum | _ev_origin { kUnknown, kUnknown, kBeamNeutrino, kCosmicRay, kSuperNovaNeutrino, kSingleParticle } |
event origin types More... | |
Functions | |
std::ostream & | operator<< (std::ostream &output, const simb::GTruth >ruth) |
std::ostream & | operator<< (std::ostream &output, const simb::MCFlux &mcflux) |
std::ostream & | operator<< (std::ostream &output, const simb::MCNeutrino &mcnu) |
std::ostream & | operator<< (std::ostream &output, const MCParticle &particle) |
std::ostream & | operator<< (std::ostream &output, const MCTrajectory &list) |
std::ostream & | operator<< (std::ostream &o, simb::MCTruth const &a) |
Generated particle index | |
This type represents the position of a specific generated particle in the generator truth record, | |
using | GeneratedParticleIndex_t = std::size_t |
Type of particle index in the generator truth record (simb::MCTruth ). More... | |
constexpr GeneratedParticleIndex_t | NoGeneratedParticleIndex = std::numeric_limits<GeneratedParticleIndex_t>::max() |
Constant representing the absence of generator truth information. More... | |
bool | isGeneratedParticleIndex (GeneratedParticleIndex_t index) |
Returns whether the specified one is an acceptable generator index. More... | |
ART objects.
Base utilities and modules for event generation and detector simulation.
PrimaryParticleInformation 10-Sep-2007 Bill Seligman
11-Feb-2009 selig Revised for LArSoft man@ nevis .col umbia .edu
Purpose: This class is "attached" to the G4PrimaryParticle. It's used to save the MCTruth object associated with the event.
Background: Read this carefully, because this class probably doesn't do what you think it does.
Geant4 has various "truth" classes: G4Event, G4Track, G4PrimaryVertex, G4PrimaryParticle, etc. For all of these classes, Geant4 provides a facility for the user to include additional information that's "attached" to the class in question.
In this case, this class defines additional information to included with the G4PrimaryParticle class. In particular, it stores the pointer to the simb::MCTruth object that was the source of the G4PrimaryParticle information.
The reason why this class is necessary for the G4Base application is that it allows the ParticleListAction class access to the MCTruth pointer during Geant4's tracking.
This class stores/retrieves the additional information needed (and not in MCTruth) to recreate a genie::EventRecord for genie based event reweighting.
This class describes a particle created in the detector Monte Carlo simulation.
This class describes the trajectory of a particle created in the Monte Carlo simulation. It generally behaves like a vector< pair<TLorentzVector,TLorentzVector> >, where the first TLorentzVector is the position and the seoond is the momentum, with the following additions: - Methods Position(int) and Momentum(int) for those who are unfamiliar with the concept of "first" and "second" as used with STL pairs: sim::Trajectory* trajectory = simb::MCParticle.Trajectory(); int numberOfPonts = trajectory->size(); for (int i=0; i<numberOfPoints; ++i) { TLorentzVector position = trajectory->Position(i); TLorentzVector momentum = trajectory->Momentum(i); } The STL equivalent to the above statements (more efficient): sim::Trajectory* trajectory = simb::MCParticle.Trajectory(); for ( sim::Trajectory::const_iterator i = trajectory->begin(); i != trajectory->end(); ++i ) { const TLorentzVector& position = (*i).first; const TLorentzVector& momentum = (*i).second; } - As above, but for each position or momentum component; e.g., trajectory->X(i). - In addition to push_back(pair< TLorentzVector, TLorentzVector>), there's also push_back(TLorentzVector,TLorentzVector) and Add(TLorentzVector,TLorentzVector). They all do the same thing: add another point to the trajectory. - Print() and operator<< methods for ROOT display and ease of debugging. There are no units defined in this class. If it's used with Geant4, the units will be (mm,ns,GeV), but this class does not enforce this.
using simb::GeneratedParticleIndex_t = typedef std::size_t |
Type of particle index in the generator truth record (simb::MCTruth
).
typedef enum simb::_ev_generator simb::Generator_t |
generator used to produce event, if applicable
typedef enum simb::_ev_origin simb::Origin_t |
event origin types
|
strong |
generator used to produce event, if applicable
Enumerator | |
---|---|
kUnknown | |
kGENIE | |
kCRY | |
kGIBUU | |
kNuWro | |
kMARLEY | |
kNEUT | |
kCORSIKA | |
kGEANT | |
kNumGenerators |
Definition at line 18 of file MCGeneratorInfo.h.
enum simb::_ev_origin |
enum simb::curr_type_ |
enum simb::flux_code_ |
Which flux was used to generate this event?
Definition at line 17 of file MCFlux.h.
enum simb::int_type_ |
Neutrino interaction categories.
Definition at line 79 of file MCNeutrino.h.
|
inline |
Returns whether the specified one is an acceptable generator index.
Definition at line 37 of file simb.h.
References NoGeneratedParticleIndex.
Referenced by sim::GeneratedParticleInfo::hasGeneratedParticleIndex(), larg4::ParticleListAction::ParticleInfo_t::isPrimary(), and larg4::ParticleListActionService::ParticleInfo_t::isPrimary().
std::ostream& simb::operator<< | ( | std::ostream & | output, |
const MCTrajectory & | list | ||
) |
Definition at line 67 of file MCTrajectory.cxx.
References simb::MCTrajectory::begin(), simb::MCTrajectory::end(), and simb::MCTrajectory::size().
std::ostream& simb::operator<< | ( | std::ostream & | o, |
simb::MCTruth const & | a | ||
) |
Definition at line 70 of file MCTruth.cxx.
References simb::MCTruth::GetNeutrino(), simb::MCTruth::GetParticle(), kBeamNeutrino, kCosmicRay, kSuperNovaNeutrino, simb::MCTruth::NParticles(), and simb::MCTruth::Origin().
std::ostream& simb::operator<< | ( | std::ostream & | output, |
const simb::MCNeutrino & | mcnu | ||
) |
Definition at line 80 of file MCNeutrino.cxx.
References simb::MCNeutrino::CCNC(), simb::MCParticle::E(), simb::MCNeutrino::HitNuc(), simb::MCNeutrino::HitQuark(), simb::MCNeutrino::InteractionType(), simb::MCNeutrino::Mode(), simb::MCNeutrino::Nu(), simb::MCParticle::PdgCode(), simb::MCNeutrino::QSqr(), simb::MCNeutrino::Target(), simb::MCNeutrino::W(), simb::MCNeutrino::X(), and simb::MCNeutrino::Y().
std::ostream& simb::operator<< | ( | std::ostream & | output, |
const simb::GTruth & | gtruth | ||
) |
Definition at line 89 of file GTruth.cxx.
References simb::GTruth::fCharmHadronPdg, simb::GTruth::fDecayMode, simb::GTruth::fDiffXsec, simb::GTruth::fFinalLeptonPdg, simb::GTruth::fFinalQuarkPdg, simb::GTruth::fFShadSystP4, simb::GTruth::fFSleptonP4, simb::GTruth::fGint, simb::GTruth::fGPhaseSpace, simb::GTruth::fgQ2, simb::GTruth::fgq2, simb::GTruth::fGscatter, simb::GTruth::fgT, simb::GTruth::fgW, simb::GTruth::fgWrun, simb::GTruth::fgX, simb::GTruth::fgY, simb::GTruth::fHitNucP4, simb::GTruth::fHitNucPDG, simb::GTruth::fHitNucPos, simb::GTruth::fHitQrkPDG, simb::GTruth::fIsCharm, simb::GTruth::fIsSeaQuark, simb::GTruth::fIsStrange, simb::GTruth::fNumNeutron, simb::GTruth::fNumPi0, simb::GTruth::fNumPiMinus, simb::GTruth::fNumPiPlus, simb::GTruth::fNumProton, simb::GTruth::fNumRho0, simb::GTruth::fNumRhoMinus, simb::GTruth::fNumRhoPlus, simb::GTruth::fNumSingleGammas, simb::GTruth::fprobability, simb::GTruth::fProbeP4, simb::GTruth::fProbePDG, simb::GTruth::fResNum, simb::GTruth::fStrangeHadronPdg, simb::GTruth::ftgtA, simb::GTruth::fTgtP4, simb::GTruth::ftgtPDG, simb::GTruth::ftgtZ, simb::GTruth::fVertex, simb::GTruth::fweight, simb::GTruth::fXsec, and simb::gtruthaux::stringifyTLorentzVector().
std::ostream& simb::operator<< | ( | std::ostream & | output, |
const MCParticle & | particle | ||
) |
Definition at line 157 of file MCParticle.cxx.
References simb::MCParticle::E(), simb::MCParticle::Mass(), simb::MCParticle::Mother(), simb::MCParticle::NumberTrajectoryPoints(), simb::MCParticle::PdgCode(), simb::MCParticle::Process(), simb::MCParticle::Px(), simb::MCParticle::Py(), simb::MCParticle::Pz(), simb::MCParticle::StatusCode(), simb::MCParticle::T(), simb::MCParticle::TrackId(), simb::MCParticle::Vx(), simb::MCParticle::Vy(), and simb::MCParticle::Vz().
std::ostream& simb::operator<< | ( | std::ostream & | output, |
const simb::MCFlux & | mcflux | ||
) |
Definition at line 384 of file MCFlux.cxx.
References simb::MCFlux::fdk2gen, simb::MCFlux::fevtno, simb::MCFlux::fmupare, simb::MCFlux::fmuparpx, simb::MCFlux::fmuparpy, simb::MCFlux::fmuparpz, simb::MCFlux::fndecay, simb::MCFlux::fnecm, simb::MCFlux::fnenergyf, simb::MCFlux::fnenergyn, simb::MCFlux::fnimpwt, simb::MCFlux::fntype, simb::MCFlux::fnwtfar, simb::MCFlux::fnwtnear, simb::MCFlux::fpdpx, simb::MCFlux::fpdpy, simb::MCFlux::fpdpz, simb::MCFlux::fppdxdz, simb::MCFlux::fppdydz, simb::MCFlux::fppmedium, simb::MCFlux::fpppz, simb::MCFlux::fptype, simb::MCFlux::frun, simb::MCFlux::ftptype, simb::MCFlux::ftpx, simb::MCFlux::ftpy, simb::MCFlux::ftpz, simb::MCFlux::fvx, simb::MCFlux::fvy, and simb::MCFlux::fvz.
constexpr GeneratedParticleIndex_t simb::NoGeneratedParticleIndex = std::numeric_limits<GeneratedParticleIndex_t>::max() |
Constant representing the absence of generator truth information.
Definition at line 34 of file simb.h.
Referenced by larg4::ParticleListAction::ParticleInfo_t::clear(), larg4::ParticleListActionService::ParticleInfo_t::clear(), larg4::ParticleListActionService::GetPrimaryTruthIndex(), larg4::ParticleListAction::GetPrimaryTruthIndex(), isGeneratedParticleIndex(), g4b::PrimaryParticleInformation::IsInMCTruth(), g4b::PrimaryParticleInformation::MCParticleIndex(), larg4::ParticleListAction::PreTrackingAction(), and larg4::ParticleListActionService::preUserTrackingAction().