CalibMicrorocParser Class Reference

#include <CalibMicrorocParser.hh>

Inheritance diagram for CalibMicrorocParser:

Inheritance graph
[legend]
Collaboration diagram for CalibMicrorocParser:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 CalibMicrorocParser (Run &aRun, FILE *aFile, ui32 firstEventId, bool _testMicroroc=false)
virtual ~CalibMicrorocParser ()
int getNextEvent (Event &eventToFill)

Static Public Member Functions

static const char * type ()

Protected Member Functions

int getLine (FILE *file, std::string &line)

Private Member Functions

unsigned int getData (FILE *inputFile, const int nBytes, bool computeCRC=true)
unsigned int getDecimalData (FILE *inputFile, const int nBytes)
unsigned int checkData (FILE *inputFile, const int nBytes)
int getDacValue (std::string line)
void setMotifValue (std::string line)
void setChargeValue (std::string line)
unsigned int grayToBinary (unsigned int gray)
int newHit (Event &event, const Detector &detector, int data, const int chNum, const int chipId, const int difId)
std::string binaire (unsigned int nombre)
void reset ()
void initParsing (FILE *inputFile)
bool checkNextLine (FILE *inputFile, std::string target)
virtual std::string getCtestString (void)

Private Attributes

MicrorocSCReaderscReader
bool init
bool motif [MOTIFNB]
float charge
bool newCalibration
bool newDif
bool newHR
int difId
int dac [3]
char shaper [2]
bool testMicroroc

Detailed Description

CLASS DATAREADER //

Definition at line 32 of file CalibMicrorocParser.hh.


Constructor & Destructor Documentation

CalibMicrorocParser::CalibMicrorocParser ( Run aRun,
FILE *  aFile,
ui32  firstEventId,
bool  _testMicroroc = false 
)

Definition at line 55 of file CalibMicrorocParser.cpp.

00056 : AcquisitionParser(aRun, aFile,  _firstEventId), scReader(NULL) 
00057 {
00058 
00059   testMicroroc = _testMicroroc;
00060   run.setCalibrationRun(true);
00061   run.setName("Microroc calibration Run");
00062 
00063   reset();
00064 }

CalibMicrorocParser::~CalibMicrorocParser (  )  [virtual]

Definition at line 67 of file CalibMicrorocParser.cpp.

00068 {
00069   FILE_LOG(logDEBUG1)<< "----CalibMicrorocParser destructeur"<< endl;
00070 }


Member Function Documentation

static const char* CalibMicrorocParser::type (  )  [inline, static]

Reimplemented in TestMicrorocParser.

Definition at line 38 of file CalibMicrorocParser.hh.

Referenced by main().

00038 { return CALIBMICRORC; }

int CalibMicrorocParser::getNextEvent ( Event eventToFill  )  [virtual]

Implements AcquisitionParser.

Reimplemented in TestMicrorocParser.

Definition at line 252 of file CalibMicrorocParser.cpp.

Referenced by TestMicrorocParser::getNextEvent().

