- Added attributes fMaxPadIndices, fNofPads, which are filled
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 14 Mar 2006 09:54:14 +0000 (09:54 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 14 Mar 2006 09:54:14 +0000 (09:54 +0000)
  after mapping data are read via added SetMaxPadIndices(), SetNofPads()
  private methods called from Initialize(), and their
  getters
- Renaming PlaneType() method in GetPlaneType()

MUON/mapping/AliMpSector.cxx
MUON/mapping/AliMpSector.h

index 81e5f35..b93818e 100755 (executable)
@@ -14,7 +14,7 @@
  **************************************************************************/
 
 // $Id$
-// $MpId: AliMpSector.cxx,v 1.11 2006/03/02 16:35:12 ivana Exp $
+// $MpId: AliMpSector.cxx,v 1.12 2006/03/14 09:05:42 ivana Exp $
 // Category: sector
 //
 // Class AliMpSector
@@ -47,7 +47,9 @@ AliMpSector::AliMpSector(const TString& id, Int_t nofZones, Int_t nofRows,
     fZones(),
     fRows(),
     fDirection(direction),
-    fMinPadDimensions(TVector2(1.e6, 1.e6))
+    fMinPadDimensions(TVector2(1.e6, 1.e6)),
+    fMaxPadIndices(AliMpIntPair::Invalid()),
+    fNofPads(0)
 {
 /// Standard constructor
 
@@ -89,7 +91,9 @@ AliMpSector::AliMpSector()
     fRows(),
     fMotifMap(0),
     fDirection(kX),
-    fMinPadDimensions(TVector2(0., 0.))
+    fMinPadDimensions(TVector2(0., 0.)),
+    fMaxPadIndices(AliMpIntPair::Invalid()),
+    fNofPads(0)
 {
 /// Default constructor
 }
@@ -208,6 +212,36 @@ void  AliMpSector::SetMinPadDimensions()
   }
 }
 
+//_____________________________________________________________________________
+void  AliMpSector::SetMaxPadIndices()
+{
+/// Set maximum pad indices in x, y
+
+  if ( fMaxPadIndices != AliMpIntPair::Invalid() ) return;
+  
+  Int_t maxIndexInX = 0;
+  Int_t maxIndexInY = 0;
+  for (Int_t i=0; i<GetNofRows(); i++) {
+
+    Int_t ixh = GetRow(i)->GetHighIndicesLimit().GetFirst();
+    if ( ixh > maxIndexInX ) maxIndexInX = ixh;
+
+    Int_t iyh = GetRow(i)->GetHighIndicesLimit().GetSecond();
+    if ( iyh > maxIndexInY ) maxIndexInY = iyh;
+  }  
+  
+  fMaxPadIndices = AliMpIntPair(maxIndexInX, maxIndexInY);
+}
+
+
+//_____________________________________________________________________________
+void  AliMpSector::SetNofPads()
+{
+/// Set the total number of pads
+
+  fNofPads = fMotifMap->CalculateNofPads();
+}
+
 //
 // public methods
 //
@@ -231,6 +265,8 @@ void AliMpSector::Initialize()
   SetMotifPositions();
   SetGlobalIndices();
   SetMinPadDimensions();
+  SetMaxPadIndices();
+  SetNofPads();
 }  
 
 //_____________________________________________________________________________
@@ -383,13 +419,6 @@ AliMpZone*  AliMpSector::FindZone(const TVector2& padDimensions) const
 }
 
 //_____________________________________________________________________________
-AliMpPlaneType
-AliMpSector::PlaneType() const
-{
-  return GetDirection()==kY ? kBendingPlane : kNonBendingPlane;
-}
-
-//_____________________________________________________________________________
 TVector2 AliMpSector::Position() const
 {
 /// Return the sector offset.
@@ -430,13 +459,6 @@ TVector2 AliMpSector::Dimensions() const
 }  
 
 //_____________________________________________________________________________
-void 
-AliMpSector::GetAllMotifPositionsIDs(TArrayI& ecn) const
-{
-  fMotifMap->GetAllMotifPositionsIDs(ecn);
-}
-
-//_____________________________________________________________________________
 Int_t AliMpSector::GetNofZones() const
 {    
 /// Return the number of zones.
@@ -503,9 +525,29 @@ AliMpRow* AliMpSector::GetRow(Int_t rowID) const
 }
 
 //_____________________________________________________________________________
