1 #ifndef SBND_NUANA_ALG_H
2 #define SBND_NUANA_ALG_H
5 #include "art/Framework/Services/Registry/ServiceHandle.h"
6 #include "art/Framework/Principal/Event.h"
7 #include "art/Framework/Principal/Handle.h"
10 #include "nusimdata/SimulationBase/MCParticle.h"
11 #include "nugen/NuReweight/art/NuReweight.h"
12 #include "nusimdata/SimulationBase/MCNeutrino.h"
13 #include "nusimdata/SimulationBase/MCTruth.h"
14 #include "nusimdata/SimulationBase/GTruth.h"
15 #include "nusimdata/SimulationBase/MCFlux.h"
18 #include "TLorentzVector.h"
45 art::Ptr<simb::GTruth >,
55 std::vector<reweight> &);
67 std::vector<float>& neutMom,
68 std::vector<float>&
vertex);
72 int& ptype,
int& tptype,
int& ndecay,
73 std::vector<float>& neutVertexInWindow,
74 std::vector<float>& ParentVertex,
75 std::vector<float>& nuParentMomAtDecay,
76 std::vector<float>& nuParentMomAtProd,
77 std::vector<float>& nuParentMomTargetExit);
81 std::vector<int> & GeniePDG,
83 std::vector<std::string>& GenieProc,
88 void packLarg4Info(art::Handle< std::vector<simb::MCParticle> > mclarg4,
int,
int,
int,
int,
91 std::vector<std::vector<float> > & p1PhotonConversionPos,
92 std::vector<std::vector<float> > & p1PhotonConversionMom,
93 std::vector<std::vector<float> > & p2PhotonConversionPos,
94 std::vector<std::vector<float> > & p2PhotonConversionMom,
95 std::vector<std::vector<float> > & miscPhotonConversionPos,
96 std::vector<std::vector<float> > & miscPhotonConversionMom,
101 std::vector<int> & chargePionSign);
106 art::Handle< std::vector<simb::MCParticle> > & mclistLARG4,
int )
const;
108 art::Handle< std::vector<simb::MCParticle> > & mclistLARG4,
int )
const;
112 void pack3Vector(
const TVector3& input, std::vector<float>& output)
const;
114 bool isInTPC(
const TVector3 &)
const;
116 TLorentzVector& ConversionPos,
117 TLorentzVector& ConversionMom);
void pack4Vector(const TLorentzVector &input, std::vector< float > &output) const
void GetPhotonConversionInfo(art::Ptr< simb::MCParticle > photon, TLorentzVector &ConversionPos, TLorentzVector &ConversionMom)
process_name can override from command line with o or output photon
bool isInTPC(const TVector3 &) const
art::Ptr< simb::MCParticle > getParticleByPDG(art::Handle< std::vector< simb::MCParticle > > &mclistLARG4, int) const
void packFluxWeight(art::Ptr< simb::MCFlux > flux, std::vector< std::vector< float >> &)
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
void configureReWeight(const std::vector< reweight > &, const std::vector< std::vector< float >> &)
void packGenieInfo(art::Ptr< simb::MCTruth > truth, std::vector< int > &GeniePDG, std::vector< std::vector< float >> &GenieMomentum, std::vector< std::string > &GenieProc, int &NPi0FinalState, int &NGamma, int &NChargedPions)
void packFluxInfo(art::Ptr< simb::MCFlux > flux, int &ptype, int &tptype, int &ndecay, std::vector< float > &neutVertexInWindow, std::vector< float > &ParentVertex, std::vector< float > &nuParentMomAtDecay, std::vector< float > &nuParentMomAtProd, std::vector< float > &nuParentMomTargetExit)
art::Ptr< simb::MCParticle > getParticleByID(art::Handle< std::vector< simb::MCParticle > > &mclistLARG4, int) const
void pack3Vector(const TVector3 &input, std::vector< float > &output) const
void packLarg4Info(art::Handle< std::vector< simb::MCParticle > > mclarg4, int, int, int, int, std::vector< std::vector< float > > &leptonPos, std::vector< std::vector< float > > &leptonMom, std::vector< std::vector< float > > &p1PhotonConversionPos, std::vector< std::vector< float > > &p1PhotonConversionMom, std::vector< std::vector< float > > &p2PhotonConversionPos, std::vector< std::vector< float > > &p2PhotonConversionMom, std::vector< std::vector< float > > &miscPhotonConversionPos, std::vector< std::vector< float > > &miscPhotonConversionMom, std::vector< std::vector< float > > &pionPos, std::vector< std::vector< float > > &pionMom, std::vector< std::vector< std::vector< float > > > &chargedPionPos, std::vector< std::vector< std::vector< float > > > &chargedPionMom, std::vector< int > &chargePionSign)
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simSlidingORM6O6 effSlidingORW output
void configureGeometry(art::ServiceHandle< geo::Geometry >)
void parseWeights(const std::vector< std::string > &, std::vector< reweight > &)
stream1 can override from command line with o or output services user sbnd
unsigned int prepareSigmas(int, unsigned int, std::vector< std::vector< float > > &)
std::vector< std::vector< rwgt::NuReweight * > > reweightVector
void packNeutrinoInfo(simb::MCNeutrino *neutrino, int &nuchan, int &inno, double &enugen, int &isCC, int &mode, double &thetaLep, double &phiLep, double &Elep, std::vector< float > &neutMom, std::vector< float > &vertex)
void calcWeight(art::Ptr< simb::MCTruth >, art::Ptr< simb::GTruth >, std::vector< std::vector< float >> &)
art framework interface to geometry description