1 #ifndef ALIMUONPAINTERDATAREGISTRY_H
2 #define ALIMUONPAINTERDATAREGISTRY_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 // $Id: AliMUONPainterDataRegistry.h 26812 2008-06-20 15:22:59Z laphecet $
10 /// \class AliMUONPainterDataRegistry
11 /// \brief Registry for painter data sources
13 // Author Laurent Aphecetche, Subatech
19 # include <TQObject.h>
23 class AliMUONVTrackerData;
24 class AliMUONVTrackerDataMaker;
26 class AliMUONPainterDataRegistry : public TObject, public TQObject
29 virtual ~AliMUONPainterDataRegistry();
31 AliMUONVTrackerDataMaker* DataMaker(Int_t i) const;
33 AliMUONVTrackerData* DataSource(Int_t i) const;
35 AliMUONVTrackerData* DataSource(const char* name) const;
37 AliMUONVTrackerData* InteractiveReadOutConfig() const;
39 void DataSourceWasRegistered(const AliMUONVTrackerData* data); // *SIGNAL*
41 void DataSourceWasUnregistered(const AliMUONVTrackerData* data); // *SIGNAL*
43 void DataMakerWasRegistered(const AliMUONVTrackerDataMaker* reader); // *SIGNAL*
45 void DataMakerWasUnregistered(const AliMUONVTrackerDataMaker* reader); // *SIGNAL*
47 static AliMUONPainterDataRegistry* Instance();
49 Int_t NumberOfDataMakers() const;
51 /// Number of data sources = data makers
52 Int_t NumberOfDataSources() const { return NumberOfDataMakers(); }
54 void Print(Option_t* opt) const;
56 void Register(AliMUONVTrackerDataMaker* reader);
58 Bool_t Unregister(AliMUONVTrackerDataMaker* reader);
64 AliMUONPainterDataRegistry();
66 AliMUONPainterDataRegistry(const AliMUONPainterDataRegistry&);
68 AliMUONPainterDataRegistry& operator=(const AliMUONPainterDataRegistry&);
70 void CreateInteractiveReadOutConfig() const;
73 static AliMUONPainterDataRegistry* fgInstance; ///< unique instance
74 TObjArray* fDataMakers; ///< data makers
75 TObjArray* fZombies; ///< data readers to be deleted
76 mutable AliMUONVTrackerData* fInteractiveReadOutConfig; ///< clickable readout configuration
78 ClassDef(AliMUONPainterDataRegistry,1) // Registry for AliMUONVTrackerDataMaker objects