/[PAMELA software]/yoda/techmodel/Calib2_Ac2Reader.cpp
ViewVC logotype

Diff of /yoda/techmodel/Calib2_Ac2Reader.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2.3 by kusanagi, Tue Dec 21 16:50:45 2004 UTC revision 6.2 by kusanagi, Tue May 30 19:10:03 2006 UTC
# Line 1  Line 1 
1  /** @file  /** @file
2   * $Source: /home/cvsmanager/yoda/techmodel/Calib2_Ac2Reader.cpp,v $   * $Source: /home/cvsmanager/yoda/techmodel/Calib2_Ac2Reader.cpp,v $
3   * $Id: Calib2_Ac2Reader.cpp,v 2.2 2004/12/20 14:15:13 kusanagi Exp $   * $Id: Calib2_Ac2Reader.cpp,v 6.1 2006/05/30 19:10:01 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"
# Line 36  Calib2_Ac2Reader::Calib2_Ac2Reader(void) Line 33  Calib2_Ac2Reader::Calib2_Ac2Reader(void)
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.2 2004/12/20 14:15:13 kusanagi Exp $\n";    return "$Header: /home/cvsmanager/yoda/techmodel/Calib2_Ac2Reader.cpp,v 6.1 2006/05/30 19:10:01 kusanagi Exp $\n";
37  }  }
38    
39  /**  /**
# Line 53  void Calib2_Ac2Reader::Init(PamelaRun *r Line 50  void Calib2_Ac2Reader::Init(PamelaRun *r
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){
   char   subData[dataLength];  
   struct calibstruct output[2] = {0};  
   int ERROR;  
53    
54        char   *subData = new char[dataLength];
55        struct calibstruct output = {0};
56    
57      InputFile->read(subData, sizeof(unsigned char)*dataLength);      InputFile->read(subData, sizeof(unsigned char)*dataLength);
     calib2_Ac2->ERROR = ACcalib(dataLength, (unsigned char*)subData, output);  
     for(int i = 0; i<2; i++){  
         memcpy(calib2_Ac2->header[i],     output[i].header,     sizeof(output[i].header));  
         memcpy(calib2_Ac2->status[i],     output[i].status,     sizeof(output[i].status));  
         memcpy(calib2_Ac2->temp[i],       output[i].temp,       sizeof(output[i].temp));  
         memcpy(calib2_Ac2->DAC1[i],       output[i].DAC1,       sizeof(output[i].DAC1));  
         memcpy(calib2_Ac2->DAC2[i],       output[i].DAC2,       sizeof(output[i].DAC2));  
         memcpy(calib2_Ac2->regist[i],     output[i].regist,     sizeof(output[i].regist));  
         memcpy(calib2_Ac2->time[i],       output[i].time,       sizeof(output[i].time));  
         calib2_Ac2->n_tr[i] = output[i].n_tr;  
         memcpy(calib2_Ac2->hitmap_tr[i],  output[i].hitmap_tr,  sizeof(output[i].hitmap_tr));  
         memcpy(calib2_Ac2->curve1[i],     output[i].curve1,     sizeof(output[i].curve1));  
         memcpy(calib2_Ac2->curve2[i],     output[i].curve2,     sizeof(output[i].curve2));  
         calib2_Ac2->iCRC[i] = output[i].iCRC;  
         calib2_Ac2->tail[i] = output[i].tail;  
         calib2_Ac2->CRC[i]  = output[i].CRC;  
     }  
58    
59        calib2_Ac2->ERROR = ACcalib(dataLength, (unsigned char*)subData, &output);
60        memcpy(calib2_Ac2->header,     output.header,     sizeof(output.header));
61        memcpy(calib2_Ac2->status,     output.status,     sizeof(output.status));
62        memcpy(calib2_Ac2->temp,       output.temp,       sizeof(output.temp));
63        memcpy(calib2_Ac2->DAC1,       output.DAC1,       sizeof(output.DAC1));
64        memcpy(calib2_Ac2->DAC2,       output.DAC2,       sizeof(output.DAC2));
65        memcpy(calib2_Ac2->regist,     output.regist,     sizeof(output.regist));
66        memcpy(calib2_Ac2->time,       output.time,       sizeof(output.time));
67        calib2_Ac2->n_tr = output.n_tr;
68        memcpy(calib2_Ac2->hitmap_tr,  output.hitmap_tr,  sizeof(output.hitmap_tr));
69        memcpy(calib2_Ac2->curve1,     output.curve1,     sizeof(output.curve1));
70        memcpy(calib2_Ac2->curve2,     output.curve2,     sizeof(output.curve2));
71        calib2_Ac2->iCRC        = output.iCRC;
72        calib2_Ac2->tail        = output.tail;
73        calib2_Ac2->CRC         = output.CRC;
74        calib2_Ac2->CRCcheck    = output.CRCcheck;
75      
76      //delete [] subData;      //delete [] subData;
77    }    }

Legend:
Removed from v.2.3  
changed lines
  Added in v.6.2

  ViewVC Help
Powered by ViewVC 1.1.23