RestFrames
v1.0.1
RestFrames HEP Event Analysis Software Library
|
Go to the documentation of this file.
36 namespace RestFrames {
39 enum FrameType { kVanillaFrame, kVisibleFrame, kInvisibleFrame,
40 kDecayFrame, kLabFrame};
52 RestFrame(
const std::string& sname,
const std::string& stitle);
65 static void SetAxis(
const TVector3& axis);
70 static TVector3
const&
GetAxis();
288 virtual double GetMass()
const;
316 const TVector3& axis =
378 const TVector3& axis =
396 const TVector3& axis =
413 const TVector3& axis =
567 virtual bool IsSoundBody()
const;
569 TVector3
const& GetChildBoostVector(
RestFrame& frame)
const;
570 TVector3
const& GetParentBoostVector()
const;
589 static int m_class_key;
592 static TVector3 m_Axis;
602 mutable std::map<const RestFrame*, TVector3> m_ChildBoosts;
606 TVector3 m_ParentBoost;
608 void SetFourVector(
const TLorentzVector& V,
const RestFrame& frame);
609 void SetChildBoostVector(
RestFrame& frame,
const TVector3& boost);
610 void SetParentBoostVector(
const TVector3& boost);
616 bool FindPathToFrame(
const RestFrame& dest_frame,
618 std::vector<const TVector3*>& boosts)
const;
double GetMomentum(const RestFrame &frame) const
Returns magnitude of momentum.
virtual RestFrame const & GetLabFrame() const
Returns the LabFrame that this frame inherits from.
double GetVisibleShape() const
Returns visible shape of frame.
virtual void SetParentFrame(RestFrame &frame=RestFrame::Empty())
Sets the parent frame for this frame.
TLorentzVector GetVisibleFourVector(const RestFrame &frame=RestFrame::Empty()) const
Returns four-vector of visible descendants.
virtual RestFrame & GetChildFrame(int i=0) const
Get the RestFrame of the i th child.
void RemoveChildFrames()
Removes all the children of this frame.
virtual RestFrameList GetListInvisibleFrames() const
Returns a list of InvisibleFrame s inheriting from this.
int GetNDescendants() const
Returns the number of descendents of this frame.
virtual bool InitializeTreeRecursive()
Recursively initialize this frame's tree.
FrameType GetType() const
Returns RestFrame (FrameType) type.
AnaType
Type of RestFrame, with respect to its analysis capabilities.
TVector3 GetDecayPlaneNormalVector(const RestFrame &frame=RestFrame::Empty()) const
Returns the vector normal to the decay plane of this frame.
double GetTransverseMomentum(const RestFrame &frame=RestFrame::Empty(), const TVector3 &axis=RestFrame::GetAxis(), const RestFrame &axis_frame=RestFrame::Empty()) const
Returns magnitude of transverse momentum.
double GetDeltaPhiVisible(const TVector3 &axis=RestFrame::GetAxis(), const RestFrame &frame=RestFrame::Empty()) const
Returns difference of azimuthal angles between the angles of its visible particles kids.
double GetDeltaPhiDecayVisible(const TVector3 &axis=RestFrame::GetAxis(), const RestFrame &frame=RestFrame::Empty()) const
Returns difference of azimuthal angles between the decay angles of the visible particles decaying fro...
bool IsRecoFrame() const
Is this an ReconstructionFrame ? (yes/no)
bool IsDecayFrame() const
Is this a DecayFrame ? (yes/no)
abstract base class for all Frame objects
virtual void AddChildFrame(RestFrame &frame)
Adds a child RestFrame to this frame.
TLorentzVector GetFourVector(const RestFrame &frame=RestFrame::Empty()) const
Returns this frame's four-vector in a specified frame.
bool IsGenFrame() const
Is this a GeneratorFrame ? (yes/no)
double GetCosDecayAngle(const RestFrame &frame=RestFrame::Empty()) const
Returns the cosine of this frame's decay angle.
double GetSumVisibleMomentum() const
Returns scalar sum of visible child momenta.
static void SetAxis(const TVector3 &axis)
Set axis perpendicular to transverse plane.
Base class for all RestFrame package objects.
virtual RestFrame const & GetFrameAtDepth(int depth, const RestFrame &frame) const
Returns the frame at depth.
virtual bool InitializeAnalysisRecursive()=0
Recursively initialize this frame and its children for analysis.
double GetSumInvisibleMomentum() const
Returns scalar sum of invisible child momenta.
virtual RestFrame const & GetProductionFrame() const
Returns the production frame of this frame.
int GetNChildren() const
Returns the number of child frames inheriting from this one.
virtual std::string PrintString(LogType type) const
String of information about RestFrame.
void AddChildFrames(const RestFrameList &frames)
Adds a list of children to this frame.
RestFrameList const & GetChildFrames() const
Returns a list of this frame's child RestFrames.
bool IsCircularTree(std::vector< RFKey > &keys) const
Check this RestFrame 's tree for circular connections.
LogType
Type of Log Message.
virtual RestFrame const & GetParentFrame() const
Returns the parent of this frame.
bool IsInvisibleFrame() const
Is this an InvisibleFrame ? (yes/no)
TLorentzVector GetTransverseFourVector(const RestFrame &frame=RestFrame::Empty(), const TVector3 &axis=RestFrame::GetAxis(), const RestFrame &axis_frame=RestFrame::Empty()) const
Returns this frame's four-vector in a specified frame.
virtual RFCharge GetCharge() const
Returns the charge of this frame.
virtual RestFrame const & GetSiblingFrame() const
Returns the sibling frame of this frame.
TLorentzVector GetInvisibleFourVector(const RestFrame &frame=RestFrame::Empty()) const
Returns four-vector of invisible descendants.
virtual void Clear()
Clears RestFrame of all connections to other objects.
virtual RestFrameList GetListVisibleFrames() const
Returns a list of VisibleFrame s inheriting from this.
virtual double GetMass() const
Returns the mass of this frame.
virtual RestFrameList GetListFrames(FrameType type=kLabFrame) const
Returns a list of frames inheriting from this one.
double GetGammaInParentFrame() const
Returns the gamma of this frame in its parent's frame.
FrameType
Type of RestFrame, with respect to its decays.
bool IsVisibleFrame() const
Is this a VisibleFrame ? (yes/no)
static TVector3 const & GetAxis()
Retrieve axis which defines transverse plane.
RestFrame()
Empty constructor.
static ConstRestFrameList const & EmptyList()
Returns empty RestFrameList.
virtual bool ClearEventRecursive()=0
Recursively clear event information from this frame and its children.
double GetEnergy(const RestFrame &frame) const
Returns energy of this frame in specified reference frame.
int GetFrameDepth(const RestFrame &frame) const
Returns the depth of frame
bool IsLabFrame() const
Is this a LabFrame ? (yes/no)
static RestFrame & Empty()
Returns empty RestFrame.
void RemoveChildFrame(RestFrame &frame)
Removes a child of this frame.
TVector3 GetBoostInParentFrame() const
Returns the boost of this frame in it's parent's frame.
virtual bool AnalyzeEventRecursive()=0
Recursively analyze event in this frame and its children.
double GetDeltaPhiDecayPlanes(const RestFrame &frame) const
Returns difference of azimuthal angle between decay planes.
double GetDeltaPhiDecayAngle(const TVector3 &axis=RestFrame::GetAxis(), const RestFrame &frame=RestFrame::Empty()) const
Returns difference of azimuthal decay angles in an axis.
double GetDeltaPhiBoostVisible(const TVector3 &axis=RestFrame::GetAxis(), const RestFrame &frame=RestFrame::Empty()) const
Returns difference of azimuthal angles between the decay angles of the visible particles decaying fro...
RestFrameList operator+(RestFrame &frame)
Combines RestFrames into RestFrameList.