00253 {
00254     unsigned int nbHits = 0;
00255     // The first line does not contains needed informations
00256     // init fill the motifCtest and place streaming just before the first event
00257     if ( ! init)
00258     {
00259         initParsing(inputFile);
00260         init = true;
00261     }
00262 
00263     string line;
00264 
00265     if ( newCalibration)
00266     { // get calibration parameters ( DAC_2, DAC_1, D AC_0 values )
00267         FILE_LOG(logDEBUG1) <<  "New calibration !" << endl;
00268         size_t found;
00269 
00270         do
00271         {
00272             int result = getLine ( inputFile, line);
00273              if (result == EOF)
00274              {
00275                  FILE_LOG(logDEBUG1) <<  "End of file !" << endl;
00276                  reset();
00277                  FILE_LOG(logDEBUG1) <<  "return LAST_FILE_EVENT:["  << LAST_FILE_EVENT <<  endl;
00278                  return LAST_FILE_EVENT;
00279              }
00280 
00281              // Get DAC_2
00282              found=line.find("DAC_2");
00283         }
00284         while (found==string::npos);
00285 
00286         dac[0] = -1;
00287         dac[1] = -1;
00288         dac[2] = getDacValue(line);
00289 
00290         // Get DAC_1
00291         if ( getLine ( inputFile, line) != EOF )
00292         {
00293             if ( line.find("DAC_1")!=string::npos) { dac[1] = getDacValue(line); }
00294             else { return EVENT_ERROR;  }  // DAC_1 value not found
00295         }
00296 
00297         // Get DAC_0
00298         if ( getLine ( inputFile, line) != EOF )
00299         {
00300             if ( line.find("DAC_0")!=string::npos) { dac[0] = getDacValue(line); }
00301             else { return EVENT_ERROR;  }  // DAC_0 value not found
00302         }
00303         FILE_LOG(logDEBUG) <<  "dac_2[" << dac[2] << "]" << endl;
00304         FILE_LOG(logDEBUG) <<  "dac_1[" << dac[1] << "]" << endl;
00305         FILE_LOG(logDEBUG) <<  "dac_0[" << dac[0] << "]" << endl;
00306         // Set chip configuration
00307         const Detector &detector = run.getDetector();
00308         try {
00309           ChamberMap_t chambers = detector.getChambers();
00310           for (ChamberMap_t::iterator chamberIt = chambers.begin(); chamberIt != chambers.end(); chamberIt++) {
00311             Chamber& chamber = *chamberIt->second;
00312             DifMap_t difs = chamber.getDifs();
00313             for (DifMap_t::iterator difIt = difs.begin(); difIt != difs.end(); difIt++) {
00314               Dif& dif = *difIt->second;
00315               BoardMap_t boards = dif.getBoards();
00316               for (BoardMap_t::iterator boardIt = boards.begin(); boardIt != boards.end(); boardIt++) {
00317                 Board& b = *boardIt->second;
00318                 ChipMap_t chips = b.getChips();
00319                 for (ChipMap_t::iterator chipIt = chips.begin(); chipIt != chips.end(); chipIt++) {
00320                   MicrorocChip &chip = dynamic_cast<MicrorocChip &> (*chipIt->second);
00321                   chip.setThresholdDac_0(dac[0]);
00322                   chip.setThresholdDac_1(dac[1]);
00323                   chip.setThresholdDac_2(dac[2]);
00324                   //for (int chNum = 0; chNum < 64; chNum++) {
00325                   //  Channel& ch = chip.getChannelById(chNum);
00326                   //  ch.setEnable(1);
00327                   //}
00328                 }
00329               }
00330             }
00331           }
00332         }
00333         catch (MicroException &e) { cout << e.getMessage() << endl; }
00334 
00335         newCalibration = false; // nany event could be attach to these calibration parametre ( DAC_2 ... )
00336         return NEW_CONFIG;
00337      } // end if new calibratio
00338     if ( newDif)
00339     {
00340       FILE_LOG(logDEBUG1) <<  "New Dif !" << endl;
00341       // Place file streamer after B4
00342       int space = 0;  // nb bytes beetween B4 and B0 tags
00343       int b0Pos = 6;  // B0 tag position
00344       bool find = false;
00345       do
00346       {
00347         b0Pos = ftell(inputFile);
00348 
00349         FILE_LOG(logDEBUG) <<  "inputFile [" << inputFile << "]" << endl;
00350         FILE_LOG(logDEBUG) <<  "b0Pos [" << b0Pos << "]" << endl;
00351         if (getLine ( inputFile, line) == EOF) {
00352           return(LAST_FILE_EVENT);
00353         }
00354       //FILE_LOG(logINFO) << "line[" << line << "]" << endl;
00355         // On verifie que l'on ne retombe pas sur le mot DAC_2, ce qui ce produit si aucune Dif n'a repondu ( du a un BUG )
00356 
00357         if (checkNextLine(inputFile,"DAC_") )
00358         {
00359           newCalibration = true;
00360           FILE_LOG(logWARNING) <<  "No data for DAC values:[" << dac[0] << "," << dac[1] << "," << dac[2] << "]" << endl;
00361           return getNextEvent( event);
00362         }
00363 
00364         int b0find = line.find("B0",18);
00365         FILE_LOG(logDEBUG) <<  "b0find [" << b0find << "]" << endl;
00366         int b4pos = 0;
00367         do
00368         {
00369           b4pos = line.find("B4",b4pos+1);
00370           FILE_LOG(logDEBUG) <<  "b4pos [" << b4pos << "]" << endl;
00371           FILE_LOG(logDEBUG) <<  "b4pos - b0find [" << b4pos - b0find << "]" << endl;
00372 
00373           ui16 gap = 48;
00374           
00375           if ( testMicroroc == true ) { gap = 46 ;}
00376     
00377           if ( b4pos - b0find == gap )
00378           {
00379             find = true;
00380           }
00381         }
00382         while  (b4pos != string::npos && find == false );
00383       }
00384       while ( !find );
00385 
00386       b0Pos = b0Pos + 18 + 2 ;  // position du B0
00387       FILE_LOG(logDEBUG) <<  " b0Pos = b0Pos + 18 + 2 [" << b0Pos << "]" << endl;
00388       fseek(inputFile, b0Pos, SEEK_SET);
00389 
00390       // File after position "B0"
00391       // Here we are sure to be at the correct position in the file to start
00392 
00393       this->setComputeCrcFlag(true);
00394       
00395       FILE_LOG(logDEBUG) << "crc->compute(0xB0)[ "<< crc <<"]"   << endl;
00396       crc->compute(0xB0);
00397 
00398       // New DIF
00399       difId = getData(inputFile, 1);
00400       if ( scReader   ) { scReader->parseSC(difId); } 
00401       FILE_LOG(logDEBUG) << "!!!  difId[0x"<< hex  << difId << "]" <<  endl;
00402 
00403       //fseek(inputFile, 42, SEEK_CUR);
00404       //fseek(inputFile, 44, SEEK_CUR);
00405       ui16 skip = 22;
00406       if ( testMicroroc == true ) { skip = 21 ;}
00407       for ( int i = 0 ; i < skip ; i++) {
00408         int foo = getData(inputFile,1);
00409 //      FILE_LOG(logINFO) << (hex) << "  foo[" << foo << "]" <<  endl;
00410       }
00411       // Fichier avant la position "B4"
00412       // New B4 Tag
00413 
00414       int dataHeader = getData(inputFile, 1);
00415       FILE_LOG(logDEBUG1) << (hex) << "  dataHeader[" << dataHeader << "]" <<  endl;
00416 
00417       if (dataHeader == 0xB4)
00418       {
00419         FILE_LOG(logDEBUG1) << "  data header B4 found" << endl;
00420       }
00421       else
00422       {
00423          FILE_LOG(logERROR) << "  parsing file error. data header error : " << hex << dataHeader << dec << endl;
00424          return EVENT_ERROR;
00425       }
00426 
00427       newDif = false;
00428     }
00429 
00430 
00431 
00432     if ( newHR)
00433     {
00434           FILE_LOG(logDEBUG) <<  "New MR !" << endl;
00435 
00436        // VERIF TAG A3 pas de skip. Dans le cas ou aucun des chips ne repond
00437       //    if ( checkData(inputFile, 1) == 0xA3)
00438        //   {
00439         //     FILE_LOG(logERROR) <<  "ERROR TAG A3 just after newHR for DAC values:[" << dac[0] << "," << dac[1] << "," << dac[2] << "]" << endl;
00440          //    return EVENT_ERROR;
00441          // }
00442        // On skip les insultes du microroc
00443        //fseek ( inputFile, 40, SEEK_CUR);
00444        newHR = false;
00445     }
00446 
00447 
00448     // On Verifie en hexadecimal que l'on a pas de tag A0
00449     // Pour une Dif, lit ChipId + BCId + donnee
00450     // get Chip Id. Warning ! Decimal
00451 
00452     int chipId = -1;
00453     // On doit lire 2 fois car le tag A3 est en Hexedecimal alors que le chipId est en decimal
00454     int foo = getData(inputFile , 1);
00455     if ( foo == 0xA3)
00456     { // Fin de donnees chip(HR)
00457       FILE_LOG(logDEBUG) << " -------- TAG A3  force newHR to true " <<  endl;
00458       newHR = true;
00459       foo = getData(inputFile , 1);
00460       if ( foo == 0xA0 )
00461       {
00462         newDif = true;
00463         FILE_LOG(logDEBUG1) << " -------- Tag A0 derriere A3 " <<  endl;
00464         // Stop CRC computation 
00465 
00466         this->setComputeCrcFlag(false);
00467         unsigned short CRC_check = getData(inputFile , 2 ); // READ CRC
00468         FILE_LOG(logDEBUG1) << hex << " Compute CRC[" << crc->getCrc() << "]" <<  endl;
00469         FILE_LOG(logDEBUG1) << hex << " Received CRC[" << CRC_check << "]" <<  endl;
00470         if ( CRC_check != crc->getCrc() )
00471         {
00472           FILE_LOG(logERROR) << " CRC Error " << endl;
00473           exit(-1);
00474         }
00475         
00476         try {
00477           foo = getData(inputFile, 1 );
00478         }
00479         catch ( MicroException &e) 
00480         {
00481           foo = 0;
00482         }
00483         if ( foo != 0xB0)
00484         {
00485           // On verifie si apres la ligne separatrice  "-----------------"c'est une nouvelle acquisition on des nouvelles valeur de DAC
00486           if (  getLine ( inputFile, line) == EOF ) { return LAST_FILE_EVENT ;}  // ligne separatrice ---------------
00487           if (checkNextLine(inputFile,"acquisition") )
00488           {
00489             newDif = true;
00490           }
00491           else 
00492           {
00493             newCalibration = true;
00494             FILE_LOG(logDEBUG1) << " -------- Pas de B0 derrire le CRC donc newCalibration = true " <<  endl;
00495           }
00496         }
00497         else 
00498         {
00499           FILE_LOG(logDEBUG1) << " -------- B0 derrire le CRC donc Dif  " <<  endl;
00500         }
00501       }
00502       return getNextEvent( event);
00503     }
00504     else
00505     { // Pas Fin de donnees chip(HR)
00506       fseek ( inputFile, -2, SEEK_CUR);
00507       chipId = getData(inputFile, 1, false);
00508 
00509 
00510     // get bcid
00511     int bcId = getData(inputFile, 3);
00512     FILE_LOG(logDEBUG1) << (hex) << "  bcid[" << bcId << "]" <<  endl;
00513 
00514 
00515     // the following data is repeated one time for each Dif which has sent data
00516 
00517     bool difFound = false;
00518     Detector& detector = run.getDetector();
00519     { const ChamberMap_t &chambers = detector.getChambers();
00520       for (ChamberMap_t::const_iterator it = chambers.begin(); it != chambers.end(); ++it) {
00521         try {
00522           Chamber& chamber = *(it->second);
00523           const BoardMap_t& boards = chamber.getBoardsByDifId(difId);
00524         }
00525         catch (...) {
00526           // any error case - try next chamber
00527           continue;
00528         }
00529 
00530         // the DIF has been found in a chamber. Process all data and continue
00531         difFound = true;
00532         break;
00533       } // for
00534       if (!difFound) {
00535         FILE_LOG(logERROR) << "    No dif found with Id 0x" << hex << difId << dec << endl;
00536         return EVENT_ERROR;
00537       }
00538     }
00539 
00540    // trigger data for 64 channels : 1 bit trigger1, 1 bit trigger0 for each channel from 63 downto 0.
00541         // this makes 2-bit values which should not give bit 1 without bit 0
00542 
00543         int canal[16]={0};
00544         for (int chNum = 48; chNum >= 0; chNum -= 16) {
00545                 unsigned int data4;
00546           try {
00547               data4 = getData(inputFile, 4); // on lit 4 Bytes => 8 cara => 16 cannaux
00548           }
00549           catch ( MicroException &e) 
00550           {
00551               continue;
00552           }
00553 
00554 
00555           int index = 0;
00556           for ( index = 0; index <= 15 ; index++)
00557           {
00558             // sur les 16 canaux, on recupere les donnees canal par canal
00559             canal[index] = (data4 >> ((15 - index )* 2 )) & 0x03; // 2 Most Significant Bits of the digi
00560 
00561 // MODIF BY RENAUD 9 march 2012 to deal with 2 testboard without changing Labview
00562 //            if ( motif[index+chNum])
00563             {
00564 //              if (canal[index]!=0){
00565               {
00566                 if ( newHit(event, detector, canal[index], index + chNum    , chipId, difId) != 1 )
00567                                         {
00568 // Format de donées non valid, on cherche une balise A3 pour tenter de recuperer les prochain evemements
00569                   try 
00570                   {
00571                         foo =  getData(inputFile, 1) ;
00572                         while (  foo != 0xA3 )
00573                                                       {
00574                           foo =  getData(inputFile, 1) ;
00575                                                       }
00576                     }
00577                                                   catch ( MicroException &e) 
00578                     {
00579                       FILE_LOG(logINFO) << "End of line 0xA3 not Found !!!" << endl; 
00580                                                           newDif = true;
00581 //                    event.setId(++lastEventId);
00582                     //FILE_LOG(logDEBUG1) << "  STORE EVENT " << lastEventId << ", " << nbHits << " hits" << endl;
00583                     //return EVENT_CORRECT;
00584                     }
00585                                         }
00586                                         else 
00587                                         {//, dac);
00588                         nbHits++;
00589                                 }}
00590                }
00591           }
00592       }
00593 
00594       event.setId(++lastEventId);
00595       FILE_LOG(logDEBUG1) << "  STORE EVENT " << lastEventId << ", " << nbHits << " hits" << endl;
00596       return EVENT_CORRECT;
00597     }
00598 
00599 }

