6 // Class for generating file names and paths.
8 // zones.dat, zones_special.dat - sector description
9 // motif*.dat - motif description (generated from Exceed)
10 // padPos*.dat - pad positions in motif
12 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
16 #include "AliMpFiles.h"
20 // static data members
22 AliMpFiles* AliMpFiles::fgInstance = 0;
23 const TString AliMpFiles::fgkDefaultTop = getenv("MINSTALL");
24 const TString AliMpFiles::fgkDataDir = "/data";;
25 const TString AliMpFiles::fgkBendingDir = "/bending_plane/";;
26 const TString AliMpFiles::fgkNonBendingDir = "/non-bending_plane/";;
27 const TString AliMpFiles::fgkSector = "zones";
28 const TString AliMpFiles::fgkSectorSpecial = "zones_special";
29 const TString AliMpFiles::fgkMotifPrefix = "motif";
30 const TString AliMpFiles::fgkMotifSpecialPrefix ="motifSpecial";
31 const TString AliMpFiles::fgkPadPosPrefix = "padPos";
32 const TString AliMpFiles::fgkDataExt = ".dat";
33 const TString AliMpFiles::fgkBergToGCFileName = "/bergToGC";
35 //______________________________________________________________________________
36 AliMpFiles::AliMpFiles()
42 "AliMpFiles: attempt to create two instances of singleton.");
48 //______________________________________________________________________________
49 AliMpFiles::AliMpFiles(const AliMpFiles& right) {
51 Fatal("AliMpFiles", "Attempt to copy AliMpFiles singleton.");
55 //______________________________________________________________________________
56 AliMpFiles::~AliMpFiles() {
64 //______________________________________________________________________________
65 AliMpFiles& AliMpFiles::operator=(const AliMpFiles& right)
67 // check assignement to self
68 if (this == &right) return *this;
70 Fatal("operator=", "Attempt to assign AliMpFiles singleton.");
79 //______________________________________________________________________________
80 TString AliMpFiles::PlaneDataDir(AliMpPlaneType plane) const
82 // Returns path to data files with sector description
83 // for a specified plane.
88 return fTop + fgkDataDir + fgkBendingDir;
90 case kNonBendingPlane:
91 return fTop + fgkDataDir + fgkNonBendingDir;
95 Fatal("PlaneDataDir", "Incomplete switch on AliMpPlaneType");
103 //______________________________________________________________________________
104 AliMpFiles* AliMpFiles::Instance()
106 // Return the singleton instance;
107 // Creates it if it does not yet exist,
111 if (!fgInstance) fgInstance = new AliMpFiles();
116 //______________________________________________________________________________
117 TString AliMpFiles::SectorFilePath(AliMpPlaneType plane) const
119 // Returns path to data file with sector description.
122 return TString(PlaneDataDir(plane) + fgkSector + fgkDataExt);
125 //______________________________________________________________________________
126 TString AliMpFiles::SectorSpecialFilePath(AliMpPlaneType plane) const
128 // Returns path to data file with sector special description (irregular motifs).
131 return TString(PlaneDataDir(plane) + fgkSectorSpecial + fgkDataExt);
134 //______________________________________________________________________________
135 TString AliMpFiles::MotifFilePath(AliMpPlaneType plane,
136 const TString& motifTypeID) const
138 // Returns path to data file for a given motif type.
141 return TString(PlaneDataDir(plane) + fgkMotifPrefix + motifTypeID + fgkDataExt);
144 //______________________________________________________________________________
145 TString AliMpFiles::PadPosFilePath(AliMpPlaneType plane,
146 const TString& motifTypeID) const
148 // Returns path to data file with pad positions for a given motif type.
151 return TString(PlaneDataDir(plane) + fgkPadPosPrefix + motifTypeID + fgkDataExt);
154 //______________________________________________________________________________
155 TString AliMpFiles::MotifSpecialFilePath(AliMpPlaneType plane,
156 const TString& motifID) const
158 // Returns path to data file with pad dimensions for a given motif ID.
161 return TString(PlaneDataDir(plane) + fgkMotifSpecialPrefix + motifID + fgkDataExt);
165 //______________________________________________________________________________
166 TString AliMpFiles::BergToGCFilePath() const
168 // Returns the path of the file which describes the correspondance between
169 // the berg number and the gassiplex channel.
172 return fTop+fgkDataDir+fgkBergToGCFileName+fgkDataExt;