]>
Commit | Line | Data |
---|---|---|
0145e89a | 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 core | |
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_RQ_OBJECT | |
23 | # include <RQ_OBJECT.h> | |
24 | #endif | |
25 | ||
26 | class AliMUONVStore; | |
27 | ||
28 | class AliMUONVTrackerData : public TNamed | |
29 | { | |
30 | RQ_OBJECT("AliMUONVTrackerData") | |
31 | ||
32 | public: | |
33 | ||
34 | AliMUONVTrackerData(const char* name="",const char* title="", Bool_t runnable=kTRUE); | |
35 | virtual ~AliMUONVTrackerData(); | |
36 | ||
37 | /// Add values for one full store | |
38 | virtual Bool_t Add(const AliMUONVStore& store) = 0; | |
39 | ||
9016a84e | 40 | /// Get the value for a given buspatch and given dimension |
0145e89a | 41 | virtual Double_t BusPatch(Int_t busPatchId, Int_t dim=0) const = 0; |
42 | ||
9016a84e | 43 | /// Get the value for a given chamber and given dimension |
0145e89a | 44 | virtual Double_t Chamber(Int_t chamberId, Int_t dim=0) const = 0; |
45 | ||
9016a84e | 46 | /// Get the value for a given channel and given dimension |
0145e89a | 47 | virtual Double_t Channel(Int_t detElemId, Int_t manuId, Int_t manuChannel, |
48 | Int_t dim=0) const = 0; | |
49 | ||
9016a84e | 50 | /// Reset the data |
0145e89a | 51 | virtual void Clear(Option_t* opt="") = 0; |
52 | ||
9016a84e | 53 | /// Get the number of times a given channel was hit |
0145e89a | 54 | virtual Double_t Count(Int_t detElemId, Int_t manuId, Int_t manuChannel) const = 0; |
55 | ||
9016a84e | 56 | /// Get the value for a given DE and given dimension |
0145e89a | 57 | virtual Double_t DetectionElement(Int_t detElemId, Int_t dim=0) const = 0; |
58 | ||
9016a84e | 59 | /// Get the name of a given dimension |
0145e89a | 60 | virtual TString DimensionName(Int_t dim) const = 0; |
61 | ||
9016a84e | 62 | /// Whether we have data for a given buspath |
0145e89a | 63 | virtual Bool_t HasBusPatch(Int_t busPatchId) const = 0; |
64 | ||
9016a84e | 65 | /// Whether we have data for a given chamber |
0145e89a | 66 | virtual Bool_t HasChamber(Int_t chamberId) const = 0; |
67 | ||
9016a84e | 68 | /// Whether we have data for a given detection element |
0145e89a | 69 | virtual Bool_t HasDetectionElement(Int_t detElemId) const = 0; |
70 | ||
9016a84e | 71 | /// Whether we have data for a given manu |
0145e89a | 72 | virtual Bool_t HasManu(Int_t detElemId, Int_t manuId) const = 0; |
73 | ||
9016a84e | 74 | /// Whether we have data for a given PCB |
0145e89a | 75 | virtual Bool_t HasPCB(Int_t detElemId, Int_t pcbIndex) const = 0; |
76 | ||
9016a84e | 77 | /// Whether we are runnable (e.g. can handle several events) |
0145e89a | 78 | virtual Bool_t IsRunnable() const = 0; |
79 | ||
9016a84e | 80 | /// Get the value for a given manu and given dimension |
0145e89a | 81 | virtual Double_t Manu(Int_t detElemId, Int_t manuId, Int_t dim=0) const = 0; |
82 | ||
9016a84e | 83 | /// The number of dimensions we are handling |
0145e89a | 84 | virtual Int_t NumberOfDimensions() const = 0; |
85 | ||
9016a84e | 86 | /// The number of events we've seen so far |
0145e89a | 87 | virtual Int_t NumberOfEvents() const = 0; |
88 | ||
9016a84e | 89 | /// Signal to indicate that the number of events changed |
0145e89a | 90 | virtual void NumberOfEventsChanged(); // *SIGNAL* |
91 | ||
9016a84e | 92 | /// Get our name |
0145e89a | 93 | const char* Name() const { return GetName(); } |
94 | ||
9016a84e | 95 | /// Get the value for a given PCDB and given dimension |
0145e89a | 96 | virtual Double_t PCB(Int_t detElemId, Int_t pcbIndex, Int_t dim=0) const = 0; |
97 | ||
98 | /// Print all objects whose name matches wildcard | |
99 | virtual void Print(Option_t* wildcard="") const; | |
100 | ||
101 | /// Print, with option, all objects whose name matches wildcard | |
102 | virtual void Print(Option_t* wildcard, Option_t* opt) const = 0; | |
103 | ||
9016a84e | 104 | /// Set the name of a given dimension |
0145e89a | 105 | virtual void SetDimensionName(Int_t index, const char* value) = 0; |
106 | ||
107 | private: | |
108 | /// not implemented | |
109 | AliMUONVTrackerData(const AliMUONVTrackerData& rhs); | |
110 | /// not implemented | |
111 | AliMUONVTrackerData& operator=(const AliMUONVTrackerData& rhs); | |
112 | ||
113 | ClassDef(AliMUONVTrackerData,1) // Base class of MUON data that can be represented graphically | |
114 | }; | |
115 | ||
116 | #endif |