unsigned int CalibMicrorocParser::getData ( FILE *  inputFile,
const int  nBytes,
bool  computeCRC = true 
) [private]

Definition at line 632 of file CalibMicrorocParser.cpp.

Referenced by checkData(), and getNextEvent().

00632                                                                                             {
00633   unsigned int result = 0;
00634   for (int byte = 0; byte < nBytes; ++byte) {
00635     int data = 0;
00636     if (fscanf(inputFile, "%2x", &data) != 1) {
00637             throw MicroException("get data: fcanf error");
00638 
00639 //      return(0);
00640     }
00641     result = (result << 8) + data;
00642     if ( computeCrc && computeCRC) {
00643       crc->compute(data) ;
00644     }
00645 
00646   }
00647   return(result);
00648 } 

unsigned int CalibMicrorocParser::getDecimalData ( FILE *  inputFile,
const int  nBytes 
) [private]

Definition at line 653 of file CalibMicrorocParser.cpp.

00653                                                                                   {
00654   unsigned int result = 0;
00655   for (int byte = 0; byte < nBytes; ++byte) {
00656     int data = 0;
00657     if (fscanf(inputFile, "%2d", &data) != 1) {
00658       return(0);
00659     }
00660     result = (result << 8) + data;
00661   }
00662   return(result);
00663 } 

