]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Simplified, provides only static methods for converting
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Nov 2005 14:05:02 +0000 (14:05 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Nov 2005 14:05:02 +0000 (14:05 +0000)
detElemId <-> moduleId, index

MUON/AliMUONGeometryDEIndexing.cxx
MUON/AliMUONGeometryDEIndexing.h

index 4a8563b2e5270fea69d18b3528a25f9fb4fd91c2..805e92ea119e4f23890258a749e78d22f3d54612 100644 (file)
 #include "AliMUONGeometryDEIndexing.h"
 #include "AliMUONConstants.h"
 
-ClassImp(AliMUONGeometryDEIndexing)
-
-const Int_t AliMUONGeometryDEIndexing::fgkHemisphere = 50; 
-
-//______________________________________________________________________________
-AliMUONGeometryDEIndexing::AliMUONGeometryDEIndexing(
-                              Int_t moduleId, Int_t nofDetElements)
- : AliMUONVGeometryDEIndexing(),
-   fModuleId(moduleId),
-   fNofDetElements(nofDetElements)
-{ 
-/// Standard constructor
-}
-
-//______________________________________________________________________________
-AliMUONGeometryDEIndexing::AliMUONGeometryDEIndexing()
- : AliMUONVGeometryDEIndexing(),
-   fModuleId(0),
-   fNofDetElements(0)
-{ 
-/// Default constructor
-}
-
-//______________________________________________________________________________
-AliMUONGeometryDEIndexing::~AliMUONGeometryDEIndexing() 
-{
-/// Destructor
-}
+Int_t const AliMUONGeometryDEIndexing::fgkSeparator = 100; 
 
 //
-// private methods
+// static methods
 //
 
 //______________________________________________________________________________
-Int_t AliMUONGeometryDEIndexing::GetFirstDetElemId() const
+Int_t AliMUONGeometryDEIndexing::GetModuleId(Int_t detElemId)
 {
-/// Get first detection element Id for chamber specified by moduleId
+// Get module Id from detection element Id
+// ---
 
-  return (fModuleId+1)*100;
+  return detElemId/fgkSeparator - 1;
 }  
 
-//
-// public methods
-//
-
 //______________________________________________________________________________
-Int_t AliMUONGeometryDEIndexing::GetDetElementIndex(Int_t detElemId) const
+Int_t AliMUONGeometryDEIndexing::GetDEIndex(Int_t detElemId)
 {
 /// Returns the index of detector element specified by detElemId
 
-  if ( fNofDetElements == 0 ) {
-    AliFatal("The number of detection elements has not been set.");
-    return 0;
-  }  
-
-  Int_t index = detElemId - GetFirstDetElemId();
-  if (index >= fgkHemisphere) 
-    index += - fgkHemisphere + fNofDetElements/2;
-
-  return index;
-}  
+  return detElemId - detElemId/fgkSeparator*fgkSeparator;
+ }  
 
 //______________________________________________________________________________
-Int_t AliMUONGeometryDEIndexing::GetDetElementId(Int_t detElemIndex) const
+Int_t AliMUONGeometryDEIndexing::GetDEId(Int_t moduleId, Int_t detElemIndex)
 {
 /// Returns the ID of detector element specified by index
 
-  if ( fNofDetElements == 0 ) {
-    AliFatal("The number of detection elements has not been set.");
-    return 0;
-  }  
-
-  Int_t detElemId = detElemIndex;
-  
-  if ( detElemIndex >=  fNofDetElements/2 ) 
-    detElemId += fgkHemisphere - fNofDetElements/2; 
-
-  detElemId += GetFirstDetElemId();
-
-  return detElemId;
+  return ( moduleId + 1 ) * fgkSeparator + detElemIndex;
 }  
index d088faad76541ae469d5cd7768d7e5da8dcfcd7b..d22ebcbcf16cba3256fc49807e8ee5723265bfbc 100644 (file)
@@ -7,58 +7,34 @@
 /// \class AliMUONGeometryDEIndexing
 /// \brief Conversion between the detection element Id and the array index
 ///
-/// The class that provides conversion between the detection element Id
+/// The class that provides static methods for conversions
+/// between the module & detection element Id
 /// and the index in the array.
 /// Used in storing DE transformations and segmentations.
 /// The detection elements numbering:
-///    DetElemId = chamberId*100 + [50] + detElemNum
+///    DetElemId = chamberId*100 + detElemNum
 ///                where  chamberId  = 1, 2, ..., 14
 ///                       detElemNum = 0, 1, ...
-/// The number 50 is added to distinguish detector elements 
-/// in the left and the right hemispheres.
 ///
 /// Author: Ivana Hrivnacova, IPN Orsay
 
 #ifndef ALI_MUON_GEOMETRY_DE_INDEXING_H
 #define ALI_MUON_GEOMETRY_DE_INDEXING_H
 
-#include "AliMUONVGeometryDEIndexing.h"
-
-class AliMUONGeometryDEIndexing : public AliMUONVGeometryDEIndexing
+class AliMUONGeometryDEIndexing 
 {
   public:
-    AliMUONGeometryDEIndexing(Int_t moduleId, Int_t nofDetElements);
-    AliMUONGeometryDEIndexing();
-    virtual ~AliMUONGeometryDEIndexing();
-    
-    // methods for conversion between det element Id and index
-    virtual Int_t GetDetElementIndex(Int_t detElemId) const;
-    virtual Int_t GetDetElementId(Int_t detElemIndex) const;
-
-    // set method
-    virtual Int_t GetNofDetElements() const ;
-    virtual void  SetNofDetElements(Int_t  nofDetElements);  
+    // static methods
+    static  Int_t GetModuleId(Int_t detElemId);
+    static  Int_t GetDEIndex(Int_t detElemId);
+    static  Int_t GetDEId(Int_t moduleId, Int_t detElemIndex);
 
   private:
-    Int_t GetFirstDetElemId() const;
-
-    // static data members
-    static const Int_t  fgkHemisphere;   // The constant to distinguish 
-                                         // the left/right hemispere  
-                                        
+    AliMUONGeometryDEIndexing() {}
+    ~AliMUONGeometryDEIndexing() {}
+    
     // data members
-    Int_t  fModuleId;       // module Id                                                  
-    Int_t  fNofDetElements; // number of detection elements in the module                                                 
-
-  ClassDef(AliMUONGeometryDEIndexing,1) // Conversion between the DE Id and the array index
+    static  const Int_t fgkSeparator; 
 };
 
-// inline functions
-
-inline Int_t AliMUONGeometryDEIndexing::GetNofDetElements() const
-{ return fNofDetElements; }
-
-inline void AliMUONGeometryDEIndexing::SetNofDetElements(Int_t nofDetElements)
-{ fNofDetElements =  nofDetElements; }
-
 #endif //ALI_MUON_GEOMETRY_DE_INDEXING_H