]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUONVTrackerData.h
Bug fix for loading the LUT for chambers 1 to 6. (Indra)
[u/mrichter/AliRoot.git] / MUON / AliMUONVTrackerData.h
... / ...
CommitLineData
1#ifndef ALIMUONVTRACKERDATA_H
2#define ALIMUONVTRACKERDATA_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5* See cxx source for full Copyright notice */
6
7// $Id$
8
9/// \ingroup calib
10/// \class AliMUONVTrackerData
11/// \brief Base class for MUON data that can be presented at different levels
12/// in the hierarchy of the MUON system.
13///
14// Author Laurent Aphecetche, Subatech
15
16#ifndef ROOT_TNamed
17# include "TNamed.h"
18#endif
19#ifndef ROOT_TString
20# include "TString.h"
21#endif
22#ifndef ROOT_TQObject
23# include <TQObject.h>
24#endif
25
26class AliMUONSparseHisto;
27class AliMUONVStore;
28class TCollection;
29class TArrayI;
30
31class AliMUONVTrackerData : public TNamed, public TQObject
32{
33public:
34
35 AliMUONVTrackerData(const char* name="",const char* title="",
36 Bool_t issingleevent=kFALSE);
37 virtual ~AliMUONVTrackerData();
38
39 /// Add values for one event from one full store
40 virtual Bool_t Add(const AliMUONVStore& store, TArrayI* arrayOfNofEventsPerDDL=0x0) = 0;
41
42 /// Replace values
43 virtual Bool_t Replace(const AliMUONVStore& store) = 0;
44
45 /// Get the value for a given buspatch and given dimension
46 virtual Double_t BusPatch(Int_t busPatchId, Int_t dim=0) const = 0;
47
48 /// Get the value for a given chamber and given dimension
49 virtual Double_t Chamber(Int_t chamberId, Int_t dim=0) const = 0;
50
51 /// Get the value for a given channel and given dimension
52 virtual Double_t Channel(Int_t detElemId, Int_t manuId, Int_t manuChannel,
53 Int_t dim=0) const = 0;
54
55 /// Reset the data
56 virtual void Clear(Option_t* opt="") = 0;
57
58 /// Get the number of times a given channel was hit
59 virtual Double_t Count(Int_t detElemId, Int_t manuId, Int_t manuChannel) const = 0;
60
61 /// Get the value for a given DE and given dimension
62 virtual Double_t DetectionElement(Int_t detElemId, Int_t dim=0) const = 0;
63
64 /// Get the name of a given (internal) dimension
65 virtual TString DimensionName(Int_t dim) const = 0;
66
67 /// Get the name of a given (external) dimension
68 virtual TString ExternalDimensionName(Int_t dim) const = 0;
69
70 /// Whether we have data for a given buspath
71 virtual Bool_t HasBusPatch(Int_t busPatchId) const = 0;
72
73 /// Whether we have a given channel or not
74 virtual Bool_t HasChannel(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
75
76 /// Whether we have data for a given chamber
77 virtual Bool_t HasChamber(Int_t chamberId) const = 0;
78
79 /// Whether we have data for a given detection element
80 virtual Bool_t HasDetectionElement(Int_t detElemId) const = 0;
81
82 /// Whether we have data for a given manu
83 virtual Bool_t HasManu(Int_t detElemId, Int_t manuId) const = 0;
84
85 /// Whether we have data for a given PCB
86 virtual Bool_t HasPCB(Int_t detElemId, Int_t pcbIndex) const = 0;
87
88 /// Whether we deal with only one event at a time
89 virtual Bool_t IsSingleEvent() const = 0;
90
91 /// Get the value for a given manu and given dimension
92 virtual Double_t Manu(Int_t detElemId, Int_t manuId, Int_t dim=0) const = 0;
93
94 /// The number of dimensions we are handling
95 virtual Int_t NumberOfDimensions() const = 0;
96
97 /// Convert from internal to external dimension
98 virtual Int_t InternalToExternal(Int_t dim) const = 0;
99
100 /// The number of dimensions we are inputting
101 virtual Int_t ExternalDimension() const = 0;
102
103 /** The number of events we've seen so far in a given DDL (or any DDL if param<0)
104 ddlNumber is 0..19
105 */
106 virtual Int_t NumberOfEvents(Int_t ddlNumber) const = 0;
107
108 /// Signal to indicate that the number of events changed
109 virtual void NumberOfEventsChanged(); // *SIGNAL*
110
111 /// Get our name
112 const char* Name() const { return GetName(); }
113
114 /// Get the value for a given PCDB and given dimension
115 virtual Double_t PCB(Int_t detElemId, Int_t pcbIndex, Int_t dim=0) const = 0;
116
117 /// Print all objects whose name matches wildcard
118 virtual void Print(Option_t* wildcard="") const;
119
120 /// Print, with option, all objects whose name matches wildcard
121 virtual void Print(Option_t* wildcard, Option_t* opt) const = 0;
122
123 /// Set the name of a given dimension
124 virtual void SetDimensionName(Int_t index, const char* value) = 0;
125
126 /// Whether or not we can make histograms.
127 virtual Bool_t CanHistogram() const { return kFALSE; }
128
129 /// Select a dimension to be histogrammed (if CanHistogram==kTRUE) only
130 virtual void MakeHistogramForDimension(Int_t /* index */, Bool_t /* value */,
131 Double_t /*xmin*/=0.0, Double_t /*xmax*/=4096.0) { }
132
133 /// Get histogram range
134 virtual void HistogramRange(Double_t& xmin, Double_t& xmax) const { xmin=xmax=0.0; }
135
136 /// Whether we have histograms for a given dimension, or not
137 virtual Bool_t IsHistogrammed(Int_t /*dim*/) const { return kFALSE; }
138
139 /// Get sparse histogram for a given channel
140 virtual AliMUONSparseHisto* GetChannelSparseHisto(Int_t detElemId, Int_t manuId,
141 Int_t manuChannel, Int_t dim=0) const = 0;
142
143 /// Get sparse histogram for a given manu (valid only if IsChannelLevelEnabled()==kFALSE and IsManuLevelEnabled()==kTRUE)
144 virtual AliMUONSparseHisto* GetManuSparseHisto(Int_t detElemId, Int_t manuId,
145 Int_t dim=0) const = 0;
146
147 /// To allow merging of different objects
148 virtual Long64_t Merge(TCollection* list) = 0;
149
150 /// Disable recording of information at the channel level
151 virtual void DisableChannelLevel() = 0;
152
153 /// Whether we store values at the channel level
154 virtual Bool_t IsChannelLevelEnabled() const = 0;
155
156 /// Disable recording of information at the manu level (and below)
157 virtual void DisableManuLevel() = 0;
158
159 /// Whether we store values at the channel level
160 virtual Bool_t IsManuLevelEnabled() const = 0;
161
162private:
163 /// not implemented
164 AliMUONVTrackerData(const AliMUONVTrackerData& rhs);
165 /// not implemented
166 AliMUONVTrackerData& operator=(const AliMUONVTrackerData& rhs);
167
168 ClassDef(AliMUONVTrackerData,2) // Base class of MUON data that can be represented graphically
169};
170
171#endif