unsigned int CalibMicrorocParser::checkData ( FILE *  inputFile,
const int  nBytes 
) [private]

Definition at line 622 of file CalibMicrorocParser.cpp.

00622                                                                              {
00623 
00624     int curPos = ftell(inputFile);
00625     unsigned int result = getData(inputFile, nBytes);
00626     fseek(inputFile,curPos,SEEK_SET);
00627     return result;
00628 }

int CalibMicrorocParser::getDacValue ( std::string  line  )  [private]

Referenced by getNextEvent().

void CalibMicrorocParser::setMotifValue ( std::string  line  )  [private]

Referenced by initParsing().

void CalibMicrorocParser::setChargeValue ( std::string  line  )  [private]

Referenced by initParsing().

unsigned int CalibMicrorocParser::grayToBinary ( unsigned int  gray  )  [private]

Reimplemented from AcquisitionParser.

int CalibMicrorocParser::newHit ( Event event,
const Detector detector,
int  data,
const int  chNum,
const int  chipId,
const int  difId 
) [private]

Definition at line 668 of file CalibMicrorocParser.cpp.

Referenced by getNextEvent().

00669 {
00670 
00671   if ( data != 0 )
00672   {
00673     const ChamberMap_t &chambers = detector.getChambers();
00674     for (ChamberMap_t::const_iterator it = chambers.begin(); it != chambers.end(); ++it) {
00675       try {
00676         Chamber& chamber = *(it->second);
00677         const BoardMap_t& boards = chamber.getBoardsByDifId(difId);
00678         // look for type of chamber
00679         //if (chamber.getType() != HARDROC1CHAMBER)
00680         //  continue;
00681         // store new event data
00682         try {
00683           const Channel& channel = chamber.getChannelById(chNum, chipId, difId);
00684           i16 analogValue = 0;
00685           //ChannelHit *hit = new ChannelHit(channel, data, analogValue, dac);
00686           ChannelHit *hit = new ChannelHit(channel, data, analogValue);
00687           event.insertHit(chamber, hit);
00688           FILE_LOG(logDEBUG1) << "      new Hit : ch " << chNum << ", chip " << chipId << ", dif " << difId
00689                             << " Data=" << data << " , x:" << channel.getX() << ", y:" << channel.getY() << endl;
00690           return(1);
00691         }
00692         catch (MicroException &e) {
00693           FILE_LOG(logERROR) << "ch " << chNum << ", chip " << chipId << ", dif " << difId << " : " << e.getMessage() << endl;
00694           return(0);
00695         }
00696       }
00697       catch (...) {
00698         continue;
00699       }
00700 
00701     } // for
00702   
00703     return(0);
00704   }
00705   else
00706   { 
00707     return 1;
00708   }
00709 } 

