Moving 4 classes from MUONcore in MUONgraphics
[u/mrichter/AliRoot.git] / MUON / AliMUONVTrackerData.h
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 graphics
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
40   /// Get the value for a given buspatch and given dimension
41   virtual Double_t BusPatch(Int_t busPatchId, Int_t dim=0) const = 0;
42   
43   /// Get the value for a given chamber and given dimension
44   virtual Double_t Chamber(Int_t chamberId, Int_t dim=0) const = 0;
45   
46   /// Get the value for a given channel and given dimension
47   virtual Double_t Channel(Int_t detElemId, Int_t manuId, Int_t manuChannel,
48                            Int_t dim=0) const = 0;
49   
50   /// Reset the data
51   virtual void Clear(Option_t* opt="") = 0;
52   
53   /// Get the number of times a given channel was hit
54   virtual Double_t Count(Int_t detElemId, Int_t manuId, Int_t manuChannel) const = 0;
55
56   /// Get the value for a given DE and given dimension
57   virtual Double_t DetectionElement(Int_t detElemId, Int_t dim=0) const = 0;
58   
59   /// Get the name of a given dimension
60   virtual TString DimensionName(Int_t dim) const = 0;
61
62   /// Whether we have data for a given buspath
63   virtual Bool_t HasBusPatch(Int_t busPatchId) const = 0;
64
65   /// Whether we have data for a given chamber
66   virtual Bool_t HasChamber(Int_t chamberId) const = 0;
67   
68   /// Whether we have data for a given detection element
69   virtual Bool_t HasDetectionElement(Int_t detElemId) const = 0;
70   
71   /// Whether we have data for a given manu
72   virtual Bool_t HasManu(Int_t detElemId, Int_t manuId) const = 0;
73
74   /// Whether we have data for a given PCB
75   virtual Bool_t HasPCB(Int_t detElemId, Int_t pcbIndex) const = 0;
76   
77   /// Whether we are runnable (e.g. can handle several events)
78   virtual Bool_t IsRunnable() const = 0;
79   
80   /// Get the value for a given manu and given dimension
81   virtual Double_t Manu(Int_t detElemId, Int_t manuId, Int_t dim=0) const = 0;
82   
83   /// The number of dimensions we are handling
84   virtual Int_t NumberOfDimensions() const = 0;
85
86   /// The number of events we've seen so far
87   virtual Int_t NumberOfEvents() const = 0;
88
89   /// Signal to indicate that the number of events changed
90   virtual void NumberOfEventsChanged(); // *SIGNAL*
91   
92   /// Get our name
93   const char* Name() const { return GetName(); }
94   
95   /// Get the value for a given PCDB and given dimension
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
104   /// Set the name of a given dimension
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