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::fgkStationDir = "/station";
26 const TString AliMpFiles::fgkBendingDir = "/bending_plane/";
27 const TString AliMpFiles::fgkNonBendingDir = "/non-bending_plane/";
28 const TString AliMpFiles::fgkSector = "zones";
29 const TString AliMpFiles::fgkSectorSpecial = "zones_special";
30 const TString AliMpFiles::fgkSectorSpecial2 = "zones_special_outer";
31 const TString AliMpFiles::fgkMotifPrefix = "motif";
32 const TString AliMpFiles::fgkMotifSpecialPrefix ="motifSpecial";
33 const TString AliMpFiles::fgkPadPosPrefix = "padPos";
34 const TString AliMpFiles::fgkDataExt = ".dat";
35 const TString AliMpFiles::fgkBergToGCFileName = "/bergToGC";
37 //______________________________________________________________________________
38 AliMpFiles::AliMpFiles()
45 "AliMpFiles: attempt to create two instances of singleton.");
51 //______________________________________________________________________________
52 AliMpFiles::AliMpFiles(const AliMpFiles& right)
56 Fatal("AliMpFiles", "Attempt to copy AliMpFiles singleton.");
60 //______________________________________________________________________________
61 AliMpFiles::~AliMpFiles() {
69 //______________________________________________________________________________
70 AliMpFiles& AliMpFiles::operator=(const AliMpFiles& right)
72 // check assignement to self
73 if (this == &right) return *this;
75 Fatal("operator=", "Attempt to assign AliMpFiles singleton.");
84 //______________________________________________________________________________
85 TString AliMpFiles::PlaneDataDir(AliMpStationType station,
86 AliMpPlaneType plane) const
88 // Returns path to data files with sector description
89 // for a specified plane.
94 return fTop + fgkDataDir + StationDataDir(station) + fgkBendingDir;
96 case kNonBendingPlane:
97 return fTop + fgkDataDir + StationDataDir(station) + fgkNonBendingDir;
101 Fatal("PlaneDataDir", "Incomplete switch on AliMpPlaneType");
105 //______________________________________________________________________________
106 TString AliMpFiles::StationDataDir(AliMpStationType station) const
108 // Returns the station directory name for the specified station number.
111 TString stationDataDir(fgkStationDir);
122 return stationDataDir;
129 //______________________________________________________________________________
130 AliMpFiles* AliMpFiles::Instance()
132 // Return the singleton instance;
133 // Creates it if it does not yet exist,
137 if (!fgInstance) fgInstance = new AliMpFiles();
142 //______________________________________________________________________________
143 TString AliMpFiles::SectorFilePath(AliMpStationType station,
144 AliMpPlaneType plane) const
146 // Returns path to data file with sector description.
149 return TString(PlaneDataDir(station, plane) + fgkSector + fgkDataExt);
152 //______________________________________________________________________________
153 TString AliMpFiles::SectorSpecialFilePath(AliMpStationType station,
154 AliMpPlaneType plane) const
156 // Returns path to data file with sector special description (irregular motifs).
159 return TString(PlaneDataDir(station, plane) + fgkSectorSpecial + fgkDataExt);
162 //______________________________________________________________________________
163 TString AliMpFiles::SectorSpecialFilePath2(AliMpStationType station,
164 AliMpPlaneType plane) const
166 // Returns path to data file with sector special description (irregular motifs).
169 return TString(PlaneDataDir(station, plane) + fgkSectorSpecial2 + fgkDataExt);
172 //______________________________________________________________________________
173 TString AliMpFiles::MotifFilePath(AliMpStationType station,
174 AliMpPlaneType plane,
175 const TString& motifTypeID) const
177 // Returns path to data file for a given motif type.
180 return TString(PlaneDataDir(station, plane)
181 + fgkMotifPrefix + motifTypeID + fgkDataExt);
184 //______________________________________________________________________________
185 TString AliMpFiles::PadPosFilePath(AliMpStationType station,
186 AliMpPlaneType plane,
187 const TString& motifTypeID) const
189 // Returns path to data file with pad positions for a given motif type.
192 return TString(PlaneDataDir(station, plane)
193 + fgkPadPosPrefix + motifTypeID + fgkDataExt);
196 //______________________________________________________________________________
197 TString AliMpFiles::MotifSpecialFilePath(AliMpStationType station,
198 AliMpPlaneType plane,
199 const TString& motifID) const
201 // Returns path to data file with pad dimensions for a given motif ID.
204 return TString(PlaneDataDir(station, plane)
205 + fgkMotifSpecialPrefix + motifID + fgkDataExt);
209 //______________________________________________________________________________
210 TString AliMpFiles::BergToGCFilePath(AliMpStationType station) const
212 // Returns the path of the file which describes the correspondance between
213 // the berg number and the gassiplex channel.
216 return fTop + fgkDataDir + StationDataDir(station)
217 + fgkBergToGCFileName + fgkDataExt;