string CalibMicrorocParser::binaire ( unsigned int  nombre  )  [private]

Definition at line 715 of file CalibMicrorocParser.cpp.

00716 {
00717 string res = "";
00718 unsigned int val = nombre;
00719 
00720 while (val != 0) {
00721 /* Invariant de boucle : code_binaire(val) + res = code_binaire(nombre) */
00722 
00723    if (val & 1 == 1) {
00724 res = string("1") + res;
00725 }
00726     else {
00727 /* val & 1 == 0 */
00728 res = string("0") + res;
00729 }
00730 
00731 val = val >> 1;
00732 }
00733 return res;
00734 }

void CalibMicrorocParser::reset (  )  [private]

Definition at line 73 of file CalibMicrorocParser.cpp.

Referenced by CalibMicrorocParser(), and getNextEvent().

00074 {
00075 init = false;
00076 newCalibration = true;
00077 newDif = true;
00078 newHR = true;
00079 FILE_LOG(logDEBUG) << " -------- reset  force newHR to true " <<  endl;
00080 difId = -1;
00081 dac[0] = -1;
00082 dac[1] = -1;
00083 dac[2] = -1;
00084 shaper[0] = -1;
00085 shaper[1] = -1;
00086 difId = -1;
00087 charge = 0.;
00088 
00089     for ( int i = 0; i < MOTIFNB; i++)
00090     {
00091         motif[i] = 0;
00092         }
00093 
00094 
00095 }

