2 #ifndef ALIFMDANARING_H
3 #define ALIFMDANARING_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
7 * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
9 * See cxx source for full Copyright notice
11 //____________________________________________________________________
13 // Utility class for analysing ESD data.
14 // This class does sharing and background correction.
15 // It can form a base class for other things too.
21 /** Base class for analysing FMD ESD data */
22 class AliFMDAnaRing : public TObject
30 @param bg Background - not owned
32 @param c1 higher cut */
33 AliFMDAnaRing(UShort_t det, Char_t ring, TH2* bg, Float_t c0, Float_t c1);
35 virtual ~AliFMDAnaRing() {}
36 /** Called at beginning of run */
37 virtual void Init() { fNEvents = 0; }
38 /** Called at beginning of event */
39 virtual void Begin() { fNEvents++; }
41 @param phi Azimuthal angle @f$ \varphi @f$ of the hit (radians)
42 @param eta Psuedo-rapidity @f$ \eta@f$ of hit
43 @param m1 Multiplicity of this strip
44 @param m2 Multiplicity of neighbor strip
45 @return @c true if hits are merged */
46 virtual Bool_t ProcessESD(Float_t phi, Float_t eta, Float_t& m1, Float_t m2);
47 /** User defined member function.
48 @param phi Azimuthal angle @f$ \varphi @f$ of the hit (radians)
49 @param eta Psuedo-rapidity @f$ \eta@f$ of hit
50 @param mult Corrected multiplicity */
51 virtual void Fill(Float_t phi, Float_t eta, Float_t mult) = 0;
52 /** Called at end of event */
54 /** Called at end of run */
55 virtual void Finish();
56 /** Get the detector identifier
57 @return Detector identifier */
58 UShort_t Detector() const { return fDet; }
59 /** Get the ring identifier
60 @return Ring identifier */
61 Char_t Ring() const { return fRing; }
62 /** Get the number of seqments */
63 UShort_t NSeq() const { return fNSeq; }
65 @return static string */
66 const Char_t* Name() const { return fName; }
67 /** Get the ring color
70 /** Browse this object */
71 virtual void Browse(TBrowser* b);
72 /** This is a folder */
73 virtual Bool_t IsFolder() const { return kTRUE; }
75 /** Hidden copy constructor */
76 AliFMDAnaRing(const AliFMDAnaRing&);
77 /** Hidden Assignement operator */
78 AliFMDAnaRing& operator=(const AliFMDAnaRing&);
79 /** Detector number */
80 UShort_t fDet; // Detector number
81 /** Ring identifier */
82 Char_t fRing; // Ring identifier
84 Char_t fName[6]; // Name
85 /** Background correction */
86 TH2* fBg; // Background correction
88 Float_t fCut0; // Lower cut
90 Float_t fCut1; // Higher cut
91 /** Whether to use bacground correction */
92 Bool_t fUseBgCor; // Whether to use bacground correction
94 Int_t fNSeq; // # of segments
95 /** Histogram of multiplicity before any cuts */
96 TH2D fBareMult; // Bare multiplicity
97 /** Histogram of multiplicity after merging */
98 TH2D fMergedMult; // Multiplicity after merging shared hits
99 /** Histogram of removed multiplicity */
100 TH2D fRemovedMult;// Merged hits
101 /** Histogram of background corrected */
102 TH2D fMult; // The multiplicity
103 /** Step histogram 1 */
104 TH2D fStep1; // Diagnostics step 1
105 /** Step histogram 1 */
106 TH2D fStep2; // Diagnostics step 2
107 /** Step histogram 1 */
108 TH2D fStep3; // Diagnostics step 3
111 Int_t fNEvents; // Event counter
112 ClassDef(AliFMDAnaRing,1) // Analysis of ESD in a ring