RestFrames
v1.0.1
RestFrames HEP Event Analysis Software Library
|
Go to the documentation of this file.
36 namespace RestFrames {
38 enum JigsawType { kVanillaJigsaw, kInvisibleJigsaw,
39 kCombinatoricJigsaw };
53 Jigsaw(
const std::string& sname,
54 const std::string& stitle,
55 int Nchild,
int Ndependancy);
68 JigsawType
GetType()
const {
return m_Type; }
73 virtual std::string
GetLabel()
const {
return "Jigsaw"; }
138 virtual bool IsSoundBody()
const;
140 virtual bool AnalyzeEvent() = 0;
142 bool CanResolve(
const State& state)
const;
144 bool DependsOnJigsaw(
const Jigsaw& jigsaw)
const;
146 virtual bool InitializeTree();
147 virtual bool InitializeAnalysis();
149 virtual bool InitializeDependancyJigsaws();
150 virtual bool InitializeJigsawExecutionList(
JigsawList& exec_jigsaws,
JigsawList& todo_jigsaws) = 0;
152 void AddChildFrame(
const RestFrame& frame,
int i = 0);
153 void AddDependancyFrame(
const RestFrame& frame,
int i = 0);
155 virtual int GetNChildren()
const;
156 virtual State& GetChildState(
int i)
const;
157 virtual StateList const& GetChildStates()
const;
159 int GetNDependancyStates()
const;
160 virtual StateList const& GetDependancyStates(
int i)
const;
162 void SetParentState();
163 virtual void SetParentState(
State& state);
164 virtual State const& GetParentState()
const;
166 virtual State& GetNewChildState() = 0;
168 virtual void FillJigsawDependancies(
JigsawList& jigsaws)
const;
169 virtual void FillGroupJigsawDependancies(
JigsawList& jigsaws)
const;
170 virtual void FillGroupJigsawDependants(
JigsawList& jigsaws)
const;
174 State* m_ParentStatePtr;
180 StateListList m_DependancyStates;
182 std::vector<ConstRestFrameList> m_ChildFrames;
183 std::vector<ConstRestFrameList> m_DependancyFrames;
187 static int m_class_key;
virtual std::string PrintString(LogType type) const
Prints string of information associated with Jigsaw.
JigsawType GetType() const
Returns jigsaw (JigsawType) type.
virtual void SetGroup(Group &group=Group::Empty())
Sets group (Group) to current jigsaw.
virtual Group & GetGroup() const
Returns group (Group) associated with this jigsaw.
Jigsaw()
Empty constructor.
static Group & Empty()
Returns empty Group.
virtual ConstRestFrameList const & GetDependancyFrames(int i) const
Returns list of frames in which this jigsaw depends on.
abstract base class for all Frame objects
abstract base class for all Group objects
Base class for all RestFrame package objects.
virtual ConstRestFrameList const & GetChildFrames(int i) const
Returns list of child frames associated with this jigsaw.
virtual void Clear()
Clears Jigsaw of all connections to other objects.
bool IsInvisibleJigsaw() const
Is invisible jigsaw? (true/false)
virtual std::string GetLabel() const
Returns name of this Jigsaw.
LogType
Type of Log Message.
static Jigsaw & Empty()
Returns empty Jigsaw.
virtual ConstRestFrameList GetParentFrames() const
Returns list of parent frames associated with this jigsaw.
void RemoveFrame(const RestFrame &frame)
Removes a frame from this jigsaw.
abstract base class for all Jigsaw objects
void RemoveFrames(const ConstRestFrameList &frames)
Removes a list of frames from this jigsaw.
Abstract base class for all State objects.
bool IsCombinatoricJigsaw() const
Is combinatoric jigsaw? (true/false)