X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=MUON%2FAliMUONManuPadPainter.cxx;h=83abd835bf140140db7430d0d523d8c860bcd436;hb=664ef33ab279bf8810a405177d309946bfe5c452;hp=b0cd356c4a3540e194fc39224e5bb2cfad3b00da;hpb=6e97fbb8cd3f6c541db069b487f1fcac52398d32;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONManuPadPainter.cxx b/MUON/AliMUONManuPadPainter.cxx index b0cd356c4a3..83abd835bf1 100644 --- a/MUON/AliMUONManuPadPainter.cxx +++ b/MUON/AliMUONManuPadPainter.cxx @@ -20,7 +20,6 @@ #include "AliLog.h" #include "AliMUONPainterGroup.h" #include "AliMUONPainterHelper.h" -#include "AliMUONPainterPadStore.h" #include "AliMUONTrackerDataHistogrammer.h" #include "AliMUONVCalibParam.h" #include "AliMUONVDigit.h" @@ -28,7 +27,6 @@ #include "AliMpConnection.h" #include "AliMpConstants.h" #include "AliMpDDLStore.h" -#include "AliMpDetElement.h" #include "AliMpPad.h" #include "AliMpSegmentation.h" #include "AliMpVSegmentation.h" @@ -118,7 +116,7 @@ AliMUONManuPadPainter::ComputeDataRange(const AliMUONVTrackerData& data, Double_t& dataMin, Double_t& dataMax) const { /// Compute data range spanned by this manu pads - AliMpDetElement* de = AliMpDDLStore::Instance()->GetDetElement(fDetElemId); + const AliMpVSegmentation* seg = AliMpSegmentation::Instance()->GetMpSegmentationByElectronics(fDetElemId,fManuId); dataMin = FLT_MAX; dataMax = -FLT_MAX; @@ -126,7 +124,7 @@ AliMUONManuPadPainter::ComputeDataRange(const AliMUONVTrackerData& data, for ( Int_t manuChannel = 0; manuChannel < AliMpConstants::ManuNofChannels(); ++manuChannel ) { - if ( de->IsConnectedChannel(fManuId,manuChannel) ) + if ( seg->HasPadByLocation(fManuId,manuChannel) ) { Double_t value = data.Channel(fDetElemId, fManuId, manuChannel, dataIndex); dataMin = TMath::Min(value,dataMin); @@ -210,7 +208,8 @@ AliMUONManuPadPainter::DrawHistogramClone(Double_t* values) const AliMUONTrackerDataHistogrammer tdh(*data,0,-1); - fHistogram = tdh.CreateChannelHisto(fDetElemId, fManuId, pad.GetManuChannel()); + fHistogram = tdh.CreateChannelHisto(fDetElemId, fManuId,pad.GetManuChannel()); + if (fHistogram) { new TCanvas(); @@ -234,22 +233,17 @@ AliMUONManuPadPainter::PaintArea(const AliMUONVTrackerData& data, AliMUONPainterHelper* h = AliMUONPainterHelper::Instance(); BackupStyle(); - - Int_t cathode = h->GetCathodeType(fDetElemId,fManuId); - + gVirtualX->SetLineColor(-1); gVirtualX->SetFillStyle(1); + const AliMpVSegmentation* seg = AliMpSegmentation::Instance()->GetMpSegmentationByElectronics(fDetElemId,fManuId); + for ( Int_t i = 0; i < AliMpConstants::ManuNofChannels(); ++i ) { - Int_t id = AliMUONVDigit::BuildUniqueID(fDetElemId,fManuId,i,cathode); - - TVector2 position; - TVector2 dimensions; - - h->PadStore().GetPadGeometry(id,position,dimensions); + AliMpPad pad = seg->PadByLocation(fManuId,i,kFALSE); - if ( dimensions.X() > 0 ) + if ( pad.IsValid() ) { Double_t value = data.Channel(fDetElemId,fManuId,i,dataIndex); @@ -263,13 +257,11 @@ AliMUONManuPadPainter::PaintArea(const AliMUONVTrackerData& data, fDetElemId,fManuId,i,value,min,max, color)); } - + gVirtualX->SetFillColor(color); - TVector2 bl(position-dimensions); - TVector2 ur(position+dimensions); + PaintPad(pad); - gPad->PaintBox(bl.X(),bl.Y(),ur.X(),ur.Y()); } } @@ -278,22 +270,20 @@ AliMUONManuPadPainter::PaintArea(const AliMUONVTrackerData& data, //_____________________________________________________________________________ void -AliMUONManuPadPainter::PaintPad(Int_t padId) const +AliMUONManuPadPainter::PaintPad(const AliMpPad& pad) const { - /// Paint a single pad + Double_t blx = pad.GetPositionX()-pad.GetDimensionX(); + Double_t bly = pad.GetPositionY()-pad.GetDimensionY(); - TVector2 position; - TVector2 dimensions; - - AliMUONPainterHelper::Instance()->PadStore().GetPadGeometry(padId,position,dimensions); + Double_t urx = pad.GetPositionX()+pad.GetDimensionX(); + Double_t ury = pad.GetPositionY()+pad.GetDimensionY(); + + Double_t xe1,ye1,xe2,ye2,z; - if ( dimensions.X() > 0 ) - { - TVector2 bl(position-dimensions); - TVector2 ur(position+dimensions); + AliMUONPainterHelper::Instance()->Local2Global(fDetElemId,blx,bly,0,xe1,ye1,z); + AliMUONPainterHelper::Instance()->Local2Global(fDetElemId,urx,ury,0,xe2,ye2,z); - gPad->PaintBox(bl.X(),bl.Y(),ur.X(),ur.Y()); - } + gPad->PaintBox(xe1,ye1,xe2,ye2); } //_____________________________________________________________________________ @@ -306,16 +296,10 @@ AliMUONManuPadPainter::PaintOutline(Int_t color, Int_t, Double_t x, Double_t y) Int_t lineColor = color >= 0 ? color : GetLineColor(); - AliMUONPainterHelper* h = AliMUONPainterHelper::Instance(); - - AliDebug(1,Form("color=%d lineColor=%d x=%7.3f y=%7.3f",color,lineColor,x,y)); - if ( lineColor > 0 ) { BackupStyle(); - Int_t cathode = h->GetCathodeType(fDetElemId,fManuId); - gVirtualX->SetLineColor(lineColor); gVirtualX->SetFillStyle(0); @@ -324,17 +308,19 @@ AliMUONManuPadPainter::PaintOutline(Int_t color, Int_t, Double_t x, Double_t y) // find pad to be drawn AliMpPad pad = PadByPosition(x,y); - Int_t id = AliMUONVDigit::BuildUniqueID(fDetElemId,fManuId,pad.GetManuChannel(),cathode); - - PaintPad(id); + PaintPad(pad); } else { + const AliMpVSegmentation* seg = AliMpSegmentation::Instance()->GetMpSegmentationByElectronics(fDetElemId,fManuId); + for ( Int_t i = 0; i < AliMpConstants::ManuNofChannels(); ++i ) { - Int_t id = AliMUONVDigit::BuildUniqueID(fDetElemId,fManuId,i,cathode); + AliMpPad pad = seg->PadByLocation(fManuId,i,kFALSE); + + if (pad.IsValid()) PaintPad(pad); - PaintPad(id); + PaintPad(pad); } } RestoreStyle();