void CalibMicrorocParser::initParsing ( FILE *  inputFile  )  [private]

Definition at line 169 of file CalibMicrorocParser.cpp.

Referenced by getNextEvent().

00170 {
00171 
00172     string line;
00173     size_t found;
00174     // search charge (fC)
00175     do
00176     {
00177       if ( getLine ( inputFile, line) == EOF ) { return ;}
00178       found = line.find("charge (fC)" );
00179       if  (found!=string::npos)
00180       { 
00181         setChargeValue(line);
00182       }
00183       line.clear();
00184     }
00185     while  (found==string::npos);
00186     do
00187     {
00188        if ( getLine ( inputFile, line) == EOF ) { return ;}
00189        found = line.find("Chips en calibration" );
00190        line.clear();
00191     }
00192     while  (found==string::npos);
00193 
00194     // get motifCTest
00195     if ( getLine ( inputFile, line) == EOF ) { return ;}
00196     found = line.find(getCtestString() );
00197     if  (found!=string::npos)
00198     {
00199       setMotifValue(line);
00200     }
00201         else {
00202             found = line.find(CalibMicrorocParser::getCtestString() );
00203         if  (found!=string::npos)
00204         {
00205           setMotifValue(line);
00206         }
00207         }
00208 
00209 
00210 // Find slow control data
00211    do
00212     {
00213        if ( getLine ( inputFile, line) == EOF ) { return ;}
00214        found = line.find("donnees Slow-Control" );
00215        line.clear();
00216     }
00217     while  (found==string::npos);
00218      // "donnees Slow-Control"  found get value in following line
00219     if ( getLine ( inputFile, line) == EOF ) { return ;}
00220         // supression du retour chariot
00221      line = line.substr(0, line.size());
00222 //difId=80;
00223   //run.getDetector().getChambers().begin().first.getDifs().begin().fisrt.getId();
00224   scReader = new MicrorocSCReader(run,line,difId); 
00225 
00226 }

