]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/AliFMDEventInspector.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliFMDEventInspector.h
CommitLineData
7984e5f7 1//
2// This class inspects the event
3//
4#ifndef ALIFMDEVENTINSPECTOR_H
5#define ALIFMDEVENTINSPECTOR_H
ffca499d 6/**
7 * @file AliFMDEventInspector.h
8 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
9 * @date Wed Mar 23 14:02:48 2011
10 *
11 * @brief
12 *
13 *
bd6f5206 14 * @ingroup pwglf_forward_aod
ffca499d 15 */
8565b10b 16#include <TNamed.h>
5bb5d1f6 17#include <TAxis.h>
241cca4d 18#include <TList.h>
65abd48b 19#include "AliDisplacedVertexSelection.h"
8565b10b 20class AliESDEvent;
241cca4d 21class AliOADBPhysicsSelection;
8565b10b 22class TH2D;
23class TH1D;
24class TH1I;
5e4d905e 25class TH1F;
e308a636 26class TH2F;
66cf95f2 27class TH2I;
8565b10b 28class TAxis;
5ca83fee 29class TVector3;
241cca4d 30// class TList;
8565b10b 31
32/**
33 * This class inspects the event
34 *
35 * @par Input:
36 * - AliESDFMD object possibly corrected for sharing
37 *
38 * @par Output:
39 * - A histogram of v_z of events with triggers.
40 * - A histogram of v_z of events with vertex and triggers
41 * - A histogram of trigger counters
42 *
43 * Note, that these are added to the master output list
44 *
45 * @par Corrections used:
46 * - None
47 *
bd6f5206 48 * @ingroup pwglf_forward_algo
49 * @ingroup pwglf_forward_aod
8565b10b 50 */
51class AliFMDEventInspector : public TNamed
52{
53public:
54 /**
55 * Return codes
56 */
57 enum ECodes {
241cca4d 58 /** all ok - bin 1 */
8565b10b 59 kOk = 0,
241cca4d 60 /** No ESD event - bin 2 */
8565b10b 61 kNoEvent = 0x1,
241cca4d 62 /** No triggers found - bin 3 */
8565b10b 63 kNoTriggers = 0x2,
241cca4d 64 /** No SPD data - bin 4 */
8565b10b 65 kNoSPD = 0x4,
241cca4d 66 /** No FMD data - bin 5 */
8565b10b 67 kNoFMD = 0x8,
241cca4d 68 /** No vertex found - bin 6 */
8565b10b 69 kNoVertex = 0x10,
241cca4d 70 /** Vertex out of range - bin 7 */
0be6c8cd 71 kBadVertex = 0x20
8565b10b 72 };
73 /**
74 * Trigger bins
75 */
76 enum ETrgBins {
77 kInel,
78 kInelGt0,
e6463868 79 kNSD,
80 kV0AND,
8565b10b 81 kEmpty,
82 kA,
83 kB,
84 kC,
0be6c8cd 85 kE,
86 kPileUp,
87 kMCNSD,
8449e3e0 88 kSatellite,
e5c41d3e 89 kSpdOutlier,
0be6c8cd 90 kOffline
8565b10b 91 };
e5c41d3e 92 /**
93 * Ways to determine the primary vertex
94 */
0ccdab7b 95 enum EVtxType {
96 kNormal,
97 kpA2012,
98 kpA2013,
99 kPWGUD,
100 kDisplaced
101 };
e5c41d3e 102 /**
103 * Which kinds of pile-up to use
104 */
105 enum EPileupType {
106 kSPD = 0x1,
107 kTracks = 0x2,
108 kOutOfBunch = 0x4
109 };
5934a3e3 110 /**
111 * Centrality methods
112 */
113 enum ECentMethod {
114 kV0Multiplicity,
115 kV0Amplitude,
116 kV0Charge,
117 kFMDRough,
118 kNTracks,
119 kLTracks,
120 kCL0,
121 kCL1,
122 kCND,
123 kNParticles,
124 kNeutrons,
125 kV0vsFMD,
126 kV0vsNTracks,
6f656cde 127 kZEMvsZDC,
128 kDefaultCent
5934a3e3 129 };
130
0bd4b00f 131 /**
132 * Collision systems
133 */
134 enum ECollisionSystem {
135 kUnknown,
136 kPP,
137 kPbPb
138 };
8449e3e0 139 enum EVtxStatus {
140 kVtxOK = 1,
141 kNoVtx,
142 kNoSPDVtx,
143 kFewContrib,
144 kUncertain,
145 kNotVtxZ
146 };
147 enum ETrgStatus {
148 kNoTrgWords=1,
149 kPP2760Fast,
150 kMUON,
151 kTriggered,
152 kMinBias,
153 kMinBiasNoSPD,
154 kV0AndTrg,
155 kHighMult,
156 kCentral,
157 kSemiCentral,
158 kDiffractive,
159 kUser,
160 kOther
161 };
5ca83fee 162 /**
163 * Folder name
164 */
165 static const char* fgkFolderName;
8565b10b 166 /**
167 * Constructor
168 */
169 AliFMDEventInspector();
170 /**
171 * Constructor
172 *
173 * @param name Name of object
174 */
175 AliFMDEventInspector(const char* name);
8565b10b 176 /**
177 * Destructor
178 */
179 virtual ~AliFMDEventInspector();
8565b10b 180
181 /**
182 * Initialize the object
183 *
184 * @param vtxAxis Vertex axis in use
185 */
5934a3e3 186 virtual void SetupForData(const TAxis& vtxAxis);
8565b10b 187 /**
188 * Process the event
189 *
190 * @param event Input event
191 * @param triggers On return, the triggers fired
192 * @param lowFlux On return, true if the event is considered a low-flux
193 * event (according to the setting of fLowFluxCut)
0bd4b00f 194 * @param ivz On return, the found vertex bin (1-based). A zero
195 * means outside of the defined vertex range
33438b4c 196 * @param ip On return, coordinates of interaction point
5e4d905e 197 * @param cent On return, the centrality (in percent) or < 0
198 * if not found
5bb5d1f6 199 * @param nClusters On return, number of SPD clusters in @f$ |\eta|<1@f$
8565b10b 200 *
201 * @return 0 (or kOk) on success, otherwise a bit mask of error codes
202 */
203 UInt_t Process(const AliESDEvent* event,
204 UInt_t& triggers,
205 Bool_t& lowFlux,
0bd4b00f 206 UShort_t& ivz,
5ca83fee 207 TVector3& ip,
5bb5d1f6 208 Double_t& cent,
209 UShort_t& nClusters);
8565b10b 210 /**
211 * Define the output histograms. These are put in a sub list of the
212 * passed list. The histograms are merged before the parent task calls
213 * AliAnalysisTaskSE::Terminate
214 *
215 * @param dir Directory to add to
216 */
5934a3e3 217 void CreateOutputObjects(TList* dir);
8565b10b 218 /**
219 * Set the number of SPD tracklets for which we consider the event a
220 * low-flux event or not .
221 *
222 * @param c Cut (default 1000)
223 */
224 void SetLowFluxCut(Int_t c) { fLowFluxCut = c; }
225 /**
226 * Set the maximum error on @f$ v_z@f$
227 *
228 * @param c Maximum error (in centimeters)
229 */
230 void SetMaxVzErr(Double_t c=0.1) { fMaxVzErr = c; }
0ccdab7b 231 /**
232 * Set the vertex method to use
233 *
234 * @param t Method
235 */
236 void SetVertexMethod(EVtxType t) { fVtxMethod = t; }
e83d0620 237 /**
238 * Use the first physics vtx code.
239 *
240 * @param use Use it or not
0ccdab7b 241 * @deprecated Use SetVertexMethod
e83d0620 242 */
0ccdab7b 243 void SetUseFirstPhysicsVtx(Bool_t use) {
244 SetVertexMethod(use ? kPWGUD : kNormal); }
31554871 245 /**
246 * Use the first physics vtx code.
247 *
248 * @param use Use it or not
0ccdab7b 249 * @deprecated Use SetVertexMethod
31554871 250 */
0ccdab7b 251 void SetpA2012Vtx(Bool_t use) {
252 SetVertexMethod(use ? kpA2012 : kNormal); }
ffd35d33 253 /**
254 * Use the 2012 pA vtx code.
255 *
256 * @param use Use it or not
257 */
258
e6463868 259 void SetUseV0AndForNSD(Bool_t use=true) {fUseV0AND = use; }
260 /**
261 * Set the minimum number of contributors for a 2nd pile-up vertex
262 *
263 * @param nContrib Least number of contributors
264 */
265 void SetMinPileupContributors(UShort_t nContrib=3)
266 {
267 fMinPileupContrib = nContrib;
268 }
269 /**
270 * Set minimum distance from primary vertex to 2nd pile-up vertex
271 *
272 * @param cm Distance (in centimeters)
273 */
274 void SetMinPileupDistance(Double_t cm=0.8)
275 {
276 fMinPileupDistance = cm;
277 }
65abd48b 278 /**
279 * Enable selection of displaced vertices.
280 *
281 * @param use whether to use
0ccdab7b 282 * @deprecated Use SetVertexMethod
65abd48b 283 */
0ccdab7b 284 void SetUseDisplacedVertices(Bool_t use=true) {
285 SetVertexMethod(use ? kDisplaced : kNormal); }
286 Bool_t IsUseDisplacedVertices() const { return AllowDisplaced(); }
8449e3e0 287 /**
288 * Set the lower centrality cut - if negative, do not use
289 *
290 * @deprecated We should accept all events in the AOD pass
291 *
292 * @param mincent Lower cut on centrality
293 */
294 void SetMinCentrality(Double_t mincent=-1.0);
295 /**
296 * Set the upper centrality cut - if negative, do not use
297 *
298 * @deprecated We should accept all events in the AOD pass
299 *
c8b1a7db 300 * @param maxcent Upper cut on centrality
8449e3e0 301 */
302 void SetMaxCentrality(Double_t maxcent=-1.0);
5934a3e3 303 /**
304 * Set the centrality method to use. Possible values are
305 *
306 * - VOM - VZERO multiplicity
307 * - V0A - VZERO amplitude
308 * - V0C - VZERO charge
309 * - FMD - FMD scaled energy loss
310 * - TRK - Number of tracks
311 * - TKL - Number of tracks
312 * - CL0 -
313 * - CL1 -
314 * - CND -
315 * - NPA - Neutral particles
316 * - ZNA - ZDC neutron amplitude
317 * - V0MvsFMD - VZERO versus FMD
318 * - TKLvsVOM - Tracks versus VZERO
319 * - ZEMvsZDC - ZDC
320 *
321 * @param m
322 */
323 void SetCentralityMethod(const TString& m) { fCentMethod = m; }
8449e3e0 324 /**
325 * Set the centrality method
326 *
327 * @param m Method identifier
328 */
5934a3e3 329 void SetCentralityMethod(ECentMethod m);
e5c41d3e 330 /**
331 * Pile-up flags. A bit mask of EPileupType
332 * - 0x1 Check for number of vertices from SPD
333 * - 0x2 Check for number of vertices from tracks
334 * - 0x4 Check out-of-bunch pile-up
335 *
336 * @param flags A bit mask of EPileupType
337 */
338 void SetPileupFlags(UShort_t flags=0x5) { fPileupFlags = flags; }
8565b10b 339 /**
340 * Set the debug level. The higher the value the more output
341 *
342 * @param dbg Debug level
343 */
344 void SetDebug(Int_t dbg=1) { fDebug = dbg; }
e65b8b56 345 /**
346 * Set whether this is MC or not. Needed by energy loss fitter task
347 * that never instantices AliFMDMCEventInspector. In particular, we
348 * need this to make sure we ignore the FAST partition flag in MC
349 * for 2.76TeV pp.
350 *
351 * @param isMC If true, assume MC input
352 */
353 void SetMC(Bool_t isMC=true) { fMC = isMC; }
245166a7 354 Bool_t IsMC() const { return fMC; }
8565b10b 355 /**
356 * Fetch our histograms from the passed list
357 *
358 * @param d Input
359 * @param hEventsTr On return, pointer to histogram, or null
360 * @param hEventsTrVtx On return, pointer to histogram, or null
5ca83fee 361 * @param hEventsAcc On return, pointer to histogram, or null
8565b10b 362 * @param hTriggers On return, pointer to histogram, or null
363 *
364 * @return true on success, false otherwise
365 */
fb3430ac 366 Bool_t FetchHistograms(const TList* d,
8565b10b 367 TH1I*& hEventsTr,
368 TH1I*& hEventsTrVtx,
5ca83fee 369 TH1I*& hEventsAcc,
8565b10b 370 TH1I*& hTriggers) const;
0bd4b00f 371 /**
372 * Read the collision system, collision energy, and L3 field setting
373 * from the ESD
374 *
375 * @param esd ESD to get information from
376 *
377 * @return true on success, false
378 */
379 Bool_t ReadRunDetails(const AliESDEvent* esd);
380 /**
381 * Get the collision system (one of the value in ECollisionSystem)
382 *
383 * @return Collision system
384 */
385 UShort_t GetCollisionSystem() const { return fCollisionSystem; }
386 /**
387 * Get the center of mass energy (per nucleon pair) in GeV
388 *
389 * @return center of mass energy (per nucleon pair) in GeV
390 */
391 UShort_t GetEnergy() const { return fEnergy; }
392 /**
393 * Get the magnetic field setting of the L3 magnet in kilo Gauss.
394 *
395 * @return The magnetic field setting
396 */
397 Short_t GetField() const { return fField; }
8449e3e0 398 /**
399 * Get the current run number
400 *
401 * @return The current run number
402 */
403 ULong_t GetRunNumber() const { return fRunNumber; }
0b7de667 404 /**
405 * Get the production year.
406 *
407 * - For real data, this is the year of the data taking
408 * - For MC this is the year the production is anchored to.
409 *
410 * @return A two-digit year (post millennium), or -1
411 */
412 Short_t GetProductionYear() const { return fProdYear; }
413 /**
414 * Get the production period.
415 *
416 * - For real data, this is the period identifier of the data taking
417 * - For MC data, this is the period identifier the production was
418 * anchored to
419 *
420 * @return Period identifier or null
421 */
422 Char_t GetProductionPeriod() const { return fProdLetter; }
423 /**
424 * Get the AliROOT revision used for this production
425 *
426 * @return SVN revision number or -1
427 */
428 Short_t GetProductionRevision() const { return fProdSVN; }
429 /**
430 * Check if the production was an MC production anchored in some
431 * real data.
432 *
433 * @return true if this (MC) production was anchored
434 */
435 Bool_t IsProductionMC() const { return fProdMC; }
436
0bd4b00f 437 /**
438 * Print information
439 *
440 * @param option Not used
441 */
8449e3e0 442 void Print(Option_t* option="") const;
4f9319f3 443 // getter for fmincentrality
8449e3e0 444 // Double_t GetMinCentrality() const { return fMinCent;}
4f9319f3 445 // gettter for fmaxcentrality
8449e3e0 446 // Double_t GetMaxCentrality() const { return fMaxCent;}
f7cfc454 447 /**
448 * Store information about running conditions in output list
449 *
450 * 3 TNamed objects are defined. The names are fixed, but the
451 * title is a string representation of the information, and the
452 * unique ID contains the identifier
453 *
454 * - sys Contains the collision system string and identifier.
455 * - sNN Contains the center-of-mass energy per nucleon (GeV)
456 * - field Contains the L3 magnetic field (kG)
9b2f2e39 457 * - run Contains the run number
f7cfc454 458 *
459 */
8449e3e0 460 virtual void StoreInformation();
c8b1a7db 461 /**
462 * Store - if possible - production information in a sub-list
463 *
464 */
465 virtual void StoreProduction();
241cca4d 466 /**
467 * Return a string representing the return code
468 *
469 * @param mask Code
470 *
471 * @return String representation
472 */
473 static const char* CodeString(UInt_t mask);
8565b10b 474protected:
0b7de667 475 /**
476 * Copy constructor - not implemented
477 *
478 * @param o Object to copy from
479 */
ee83b849 480 AliFMDEventInspector(const AliFMDEventInspector& o){;}
0b7de667 481 /**
482 * Assignement operator - not implemented
483 *
484 * @param o Object to assign from
485 *
486 * @return Reference to this object
487 */
ee83b849 488 AliFMDEventInspector& operator=(const AliFMDEventInspector& o){return *this;}
0ccdab7b 489 Bool_t AllowDisplaced() const { return fVtxMethod == kDisplaced; }
241cca4d 490 /**
491 * Cache the configure trigger classes from the physis selection.
492 *
493 * @param cache where to cache the trigger class.
494 * @param classes List of configured classes.
495 * @param o Object from OADB with config
496 */
497 void CacheConfiguredTriggerClasses(TList& cache,
498 const TList* classes,
499 AliOADBPhysicsSelection* o);
8565b10b 500 /**
501 * Read the trigger information from the ESD event
502 *
503 * @param esd ESD event
504 * @param triggers On return, contains the trigger bits
5bb5d1f6 505 * @param nClusters On return, number of SPD clusters in @f$ |\eta|<1@f$
8565b10b 506 *
507 * @return @c true on success, @c false otherwise
508 */
241cca4d 509 Bool_t ReadTriggers(const AliESDEvent& esd, UInt_t& triggers,
5bb5d1f6 510 UShort_t& nClusters);
8449e3e0 511 /**
512 * Possible extra check for p-Pb from 2012/13 - require V0AND.
513 *
514 * @param esd Event structure
515 *
516 * @return true on success
517 */
da70cd6a 518 Bool_t CheckpAExtraV0(const AliESDEvent& esd) const;
241cca4d 519 /**
520 * Check, for the @f$\sqrt{s}=2.76GeV@f$ pp run wether this event
521 * was in the fast partition, and if so, filter it out.
522 *
523 * @param fastonly Event was in fast-only partition
524 *
525 * @return true if event was in the fast-only partition, for the run
526 * period.
527 */
528 virtual Bool_t CheckFastPartition(bool fastonly) const;
529 /**
530 * Check if we have an NSD trigger for pp runs
531 *
532 * @param esd Data
533 * @param triggers Trigger mask to be filled
534 *
535 * @return true if we have an NSD trigger
536 */
537 virtual Bool_t CheckNSD(const AliESDEvent& esd, UInt_t& triggers) const;
538 /**
539 * Check if we have an INEL&gt;0 trigger
540 *
541 * @param esd Data
542 * @param nClusters On return, number of clusters
543 * @param triggers Trigger mask to be filled
544 *
545 * @return true if we have an INEL&gt;0 trigger
546 */
547 virtual Bool_t CheckINELGT0(const AliESDEvent& esd, UShort_t& nClusters,
548 UInt_t& triggers) const;
549 /**
550 * Check if this is a pile-up event
551 *
552 * @param esd Data
553 * @param triggers Trigger mask to be filled
554 *
555 * @return true if this is a pile-up event
556 */
557 virtual Bool_t CheckPileup(const AliESDEvent& esd, UInt_t& triggers) const;
dd556bcd 558 /**
559 * Check for multi-vertex pile-up
560 *
561 * @param esd ESD event
c8b1a7db 562 * @param checkOtherBC Also check other BC's
dd556bcd 563 *
564 * @return true if multiple vertices found
565 */
c8b1a7db 566 virtual Bool_t CheckMultiVertex(const AliESDEvent& esd,
567 Bool_t checkOtherBC=false) const;
241cca4d 568 /**
569 * Check if we have a cosmic trigger. These should be filtered out.
570 *
571 * @param trigStri Trigger string
572 *
573 * @return true if we have a cosmic trigger
574 */
575 virtual Bool_t CheckCosmics(const TString& trigStri) const;
576 /**
577 * Check if the trigger string corresponds to an empty event
578 *
579 * @param trigStr Trigger string
580 * @param triggers Trigger mask to be filled
581 *
582 * @return true if the trigger string corresponds to an empty event
583 */
584 virtual Bool_t CheckEmpty(const TString& trigStr, UInt_t& triggers) const;
585 /**
586 * Check the trigger words to see if we have a B, A, C, or E event.
587 *
588 * @param esd Data
589 * @param triggers Trigger mask to be filled
590 *
591 * @return always true
592 */
593 virtual Bool_t CheckWords(const AliESDEvent& esd, UInt_t& triggers) const;
8565b10b 594 /**
595 * Read the vertex information from the ESD event
596 *
597 * @param esd ESD event
5ca83fee 598 * @param ip On return, the coordinates of the IP
8565b10b 599 *
600 * @return @c true on success, @c false otherwise
601 */
5ca83fee 602 Bool_t ReadVertex(const AliESDEvent& esd, TVector3& ip);
241cca4d 603 /**
604 * Check the vertex using the method used in PWG-UD. That is
605 *
606 * - Check we have a vertex and status is OK
607 * - Check if we have an SPD vertex and that it's status is OK
608 * - Check if the vertex is from the Z-vertexer, and if it is,
609 * - Check that the dispersion and resolution is OK
610 *
611 * @param esd Data
5ca83fee 612 * @param ip On return, the coordinates of the IP
241cca4d 613 *
8449e3e0 614 * @return status
241cca4d 615 */
8449e3e0 616 virtual EVtxStatus CheckPWGUDVertex(const AliESDEvent& esd,
617 TVector3& ip) const;
241cca4d 618 /**
619 * Check the vertex. That is
620 *
621 * - Check if we have an SPD vertex and that it's status is OK
622 * - Check that we have enough contributors
623 * - Check that the reslution is OK
624 *
625 * @param esd Data
5ca83fee 626 * @param ip On return, the coordinates of the IP
241cca4d 627 *
8449e3e0 628 * @return status
241cca4d 629 */
8449e3e0 630 virtual EVtxStatus CheckpA2012Vertex(const AliESDEvent& esd,
0ccdab7b 631 TVector3& ip) const;
632 /**
633 * Check the vertex. That is
634 *
635 * - Check if we have an normal vertex and that it's status is OK
636 * - Check that we have enough contributors
637 * - Check if we have an SPD vertex
638 * - Check that we have enough contributors
639 * - If from Z-vertexer, check the resolution
640 * - Check that the two found vertices are within 0.5cm of each other
641 *
642 * @param esd Data
643 * @param ip On return, the coordinates of the IP
644 *
645 * @return status
646 */
647 virtual EVtxStatus CheckpA2013Vertex(const AliESDEvent& esd,
648 TVector3& ip) const;
ffd35d33 649 /**
650 * Check the vertex for pA 2012 settings. That is
651 *
652 *
653 * @param esd Data
654 * @param ip On return, the coordinates of the IP
655 *
656 * @return true if the vertex was found and met the requirements
657 */
8449e3e0 658 virtual EVtxStatus CheckVertex(const AliESDEvent& esd, TVector3& ip) const;
e1f47419 659 /**
660 * Read centrality from event
661 *
662 * @param esd Event
663 * @param cent On return, the centrality or negative if not found
ffca499d 664 * @param qual On return, centrality quality flag
e1f47419 665 *
666 * @return False on error, true otherwise
667 */
73b32206 668 virtual Bool_t ReadCentrality(const AliESDEvent& esd, Double_t& cent,
669 UShort_t& qual) const;
8565b10b 670
0b7de667 671 TH1I* fHEventsTr; //! Histogram of events w/trigger
672 TH1I* fHEventsTrVtx; //! Events w/trigger and vertex
673 TH1I* fHEventsAccepted; //! Events w/trigger and vertex in range
674 TH2D* fHEventsAcceptedXY; //! XY vtx with trigger and Z vertex in range
675 TH1I* fHTriggers; //! Triggers
676 TH2I* fHTriggerCorr; //! Correlation of triggers
677 TH1I* fHType; //! Type (low/high flux) of event
678 TH1I* fHWords; //! Trigger words
679 TH1F* fHCent; //! Centrality
680 TH2F* fHCentVsQual; //! Centrality vs quality
681 TH1I* fHStatus; //! Event processing status
682 TH1I* fHVtxStatus; //! Vertex processing status
683 TH1I* fHTrgStatus; //! Trigger processing status
e5c41d3e 684 TH1I* fHPileup; //! Pile-up status
0b7de667 685 Int_t fLowFluxCut; // Low flux cut
686 Double_t fMaxVzErr; // Maximum error on v_z
687 TList* fList; //! Histogram container
688 UShort_t fEnergy; // CMS energy (per nucleon pair) [GeV]
689 Short_t fField; // L3 magnetic field [kG]
690 UShort_t fCollisionSystem; // Collision system
691 Int_t fDebug; // Debug level
692 TAxis* fCentAxis; // Centrality axis used in histograms
693 TAxis fVtxAxis; // IP_z Axis
0ccdab7b 694 EVtxType fVtxMethod; // Vertex method to use
695 // Bool_t fUseFirstPhysicsVertex;//Use the vtx code from p+p first physics
0b7de667 696 Bool_t fUseV0AND; // Use the vtx code from p+p first physics
e5c41d3e 697 UShort_t fPileupFlags; // Which pileups to use
0b7de667 698 UShort_t fMinPileupContrib; // Min contributors to 2nd pile-up IP
699 Double_t fMinPileupDistance; // Min distance of 2nd pile-up IP
0ccdab7b 700 // Bool_t fUseDisplacedVertices; // Analyze displaced vertices?
65abd48b 701 AliDisplacedVertexSelection fDisplacedVertex; //Displaced vertex selector
0b7de667 702 TList fCollWords; //! Configured collision words
703 TList fBgWords; //! Configured background words
704 TString fCentMethod; // Centrality method
705 Double_t fMinCent; // min centrality
706 Double_t fMaxCent; // max centrailty
0ccdab7b 707 // Bool_t fUsepA2012Vertex; // flag to use pA2012 Veretx selection
0b7de667 708 ULong_t fRunNumber; // Current run number
709 Bool_t fMC; // Is this MC input
710 Short_t fProdYear; // Production year
711 Char_t fProdLetter; // Production letter
712 Short_t fProdPass; // Pass number
713 Int_t fProdSVN; // AliROOT revision used in production
714 Bool_t fProdMC; // True if anchor production
715
e5c41d3e 716 ClassDef(AliFMDEventInspector,14); // Inspect the event
8565b10b 717};
718
719#endif
720// Local Variables:
721// mode: C++
722// End:
723
724
725