]> git.uio.no Git - u/mrichter/AliRoot.git/blame - FMD/AliFMDAnaRing.h
This update includes the FMD detector algorithm classes.
[u/mrichter/AliRoot.git] / FMD / AliFMDAnaRing.h
CommitLineData
9b98d361 1// -*- mode: c++ -*-
2#ifndef ALIFMDANARING_H
3#define ALIFMDANARING_H
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
5 * reserved.
6 *
7 * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
8 *
9 * See cxx source for full Copyright notice
10 */
11//____________________________________________________________________
12//
13// Utility class for analysing ESD data.
6ce810fc 14// This class does sharing and background correction.
15// It can form a base class for other things too.
9b98d361 16//
17#include <TObject.h>
6ce810fc 18#include <TH2D.h>
9b98d361 19class TBrowser;
20
21/** Base class for analysing FMD ESD data */
22class AliFMDAnaRing : public TObject
23{
24public:
25 /** Constructor */
26 AliFMDAnaRing();
27 /** Constructor
28 @param det Detector
29 @param ring Ring
30 @param bg Background - not owned
31 @param c0 Lower cut
32 @param c1 higher cut */
33 AliFMDAnaRing(UShort_t det, Char_t ring, TH2* bg, Float_t c0, Float_t c1);
34 /** Destructor */
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++; }
40 /** Process ESD
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 */
53 virtual void End() {}
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; }
64 /** Get the name
65 @return static string */
66 const Char_t* Name() const { return fName; }
67 /** Get the ring color
68 @return color */
69 Int_t Color() const;
70 /** Browse this object */
71 virtual void Browse(TBrowser* b);
72 /** This is a folder */
73 virtual Bool_t IsFolder() const { return kTRUE; }
74protected:
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
83 /** Name */
84 Char_t fName[6]; // Name
85 /** Background correction */
6ce810fc 86 TH2* fBg; // Background correction
9b98d361 87 /** Lower cut */
88 Float_t fCut0; // Lower cut
89 /** Higher cut */
90 Float_t fCut1; // Higher cut
91 /** Whether to use bacground correction */
92 Bool_t fUseBgCor; // Whether to use bacground correction
93 /** # of segments */
94 Int_t fNSeq; // # of segments
95 /** Histogram of multiplicity before any cuts */
6ce810fc 96 TH2D fBareMult; // Bare multiplicity
9b98d361 97 /** Histogram of multiplicity after merging */
6ce810fc 98 TH2D fMergedMult; // Multiplicity after merging shared hits
9b98d361 99 /** Histogram of removed multiplicity */
6ce810fc 100 TH2D fRemovedMult;// Merged hits
9b98d361 101 /** Histogram of background corrected */
6ce810fc 102 TH2D fMult; // The multiplicity
103 /** Step histogram 1 */
104 TH2D fStep1; // Diagnostics step 1
9b98d361 105 /** Step histogram 1 */
6ce810fc 106 TH2D fStep2; // Diagnostics step 2
9b98d361 107 /** Step histogram 1 */
6ce810fc 108 TH2D fStep3; // Diagnostics step 3
9b98d361 109
110 /** Event counter */
6ce810fc 111 Int_t fNEvents; // Event counter
9b98d361 112 ClassDef(AliFMDAnaRing,1) // Analysis of ESD in a ring
113};
114
115
116#endif
117//
118// EOF
119//