+AliMpPlaneType
+AliMpSector::GetPlaneType() const
+{
+/// Return the plane type
+
+  return GetDirection()==kY ? kBendingPlane : kNonBendingPlane;
+}
+
+//_____________________________________________________________________________
+void 
+AliMpSector::GetAllMotifPositionsIDs(TArrayI& ecn) const
+{
+/// Return the array of all motif positions IDs
+
+  fMotifMap->GetAllMotifPositionsIDs(ecn);
+}
+
+//_____________________________________________________________________________
 void
 AliMpSector::Print(Option_t* opt) const
 {
-  cout << "Sector," << PlaneTypeName(PlaneType()) << endl;
+/// Print the map of motifs
+
+  cout << "Sector," << PlaneTypeName(GetPlaneType()) << endl;
   fMotifMap->Print(opt);
 }
index 734d817..b65bcf9 100755 (executable)
@@ -2,7 +2,7 @@
  * See cxx source for full Copyright notice                               */
 
 // $Id$
-// $MpId: AliMpSector.h,v 1.10 2006/03/02 16:35:06 ivana Exp $
+// $MpId: AliMpSector.h,v 1.11 2006/03/14 09:05:38 ivana Exp $
 
 /// \ingroup sector
 /// \class AliMpSector
@@ -29,6 +29,7 @@
 
 #include "AliMpDirection.h"
 #include "AliMpPlaneType.h"
+#include "AliMpIntPair.h"
 
 class TArrayI;
 class AliMpZone;
@@ -77,21 +78,27 @@ class AliMpSector : public TNamed
     TVector2  Position() const;
     TVector2  Dimensions() const;
    
+    //
     // get methods
+
     Int_t       GetNofZones() const;
     AliMpZone*  GetZone(Int_t i) const;    
+
     Int_t       GetNofRows() const;
     AliMpRow*   GetRow(Int_t i) const;
+
     AliMpDirection  GetDirection() const;  
+    AliMpPlaneType  GetPlaneType() const;  
+
     TVector2        GetMinPadDimensions() const;
+    AliMpIntPair    GetMaxPadIndices() const;
+    Int_t           GetNofPads() const;
+
     AliMpMotifMap*  GetMotifMap() const;
+    void            GetAllMotifPositionsIDs(TArrayI& ecn) const;
     
     virtual void Print(Option_t* opt="") const;
     
-    /// Get all motifPositionsIDs (=electronicCardNumbers) handled by this sector
-    void GetAllMotifPositionsIDs(TArrayI& ecn) const;
-    
-    AliMpPlaneType PlaneType() const;
     
   protected:
     AliMpSector(const AliMpSector& right);
@@ -104,6 +111,8 @@ class AliMpSector : public TNamed
     void SetMotifPositions();
     void SetGlobalIndices();
     void SetMinPadDimensions();
+    void SetMaxPadIndices();
+    void SetNofPads();
 
     // data members        
     TString    fID;       // sector ID
@@ -113,6 +122,9 @@ class AliMpSector : public TNamed
     AliMpMotifMap* fMotifMap; // motif map
     AliMpDirection fDirection;// the direction of constant pad size
     TVector2       fMinPadDimensions; // minimal pad dimensions
+    AliMpIntPair   fMaxPadIndices;    // maximum pad indices    
+    Int_t          fNofPads;     //  total number of pads
+
 
   ClassDef(AliMpSector,1)  //Sector
 };
@@ -125,6 +137,12 @@ inline AliMpDirection AliMpSector::GetDirection() const
 inline TVector2   AliMpSector::GetMinPadDimensions() const
 { return fMinPadDimensions; }
 
+inline AliMpIntPair  AliMpSector::GetMaxPadIndices() const
+{ return fMaxPadIndices; }
+
+inline Int_t  AliMpSector::GetNofPads() const
+{ return fNofPads; }
+
 inline AliMpMotifMap* AliMpSector::GetMotifMap() const 
 { return fMotifMap; }