#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
//
//______________________________________________________________________________
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;
}
//______________________________________________________________________________
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)
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
+}
+