]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONPad.cxx
- update track cuts
[u/mrichter/AliRoot.git] / MUON / AliMUONPad.cxx
index 9cabb569929bec2a662ac35e3c0fbc3154cccf83..5be049dda7610dcf4ad5f225c9cc3a416ff85ba0 100644 (file)
@@ -26,6 +26,7 @@
 #include "TVector2.h"
 #include "TMath.h"
 
+//-----------------------------------------------------------------------------
 /// \class AliMUONPad
 ///
 /// Object gathering information about a hit pad.
 /// get neighboring information.
 ///
 /// \author Laurent Aphecetche
+//-----------------------------------------------------------------------------
 
+using std::setw;
+using std::cout;
+using std::endl;
+using std::ios_base;
+using std::cerr;
+using std::ios;
 /// \cond CLASSIMP
 ClassImp(AliMUONPad)
 /// \endcond
@@ -54,8 +62,8 @@ namespace
     Double_t xmax = TMath::Min(a.RightBorder(),b.RightBorder());
     Double_t ymin = TMath::Max(a.DownBorder(),b.DownBorder());
     Double_t ymax = TMath::Min(a.UpBorder(),b.UpBorder());
-    AliMpArea c( TVector2( (xmin+xmax)/2.0, (ymin+ymax)/2.0 ),
-                 TVector2( (xmax-xmin)/2.0, (ymax-ymin)/2.0 ) );
+    AliMpArea c( (xmin+xmax)/2.0, (ymin+ymax)/2.0 ,
+                 (xmax-xmin)/2.0, (ymax-ymin)/2.0 );
        
     return c;
   }
@@ -70,7 +78,6 @@ fIsReal(kFALSE),
 fClusterId(-1),
 fCathode(-1),
 fDetElemId(-1),
-fDigitIndex(-1),
 fIx(-1),
 fIy(-1),
 fStatus(0),
@@ -94,7 +101,6 @@ fIsReal(kFALSE),
 fClusterId(-1),
 fCathode(-1),
 fDetElemId(-1),
-fDigitIndex(-1),
 fIx(-1),
 fIy(-1),
 fStatus(0),
@@ -117,7 +123,6 @@ fIsReal(kFALSE),
 fClusterId(-1),
 fCathode(-1),
 fDetElemId(-1),
-fDigitIndex(-1),
 fIx(-1),
 fIy(-1),
 fStatus(0),
@@ -139,7 +144,6 @@ fIsReal(kFALSE),
 fClusterId(-1),
 fCathode(-1),
 fDetElemId(-1),
-fDigitIndex(-1),
 fIx(-1),
 fIy(-1),
 fStatus(0),
@@ -152,6 +156,12 @@ fChargeBackup(0.0)
   Init(-1,-1,-1,-1,position,dimensions,charge);
 }
 
+//_____________________________________________________________________________
+AliMUONPad::~AliMUONPad()
+{
+/// Dtor
+}
+
 //_____________________________________________________________________________
 Bool_t 
 AliMUONPad::AreNeighbours(const AliMUONPad& d1, const AliMUONPad& d2) 
@@ -189,8 +199,8 @@ AliMUONPad::AreOverlapping(const AliMUONPad& d1, const AliMUONPad& d2,
   ///   what we call an overlap, e.g. to consider 2 pads touching only by their
   ///   corners to be overlapping.
   
-  AliMpArea a1(d1.Position(),d1.Dimensions());
-  AliMpArea a2(d2.Position(),d2.Dimensions());
+  AliMpArea a1(d1.X(),d1.Y(),d1.DX(),d1.DY());
+  AliMpArea a2(d2.X(),d2.Y(),d2.DX(),d2.DY());
   
   if ( a1.LeftBorder() > a2.RightBorder() - precision.X() ||
        a1.RightBorder() < a2.LeftBorder() + precision.X() )
@@ -244,13 +254,21 @@ AliMUONPad::Compare(const TObject* obj) const
   
   const AliMUONPad* pad = static_cast<const AliMUONPad*>(obj);
     
+  if (DetElemId() < 0)
+  {
+    // AZ - For "pixels" from MLEM cluster finder
+    // we only sort on charge
+    if (Charge() == pad->Charge()) return 0;
+    return ( Charge() < pad->Charge() ) ? 1:-1;
+  }
+
   if ( DetElemId() > pad->DetElemId() )
   {
     return 1;
   }
-  else if ( DetElemId() > pad->DetElemId() )
+  else if ( DetElemId() < pad->DetElemId() )
   {
-    return 1;
+    return -1;
   }
   else
   {
@@ -310,13 +328,25 @@ AliMUONPad::Compare(const TObject* obj) const
             else
             {
               // same Y
-              return ( Charge() < pad->Charge() ) ? -1:1;              
-            }            
+              if ( Charge() < pad->Charge() ) 
+              {
+                return -1;
+              }
+              else if ( Charge() > pad->Charge() )
+              {
+                return 1;
+              }
+              else
+              {
+                return 0;
+              }
+            }
           }          
         }        
       }
     }
   }
+  return 0;
 }
 
 //_____________________________________________________________________________
@@ -359,7 +389,6 @@ AliMUONPad::Init(Int_t detElemId, Int_t cathode,
   fChargeBackup = fCharge;
   
   fClusterId = -1;
-  fDigitIndex = -1;
 
   fStatus = 0;
 }
@@ -369,8 +398,8 @@ AliMpArea
 AliMUONPad::Overlap(const AliMUONPad& d1, const AliMUONPad& d2)
 {  
   /// Return the overlap region between two pads
-  AliMpArea a1(d1.Position(),d1.Dimensions());
-  AliMpArea a2(d2.Position(),d2.Dimensions());
+  AliMpArea a1(d1.X(),d1.Y(),d1.DX(),d1.DY());
+  AliMpArea a2(d2.X(),d2.Y(),d2.DX(),d2.DY());
   return Intersect(a1,a2);
 }
 
@@ -424,6 +453,7 @@ AliMUONPad::Print(Option_t* opt) const
                  Y()-DY(),Y()+DY()) << endl;
   }
   cout << endl;
+  cout.precision(6); // reset to default precision
   cout.flags(oldflags);
 }