]> git.uio.no Git - u/mrichter/AliRoot.git/blame - FMD/AliFMDPattern.h
Adding the new AliRawReaderChain to the Create() mactory method. The URI syntax is...
[u/mrichter/AliRoot.git] / FMD / AliFMDPattern.h
CommitLineData
a9579262 1#ifndef AliFMDPATTERN_H
2#define AliFMDPATTERN_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4 * reserved.
5 *
6 * See cxx source for full Copyright notice
7 */
8/** @file AliFMDPattern.h
9 @author Christian Holm Christensen <cholm@nbi.dk>
10 @date Mon Mar 27 12:39:09 2006
11 @brief FMD Event display (as patterns)
12*/
13//___________________________________________________________________
14//
15// The classes defined here, are utility classes for reading in data
16// for the FMD. They are put in a seperate library to not polute the
17// normal libraries. The classes are intended to be used as base
18// classes for customized class that do some sort of analysis on the
19// various types of data produced by the FMD.
20//
21#include "AliFMDDisplay.h"
a1e17193 22#include <TArrayI.h>
a9579262 23#include <TObjArray.h>
f95a63c4 24// #include <TGraph.h>
a9579262 25#include <TLatex.h>
26#include <TLine.h>
27class TCanvas;
28class TPad;
29class TH2;
30
31
32//___________________________________________________________________
33/** @class AliFMDPattern
34 @brief Utility class to visualize FMD data in 2D.
35 @ingroup FMD_util
36 */
37class AliFMDPattern : public AliFMDDisplay
38{
39public:
f95a63c4 40 /** @class AliFMDPatternDetector
41 @brief Utility for the pattern display.
42 The name is this long, because the code-checker even cares about
43 nested names, even though it seems a bit nit-picking and
44 retareded. It's a class rather than a structure, because the
45 code checker thinks that structs are only for POD - sigh! */
46 class AliFMDPatternDetector
a9579262 47 {
f95a63c4 48 public:
49 /** Constructor */
50 AliFMDPatternDetector(UShort_t id);
51 /** Destructor */
52 ~AliFMDPatternDetector();
53 /** Clear this detector */
a9579262 54 void Clear();
f95a63c4 55 /** Get the total number of hits */
a9579262 56 Int_t Total() const { return Int_t(fCounts.GetSum()); }
f95a63c4 57 /** Called at the end of things */
a9579262 58 void End();
f95a63c4 59 /** Initiate.
60 @param nlvl Number of levels.
61 @param r Radius
62 @param inners Array of inner shapes
63 @param outers Array of outer shapes */
64 void Begin(Int_t nlvl, Double_t r, TObjArray& inners,
65 TObjArray& outers);
66 /** Draw everything
67 @param a Array of shapes to draw */
a9579262 68 void DrawShape(TObjArray& a);
f95a63c4 69 /** Add a marker at specified coordinates
70 @param X X coordinate
71 @param Y Y coordinate
72 @param Z Z coordinate
73 @param max The maximum value to scale to */
a9579262 74 void AddMarker(Double_t x, Double_t y, Float_t s, Float_t max);
f95a63c4 75 Int_t fId; // Identifier #
76 TArrayI fCounts; // Number of counts at each level
77 TObjArray fGraphs; // Array of graphs - one for each level
78 TH2* fFrame; // The mother frame
79 private:
80 /** Copy constructor
81 - Not implemented. */
2b893216 82 AliFMDPatternDetector(const AliFMDPatternDetector&);
f95a63c4 83 /** Assignement operator
84 -- Not implemented */
85 AliFMDPatternDetector& operator=(const AliFMDPatternDetector&);
86
a9579262 87 };
88
89
90 /** Constructor
91 @param gAliceFile galice file*/
92 AliFMDPattern(const char* gAliceFile="galice.root");
93 /** DTOR */
94 virtual ~AliFMDPattern();
95
96 /** Initialize
97 @return @c false on error */
98 virtual Bool_t Init();
99 /** Called at beginning of an event
100 @param event Event number
101 @return @c false on error */
102 virtual Bool_t Begin(Int_t event);
103 protected:
f95a63c4 104 /** Copy constructor
105 - Not implemented. */
106 AliFMDPattern(const AliFMDPattern&);
107 /** Assignement operator
108 -- Not implemented */
109 AliFMDPattern& operator=(const AliFMDPattern&);
d98fbfa5 110 virtual void AddMarker(Float_t x, Float_t y, Float_t z,
111 TObject* o, Float_t s, Float_t min, Float_t max)
112 {
113 AliFMDDisplay::AddMarker(x, y, z, o, s, min, max);
114 }
a9579262 115 /** Add a marker to the display
116 @param det Detector
117 @param rng Ring
118 @param sec Sector
119 @param str Strip
120 @param o Object to refer to
121 @param s Signal
122 @param max Maximum of signal */
f95a63c4 123 virtual void AddMarker(UShort_t det, Char_t rng, UShort_t sec,
d98fbfa5 124 UShort_t str, TObject* o, Float_t s,
125 Float_t min, Float_t max);
f95a63c4 126 /** @param hit Hit to process */
a9579262 127 virtual Bool_t ProcessHit(AliFMDHit* hit, TParticle*);
f95a63c4 128 /** Re-draw the patterns */
a9579262 129 virtual void Redisplay();
f95a63c4 130 /** Called at the end. */
a9579262 131 virtual void AtEnd();
132 /** Graph to show shape of inner sensor */
f95a63c4 133 TObjArray fInners; // Graph to show shape of inner sensor
a9579262 134 /** Graph to show shape of outer sensor */
f95a63c4 135 TObjArray fOuters; // Graph to show shape of outer sensor
a9579262 136 /** Max inner radius */
f95a63c4 137 Float_t fInnerMax; // Max inner radius
a9579262 138 /** Max outer radius */
f95a63c4 139 Float_t fOuterMax; // Max outer radius
a9579262 140 /** FMD1 Pad */
f95a63c4 141 TPad* fFMD1Pad; // FMD1 Pad
142 /** FMD1 Frame */
143 AliFMDPatternDetector fFMD1; // FMD1 Frame
a9579262 144 /** FMD2 Pad */
f95a63c4 145 TPad* fFMD2Pad; // FMD2 Pad
146 /** FMD2 Frame */
147 AliFMDPatternDetector fFMD2; // FMD2 Frame
a9579262 148 /** FMD3 Pad */
f95a63c4 149 TPad* fFMD3Pad; // FMD3 Pad
150 /** FMD3 Frame */
151 AliFMDPatternDetector fFMD3; // FMD3 Frame
a9579262 152 /** Summary pad */
f95a63c4 153 TPad* fSummary; // Summary pad
a9579262 154 /** Text fields */
f95a63c4 155 TLatex fEvent; // Text fields
156 TLatex fFMD1Sum; // Total in FMD1
157 TLatex fFMD2Sum; // Total in FMD1
158 TLatex fFMD3Sum; // Total in FMD1
159 TLine fLine; // Just a line
160 TLatex fTotal; // Total in FMD
a9579262 161
f95a63c4 162 ClassDef(AliFMDPattern,0) // Display FMD data as hit-patterns.
a9579262 163};
164
165
166#endif
167//____________________________________________________________________
168//
169// Local Variables:
170// mode: C++
171// End:
172//
173// EOF
174//