48 #ifndef SIMB_MCTRAJECTORY_H 49 #define SIMB_MCTRAJECTORY_H 54 #include <TLorentzVector.h> 63 typedef std::vector< std::pair<TLorentzVector, TLorentzVector> >
list_type;
71 typedef std::vector< std::pair<size_t, unsigned char> >
ProcessMap;
85 const TLorentzVector& momentum );
88 const TLorentzVector&
Position(
const size_type )
const;
89 const TLorentzVector&
Momentum(
const size_type )
const;
90 double X(
const size_type i )
const;
91 double Y(
const size_type i )
const;
92 double Z(
const size_type i )
const;
93 double T(
const size_type i )
const;
94 double Px(
const size_type i )
const;
95 double Py(
const size_type i )
const;
96 double Pz(
const size_type i )
const;
97 double E(
const size_type i )
const;
107 const_iterator
begin()
const;
109 const_iterator
end()
const;
110 reverse_iterator
rbegin();
111 const_reverse_iterator
rbegin()
const;
112 reverse_iterator
rend();
113 const_reverse_iterator
rend()
const;
115 size_type
size()
const;
122 const value_type&
operator[](
const size_type i)
const;
123 const value_type&
at(
const size_type i)
const;
129 TLorentzVector
const& m );
130 void Add(TLorentzVector
const& p,
131 TLorentzVector
const& m );
132 void Add(TLorentzVector
const& p,
133 TLorentzVector
const& m,
134 std::string
const& process );
136 unsigned char ProcessToKey(std::string
const& process)
const;
137 std::string
KeyToProcess(
unsigned char const& key)
const;
185 const TLorentzVector& m )
189 const TLorentzVector& m ) {
push_back(p,m); }
195 #endif // SIMB_MCTRAJECTORY_H
void Add(TLorentzVector const &p, TLorentzVector const &m)
double Z(const size_type i) const
double X(const size_type i) const
void push_back(value_type const &v)
double E(const size_type i) const
reverse_iterator rbegin()
double Pz(const size_type i) const
const value_type & at(const size_type i) const
std::string KeyToProcess(unsigned char const &key) const
std::vector< std::pair< TLorentzVector, TLorentzVector > > list_type
unsigned char ProcessToKey(std::string const &process) const
list_type::value_type value_type
void Sparsify(double margin=.1)
list_type::size_type size_type
list_type::difference_type difference_type
double Y(const size_type i) const
list_type::const_iterator const_iterator
ProcessMap fTrajectoryProcess
list_type::iterator iterator
const TLorentzVector & Position(const size_type) const
The accessor methods described above.
ProcessMap const & TrajectoryProcesses() const
list_type::reverse_iterator reverse_iterator
std::vector< std::pair< size_t, unsigned char > > ProcessMap
void swap(simb::MCTrajectory &other)
list_type::const_reverse_iterator const_reverse_iterator
double TotalLength() const
double T(const size_type i) const
double Px(const size_type i) const
const value_type & operator[](const size_type i) const
double Py(const size_type i) const
const TLorentzVector & Momentum(const size_type) const
friend std::ostream & operator<<(std::ostream &output, const MCTrajectory &)
list_type ftrajectory
The list of trajectory points.