]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/AliDisplacedVertexSelection.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliDisplacedVertexSelection.h
CommitLineData
33438b4c 1/**
2 * @file AliDisplacedVertexSelection.h
3 * @author Christian Holm Christensen <cholm@master.hehi.nbi.dk>
4 * @date Thu Feb 7 00:53:03 2013
5 *
6 * @brief Selection of events from satellite interactions
7 *
8 * @ingroup pwglf_forward_aod
9 *
10 */
65abd48b 11#ifndef ALIDISPLACEDVERTEXSELECTION_H
12#define ALIDISPLACEDVERTEXSELECTION_H
13#include <TObject.h>
14class AliESDEvent;
bfab35d9 15class AliMCEvent;
16class TH1D;
17class TH2D;
18class TList;
290052e7 19
20/**
21 * Selection of events from satellite interactions
33438b4c 22 *
23 * @ingroup pwglf_forward_aod
290052e7 24 */
65abd48b 25class AliDisplacedVertexSelection : public TObject
26{
27public:
290052e7 28 /**
29 * Constructor
30 */
65abd48b 31 AliDisplacedVertexSelection();
290052e7 32 /**
33 * Copy constructor
34 *
35 * @param o Object to copy from
36 */
65abd48b 37 AliDisplacedVertexSelection(const AliDisplacedVertexSelection& o);
290052e7 38 /**
39 * Assingment operator
40 *
41 * @param o Object to assign from
42 *
43 * @return Reference to this object
44 */
65abd48b 45 AliDisplacedVertexSelection& operator=(const AliDisplacedVertexSelection& o);
290052e7 46 /**
47 * Define the output
48 *
49 * @param l List to add output to
50 * @param name Name of the list
bfab35d9 51 * @param mc True if we're looking at MC data
290052e7 52 */
bfab35d9 53 void SetupForData(TList* l, const char* name=0, Bool_t mc=false);
290052e7 54 /**
55 * Print information
56 *
57 * @param option Not used
58 */
65abd48b 59 void Print(Option_t* option="") const;
241cca4d 60 /**
61 * Process an ESD event to get the information
62 *
63 * @param esd ESD event
64 *
65 * @return true on success
66 */
67 Bool_t Process(const AliESDEvent* esd);
bfab35d9 68 /**
69 * Process an MC event to find true satellite vertex
70 *
71 * @param mcevent MC event
72 *
73 * @return true if found or not MC input, false in case of problems
74 */
75 Bool_t ProcessMC(const AliMCEvent* mcevent);
8449e3e0 76 /**
77 * Check if this event is marked as a satellite interaction
78 *
79 * @return true if the found vertex isn't invalid
80 */
81 Bool_t IsSatellite() const { return fVertexZ != kInvalidVtxZ; }
33438b4c 82 /**
83 * Get the interaction point Z-coordinate from ZDC timing.
84 *
85 *
86 * @return Interaction point Z-coordinate
87 */
241cca4d 88 Double_t GetVertexZ() const { return fVertexZ; }
33438b4c 89 /**
90 * Return the centrality percentile
91 *
92 *
93 * @return Centrality percentile (ZDC vs ZEM)
94 */
241cca4d 95 Double_t GetCentralityPercentile() const { return fCent; }
65abd48b 96protected:
bfab35d9 97 Bool_t CheckOutlier(Int_t ivtx, const AliESDEvent* esd) const;
98 Float_t GetZemCorr(Int_t k, Bool_t minusminus) const;
99
8449e3e0 100 enum {
101 kMaxK = 10,
102 kInvalidVtxZ = 9999
103 };
bfab35d9 104 TH1D* fDeltaTdc;
105 TH1D* fSumTdc;
106 TH1D* fZdcEnergy;
107 TH1D* fZemEnergy;
108 TH2D* fCorrelationZemZdc;
109 TH2D* fCorrelationSumDelta;
110 Double_t fVertexZ; // Interaction point Z-coordinate
111 Double_t fCent; // Centrality percentile
112 TH1D* fHVertexZ; // Histogram of vertices
113 TH1D* fHCent; // Histogram of centrality
114 Bool_t fMC; // MC flag
65abd48b 115
bfab35d9 116 ClassDef(AliDisplacedVertexSelection,4); // Satelitte collisions
65abd48b 117};
118
119#endif
120// Local Variables:
121// mode: C++
122// End: