30 #ifndef DecayGenFrame_HH
31 #define DecayGenFrame_HH
38 class ResonanceGenFrame;
45 DecayGenFrame(
const std::string& sname,
const std::string& stitle);
49 virtual void SetMass(
double val);
50 virtual void SetVariableMass(
bool varymass =
true);
53 virtual void SetCosDecayAngle(
double val);
54 virtual void SetDeltaPhiDecayPlane(
double val);
56 virtual double GetProbMCMC(
double mass = -1.)
const;
57 virtual void GenerateMassMCMC(
double& mass,
double& prob,
58 double max = -1.)
const;
61 double m_CosDecayAngle;
62 double m_DeltaPhiDecayPlane;
64 std::vector<int> m_ChildIndexMCMC;
65 std::vector<double> m_ChildMassMCMC;
66 std::vector<double> m_ChildProbMCMC;
67 std::vector<double> m_InterMassFracMCMC;
69 virtual bool IsSoundBody()
const;
71 virtual void ResetGenFrame();
72 virtual bool GenerateFrame();
74 void GenerateTwoBodyRecursive(
const std::vector<double>& M_parent,
75 const std::vector<double>& M_child,
76 const TVector3& axis_par,
77 const TVector3& axis_perp,
78 std::vector<TLorentzVector>& P_child);
80 virtual bool InitializeGenAnalysis();
81 virtual bool IterateMCMC();
85 int DoubleMax(
const void *a,
const void *b);