]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONPainterMasterFrame.cxx
SVN keyword Id is set
[u/mrichter/AliRoot.git] / MUON / AliMUONPainterMasterFrame.cxx
index 7627879a9eee0b296cea8491389af502e940f50e..bbcbbd3655ca00dd7b98bdf5fc6cc957e94f11ec 100644 (file)
@@ -284,23 +284,26 @@ void
 AliMUONPainterMasterFrame::Clicked(AliMUONVPainter* painter, Double_t* values)
 {
   /// A given painter was (singly) clicked
-  
-  AliDebug(1,Form("%s x %7.3f y %7.3f",painter->GetName(),values[0],values[1]));
 
-  AliCodeTimerAuto("")
-  
-  fPainterMatrixFrame->MouseLeave(painter);
+  if ( painter->CanBeDetached() )
+  {
+    fPainterMatrixFrame->MouseLeave(painter);
   
-  AliMUONPainterMatrix* matrix = new AliMUONPainterMatrix(painter->Name().Data());
+    AliMUONPainterMatrix* matrix = new AliMUONPainterMatrix(painter->Name().Data());
 
-  AliMUONVPainter* p = painter->Detach();
+    AliMUONVPainter* p = painter->Detach();
 
-  p->SetResponder(1);
+    p->SetResponder(1);
 
-  matrix->Adopt(p);
+    matrix->Adopt(p);
   
-  AddPainterMatrix(matrix);
-  ShowPainterMatrix(matrix);
+    AddPainterMatrix(matrix);
+    ShowPainterMatrix(matrix);
+  }
+  else
+  {
+    painter->DrawHistogram(values);
+  }
 }
 
 //_____________________________________________________________________________
@@ -309,6 +312,8 @@ AliMUONPainterMasterFrame::ShiftClicked(AliMUONVPainter* painter, Double_t*)
 {
   /// A given painter was shift-clicked
   
+  if ( !painter->CanBeDetached() ) return;
+  
   AliMUONPainterMatrix* currentMatrix = fPainterMatrixFrame->Matrix();
   
   AliMUONAttPainter a = painter->Attributes();
@@ -317,8 +322,7 @@ AliMUONPainterMasterFrame::ShiftClicked(AliMUONVPainter* painter, Double_t*)
   
   TString newName = AliMUONPainterMatrix::NameIt(basename.Data(),a);
   
-  AliMUONPainterMatrix* matrix = 
-    AliMUONPainterRegistry::Instance()->FindPainterMatrix(newName.Data());
+  AliMUONPainterMatrix* matrix = AliMUONPainterRegistry::Instance()->PainterMatrix(newName.Data());
   
   if (!matrix)
   {
@@ -329,29 +333,21 @@ AliMUONPainterMasterFrame::ShiftClicked(AliMUONVPainter* painter, Double_t*)
     // create "opposite" attributes
     AliMUONAttPainter a1(a);
     AliMUONAttPainter a2(a);
-    
-    if ( a.IsCathodeDefined() ) 
-    {
-      a2.SetCathode(!a.IsCathode0(),!a.IsCathode1());
-    }
-    
-    if ( a.IsPlaneDefined() ) 
-    {
-      a2.SetPlane(!a.IsBendingPlane(),!a.IsNonBendingPlane());
-    }
+  
+    a2.Invert();
     
     a1.SetCathodeAndPlaneDisabled(kTRUE);
     a2.SetCathodeAndPlaneDisabled(kTRUE);
-
+    
     AliMUONVPainter* p1 = AliMUONVPainter::CreatePainter(painter->ClassName(),
                                                          a1,
                                                          painter->ID0(),
                                                          painter->ID1());
     
     AliMUONVPainter* p2 = AliMUONVPainter::CreatePainter(painter->ClassName(),
-                                                        a2,
-                                                        painter->ID0(),
-                                                        painter->ID1());
+                                                         a2,
+                                                         painter->ID0(),
+                                                         painter->ID1());
     
     if (!p1 || !p2)
     {
@@ -365,11 +361,6 @@ AliMUONPainterMasterFrame::ShiftClicked(AliMUONVPainter* painter, Double_t*)
       return;
     }
     
-    AliInfo(Form("Starting from %s will generate %s and %s",
-                 a.GetName(),
-                 a1.GetName(),
-                 a2.GetName()));
-    
     p1->UpdateGroupsFrom(*(painter->Master()));
     p2->UpdateGroupsFrom(*(painter->Master()));
     
@@ -380,8 +371,8 @@ AliMUONPainterMasterFrame::ShiftClicked(AliMUONVPainter* painter, Double_t*)
     Int_t ny(1);
     
     AliMpArea area(painter->Area());
-
-    if ( area.Dimensions().X() > 1.2*area.Dimensions().Y() ) 
+    
+    if ( area.GetDimensionX() > 1.2*area.GetDimensionY() ) 
     {
       nx = 1;
       ny = 2;
@@ -404,6 +395,14 @@ AliMUONPainterMasterFrame::ShiftClicked(AliMUONVPainter* painter, Double_t*)
   PainterMatrixWantToShow(matrix);
 }
 
+//_____________________________________________________________________________
+void 
+AliMUONPainterMasterFrame::SaveAs(const char* filename, Option_t* option) const
+{
+  /// Save painter matrix (in the sense of "print") in filename
+  fPainterMatrixFrame->SaveAs(filename,option);
+}
+
 //_____________________________________________________________________________
 void
 AliMUONPainterMasterFrame::Update()
@@ -433,12 +432,13 @@ AliMUONPainterMasterFrame::MakeTopPainterMatrix(UInt_t w, UInt_t h)
 
   AliMUONAttPainter att;
   
-  att.SetCathode(kTRUE,kFALSE);
+  att.SetPlane(kTRUE,kFALSE);
+//  att.SetCathode(kTRUE,kFALSE);
   att.SetViewPoint(kTRUE,kFALSE);
     
   TString name = AliMUONPainterMatrix::NameIt("Tracker",att);
   
-  AliMUONPainterMatrix* painterMatrix = AliMUONPainterRegistry::Instance()->FindPainterMatrix(name);
+  AliMUONPainterMatrix* painterMatrix = AliMUONPainterRegistry::Instance()->PainterMatrix(name);
   
   if (!painterMatrix)
   {
@@ -495,8 +495,7 @@ AliMUONPainterMasterFrame::AttributesChanged(AliMUONAttPainter* newValues)
   
   TString newName = AliMUONPainterMatrix::NameIt(currentMatrix->Basename(),a);
   
-  AliMUONPainterMatrix* matrix = 
-    AliMUONPainterRegistry::Instance()->FindPainterMatrix(newName.Data());
+  AliMUONPainterMatrix* matrix = AliMUONPainterRegistry::Instance()->PainterMatrix(newName.Data());
 
   if (!matrix)
   {