bool CalibMicrorocParser::checkNextLine ( FILE *  inputFile,
std::string  target 
) [private]

Referenced by getNextEvent().

virtual std::string CalibMicrorocParser::getCtestString ( void   )  [inline, private, virtual]

Reimplemented in TestMicrorocParser.

Definition at line 58 of file CalibMicrorocParser.hh.

Referenced by initParsing().

00058 {return "motif Ctest";} ;

int CalibMicrorocParser::getLine ( FILE *  file,
std::string &  line 
) [protected]

Referenced by TestMicrorocParser::getNextEvent(), getNextEvent(), and initParsing().


Member Data Documentation

MicrorocSCReader* CalibMicrorocParser::scReader [private]

Definition at line 58 of file CalibMicrorocParser.hh.

Referenced by getNextEvent(), and initParsing().

bool CalibMicrorocParser::init [private]

Definition at line 63 of file CalibMicrorocParser.hh.

Referenced by getNextEvent(), and reset().

bool CalibMicrorocParser::motif[MOTIFNB] [private]

Definition at line 64 of file CalibMicrorocParser.hh.

Referenced by reset().

float CalibMicrorocParser::charge [private]

Definition at line 65 of file CalibMicrorocParser.hh.

Referenced by reset().

bool CalibMicrorocParser::newCalibration [private]

Definition at line 66 of file CalibMicrorocParser.hh.

Referenced by getNextEvent(), and reset().

bool CalibMicrorocParser::newDif [private]

Definition at line 67 of file CalibMicrorocParser.hh.

Referenced by getNextEvent(), and reset().

bool CalibMicrorocParser::newHR [private]

Definition at line 68 of file CalibMicrorocParser.hh.

Referenced by getNextEvent(), and reset().

int CalibMicrorocParser::difId [private]

Definition at line 69 of file CalibMicrorocParser.hh.

Referenced by getNextEvent(), initParsing(), and reset().

int CalibMicrorocParser::dac[3] [private]

Definition at line 70 of file CalibMicrorocParser.hh.

Referenced by getNextEvent(), and reset().

char CalibMicrorocParser::shaper[2] [private]

Definition at line 71 of file CalibMicrorocParser.hh.

Referenced by reset().

bool CalibMicrorocParser::testMicroroc [private]

Definition at line 72 of file CalibMicrorocParser.hh.

Referenced by CalibMicrorocParser(), and getNextEvent().


The documentation for this class was generated from the following files:
Generated on Mon Jan 7 13:18:01 2013 for MicromegasFramework by  doxygen 1.4.7