First big commit of the mchview program and its accompanying library,
[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 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
40   virtual Double_t BusPatch(Int_t busPatchId, Int_t dim=0) const = 0;
41   
42   virtual Double_t Chamber(Int_t chamberId, Int_t dim=0) const = 0;
43   
44   virtual Double_t Channel(Int_t detElemId, Int_t manuId, Int_t manuChannel,
45                            Int_t dim=0) const = 0;
46   
47   virtual void Clear(Option_t* opt="") = 0;
48   
49   virtual Double_t Count(Int_t detElemId, Int_t manuId, Int_t manuChannel) const = 0;
50
51   virtual Double_t DetectionElement(Int_t detElemId, Int_t dim=0) const = 0;
52   
53   virtual TString DimensionName(Int_t dim) const = 0;
54
55   virtual Bool_t HasBusPatch(Int_t busPatchId) const = 0;
56
57   virtual Bool_t HasChamber(Int_t chamberId) const = 0;
58   
59   virtual Bool_t HasDetectionElement(Int_t detElemId) const = 0;
60   
61   virtual Bool_t HasManu(Int_t detElemId, Int_t manuId) const = 0;
62
63   virtual Bool_t HasPCB(Int_t detElemId, Int_t pcbIndex) const = 0;
64   
65   virtual Bool_t IsRunnable() const = 0;
66   
67   virtual Double_t Manu(Int_t detElemId, Int_t manuId, Int_t dim=0) const = 0;
68   
69   virtual Int_t NumberOfDimensions() const = 0;
70
71   virtual Int_t NumberOfEvents() const = 0;
72
73   virtual void NumberOfEventsChanged(); // *SIGNAL*
74   
75   const char* Name() const { return GetName(); }
76   
77   virtual Double_t PCB(Int_t detElemId, Int_t pcbIndex, Int_t dim=0) const = 0;
78   
79   /// Print all objects whose name matches wildcard
80   virtual void Print(Option_t* wildcard="") const;
81   
82   /// Print, with option, all objects whose name matches wildcard
83   virtual void Print(Option_t* wildcard, Option_t* opt) const = 0;
84
85   virtual void SetDimensionName(Int_t index, const char* value) = 0;
86   
87 private:
88   /// not implemented
89   AliMUONVTrackerData(const AliMUONVTrackerData& rhs);
90   /// not implemented
91   AliMUONVTrackerData& operator=(const AliMUONVTrackerData& rhs);
92   
93   ClassDef(AliMUONVTrackerData,1) // Base class of MUON data that can be represented graphically
94 };
95
96 #endif