]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/mapping/AliMpDEManager.cxx
Update HFE v2 analyses
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpDEManager.cxx
index 059495396d1922b3e582a54358e2a4f79b526348..11688c5946772155bf13f8d1ad0eb5371d7746c4 100644 (file)
 #include "AliMpDetElement.h"
 #include "AliMpConstants.h"
 #include "AliMpCathodType.h"
+#include "AliMpEncodePair.h"
 
 #include "AliLog.h"
 
 #include <Riostream.h>
 #include <TClass.h>
 
+using std::endl;
 /// \cond CLASSIMP
 ClassImp(AliMpDEManager)
 /// \endcond
 
 const Int_t AliMpDEManager::fgkCoefficient = 100;
-TArrayI     AliMpDEManager::fgNofDEPerChamber;
 
+//
+// static private methods
+//
 //______________________________________________________________________________
-
-AliMpDEManager::~AliMpDEManager()
+TArrayI& AliMpDEManager::GetNofDEPerChamber() 
 {
-/// Destructor
+  /// number of detElemId per chamber
+  static TArrayI nofDEPerChamber;
+  return nofDEPerChamber;
 }
 
 //
-// static private methods
+// static public methods
 //
 
 //______________________________________________________________________________
@@ -154,12 +159,12 @@ Int_t AliMpDEManager::GetGeomModuleId(Int_t detElemId, Bool_t warn)
   if ( ! IsValidDetElemId(detElemId, warn) ) return -1;
   
   return detElemId/fgkCoefficient 
-           + (detElemId >=  505 && detElemId <=  513 || detElemId >= 600 )
-          + (detElemId >=  605 && detElemId <=  613 || detElemId >= 700 )
-          + (detElemId >=  707 && detElemId <=  719 || detElemId >= 800 )
-          + (detElemId >=  807 && detElemId <=  819 || detElemId >= 900 )
-          + (detElemId >=  907 && detElemId <=  919 || detElemId >= 1000 )
-          + (detElemId >= 1007 && detElemId <= 1019 || detElemId >= 1100 ) - 1;
+    + ((detElemId >=  505 && detElemId <=  513) || detElemId >= 600 )
+    + ((detElemId >=  605 && detElemId <=  613) || detElemId >= 700 )
+    + ((detElemId >=  707 && detElemId <=  719) || detElemId >= 800 )
+    + ((detElemId >=  807 && detElemId <=  819) || detElemId >= 900 )
+    + ((detElemId >=  907 && detElemId <=  919) || detElemId >= 1000 )
+    + ((detElemId >= 1007 && detElemId <= 1019) || detElemId >= 1100 ) - 1;
 }  
 
 //______________________________________________________________________________
@@ -186,12 +191,27 @@ AliMp::StationType AliMpDEManager::GetStationType(Int_t detElemId)
 
   if ( ! IsValidDetElemId(detElemId, true) ) {
     AliFatalClass("Cannot return AliMp::StationType value.");
-    return AliMp::kStation1;
+    return AliMp::kStation12;
   }  
   
   return GetDetElement(detElemId)->GetStationType();
 }
 
+//______________________________________________________________________________
+AliMq::Station12Type AliMpDEManager::GetStation12Type(Int_t detElemId)
+{
+/// Return station12 type                                                    \n
+/// Failure causes Fatal error - as AliMp::StationNumber has no possibility
+/// to return undefined value
+
+  if ( ! IsValidDetElemId(detElemId, true) ) {
+    AliFatalClass("Cannot return AliMp::Station12Type value.");
+    return AliMq::kNotSt12;
+  }  
+  
+  return GetDetElement(detElemId)->GetStation12Type();
+}
+
 //______________________________________________________________________________
 AliMp::CathodType 
 AliMpDEManager::GetCathod(Int_t detElemId, AliMp::PlaneType planeType)
@@ -215,30 +235,41 @@ Int_t AliMpDEManager::GetNofDEInChamber(Int_t chamberId, Bool_t warn)
   if ( ! IsValidChamberId(chamberId,warn) ) return 0;
 
   // Fill array if it is empty
-  if ( ! fgNofDEPerChamber.GetSize() ) {
-    fgNofDEPerChamber.Set(AliMpConstants::NofChambers());
+  if ( ! GetNofDEPerChamber().GetSize() ) {
+    GetNofDEPerChamber().Set(AliMpConstants::NofChambers());
     AliMpDEIterator it;
     for ( Int_t i=0; i<AliMpConstants::NofChambers(); i++ ) {
       Int_t counter = 0;
       for ( it.First(i); ! it.IsDone(); it.Next() ) ++counter;
-      fgNofDEPerChamber[i] = counter;
+      GetNofDEPerChamber()[i] = counter;
     }  
   }
   
-  return fgNofDEPerChamber[chamberId];    
+  return GetNofDEPerChamber()[chamberId];    
 
 }
 
 //______________________________________________________________________________
-AliMpIntPair AliMpDEManager::GetDetElemIdRange(Int_t chamberId)
+MpPair_t AliMpDEManager::GetDetElemIdRange(Int_t chamberId)
 {
 /// Return the detection element Id range for given chamberId
+/// es encoded pair
  
-  if ( ! IsValidChamberId(chamberId) ) return AliMpIntPair::Invalid();
+  if ( ! IsValidChamberId(chamberId) ) return 0;
 
-  return AliMpIntPair(
+  return AliMp::Pair(
            (chamberId+1)*fgkCoefficient,
            (chamberId+1)*fgkCoefficient + GetNofDEInChamber(chamberId) - 1);
   
 }
 
+//
+// ctors, dtor
+//
+
+//______________________________________________________________________________
+AliMpDEManager::~AliMpDEManager()
+{
+/// Destructor
+}
+