| 1 | /** @file | /** @file | 
| 2 | * $Source: /home/cvsmanager/yoda/techmodel/Calib2_Ac2Reader.cpp,v $ | * $Source: /afs/ba.infn.it/user/pamela/src/CVS/yoda/techmodel/Calib2_Ac2Reader.cpp,v $ | 
| 3 | * $Id: Calib2_Ac2Reader.cpp,v 2.5 2005/01/29 00:26:55 kusanagi Exp $ | * $Id: Calib2_Ac2Reader.cpp,v 6.2 2006/05/30 19:10:03 kusanagi Exp $ | 
| 4 | * $Author: kusanagi $ | * $Author: kusanagi $ | 
| 5 | * | * | 
| 6 | * Implementation of the Calib2_Ac2Reader class. | * Implementation of the Calib2_Ac2Reader class. | 
| 7 | */ | */ | 
| 8 |  |  | 
|  | #include <string> |  | 
| 9 | #include <log4cxx/logger.h> | #include <log4cxx/logger.h> | 
|  | #include <fstream> |  | 
|  | #include "stdio.h" |  | 
| 10 | extern "C" { | extern "C" { | 
| 11 | #include "CRC.h" | #include "CRC.h" | 
| 12 | #include "forroutines/anticounter/AC.h" | #include "forroutines/anticounter/AC.h" | 
| 13 | extern int ACcalib(int length, unsigned char* calibpointer, struct calibstruct* calibpointer); | extern int ACcalib(int length, unsigned char* calibpointer, struct calibstruct *calibpointer); | 
| 14 | } | } | 
| 15 |  |  | 
| 16 | #include "ReaderAlgorithms.h" | #include "ReaderAlgorithms.h" | 
| 33 | * Get a string with the version info of the algorithm. | * Get a string with the version info of the algorithm. | 
| 34 | */ | */ | 
| 35 | std::string Calib2_Ac2Reader::GetVersionInfo(void) const { | std::string Calib2_Ac2Reader::GetVersionInfo(void) const { | 
| 36 | return "$Header: /home/cvsmanager/yoda/techmodel/Calib2_Ac2Reader.cpp,v 2.5 2005/01/29 00:26:55 kusanagi Exp $\n"; | return "$Header: /afs/ba.infn.it/user/pamela/src/CVS/yoda/techmodel/Calib2_Ac2Reader.cpp,v 6.2 2006/05/30 19:10:03 kusanagi Exp $\n"; | 
| 37 | } | } | 
| 38 |  |  | 
| 39 | /** | /** | 
| 50 | * Unpack the CalibAc event from an input file. | * Unpack the CalibAc event from an input file. | 
| 51 | */ | */ | 
| 52 | void Calib2_Ac2Reader::RunEvent(int EventNumber, long int dataLength) throw (Exception){ | void Calib2_Ac2Reader::RunEvent(int EventNumber, long int dataLength) throw (Exception){ | 
| 53 |  |  | 
| 54 | char   *subData = new char[dataLength]; | char   *subData = new char[dataLength]; | 
| 55 | struct calibstruct *output = {0}; | memset(subData,  0, dataLength*sizeof(char)); | 
| 56 |  | struct calibstruct output = {0}; | 
| 57 |  |  | 
| 58 | InputFile->read(subData, sizeof(unsigned char)*dataLength); | InputFile->read(subData, sizeof(unsigned char)*dataLength); | 
| 59 |  |  | 
| 60 | for (int i = 0; i < dataLength; i++){ | calib2_Ac2->ERROR = ACcalib(dataLength, (unsigned char*)subData, &output); | 
| 61 | printf("input2 %i   %x \n", i, subData[i]); | memcpy(calib2_Ac2->header,     output.header,     sizeof(output.header)); | 
| 62 | } | memcpy(calib2_Ac2->status,     output.status,     sizeof(output.status)); | 
| 63 |  | memcpy(calib2_Ac2->temp,       output.temp,       sizeof(output.temp)); | 
| 64 | calib2_Ac2->ERROR = ACcalib(dataLength, (unsigned char*)subData, output); | memcpy(calib2_Ac2->DAC1,       output.DAC1,       sizeof(output.DAC1)); | 
| 65 | memcpy(calib2_Ac2->header,     output->header,     sizeof(output->header)); | memcpy(calib2_Ac2->DAC2,       output.DAC2,       sizeof(output.DAC2)); | 
| 66 | memcpy(calib2_Ac2->status,     output->status,     sizeof(output->status)); | memcpy(calib2_Ac2->regist,     output.regist,     sizeof(output.regist)); | 
| 67 | memcpy(calib2_Ac2->temp,       output->temp,       sizeof(output->temp)); | memcpy(calib2_Ac2->time,       output.time,       sizeof(output.time)); | 
| 68 | memcpy(calib2_Ac2->DAC1,       output->DAC1,       sizeof(output->DAC1)); | calib2_Ac2->n_tr = output.n_tr; | 
| 69 | memcpy(calib2_Ac2->DAC2,       output->DAC2,       sizeof(output->DAC2)); | memcpy(calib2_Ac2->hitmap_tr,  output.hitmap_tr,  sizeof(output.hitmap_tr)); | 
| 70 | memcpy(calib2_Ac2->regist,     output->regist,     sizeof(output->regist)); | memcpy(calib2_Ac2->curve1,     output.curve1,     sizeof(output.curve1)); | 
| 71 | memcpy(calib2_Ac2->time,       output->time,       sizeof(output->time)); | memcpy(calib2_Ac2->curve2,     output.curve2,     sizeof(output.curve2)); | 
| 72 | calib2_Ac2->n_tr = output->n_tr; | calib2_Ac2->iCRC        = output.iCRC; | 
| 73 | memcpy(calib2_Ac2->hitmap_tr,  output->hitmap_tr,  sizeof(output->hitmap_tr)); | calib2_Ac2->tail        = output.tail; | 
| 74 | memcpy(calib2_Ac2->curve1,     output->curve1,     sizeof(output->curve1)); | calib2_Ac2->CRC         = output.CRC; | 
| 75 | memcpy(calib2_Ac2->curve2,     output->curve2,     sizeof(output->curve2)); | calib2_Ac2->CRCcheck    = output.CRCcheck; | 
|  | calib2_Ac2->iCRC        = output->iCRC; |  | 
|  | calib2_Ac2->tail        = output->tail; |  | 
|  | calib2_Ac2->CRC         = output->CRC; |  | 
|  | calib2_Ac2->CRCcheck    = output->CRCcheck; |  | 
|  |  |  | 
| 76 |  |  | 
| 77 | //delete [] subData; | //delete [] subData; | 
| 78 | } | } |