]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/mapping/AliMpFiles.cxx
Coding convention violations (RC17): suppression
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpFiles.cxx
index 7df5fa5ef998786f7dbf08b806093f8019060eed..f53ffbea505a07ae4a3a52173e5b8721e2041a71 100755 (executable)
  **************************************************************************/
 
 // $Id$
-// $MpId: AliMpFiles.cxx,v 1.10 2006/03/17 11:34:46 ivana Exp $
+// $MpId: AliMpFiles.cxx,v 1.12 2006/05/23 13:09:54 ivana Exp $
 // Category: basic
-// ----------------
+
+//-----------------------------------------------------------------------------
 // Class AliMpFiles
 // ----------------
 // Class for generating file names and paths.
@@ -27,6 +28,7 @@
 //
 // Included in AliRoot: 2003/05/02
 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
+//-----------------------------------------------------------------------------
 
 #include "AliMpFiles.h"
 
 
 #include <stdlib.h>
 
+/// \cond CLASSIMP
+ClassImp(AliMpFiles)
+/// \endcond
+
 //
 // static
 
 // static data members
 
 const TString AliMpFiles::fgkDataDir = "/data";
+const TString AliMpFiles::fgkDataRunDir = "/data_run";
 const TString AliMpFiles::fgkStationDir = "/station";
-const TString AliMpFiles::fgkBendingDir = "/bending_plane/";
-const TString AliMpFiles::fgkNonBendingDir = "/non-bending_plane/";
+const TString AliMpFiles::fgkBendingDir = "bending_plane/";
+const TString AliMpFiles::fgkNonBendingDir = "non-bending_plane/";
 const TString AliMpFiles::fgkDENames = "denames"; 
 const TString AliMpFiles::fgkSector  = "zones"; 
 const TString AliMpFiles::fgkSectorSpecial = "zones_special";
 const TString AliMpFiles::fgkSectorSpecial2 = "zones_special_outer";
 const TString AliMpFiles::fgkMotifPrefix   = "motif";  
 const TString AliMpFiles::fgkMotifSpecialPrefix ="motifSpecial";
+const TString AliMpFiles::fgkManuToSerial ="_manu";
 const TString AliMpFiles::fgkPadPosPrefix  = "padPos"; 
 const TString AliMpFiles::fgkDataExt = ".dat";      
-const TString AliMpFiles::fgkBergToGCFileName = "/bergToGC"; 
-const TString AliMpFiles::fgkTriggerLocalBoards = "CRATE.TXT";
+const TString AliMpFiles::fgkBergToGCFileName = "bergToGC"; 
+const TString AliMpFiles::fgkTriggerLocalBoards = "RegionalCrate";
+const TString AliMpFiles::fgkTriggerGlobalBoards = "GlobalCrate";
 const TString AliMpFiles::fgkBusPatchFileName = "DetElemIdToBusPatch";
-
-ClassImp(AliMpFiles)
-
-//______________________________________________________________________________
-AliMpFiles::AliMpFiles()
-  : TObject()
-{
-/// Default constructor
-}
-  
-//______________________________________________________________________________
-AliMpFiles::AliMpFiles(const AliMpFiles& right)
-  : TObject(right) 
-{
-/// Protected copy constructor 
-
-  AliFatalClass("Attempt to copy AliMpFiles singleton.");
-}
-
+const TString AliMpFiles::fgkBusPatchInfoFileName = "BusPatchInfo";
+const TString AliMpFiles::fgkBusPatchSpecialFileName = "BusPatchSpecial";
+const TString AliMpFiles::fgkSerialToBinFileName = "ManuSerialToBin";
 
 //______________________________________________________________________________
 AliMpFiles::~AliMpFiles() 
@@ -83,94 +76,69 @@ AliMpFiles::~AliMpFiles()
 /// Destructor
 }
 
-// operators
-
-//______________________________________________________________________________
-AliMpFiles& AliMpFiles::operator=(const AliMpFiles& right)
-{
-/// Assignment operator
-
-  // check assignment to self
-  if (this == &right) return *this;
-
-  AliFatalClass("Attempt to assign AliMpFiles singleton.");
-    
-  return *this;  
-}    
-          
 //
-// private methods
+// public methods
 //
 
 //______________________________________________________________________________
