]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PYTHIA8/pythia8130/xmldoc/EventAnalysis.xml
using option '-treename HLTesdTree' for EsdCollector, adding default parameter for...
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8130 / xmldoc / EventAnalysis.xml
CommitLineData
5ad4eb21 1<chapter name="Event Analysis">
2
3<h2>Event Analysis</h2>
4
5<h3>Introduction</h3>
6
7The routines in this section are intended to be used to analyze
8event properties. As such they are not part of the main event
9generation chain, but can be used in comparisons between Monte
10Carlo events and real data. They are rather free-standing, but
11assume that input is provided in the PYTHIA 8
12<code>Event</code> format, and use a few basic facilities such
13as four-vectors.
14
15<h3>Sphericity</h3>
16
17The standard sphericity tensor is
18<eq>
19 S^{ab} = (sum_i p_i^a p_i^b) / (sum_i p_i^2)
20</eq>
21where the <ei>sum i</ei> runs over the particles in the event,
22<ei>a, b = x, y, z,</ei> and <ei>p</ei> without such an index is
23the absolute size of the three-momentum . This tensor can be
24diagonalized to find eigenvalues and eigenvectors.
25
26<p/>
27The above tensor can be generalized by introducing a power
28<ei>r</ei>, such that
29<eq>
30 S^{ab} = (sum_i p_i^a p_i^b p_i^{r-2}) / (sum_i p_i^r)
31</eq>
32In particular, <ei>r = 1</ei> gives a linear dependence on momenta
33and thus a collinear safe definition, unlike sphericity.
34
35<p/>
36A sphericity analysis object is declared by
37<class name="Sphericity sph( power, select)">
38where
39<argument name="power" default="2.">
40is the power <ei>r</ei> defined above, i.e.
41<argoption value="2.">gives Spericity, and</argoption>
42<argoption value="1.">gives the linear form.</argoption>
43</argument>
44<argument name="select" default="2">
45tells which particles are analyzed,
46<argoption value="1">all final-state particles,</argoption>
47<argoption value="2">all observable final-state particles,
48i.e. excluding neutrinos and other particles without strong or
49electromagnetic interactions (the <code>isVisible()</code>
50particle method), and
51</argoption>
52<argoption value="3">only charged final-state particles.</argoption>
53</argument>
54</class>
55
56<p/>
57The analysis is performed by a call to the method
58<method name="analyze( event)">
59where
60<argument name="event">is an object of the <code>Event</code> class,
61most likely the <code>pythia.event</code> one.
62</argument>
63<br/>If the routine returns <code>false</code> the analysis failed,
64e.g. if too few particles are present to analyze.
65</method>
66
67<p/>
68After the analysis has been performed, a few <code>Sphericity</code>
69class methods are available to return the result of the analysis:
70<method name="sphericity()">
71gives the sphericity (or equivalent if <ei>r</ei> is not 2),
72</method>
73<method name="aplanarity()">
74gives the aplanarity (with the same comment),
75</method>
76<method name="eigenValue(i)">
77gives one of the three eigenvalues for <ei>i</ei> = 1, 2 or 3, in
78descending order,
79</method>
80<method name="EventAxis(i)">
81gives the matching eigenvector, as a <code>Vec4</code> with vanishing
82time/energy component.
83</method>
84<method name="list()">
85provides a listing of the above information.
86</method>
87<method name="nError()">
88tells the number of times <code>analyze</code> failed to analyze events.
89</method>
90
91<h3>Thrust</h3>
92
93Thrust is obtained by varying the thrust axis so that the longitudinal
94momentum component projected onto it is maximized, and thrust itself is
95then defined as the sum of absolute longitudinal momenta divided by
96the sum of absolute momenta. The major axis is found correspondingly
97in the plane transverse to thrust, and the minor one is then defined
98to be transverse to both. Oblateness is the difference between the major
99and the minor values.
100
101<p/>
102The calculation of thrust is more computer-time-intensive than e.g.
103linear sphericity, introduced above, and has no specific advantages except
104historical precedent. In the PYTHIA 6 implementation the search was
105speeded up at the price of then not being guaranteed to hit the absolute
106maximum. The current implementation studies all possibilities, but at
107the price of being slower, with time consumption for an event with
108<ei>n</ei> particles growing like <ei>n^3</ei>.
109
110<p/>
111A thrust analysis object is declared by
112<class name="Thrust thr( select)">
113where
114<argument name="select" default="2">
115tells which particles are analyzed,
116<argoption value="1">all final-state particles,</argoption>
117<argoption value="2">all observable final-state particles,
118i.e. excluding neutrinos and other particles without strong or
119electromagnetic interactions (the <code>isVisible()</code>
120particle method), and
121</argoption>
122<argoption value="3">only charged final-state particles.</argoption>
123</argument>
124</class>
125
126<p/>
127The analysis is performed by a call to the method
128<method name="analyze( event)">
129where
130<argument name="event">is an object of the <code>Event</code> class,
131most likely the <code>pythia.event</code> one.
132</argument>
133<br/>If the routine returns <code>false</code> the analysis failed,
134e.g. if too few particles are present to analyze.
135</method>
136
137<p/>
138After the analysis has been performed, a few <code>Thrust</code>
139class methods are available to return the result of the analysis:
140<method name="thrust(), tMajor(), tMinor(), oblateness()">
141gives the thrust, major, minor and oblateness values, respectively,
142<method name="EventAxis(i)">
143gives the matching event-axis vectors, for <ei>i</ei> = 1, 2 or 3
144corresponding to thrust, major or minor, as a <code>Vec4</code> with
145vanishing time/energy component.
146</method>
147<method name="list()">
148provides a listing of the above information.
149</method>
150<method name="nError()">
151tells the number of times <code>analyze</code> failed to analyze events.
152</method>
153
154<h3>ClusterJet</h3>
155
156<code>ClusterJet</code> (a.k.a. <code>LUCLUS</code> and
157<code>PYCLUS</code>) is a clustering algorithm of the type used for
158analyses of <ei>e^+e^-</ei> events, see the PYTHIA 6 manual. A few
159options are available for some well-known distance measures. Cutoff
160distances can either be given in terms of a scaled quadratic quantity
161like <ei>y = pT^2/E^2</ei> or an unscaled linear one like <ei>pT</ei>.
162
163<p/>
164A cluster-jet analysis object is declared by
165<class name="ClusterJet clusterJet( measure, select, massSet,
166precluster, reassign)">
167where
168<argument name="measure" default="Lund">distance measure, to be provided
169as a character string (actually, only the first character is necessary)
170<argoption value="Lund">the Lund <ei>pT</ei> distance,</argoption>
171<argoption value="JADE">the JADE mass distance, and</argoption>
172<argoption value="Durham">the Durham <ei>kT</ei> measure.</argoption>
173</argument>
174<argument name="select" default="2">
175tells which particles are analyzed,
176<argoption value="1">all final-state particles,</argoption>
177<argoption value="2">all observable final-state particles,
178i.e. excluding neutrinos and other particles without strong or
179electromagnetic interactions (the <code>isVisible()</code> particle
180method), and
181</argoption>
182<argoption value="3">only charged final-state particles.</argoption>
183</argument>
184<argument name="massSet" default="2">masses assumed for the particles
185used in the analysis
186<argoption value="0">all massless,</argoption>
187<argoption value="1">photons are massless while all others are
188assigned the <ei>pi+-</ei> mass, and
189</argoption>
190<argoption value="2">all given their correct masses.</argoption>
191</argument>
192<argument name="precluster" default="false">
193perform or not a early preclustering step, where nearby particles
194are lumped together so as to speed up the subsequent normal clustering.
195</argument>
196<argument name="reassign" default="false">
197reassign all particles to the nearest jet each time after two jets
198have been joined.
199</argument>
200</class>
201
202<p/>
203The analysis is performed by a
204<method name="analyze( event, yScale, pTscale, nJetMin, nJetMax)">
205where
206<argument name="event">is an object of the <code>Event</code> class,
207most likely the <code>pythia.event</code> one.
208</argument>
209<argument name="yScale">
210is the cutoff joining scale, below which jets are joined. Is given
211in quadratic dimensionless quantities. Either <code>yScale</code>
212or <code>pTscale</code> must be set nonvanishing, and the larger of
213the two dictates the actual value.
214</argument>
215<argument name="pTscale">
216is the cutoff joining scale, below which jets are joined. Is given
217in linear quantities, such as <ei>pT</ei> or <ei>m</ei> depending on
218the measure used, but always in units of GeV. Either <code>yScale</code>
219or <code>pTscale</code> must be set nonvanishing, and the larger of
220the two dictates the actual value.
221</argument>
222<argument name="nJetMin" default="1">
223the minimum number of jets to be reconstructed. If used, it can override
224the <code>yScale</code> and <code>pTscale</code> values.
225</argument>
226<argument name="nJetMax" default="0">
227the maximum number of jets to be reconstructed. Is not used if below
228<code>nJetMin</code>. If used, it can override the <code>yScale</code>
229and <code>pTscale</code> values. Thus e.g.
230<code>nJetMin = nJetMax = 3</code> can be used to reconstruct exactly
2313 jets.
232</argument>
233<br/>If the routine returns <code>false</code> the analysis failed,
234e.g. because the number of particles was smaller than the minimum number
235of jets requested.
236</method>
237
238<p/>
239After the analysis has been performed, a few <code>ClusterJet</code>
240class methods are available to return the result of the analysis:
241<method name="size()">
242gives the number of jets found, with jets numbered 0 through
243<code>size() - 1</code>,
244</method>
245<method name="p(i)">
246gives a <code>Vec4</code> corresponding to the four-momentum defined by
247the sum of all the contributing particles to the <ei>i</ei>'th jet,
248</method>
249<method name="jetAssignment(i)">
250gives the index of the jet that the particle <ei>i</ei> of the event
251record belongs to,
252</method>
253<method name="list()">
254provides a listing of the reconstructed jets.
255</method>
256<method name="nError()">
257tells the number of times <code>analyze</code> failed to analyze events.
258</method>
259
260<h3>CellJet</h3>
261
262<code>CellJet</code> (a.k.a. <code>PYCELL</code>) is a simple cone jet
263finder in the UA1 spirit, see the PYTHIA 6 manual. It works in an
264<ei>(eta, phi, eT)</ei> space, where <ei>eta</ei> is pseudorapidity,
265<ei>phi</ei> azimuthal angle and <ei>eT</ei> transverse energy.
266It will draw cones in <ei>R = sqrt(Delta-eta^2 + Delta-phi^2)</ei>
267around seed cells. If the total <ei>eT</ei> inside the cone exceeds
268the threshold, a jet is formed, and the cells are removed from further
269analysis. There are no split or merge procedures, so later-found jets
270may be missing some of the edge regions already used up by previous
271ones.
272
273<p/>
274A cell-jet analysis object is declared by
275<class name="CellJet cellJet( etaMax, nEta, nPhi, select, smear,
276resolution, upperCut, threshold)">
277where
278<argument name="etaMax" default="5.">
279the maximum +-pseudorapidity that the detector is assumed to cover.
280</argument>
281<argument name="nEta" default="50">
282the number of equal-sized bins that the <ei>+-etaMax</ei> range
283is assumed to be divided into.
284</argument>
285<argument name="nPhi" default="32">
286the number of equal-sized bins that the <ei>phi</ei> range
287<ei>+-pi</ei> is assumed to be divided into.
288</argument>
289<argument name="select" default="2">
290tells which particles are analyzed,
291<argoption value="1">all final-state particles,</argoption>
292<argoption value="2">all observable final-state particles,
293i.e. excluding neutrinos and other particles without strong or
294electromagnetic interactions (the <code>isVisible()</code> particle
295method),
296and</argoption>
297<argoption value="3">only charged final-state particles.</argoption>
298</argument>
299<argument name="smear" default="0">
300strategy to smear the actual <ei>eT</ei> bin by bin,
301<argoption value="0">no smearing,</argoption>
302<argoption value="1">smear the <ei>eT</ei> according to a Gaussian
303with width <ei>resolution * sqrt(eT)</ei>, with the Gaussian truncated
304at 0 and <ei>upperCut * eT</ei>,</argoption>
305<argoption value="2">smear the <ei>e = eT * cosh(eta)</ei> according
306to a Gaussian with width <ei>resolution * sqrt(e)</ei>, with the
307Gaussian truncated at 0 and <ei>upperCut * e</ei>.</argoption>
308</argument>
309<argument name="resolution" default="0.5">
310see above
311</argument>
312<argument name="upperCut" default="2.">
313see above
314</argument>
315<argument name="threshold" default="0 GeV">
316completely neglect all bins with an <ei>eT &lt; threshold</ei>.
317</argument>
318</class>
319
320<p/>
321The analysis is performed by a
322<method name="analyze( event, eTjetMin, coneRadius, eTseed)">
323where
324<argument name="event">is an object of the <code>Event</code> class,
325most likely the <code>pythia.event</code> one.
326</argument>
327<argument name="eTjetMin" default="20. GeV">
328is the minimum transverse energy inside a cone for this to be
329accepted as a jet.
330</argument>
331<argument name="coneRadius" default="0.7">
332 is the size of the cone in <ei>(eta, phi)</ei> space drawn around
333the geometric center of the jet.
334</argument>
335<argument name="eTseed" default="1.5 GeV">
336the mimimum <ei>eT</ei> in a cell for this to be acceptable as
337the trial center of a jet.
338</argument>
339<br/>If the routine returns <code>false</code> the analysis failed,
340but currently this is not foreseen ever to happen.
341</method>
342
343<p/>
344After the analysis has been performed, a few <code>CellJet</code>
345class methods are available to return the result of the analysis:
346<method name="size()">
347gives the number of jets found, with jets numbered 0 through
348<code>size() - 1</code>,
349</method>
350<method name="eT(i)">
351gives the <ei>eT</ei> of the <ei>i</ei>'th jet, where jets have been
352ordered with decreasing <ei>eT</ei> values,
353</method>
354<method name="etaCenter(i), phiCenter(i)">
355gives the <ei>eta</ei> and <ei>phi</ei> coordinates of the geometrical
356center of the <ei>i</ei>'th jet,
357</method>
358<method name="etaWeighted(i), phiWeighted(i)">
359gives the <ei>eta</ei> and <ei>phi</ei> coordinates of the
360<ei>eT</ei>-weighted center of the <ei>i</ei>'th jet,
361</method>
362<method name="multiplicity(i)">
363gives the number of particles clustered into the <ei>i</ei>'th jet,
364</method>
365<method name="pMassless(i)">
366gives a Vec4 corresponding to the four-momentum defined by the
367<ei>eT</ei> and the weighted center of the <ei>i</ei>'th jet,
368</method>
369<method name="pMassive(i)">
370gives a <code>Vec4</code> corresponding to the four-momentum defined by
371the sum of all the contributing cells to the <ei>i</ei>'th jet, where
372each cell contributes a four-momentum as if all the <ei>eT</ei> is
373deposited in the center of the cell,
374</method>
375<method name="m(i)">
376gives the invariant mass of the <ei>i</ei>'th jet, defined by the
377<code>pMassive</code> above,
378</method>
379<method name="list()">
380provides a listing of the above information (except <code>pMassless</code>,
381for reasons of space).
382</method>
383<method name="nError()">
384tells the number of times <code>analyze</code> failed to analyze events.
385</method>
386
387</chapter>
388
389<!-- Copyright (C) 2008 Torbjorn Sjostrand -->