X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONVPainter.cxx;h=13a4f7c4a7483826222fd919439f82041111341b;hb=2b8a1212be4437c2d70024924ff0fbd61eec6d46;hp=ab824c6ce2308396dfc474a01237e3deb5ece738;hpb=b89ac3d6105be7362f1376fdc34df2802a5c5e86;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONVPainter.cxx b/MUON/AliMUONVPainter.cxx index ab824c6ce23..13a4f7c4a74 100644 --- a/MUON/AliMUONVPainter.cxx +++ b/MUON/AliMUONVPainter.cxx @@ -17,14 +17,18 @@ #include "AliMUONVPainter.h" -#include "AliCodeTimer.h" #include "AliLog.h" +#include "AliMUON2DMap.h" +#include "AliMUONCalibParamND.h" +#include "AliMUONContour.h" +#include "AliMUONContourPainter.h" #include "AliMUONObjectPair.h" -#include "AliMUONPainterContour.h" #include "AliMUONPainterGroup.h" #include "AliMUONPainterHelper.h" +#include "AliMUONPainterDataRegistry.h" #include "AliMUONTrackerDataHistogrammer.h" #include "AliMUONVTrackerData.h" +#include "AliMpManuUID.h" #include #include #include @@ -92,6 +96,30 @@ 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(), @@ -538,7 +566,10 @@ AliMUONVPainter::GetBoundingBox(Double_t& x1, Double_t& y1, Double_t& x2, Double_t& y2) const { /// Get the bounding box = our area - AliMpArea area(Area().Position(),Area().Dimensions()*fBorderFactor); + AliMpArea area(Area().GetPositionX(), + Area().GetPositionY(), + Area().GetDimensionX()*fBorderFactor, + Area().GetDimensionY()*fBorderFactor); x1 = area.LeftBorder(); y1 = area.DownBorder(); @@ -719,6 +750,11 @@ AliMUONVPainter::Paint(Option_t*) { PaintOutline(); } + + if ( IsExcluded() ) + { + AliMUONContourPainter::Paint(*fContour,1,1,2); // red fill with black thin outline + } } //_____________________________________________________________________________ @@ -736,6 +772,7 @@ AliMUONVPainter::PaintArea(const AliMUONVTrackerData&, Int_t, Double_t, Double_t { /// Default implementation (must be overriden) AliError(Form("%s : implement me",GetName())); + return; } //_____________________________________________________________________________ @@ -747,7 +784,7 @@ AliMUONVPainter::PaintOutline(Int_t color, Int_t width, Double_t /*x*/, Double_t Int_t c = color >= 0 ? color : GetLineColor(); Int_t w = width >= 0 ? width : GetLineWidth(); - fContour->PaintOutline(c,w); + AliMUONContourPainter::Paint(*fContour,c,w); } //_____________________________________________________________________________ @@ -834,7 +871,7 @@ AliMUONVPainter::SetAttributes(const AliMUONAttPainter& attributes) //_____________________________________________________________________________ void -AliMUONVPainter::SetContour(AliMUONPainterContour* contour) +AliMUONVPainter::SetContour(AliMUONContour* contour) { /// Set out contour if (!contour) @@ -898,33 +935,42 @@ AliMUONVPainter::SetData(const char* pattern, AliMUONVTrackerData* data, { TList* l = p->IsA()->GetMenuList(); -// 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(), - "Draw histogram","DrawHistogram0",p,"",-1,kTRUE); - l->Add(n); - - n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,p->IsA(), - "Draw histogram clone","DrawHistogramClone0",p,"",-1,kTRUE); - l->Add(n); - } + if ( data && data->IsHistogrammed(0) ) + { + // Add histo drawing to the popup menu + TString name("Draw histogram of "); + name += data->ExternalDimensionName(0); + + n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,p->IsA(), + name.Data(),"DrawHistogram0",p,"",-1,kTRUE); + l->Add(n); + + name += " clone"; + + n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,p->IsA(), + name.Data(),"DrawHistogramClone0",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); } } @@ -1201,6 +1247,86 @@ AliMUONVPainter::UpdateGroupsFrom(const AliMUONVPainter& painter) 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(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 AliMUONPainterDataRegistry::Instance()->InteractiveReadOutConfig(); } //_____________________________________________________________________________ @@ -1264,3 +1390,9 @@ AliMUONVPainter::CreatePainter(const char* className, return rv; } +//_____________________________________________________________________________ +void +AliMUONVPainter::PaintArea(Int_t fillColor) +{ + AliMUONContourPainter::Paint(*(Contour()),-1,-1,fillColor); +}