1 #ifndef ALIMUONVTRACKERDATA_H
2 #define ALIMUONVTRACKERDATA_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
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.
14 // Author Laurent Aphecetche, Subatech
22 #ifndef ROOT_RQ_OBJECT
23 # include <RQ_OBJECT.h>
28 class AliMUONVTrackerData : public TNamed
30 RQ_OBJECT("AliMUONVTrackerData")
34 AliMUONVTrackerData(const char* name="",const char* title="", Bool_t runnable=kTRUE);
35 virtual ~AliMUONVTrackerData();
37 /// Add values for one full store
38 virtual Bool_t Add(const AliMUONVStore& store) = 0;
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;
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;
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;
51 virtual void Clear(Option_t* opt="") = 0;
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;
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;
59 /// Get the name of a given dimension
60 virtual TString DimensionName(Int_t dim) const = 0;
62 /// Whether we have data for a given buspath
63 virtual Bool_t HasBusPatch(Int_t busPatchId) const = 0;
65 /// Whether we have data for a given chamber
66 virtual Bool_t HasChamber(Int_t chamberId) const = 0;
68 /// Whether we have data for a given detection element
69 virtual Bool_t HasDetectionElement(Int_t detElemId) const = 0;
71 /// Whether we have data for a given manu
72 virtual Bool_t HasManu(Int_t detElemId, Int_t manuId) const = 0;
74 /// Whether we have data for a given PCB
75 virtual Bool_t HasPCB(Int_t detElemId, Int_t pcbIndex) const = 0;
77 /// Whether we are runnable (e.g. can handle several events)
78 virtual Bool_t IsRunnable() const = 0;
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;
83 /// The number of dimensions we are handling
84 virtual Int_t NumberOfDimensions() const = 0;
86 /// The number of events we've seen so far
87 virtual Int_t NumberOfEvents() const = 0;
89 /// Signal to indicate that the number of events changed
90 virtual void NumberOfEventsChanged(); // *SIGNAL*
93 const char* Name() const { return GetName(); }
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;
98 /// Print all objects whose name matches wildcard
99 virtual void Print(Option_t* wildcard="") const;
101 /// Print, with option, all objects whose name matches wildcard
102 virtual void Print(Option_t* wildcard, Option_t* opt) const = 0;
104 /// Set the name of a given dimension
105 virtual void SetDimensionName(Int_t index, const char* value) = 0;
109 AliMUONVTrackerData(const AliMUONVTrackerData& rhs);
111 AliMUONVTrackerData& operator=(const AliMUONVTrackerData& rhs);
113 ClassDef(AliMUONVTrackerData,1) // Base class of MUON data that can be represented graphically