Mixed Data Coincidence Analysis Software 1.0
A program to analyze files produced by the EventMixer software.
FileEventParser.cc
Go to the documentation of this file.
00001 #include "FileEventParser.hh"
00002 
00003 FileEventParser::FileEventParser(char * filename, int nTubes, float detEpsilon, float dRatio)
00004 {
00005   numberOfTubes = nTubes;
00006   detectorEpsilon = detEpsilon;
00007   dominateRatio = dRatio;
00008   myFileStream = fopen(filename,"r");
00009   if(myFileStream==NULL)
00010     {
00011       fprintf (stderr,"Could not open input event file %s, exiting.", filename);
00012       exit(1);
00013     }
00014   fileEmpty = false;
00015 }
00016 
00017 FileEventParser::~FileEventParser()
00018 {
00019   fclose(myFileStream);
00020 }
00021 
00022 EventHit * FileEventParser::getNextEventHit()
00023 {
00024   EventHit * eventToReturn;
00025   eventToReturn = new EventHit(numberOfTubes, detectorEpsilon, dominateRatio);
00026 
00027   if(fileEmpty)
00028     return NULL;
00029   if(fscanf(myFileStream,"%d %d %d %le", &eventToReturn->eventno, &eventToReturn->Z, &eventToReturn->A, &eventToReturn->time)<4)
00030     {
00031       fileEmpty = true;
00032       return NULL;
00033     }
00034   if(fscanf(myFileStream, "%e %e %e %e", &eventToReturn->UFSP, &eventToReturn->LFSP, &eventToReturn->BSP, &eventToReturn->Ge)<4)
00035     {
00036       fileEmpty = true;
00037       return NULL;
00038     }
00039   for(int j = 0; j<numberOfTubes; j++)
00040     {
00041       if(fscanf(myFileStream,"%e",&eventToReturn->DET[j])<1)
00042         {
00043           fileEmpty = true;
00044           return NULL;
00045         }
00046     }
00047   if(feof(myFileStream))
00048     {
00049       fileEmpty = true;
00050     }  
00051   eventToReturn->ComputeHitType();
00052   return eventToReturn;
00053 }
00054 
00055 bool FileEventParser::hasMoreEvents()
00056 {
00057   return !fileEmpty;
00058 }
 All Classes Files Functions Variables Defines

Back to the main page of the Precalibrated Ion Beam Identification Detector project

Created by Rikard Lundmark