#ifndef ALIMUONATTPAINTER_H
# include "AliMUONAttPainter.h"
#endif
-#ifndef ROOT_RQ_OBJECT
-# include <RQ_OBJECT.h>
+#ifndef ROOT_TQObject
+# include <TQObject.h>
#endif
#ifndef ROOT_TString
# include "TString.h"
class AliMUONVTrackerData;
class AliMpArea;
class TCollection;
+class TH1;
class TList;
class TMap;
class TObjArray;
class TVirtualPad;
-class AliMUONVPainter : public TObject
+class AliMUONVPainter : public TObject, public TQObject
{
- RQ_OBJECT("AliMUONVPainter")
-
public:
+ AliMUONVPainter(TRootIOCtor*);
AliMUONVPainter(const char* type="");
AliMUONVPainter(const AliMUONVPainter& rhs);
AliMUONVPainter& operator=(const AliMUONVPainter& rhs);
/// Convert attributes so they are valid ones for us.
virtual AliMUONAttPainter Validate(const AliMUONAttPainter& attributes) const { return attributes; }
+ /// Get our attributes
const AliMUONAttPainter& Attributes() const { return fAttributes; }
virtual void ComputeDataRange(const AliMUONVTrackerData& data, Int_t dataIndex,
AliMUONVPainter* Detach() const;
+ /// Whether this painter can be detached from the current view.
+ virtual Bool_t CanBeDetached() const { return kTRUE; }
+
+ /// Whether we are valid or not
virtual Bool_t IsValid() const { return fIsValid; }
+ /// Mark us as not valid
void Invalidate() { fIsValid = kFALSE; }
Int_t Depth() const;
/// Return the contour representing the outline of this object
AliMUONPainterContour* Contour() const { return fContour; }
+ /// Get our name
virtual const char* GetName() const { return Name().Data(); }
+ /// Get our name
virtual TString Name() const { return fName; }
+ /// Get our path name (aka fullname)
virtual TString PathName() const { return fPathName; }
virtual TString ContourName() const;
AliMUONPainterGroup* Group(Int_t depth) const;
+ /// Whether we handle mouse motion or not
virtual Bool_t HandleMouseMotion() const { return kFALSE; }
Bool_t IsResponder() const;
virtual void PaintArea(const AliMUONVTrackerData& data, Int_t dataIndex,
Double_t min, Double_t max);
+ /// Get the pad in which we are plotted
TVirtualPad* Pad() const { return fPad; }
+ /// Get our line color
Int_t GetLineColor() const { return fLineColor; }
+ /// Get our line width
Int_t GetLineWidth() const { return fLineWidth; }
+ /// Set our line color
void SetLineColor(Int_t lineColor) { fLineColor = lineColor; }
+ /// Set our line width
void SetLineWidth(Int_t lineWidth) { fLineWidth = lineWidth; }
+ /// Set our name
void SetName(const char* name) { fName = name; }
+ /// Set our path name (aka fullname)
void SetPathName(const char* pathName) { fPathName = pathName; }
static AliMUONVPainter* CreatePainter(const char* className,
const AliMUONAttPainter& att,
Int_t id1, Int_t id2);
+ /// Get our first ID
Int_t ID0() const { return fID[0]; }
+ /// Get our second ID
Int_t ID1() const { return fID[1]; }
+ /// Set our IDs
void SetID(Int_t id0, Int_t id1) { fID[0] = id0; fID[1] = id1; }
virtual TString Describe(const AliMUONVTrackerData& data, Int_t dataIndex,
AliMUONVPainter* Master() const;
+ virtual void DrawHistogram(Double_t* values=0x0) const;
+
+ /// To avoid getting a popup asking for the parameter in the GUI...
+ void DrawHistogram0() const { DrawHistogram(0x0); }
+ /// To avoid getting a popup asking for the parameter in the GUI...
+ void DrawHistogramClone0() const { DrawHistogramClone(0x0); }
+
+ virtual void DrawHistogramClone(Double_t* values=0x0) const;
+
+ virtual void DrawInternalHistogram(Int_t dim) const;
+
+ virtual void DrawInternalHistogramClone(Int_t dim) const;
+
+ /// Append (i.e. don't have the right to clear the array !) our list of manus to manuList
+ virtual void FillManuList(TObjArray& manuList) const;
+
+ /// following kind of stupid lines (SL), because I don't know how to
+ /// pass parameters to TClassMenuItem for context menu (don't even
+ /// know if that's possible at all)
+ /// SL
+ void DrawInternalHistogramClone0() { DrawInternalHistogramClone(0); }
+ /// SL
+ void DrawInternalHistogramClone1() { DrawInternalHistogramClone(1); }
+ /// SL
+ void DrawInternalHistogramClone2() { DrawInternalHistogramClone(2); }
+ /// SL
+ void DrawInternalHistogramClone3() { DrawInternalHistogramClone(3); }
+ /// SL
+ void DrawInternalHistogramClone4() { DrawInternalHistogramClone(4); }
+ /// SL
+ void DrawInternalHistogramClone5() { DrawInternalHistogramClone(5); }
+ /// SL
+ void DrawInternalHistogramClone6() { DrawInternalHistogramClone(6); }
+ /// SL
+ void DrawInternalHistogramClone7() { DrawInternalHistogramClone(7); }
+ /// SL
+ void DrawInternalHistogramClone8() { DrawInternalHistogramClone(8); }
+ /// SL
+ void DrawInternalHistogramClone9() { DrawInternalHistogramClone(9); }
+
+ /// Whether or not the part of the detector represented by this painter should be included in readout.
+ virtual Bool_t IsIncluded() const = 0;
+
+ /// Whether or not the part of the detector represented by this painter should be excluded from readout.
+ Bool_t IsExcluded() const { return ! IsIncluded(); }
+
+ virtual void Include();
+
+ virtual void Exclude();
+
protected:
virtual TCollection* Children() const;
+
+ mutable TH1* fHistogram; //!< histogram
+
+ AliMUONVTrackerData* InteractiveReadOutConfig() const;
private:
-
+
void FlatList(TList& list);
AliMUONPainterGroup* CreateGroup(const char* type, Int_t depth);
AliMUONVPainter* GetPainter(Int_t px, Int_t py, Double_t& x, Double_t& y) const;
+ void WriteIROC(Double_t value);
+
+ void GetIROCManuList(TObjArray& manuList);
+
private:
TString fName; ///< our (short) name
Int_t fID[2]; ///< our ids
Bool_t fIsValid; ///< whether we were properly initialized
- ClassDef(AliMUONVPainter,1) // Base class of a graphical object for MUON spectrometer
+ ClassDef(AliMUONVPainter,3) // Base class of a graphical object for MUON spectrometer
};
#endif