11 #ifndef TWOBODYDECAYGEN_HXX
12 #define TWOBODYDECAYGEN_HXX
20 #include <TLorentzVector.h>
21 #include <TGenPhaseSpace.h>
46 class TwoBodyDecayGen {
49 typedef std::pair<std::vector<TwoBodyDecayGen*>,
double>
DauNode;
113 bool add_decay_channel(
double *masses,
unsigned nparts,
133 double get_brfr(
unsigned chid);
170 int find_leaf_nodes(std::vector<std::deque<chBFpair> > &brfrVec,
171 std::deque<chBFpair> &brfrQ);
182 double generate(TLorentzVector &momp,
183 std::vector<TLorentzVector> &particle_lvs,
184 std::deque<chBFpair> chQ);
194 TTree* get_event_tree(
unsigned nevents, TH1 *hmomp);
201 void print(
unsigned indent=0);
211 void _printQ(std::string prefix, std::deque<chBFpair> queue);
219 void _printQ(std::string prefix, std::vector<std::deque<chBFpair> > queue);
228 #endif // TWOBODYDECAYGEN_HXX