-TString AliMpFiles::GetTop()
-{
-/// Return top path to mapping data defined either via MINSTALL
-/// or ALICE_ROOT environment variable.                                      \n
-/// If both variables are defined, MINSTALL is used.
-
-  TString top = getenv("MINSTALL");    
-  if ( ! top.IsNull() ) return top;
-
-  TString ntop = getenv("ALICE_ROOT");
-  if ( ntop.IsNull() ) {
-    AliErrorClassStream() << "Cannot find path to mapping data." << endl;
-    return ntop;
-  }  
-  ntop += "/MUON/mapping";
-  return ntop;
-}
-
-//______________________________________________________________________________
-TString AliMpFiles::PlaneDataDir(AliMpStationType station, 
-                                 AliMpPlaneType plane)
+TString AliMpFiles::PlaneDataDir(AliMp::StationType station, 
+                                 AliMq::Station12Type station12Type,
+                                 AliMp::PlaneType plane)
 {
 /// Returns path to data files with sector description
 /// for a specified plane.
 
   switch (station) {
-  case kStation1:
-  case kStation2:
+  case AliMp::kStation12:
     switch (plane) {
-    case kBendingPlane:
-      return GetTop() + fgkDataDir + StationDataDir(station) + fgkBendingDir;
+    case AliMp::kBendingPlane:
+      return GetTop() + fgkDataDir + StationDataDir(station, station12Type) + fgkBendingDir;
       ;;
-    case kNonBendingPlane:   
-      return GetTop() + fgkDataDir + StationDataDir(station) + fgkNonBendingDir;
+    case AliMp::kNonBendingPlane:   
+      return GetTop() + fgkDataDir + StationDataDir(station, station12Type) + fgkNonBendingDir;
       ;;
     }   
     break;
-  case kStation345:
-  case kStationTrigger:  
-    return GetTop() + fgkDataDir + StationDataDir(station) + "/";
+  case AliMp::kStation345:
+  case AliMp::kStationTrigger:  
+    return GetTop() + fgkDataDir + StationDataDir(station, AliMq::kNotSt12);
     break;
   default:  
-    AliFatalClass("Incomplete switch on AliMpPlaneType");
+    AliFatalClass("Incomplete switch on AliMp::PlaneType");
     break;
   }
   return TString();
 }
 
 //______________________________________________________________________________
