#include "AliCodeTimer.h"
#include "AliLog.h"
+#include "AliMUON2DMap.h"
+#include "AliMUONCalibParamND.h"
+#include "AliMUONPainterRegistry.h"
+#include "AliMpManuUID.h"
#include "AliMUONObjectPair.h"
#include "AliMUONPainterContour.h"
#include "AliMUONPainterGroup.h"
ClassImp(AliMUONVPainter)
///\endcond
+//_____________________________________________________________________________
+AliMUONVPainter::AliMUONVPainter(TRootIOCtor*) : TObject(),
+TQObject(),
+fHistogram(0x0),
+fName(""),
+fPathName(""),
+fType(""),
+fMother(0x0),
+fGroup(0x0),
+fContour(0x0),
+fPainterGroups(0x0),
+fChildren(0x0),
+fResponderGroup(0x0),
+fPlotterGroup(0x0),
+fBorderFactor(1.1),
+fPad(0x0),
+fAttributes(),
+fLineColor(1),
+fLineWidth(1),
+fIsValid(kTRUE)
+{
+ /// streamer ctor
+}
+
//_____________________________________________________________________________
AliMUONVPainter::AliMUONVPainter(const char* type)
: TObject(),
{
PaintOutline();
}
+
+ if ( IsExcluded() )
+ {
+ fContour->PaintArea(2);
+ fContour->PaintOutline(1,1);
+ }
}
//_____________________________________________________________________________
{
/// Default implementation (must be overriden)
AliError(Form("%s : implement me",GetName()));
+ return;
}
//_____________________________________________________________________________
// l->Clear();
l->Delete();
- if ( group )
+ TClassMenuItem* n(0x0);
+
+ l->Add(new TClassMenuItem(TClassMenuItem::kPopupUserFunction,p->IsA(),
+ "Include","Include",p,"",-1,kTRUE));
+ l->Add(new TClassMenuItem(TClassMenuItem::kPopupUserFunction,p->IsA(),
+ "Exclude","Exclude",p,"",-1,kTRUE));
+
+ if ( group )
{
Int_t dim = group->Data()->InternalToExternal(group->DataIndex());
if ( dim < group->Data()->ExternalDimension() )
if ( data && data->IsHistogrammed(dim) )
{
// Add histo drawing to the popup menu
- TClassMenuItem* n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,p->IsA(),
+ n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,p->IsA(),
"Draw histogram","DrawHistogram0",p,"",-1,kTRUE);
l->Add(n);
}
- for ( Int_t i = 0; i < data->ExternalDimension()*2; ++i )
+ Int_t nd = data->IsSingleEvent() ? data->ExternalDimension() : data->ExternalDimension()*2;
+
+ for ( Int_t i = 0; i < nd; ++i )
{
- TClassMenuItem* n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,p->IsA(),
- Form("Draw %s clone",data->DimensionName(i).Data()),
- Form("DrawInternalHistogramClone%d",i),p,"",-1,kTRUE);
+ n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,p->IsA(),
+ Form("Draw %s clone",data->DimensionName(i).Data()),
+ Form("DrawInternalHistogramClone%d",i),p,"",-1,kTRUE);
l->Add(n);
}
}
SetLine(group->Depth(),group->GetLineColor(),group->GetLineWidth());
}
+
+}
+
+//_____________________________________________________________________________
+void
+AliMUONVPainter::Include()
+{
+ /// Include this painter
+ AliInfo(GetName());
+
+ /// Update the global interactive read out configuration
+ WriteIROC(1);
+}
+
+//_____________________________________________________________________________
+void
+AliMUONVPainter::GetIROCManuList(TObjArray& manuList)
+{
+ /// Get the list of manus spanned by this painter AND by its dual
+
+ FillManuList(manuList);
+
+ // get our dual
+ AliMUONAttPainter att(Attributes());
+
+ att.Invert();
+
+ att.SetCathodeAndPlaneDisabled(kTRUE);
+
+ AliMUONVPainter* p = AliMUONVPainter::CreatePainter(ClassName(),att,ID0(),ID1());
+
+ if (p)
+ {
+ p->FillManuList(manuList);
+ }
+
+ delete p;
+}
+
+//_____________________________________________________________________________
+void
+AliMUONVPainter::WriteIROC(Double_t value)
+{
+ /// Update the interactive readout configuration
+
+ TObjArray manuList;
+ GetIROCManuList(manuList);
+
+ AliMpManuUID* muid;
+ TIter nextm(&manuList);
+ AliMUON2DMap store(true);
+
+ while ((muid=static_cast<AliMpManuUID*>(nextm())))
+ {
+ AliMUONVCalibParam* param = new AliMUONCalibParamND(1,64,
+ muid->DetElemId(),
+ muid->ManuId(),value);
+ store.Add(param);
+ }
+
+ InteractiveReadOutConfig()->Replace(store);
+}
+
+//_____________________________________________________________________________
+void
+AliMUONVPainter::Exclude()
+{
+ /// Exclude this painter
+ AliInfo(GetName());
+
+ /// Update the global interactive read out configuration
+ WriteIROC(0.0);
+}
+
+//_____________________________________________________________________________
+AliMUONVTrackerData*
+AliMUONVPainter::InteractiveReadOutConfig() const
+{
+ /// get the interactive readout config object
+ return AliMUONPainterRegistry::Instance()->InteractiveReadOutConfig();
}
//_____________________________________________________________________________