|
#include <sstream> |
|
|
#include <fstream> |
|
|
#include <stdlib.h> |
|
|
#include <stdio.h> |
|
|
#include <string.h> |
|
|
#include <ctype.h> |
|
|
#include <time.h> |
|
|
#include "Riostream.h" |
|
|
#include "TFile.h" |
|
|
#include "TDirectory.h" |
|
|
#include "TTree.h" |
|
|
#include "TLeafI.h" |
|
|
#include "TH1.h" |
|
|
#include "TH2.h" |
|
|
#include "TF1.h" |
|
|
#include "TMath.h" |
|
|
#include "TRandom.h" |
|
|
#include "TSQLServer.h" |
|
|
#include "TSystem.h" |
|
|
#include "CalibTrk1Event.h" |
|
|
#include "CalibTrk2Event.h" |
|
|
// |
|
| 1 |
#include "Digitizer.h" |
#include "Digitizer.h" |
|
#include "CRC.h" |
|
|
// |
|
|
#include <PamelaRun.h> |
|
|
#include <physics/calorimeter/CalorimeterEvent.h> |
|
|
#include <CalibCalPedEvent.h> |
|
|
#include "GLTables.h" |
|
| 2 |
|
|
| 3 |
void Digitizer::DigitizeRunHeader(){ |
void Digitizer::DigitizeRunHeader(){ |
| 4 |
const Int_t lenRH = fRunHeaderbuffer*2; |
const Int_t lenRH = fRunHeaderbuffer; // 37 not 54 |
| 5 |
UChar_t buffRH[lenRH]; |
UChar_t buffRH[lenRH]; |
| 6 |
UShort_t buffPSCU[8]; |
UShort_t buffPSCU[8]; |
| 7 |
UChar_t *p; |
UChar_t *p; |
| 8 |
p=buffRH; |
p=buffRH; |
| 9 |
|
|
| 10 |
// header: 16 bytes |
// header: 16 bytes |
| 11 |
DigitizePSCU(fRunHeaderbuffer*2,0x20,buffPSCU); |
// DigitizePSCU(fRunHeaderbuffer*2,0x20,buffPSCU); |
| 12 |
|
DigitizePSCU(0x25,0x20,buffPSCU); |
| 13 |
memcpy(p,buffPSCU,16*sizeof(UChar_t)); |
memcpy(p,buffPSCU,16*sizeof(UChar_t)); |
| 14 |
p+=16; |
p+=16; |
| 15 |
|
|
| 80 |
*(p++) = 0; |
*(p++) = 0; |
| 81 |
|
|
| 82 |
// crc (uint16) |
// crc (uint16) |
| 83 |
UShort_t crcRH = (UShort_t)CM_Compute_CRC16((UINT16)0, (BYTE*)&buffRH, (UINT32)(fRunHeaderbuffer*2-2)); |
UShort_t crcRH = (UShort_t)CM_Compute_CRC16((UINT16)0, (BYTE*)&buffRH, (UINT32)(fRunHeaderbuffer-1)); |
| 84 |
*(p++) = (UChar_t)(crcRH << 8); |
*(p++) = (UChar_t)(crcRH << 8); |
| 85 |
*p = (UChar_t)crcRH; |
*p = (UChar_t)crcRH; |
| 86 |
|
|
| 87 |
memcpy(fDataRunHeader,buffRH,fRunHeaderbuffer*sizeof(UShort_t)); |
memcpy(fDataRunHeader,buffRH,fRunHeaderbuffer*sizeof(UChar_t)); |
| 88 |
}; |
}; |
| 89 |
|
|
| 90 |
void Digitizer::DigitizeRunTrailer(){ |
void Digitizer::DigitizeRunTrailer(){ |
| 91 |
UChar_t buffRT[fRunTrailerbuffer*2]; |
UChar_t buffRT[fRunTrailerbuffer]; |
| 92 |
UShort_t buffPSCU[8]; |
UShort_t buffPSCU[8]; |
| 93 |
UChar_t *p; |
UChar_t *p; |
| 94 |
p=buffRT; |
p=buffRT; |
| 95 |
|
|
| 96 |
// header: 16 bytes |
// header: 16 bytes |
| 97 |
DigitizePSCU(fRunHeaderbuffer*2,0x21,buffPSCU); |
// DigitizePSCU(fRunHeaderbuffer*2,0x21,buffPSCU); |
| 98 |
|
DigitizePSCU(0x19,0x21,buffPSCU); |
| 99 |
memcpy(p,buffPSCU,16*sizeof(UChar_t)); |
memcpy(p,buffPSCU,16*sizeof(UChar_t)); |
| 100 |
p+=16; |
p+=16; |
| 101 |
|
|
| 134 |
*(p++) = 0; |
*(p++) = 0; |
| 135 |
|
|
| 136 |
// crc (uint16) |
// crc (uint16) |
| 137 |
UShort_t crcRT = (UShort_t)CM_Compute_CRC16((UINT16)0, (BYTE*)(buffRT), (UINT32)(fRunTrailerbuffer*2-2)); |
UShort_t crcRT = (UShort_t)CM_Compute_CRC16((UINT16)0, (BYTE*)(buffRT), (UINT32)(fRunTrailerbuffer-1)); |
| 138 |
*(p++) = (UChar_t)(crcRT << 8); |
*(p++) = (UChar_t)(crcRT << 8); |
| 139 |
*p = (UChar_t)crcRT; |
*p = (UChar_t)crcRT; |
| 140 |
|
|
| 141 |
memcpy(fDataRunTrailer,buffRT,fRunTrailerbuffer*sizeof(UShort_t)); |
memcpy(fDataRunTrailer,buffRT,fRunTrailerbuffer*sizeof(UChar_t)); |
| 142 |
}; |
}; |
| 143 |
|
|
| 144 |
void Digitizer::AddPadding(){ |
void Digitizer::AddPadding(){ |