-TString AliMpFiles::StationDataDir(AliMpStationType station)
+TString AliMpFiles::StationDataDir(AliMp::StationType station,
+                                   AliMq::Station12Type station12Type)
 {
 /// Returns the station directory name for the specified station number.
 
   TString stationDataDir(fgkStationDir);
   switch (station) {
-  case kStation1: 
-    stationDataDir += "1/";
-    break;
-    ;;
-  case kStation2: 
-    stationDataDir += "2/";
+  case AliMp::kStation12: 
+    switch (station12Type) {
+    case AliMq::kStation1:
+      stationDataDir += "1/";
+      break;
+      ;;
+    case AliMq::kStation2:   
+      stationDataDir += "2/";
+      break;
+      ;;
+    case AliMq::kNotSt12:   
+      AliFatalClass("Incorrect switch on AliMq::Station12Type");
+      break;
+    }   
     break;
     ;;
-  case kStation345: 
+  case AliMp::kStation345: 
     stationDataDir += "345/";
     break;
     ;;      
-  case kStationTrigger:
+  case AliMp::kStationTrigger:
     stationDataDir += "Trigger/";
     break;
     ;;
@@ -181,10 +149,6 @@ TString AliMpFiles::StationDataDir(AliMpStationType station)
   return stationDataDir;
 }
 
-//
-// public methods
-//
-
 //______________________________________________________________________________
 TString AliMpFiles::BusPatchFilePath()
 {
@@ -194,119 +158,223 @@ TString AliMpFiles::BusPatchFilePath()
 }  
 
 //______________________________________________________________________________
-TString AliMpFiles::DENamesFilePath(AliMpStationType station)
+TString AliMpFiles::BusPatchInfoFilePath()
+{
+/// Return path to data file with bus patch mapping.
+
+  return GetTop() + fgkDataDir + "/" + fgkBusPatchInfoFileName + fgkDataExt;
+}  
+
+//______________________________________________________________________________
+TString AliMpFiles::BusPatchSpecialFilePath()
+{
+/// Return path to data file with special bus patch mapping.
+
+  return GetTop() + fgkDataDir + "/" + fgkBusPatchSpecialFileName + fgkDataExt;
+}  
+
+//______________________________________________________________________________
+TString AliMpFiles::SerialToBinFilePath()
+{
+/// Return path to data file containing manu serial numbers with their bin.
+
+  return GetTop() + fgkDataDir + "/" + fgkSerialToBinFileName + fgkDataExt;
+}  
+
+
+//______________________________________________________________________________
+TString AliMpFiles::DENamesFilePath(AliMp::StationType station,
+                                    AliMq::Station12Type station12Type)
 {
 /// Return path to data file with DE names for given station.
  
-  return GetTop() + fgkDataDir + StationDataDir(station) + fgkDENames + fgkDataExt;
+  return GetTop() + fgkDataDir + StationDataDir(station, station12Type) 
+           + fgkDENames + fgkDataExt;
 }
 
 //______________________________________________________________________________
 TString AliMpFiles::LocalTriggerBoardMapping()
 {
-/// Return path to data file with DE names for given station.
+/// Return path to data file with local trigger board mapping.
 
-  return GetTop() + "/.." + fgkDataDir + "/" + fgkTriggerLocalBoards;
+  return GetTop() + fgkDataDir 
+          + StationDataDir(AliMp::kStationTrigger, AliMq::kNotSt12) 
+          + fgkTriggerLocalBoards + fgkDataExt;;
+}
+
+//______________________________________________________________________________
+TString AliMpFiles::GlobalTriggerBoardMapping()
+{
+/// Return path to data file with local trigger board mapping.
+
+  return GetTop() + fgkDataDir 
+      + StationDataDir(AliMp::kStationTrigger, AliMq::kNotSt12) 
+      + fgkTriggerGlobalBoards + fgkDataExt;;
 }
 
 //_____________________________________________________________________________
-TString AliMpFiles::SlatFilePath(AliMpStationType stationType,
+TString AliMpFiles::SlatFilePath(AliMp::StationType stationType,
                                  const char* slatType,
-                                 AliMpPlaneType plane)
+                                 AliMp::PlaneType plane)
 {
 /// \todo add ..
 
-  return TString(PlaneDataDir(stationType,plane) + slatType + "." +
-                ( plane == kNonBendingPlane ? "NonBending":"Bending" ) + ".slat");
+  return TString(PlaneDataDir(stationType, AliMq::kNotSt12, plane) 
+                 + slatType + "." +
+                ( plane == AliMp::kNonBendingPlane ? "NonBending":"Bending" ) + ".slat");
 }
 
 //_____________________________________________________________________________
-TString AliMpFiles::SlatPCBFilePath(AliMpStationType stationType,
+TString AliMpFiles::SlatPCBFilePath(AliMp::StationType stationType,
                                     const char* pcbType)
 {
 /// Get the full path for a given PCB (only relevant to stations 3,
 /// 4, 5 and trigger). The bending parameter below is of no use in this case, but
 /// we use it to re-use the PlaneDataDir() method untouched.
 
-  return TString(PlaneDataDir(stationType,kNonBendingPlane) + pcbType +
-                 ".pcb");
+  return TString(PlaneDataDir(stationType, AliMq::kNotSt12, AliMp::kNonBendingPlane) 
+                 + pcbType + ".pcb");
 }
 
 //______________________________________________________________________________
-TString AliMpFiles::SectorFilePath(AliMpStationType station
-                                   AliMpPlaneType plane)
+TString AliMpFiles::SectorFilePath(AliMq::Station12Type station12Type
+                                   AliMp::PlaneType plane)
 {
 /// Return path to data file with sector description.
  
-  return TString(PlaneDataDir(station, plane) + fgkSector + fgkDataExt);
+  return TString(PlaneDataDir(AliMp::kStation12, station12Type, plane) 
+                 + fgkSector + fgkDataExt);
 }
     
 //______________________________________________________________________________
-TString AliMpFiles::SectorSpecialFilePath(AliMpStationType station, 
-                                          AliMpPlaneType plane)
+TString AliMpFiles::SectorSpecialFilePath(AliMq::Station12Type station12Type,
+                                          AliMp::PlaneType plane)
 {
 /// Return path to data file with sector special description (irregular motifs).
 
-  return TString(PlaneDataDir(station, plane) + fgkSectorSpecial + fgkDataExt);
+  return TString(PlaneDataDir(AliMp::kStation12, station12Type, plane) 
+                 + fgkSectorSpecial + fgkDataExt);
 }
     
 //______________________________________________________________________________
-TString AliMpFiles::SectorSpecialFilePath2(AliMpStationType station
-                                           AliMpPlaneType plane)
+TString AliMpFiles::SectorSpecialFilePath2(AliMq::Station12Type station12Type
+                                           AliMp::PlaneType plane)
 {
 /// Returns path to data file with sector special description (irregular motifs).
 
-  return TString(PlaneDataDir(station, plane) + fgkSectorSpecial2 + fgkDataExt);
+  return TString(PlaneDataDir(AliMp::kStation12, station12Type, plane) 
+                 + fgkSectorSpecial2 + fgkDataExt);
 }
-    
+
 //______________________________________________________________________________
-TString AliMpFiles::MotifFilePath(AliMpStationType station, 
-                                  AliMpPlaneType plane, 
+TString AliMpFiles::MotifFileName(const TString& motifTypeID)
+{
+  /// Returns name of data file for a given motif type.
+  
+  return TString(fgkMotifPrefix +  motifTypeID + fgkDataExt);
+}
+
+//______________________________________________________________________________
+TString AliMpFiles::MotifFilePath(AliMp::StationType station, 
+                                  AliMq::Station12Type station12Type,
+                                  AliMp::PlaneType plane, 
                                   const TString& motifTypeID)
 {
 /// Returns path to data file for a given motif type.
 
-  return TString(PlaneDataDir(station, plane) 
-                 + fgkMotifPrefix +  motifTypeID + fgkDataExt);
+  return TString(PlaneDataDir(station, station12Type, plane) 
+                 + MotifFileName(motifTypeID));
 }
-    
+
 //______________________________________________________________________________
-TString AliMpFiles::PadPosFilePath(AliMpStationType station, 
-                                   AliMpPlaneType plane, 
+TString AliMpFiles::PadPosFileName(const TString& motifTypeID)
+{
+  /// Returns name of data file with pad positions for a given motif type.
+  
+  return TString(fgkPadPosPrefix +  motifTypeID + fgkDataExt);
+}
+
+//______________________________________________________________________________
+TString AliMpFiles::PadPosFilePath(AliMp::StationType station, 
+                                   AliMq::Station12Type station12Type,
+                                   AliMp::PlaneType plane, 
                                    const TString& motifTypeID)
 {
 /// Returns path to data file with pad positions for a given motif type.
 
-  return TString(PlaneDataDir(station, plane) 
-                 + fgkPadPosPrefix +  motifTypeID + fgkDataExt);
+  return TString(PlaneDataDir(station, station12Type, plane) 
+                 + PadPosFileName(motifTypeID));
+}
+
+//______________________________________________________________________________ 
+TString AliMpFiles::MotifSpecialFileName(const TString& motifID)
+{
+  /// Returns name of data file with pad dimensions for a given motif ID.
+  
+  return TString(fgkMotifSpecialPrefix + motifID + fgkDataExt);
+  
 }
 
 //______________________________________________________________________________ 
-TString AliMpFiles::MotifSpecialFilePath(AliMpStationType station, 
-                                         AliMpPlaneType plane,
+TString AliMpFiles::MotifSpecialFilePath(AliMp::StationType station, 
+                                         AliMq::Station12Type station12Type,
+                                         AliMp::PlaneType plane,
                                          const TString& motifID)
 {
 /// Returns path to data file with pad dimensions for a given motif ID.
 
-  return TString(PlaneDataDir(station, plane) 
-                 + fgkMotifSpecialPrefix + motifID + fgkDataExt);
-
+  return TString(PlaneDataDir(station, station12Type, plane) 
+                 + MotifSpecialFileName(motifID));
 }
 
 //______________________________________________________________________________ 
-TString AliMpFiles::BergToGCFilePath(AliMpStationType station)
+TString AliMpFiles::BergToGCFilePath(AliMp::StationType station,
+                                     AliMq::Station12Type station12Type)
 {
 /// Returns the path of the file which describes the correspondance between
 /// the berg number and the gassiplex channel.
 
-  return GetTop() + fgkDataDir + StationDataDir(station)
+  return GetTop() + fgkDataDir + StationDataDir(station, station12Type)
               + fgkBergToGCFileName + fgkDataExt;
 }
 
+//______________________________________________________________________________ 
+TString AliMpFiles::ManuToSerialPath(const TString& deName, 
+                                     AliMp::StationType station,
+                                     AliMq::Station12Type station12Type)
+{
+/// Returns the path of the file for the manu id to their serial number
+
+  return  GetTop() + fgkDataRunDir + StationDataDir(station, station12Type)
+              + deName + fgkManuToSerial + fgkDataExt; 
+}
+
+
 //______________________________________________________________________________ 
 void 
 AliMpFiles::SetTopPath(const TString& topPath)
 { 
+/// Set top file path
+
   GetTop() = topPath; 
 }
 
+//______________________________________________________________________________
+TString AliMpFiles::GetTop()
+{
+/// Return top path to mapping data defined either via MINSTALL
+/// or ALICE_ROOT environment variable.                                      \n
+/// If both variables are defined, MINSTALL is used.
+
+  TString top = getenv("MINSTALL");    
+  if ( ! top.IsNull() ) return top;
+
+  TString ntop = getenv("ALICE_ROOT");
+  if ( ntop.IsNull() ) {
+    AliErrorClassStream() << "Cannot find path to mapping data." << endl;
+    return ntop;
+  }  
+  ntop += "/MUON/mapping";
+  return ntop;
+}
+