/[PAMELA software]/PamCut/doc/Doxygen/html/classSmartCollection.html
ViewVC logotype

Contents of /PamCut/doc/Doxygen/html/classSmartCollection.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (show annotations) (download) (as text)
Fri Sep 25 15:41:54 2009 UTC (15 years, 6 months ago) by pam-fi
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +0 -0 lines
File MIME type: text/html
FILE REMOVED
Removed from repository.

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3 <title>PamCut: SmartCollection Class Reference</title>
4 <link href="tabs.css" rel="stylesheet" type="text/css">
5 <link href="doxygen.css" rel="stylesheet" type="text/css">
6 </head><body>
7 <!-- Generated by Doxygen 1.5.9 -->
8 <div class="navigation" id="top">
9 <div class="tabs">
10 <ul>
11 <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12 <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
13 <li><a href="files.html"><span>Files</span></a></li>
14 </ul>
15 </div>
16 <div class="tabs">
17 <ul>
18 <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
19 <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
20 <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
21 </ul>
22 </div>
23 </div>
24 <div class="contents">
25 <h1>SmartCollection Class Reference</h1><!-- doxytag: class="SmartCollection" --><!-- doxytag: inherits="PamCutCollection" -->A collection class designed to use <a class="el" href="classCollectionAction.html" title="An abstract class that defines the interface of a generic collection action.">CollectionAction</a> objects.
26 <a href="#_details">More...</a>
27 <p>
28 <code>#include &lt;<a class="el" href="SmartCollection_8h_source.html">SmartCollection.h</a>&gt;</code>
29 <p>
30 <div class="dynheader">
31 Inheritance diagram for SmartCollection:</div>
32 <div class="dynsection">
33
34 <p><center><img src="classSmartCollection.png" usemap="#SmartCollection_map" border="0" alt=""></center>
35 <map name="SmartCollection_map">
36 <area href="classPamCutCollection.html" alt="PamCutCollection" shape="rect" coords="77,56,221,80">
37 <area href="classPamCut.html" alt="PamCut" shape="rect" coords="77,0,221,24">
38 <area href="classSmartBlindCollection.html" alt="SmartBlindCollection" shape="rect" coords="0,168,144,192">
39 <area href="classVerboseCollection.html" alt="VerboseCollection" shape="rect" coords="154,168,298,192">
40 <area href="classVerboseBlindCollection.html" alt="VerboseBlindCollection" shape="rect" coords="0,224,144,248">
41 </map>
42 </div>
43
44 <p>
45 <a href="classSmartCollection-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
46 <tr><td></td></tr>
47 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
48 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSmartCollection.html#597157bb186c4688cd305b62a197009d">SmartCollection</a> (const char *collectionName)</td></tr>
49
50 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#597157bb186c4688cd305b62a197009d"></a><br></td></tr>
51 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="63fdadd219eb42065c6e9adc63558b63"></a><!-- doxytag: member="SmartCollection::~SmartCollection" ref="63fdadd219eb42065c6e9adc63558b63" args="()" -->
52 &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSmartCollection.html#63fdadd219eb42065c6e9adc63558b63">~SmartCollection</a> ()</td></tr>
53
54 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <br></td></tr>
55 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9265adb168bca295f264af65276a002b"></a><!-- doxytag: member="SmartCollection::AddAction" ref="9265adb168bca295f264af65276a002b" args="(CollectionAction &amp;action)" -->
56 virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSmartCollection.html#9265adb168bca295f264af65276a002b">AddAction</a> (<a class="el" href="classCollectionAction.html">CollectionAction</a> &amp;action)</td></tr>
57
58 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds an action to the <a class="el" href="classSmartCollection.html" title="A collection class designed to use CollectionAction objects.">SmartCollection</a>. <br></td></tr>
59 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classCollectionAction.html">CollectionAction</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSmartCollection.html#acadaf64f683e7932c376e924e7020ea">GetAction</a> (unsigned int iAction)</td></tr>
60
61 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the iAction-th action. <a href="#acadaf64f683e7932c376e924e7020ea"></a><br></td></tr>
62 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSmartCollection.html#9b5b11a854b9e174218ea516ceffb34c">Setup</a> (PamLevel2 *events)</td></tr>
63
64 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The pre-analysis task definition. <a href="#9b5b11a854b9e174218ea516ceffb34c"></a><br></td></tr>
65 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSmartCollection.html#8105730615ad127a482a7fb399695977">Finalize</a> ()</td></tr>
66
67 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The post-analysis task definition. <a href="#8105730615ad127a482a7fb399695977"></a><br></td></tr>
68 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSmartCollection.html#98213ec078e9b94ea70c72132757da46">ApplyCut</a> (PamLevel2 *event)</td></tr>
69
70 <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
71 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a80a9cf5cab3683a61b47a1145ff8f15"></a><!-- doxytag: member="SmartCollection::_actions" ref="a80a9cf5cab3683a61b47a1145ff8f15" args="" -->
72 std::vector&lt; <a class="el" href="classCollectionAction.html">CollectionAction</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>_actions</b></td></tr>
73
74 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="732af2b9a16d0c098ce90ed29e15d09f"></a><!-- doxytag: member="SmartCollection::_actionsPositions" ref="732af2b9a16d0c098ce90ed29e15d09f" args="" -->
75 std::vector&lt; unsigned int &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>_actionsPositions</b></td></tr>
76
77 </table>
78 <hr><a name="_details"></a><h2>Detailed Description</h2>
79 A collection class designed to use <a class="el" href="classCollectionAction.html" title="An abstract class that defines the interface of a generic collection action.">CollectionAction</a> objects.
80 <p>
81 The <a class="el" href="classSmartCollection.html" title="A collection class designed to use CollectionAction objects.">SmartCollection</a> class is designed to handle <a class="el" href="classCollectionAction.html" title="An abstract class that defines the interface of a generic collection action.">CollectionAction</a> objects. It holds a vector of these objects and takes care of calling Setup and Finalize for each of them at the beginning and at the end of the analysis, respectively. Actions can be added to the <a class="el" href="classSmartCollection.html" title="A collection class designed to use CollectionAction objects.">SmartCollection</a> by means of the <a class="el" href="classSmartCollection.html#9265adb168bca295f264af65276a002b" title="Adds an action to the SmartCollection.">AddAction()</a> method. If a bunch of cuts have been already added to the collection, the action will be logically placed after the cuts. The <a class="el" href="classSmartCollection.html" title="A collection class designed to use CollectionAction objects.">SmartCollection</a> will call <a class="el" href="classCollectionAction.html#077319900b1cde36b6baca9e6699ec5a" title="Routine for selected events.">CollectionAction::OnGood()</a> if the cuts preceding the actions are satisfied, and <a class="el" href="classCollectionAction.html#ef4ee9fd63c0d232e90694e068e6e339" title="Routine for discarded events.">CollectionAction::OnBad()</a> if at least one of them fails. An action will not be sensitive to cuts added to the collection after the action itself. The resulting structure is composed by bunches of cuts intertwined by actions, which are "executed" depending on the result of the bunch of cuts that precedes the action. Note that <a class="el" href="classCollectionAction.html#ef4ee9fd63c0d232e90694e068e6e339" title="Routine for discarded events.">CollectionAction::OnBad()</a> is called only for those actions at the end of the bunch where the first failed cut is: if after these actions there are other bunches of cuts and actions, they will be ignored. For example, in the sequence below:<p>
82 | cut1 | cut2 | action1 | action2 | cut3 | cut4 | action3 | ...<p>
83 action1 and action2 are executed (eg., OnGood is called for them) if cut1 and cut2 are both satisfied, then cut3 and cut4 are evaluated and if both of them are satisfied then action3 is executed. If, for example, cut 1 or cut2 fail, then OnBad is called for action1 and action2; however, cut3, cut4, action3 and all that follows are ignored. The analysis goes on with the next event. <hr><h2>Constructor &amp; Destructor Documentation</h2>
84 <a class="anchor" name="597157bb186c4688cd305b62a197009d"></a><!-- doxytag: member="SmartCollection::SmartCollection" ref="597157bb186c4688cd305b62a197009d" args="(const char *collectionName)" -->
85 <div class="memitem">
86 <div class="memproto">
87 <table class="memname">
88 <tr>
89 <td class="memname">SmartCollection::SmartCollection </td>
90 <td>(</td>
91 <td class="paramtype">const char *&nbsp;</td>
92 <td class="paramname"> <em>collectionName</em> </td>
93 <td>&nbsp;)&nbsp;</td>
94 <td><code> [inline]</code></td>
95 </tr>
96 </table>
97 </div>
98 <div class="memdoc">
99
100 <p>
101 Constructor.
102 <p>
103 <dl compact><dt><b>Parameters:</b></dt><dd>
104 <table border="0" cellspacing="2" cellpadding="0">
105 <tr><td valign="top"></td><td valign="top"><em>collectionName</em>&nbsp;</td><td>The collection's name. </td></tr>
106 </table>
107 </dl>
108
109 </div>
110 </div><p>
111 <hr><h2>Member Function Documentation</h2>
112 <a class="anchor" name="98213ec078e9b94ea70c72132757da46"></a><!-- doxytag: member="SmartCollection::ApplyCut" ref="98213ec078e9b94ea70c72132757da46" args="(PamLevel2 *event)" -->
113 <div class="memitem">
114 <div class="memproto">
115 <table class="memname">
116 <tr>
117 <td class="memname">int SmartCollection::ApplyCut </td>
118 <td>(</td>
119 <td class="paramtype">PamLevel2 *&nbsp;</td>
120 <td class="paramname"> <em>event</em> </td>
121 <td>&nbsp;)&nbsp;</td>
122 <td><code> [virtual]</code></td>
123 </tr>
124 </table>
125 </div>
126 <div class="memdoc">
127
128 <p>
129 Applies the cuts and executes the actions.<p>
130 When cuts are applied, a <a class="el" href="classSmartCollection.html" title="A collection class designed to use CollectionAction objects.">SmartCollection</a> will also execute the actions at the end of the bunches of cuts.<p>
131 <dl compact><dt><b>Parameters:</b></dt><dd>
132 <table border="0" cellspacing="2" cellpadding="0">
133 <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>The event to analyze. </td></tr>
134 </table>
135 </dl>
136
137 <p>Reimplemented from <a class="el" href="classPamCutCollection.html#e7af429a3afef3685cbd5aa076ef96e5">PamCutCollection</a>.</p>
138
139 <p>Reimplemented in <a class="el" href="classSmartBlindCollection.html#1eb231a8a437018bfd966644c7b18ba4">SmartBlindCollection</a>.</p>
140
141 </div>
142 </div><p>
143 <a class="anchor" name="8105730615ad127a482a7fb399695977"></a><!-- doxytag: member="SmartCollection::Finalize" ref="8105730615ad127a482a7fb399695977" args="()" -->
144 <div class="memitem">
145 <div class="memproto">
146 <table class="memname">
147 <tr>
148 <td class="memname">void SmartCollection::Finalize </td>
149 <td>(</td>
150 <td class="paramname"> </td>
151 <td>&nbsp;)&nbsp;</td>
152 <td><code> [virtual]</code></td>
153 </tr>
154 </table>
155 </div>
156 <div class="memdoc">
157
158 <p>
159 The post-analysis task definition.
160 <p>
161 This override of the <a class="el" href="classSmartCollection.html#8105730615ad127a482a7fb399695977" title="The post-analysis task definition.">Finalize()</a> method calls <a class="el" href="classPamCutCollection.html#15785c75fb13b998422739e741bb5c01" title="The post-analysis task definition.">PamCutCollection::Finalize()</a> and then the <a class="el" href="classSmartCollection.html#8105730615ad127a482a7fb399695977" title="The post-analysis task definition.">Finalize()</a> method of each action contained in the <a class="el" href="classSmartCollection.html" title="A collection class designed to use CollectionAction objects.">SmartCollection</a>.
162 <p>Reimplemented from <a class="el" href="classPamCutCollection.html#15785c75fb13b998422739e741bb5c01">PamCutCollection</a>.</p>
163
164 <p>Reimplemented in <a class="el" href="classVerboseBlindCollection.html#43d6ea7b5ea35c5dbb342e23584b79ee">VerboseBlindCollection</a>, and <a class="el" href="classVerboseCollection.html#3fcdf28d50507d772647d4306a78f3cc">VerboseCollection</a>.</p>
165
166 </div>
167 </div><p>
168 <a class="anchor" name="acadaf64f683e7932c376e924e7020ea"></a><!-- doxytag: member="SmartCollection::GetAction" ref="acadaf64f683e7932c376e924e7020ea" args="(unsigned int iAction)" -->
169 <div class="memitem">
170 <div class="memproto">
171 <table class="memname">
172 <tr>
173 <td class="memname"><a class="el" href="classCollectionAction.html">CollectionAction</a> * SmartCollection::GetAction </td>
174 <td>(</td>
175 <td class="paramtype">unsigned int&nbsp;</td>
176 <td class="paramname"> <em>iAction</em> </td>
177 <td>&nbsp;)&nbsp;</td>
178 <td></td>
179 </tr>
180 </table>
181 </div>
182 <div class="memdoc">
183
184 <p>
185 Returns the iAction-th action.
186 <p>
187 <dl compact><dt><b>Parameters:</b></dt><dd>
188 <table border="0" cellspacing="2" cellpadding="0">
189 <tr><td valign="top"></td><td valign="top"><em>iAction</em>&nbsp;</td><td>The index of the desired <a class="el" href="classCollectionAction.html" title="An abstract class that defines the interface of a generic collection action.">CollectionAction</a>, defined as the insertion order (from 0 to #actions-1, see <a class="el" href="classSmartCollection.html#9265adb168bca295f264af65276a002b" title="Adds an action to the SmartCollection.">AddAction()</a>). </td></tr>
190 </table>
191 </dl>
192 <dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the iAction-th action; NULL if the specified action cannot be found or if no actions are present. </dd></dl>
193
194 </div>
195 </div><p>
196 <a class="anchor" name="9b5b11a854b9e174218ea516ceffb34c"></a><!-- doxytag: member="SmartCollection::Setup" ref="9b5b11a854b9e174218ea516ceffb34c" args="(PamLevel2 *events)" -->
197 <div class="memitem">
198 <div class="memproto">
199 <table class="memname">
200 <tr>
201 <td class="memname">void SmartCollection::Setup </td>
202 <td>(</td>
203 <td class="paramtype">PamLevel2 *&nbsp;</td>
204 <td class="paramname"> <em>events</em> </td>
205 <td>&nbsp;)&nbsp;</td>
206 <td><code> [virtual]</code></td>
207 </tr>
208 </table>
209 </div>
210 <div class="memdoc">
211
212 <p>
213 The pre-analysis task definition.
214 <p>
215 This override of the <a class="el" href="classSmartCollection.html#9b5b11a854b9e174218ea516ceffb34c" title="The pre-analysis task definition.">Setup()</a> method calls <a class="el" href="classSmartCollection.html#9b5b11a854b9e174218ea516ceffb34c" title="The pre-analysis task definition.">Setup()</a> for the base class <a class="el" href="classPamCutCollection.html" title="A class which applies a set of cuts to Pamela data.">PamCutCollection</a>, and subsequently for each action contained in the <a class="el" href="classSmartCollection.html" title="A collection class designed to use CollectionAction objects.">SmartCollection</a>.<p>
216 <dl compact><dt><b>Parameters:</b></dt><dd>
217 <table border="0" cellspacing="2" cellpadding="0">
218 <tr><td valign="top"></td><td valign="top"><em>events</em>&nbsp;</td><td>The PamLevel2 pointer to the events that will be analyzed. Used only as parameter for <a class="el" href="classCollectionAction.html#13adbcacf5e088f7979f0644a65372b4" title="The initialization routine.">CollectionAction::Setup()</a>. </td></tr>
219 </table>
220 </dl>
221
222 <p>Reimplemented from <a class="el" href="classPamCutCollection.html#982821389af5e585688611d733b3a7b0">PamCutCollection</a>.</p>
223
224 </div>
225 </div><p>
226 <hr>The documentation for this class was generated from the following files:<ul>
227 <li>Collections/SmartCollection/<a class="el" href="SmartCollection_8h_source.html">SmartCollection.h</a><li>Collections/SmartCollection/<a class="el" href="SmartCollection_8cpp.html">SmartCollection.cpp</a></ul>
228 </div>
229 <hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 15:09:04 2009 for PamCut by&nbsp;
230 <a href="http://www.doxygen.org/index.html">
231 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
232 </body>
233 </html>

  ViewVC Help
Powered by ViewVC 1.1.23