Skip to content
Snippets Groups Projects
Commit 5d786977 authored by Stephen A. Wood's avatar Stephen A. Wood
Browse files

Start writing a Load method to read the detector map

parent 7d3b0f64
No related branches found
No related tags found
No related merge requests found
...@@ -17,7 +17,62 @@ using namespace std; ...@@ -17,7 +17,62 @@ using namespace std;
ClassImp(THcDetectorMap) ClassImp(THcDetectorMap)
inline static bool IsComment( const string& s, string::size_type pos )
{
return ( pos != string::npos && pos < s.length() &&
(s[pos] == '!') );
}
void THcDetectorMap::Load(const char *fname) void THcDetectorMap::Load(const char *fname)
{ {
static const char* const here = "THcDetectorMap::Load";
static const char* const whtspc = " \t";
ifstream ifile;
ifile.open(fname);
if(!ifile.is_open) {
Error(here, "error opening detector map file %s",fname);
return; // Need a success/failure argument?
}
string line;
Int_t roc=0;
Int_t nsubadd=0;
Int_t mask=0;
Int_t bsub=0;
Int_t detector=0;
Int_t slot=0;
while(getline(ifile,line)) {
// BLank line or comment
if(line.empty()
|| (start = line.find_first_not_of( whtspc )) == string::npos
|| IsComment(line, start) )
continue;
}
// Get rid of trailing comments and leading and trailing whitespace
cout << "MAPA: " << line << endl;
while ((pos = line.find_first_of("!", pos+1)) != string::npos) {
if(IsComment(line, pos)) {
line.erase(pos);
break;
}
}
cout << "MAPB: " << line << endl;
// Decide if line is ROC/NSUBADD/MASK/BSUB/DETECTOR/SLOT = something
// or chan, plane, counter[, signal]
if((pos=line.find_first_of("=")) != string::npos) { // Setting parameter
char varname[100];
} else { // Assume channel definition
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment