musrsim/musrSimAna/musrWriteDump.hh
Kamil Sedlak 4d069f990c 22.11.2011 Kamil Sedlak
Two files which I forgot to submitt to svn last time are now added.
2011-11-22 12:03:49 +00:00

60 lines
2.0 KiB
C++

#ifndef musrWriteDump_h
#define musrWriteDump_h 1
#include <iostream>
#include <fstream>
#include <map>
#include <TSystem.h>
class musrWriteDump {
public :
musrWriteDump(char* name, int clock_ch, int maxTimeBinJitter);
~musrWriteDump();
void send_to_dump(unsigned int channel, Long64_t tdcBin, int flush);
void flush_to_dump();
private:
int write_to_dump(unsigned int channel, unsigned int tdctime, int flush);
static const int N_TDC_CHANNELS = 32;
static const int TDC_BIT_RANGE = 524288;
static const int CLOCK_INTERVAL = 512000;
static const int MAX_NUMBER_LWORDS = 1024;
int MAX_TIME_JITTER;
int clock_channel;
Long64_t tdcBin0;
// 32 bit unsigned integer
static unsigned int get_lwords; // number of lwords in blt_data
static unsigned int blt_data[MAX_NUMBER_LWORDS]; // data buffer
static FILE *fpw; // handle to write TDC dump file
static std::ofstream textDumpFile;
typedef unsigned short int WORD;
typedef unsigned long int DWORD;
typedef struct _v1190data {
// TDC V1290
// DWORD data:21; // TDC V1290A measurement (21bit@25ps, 19bit @100ps & @200ps,
// WORD channel:5; // 17bit@800ps) 32 channel for TDC V1290A
// // 16 channel for TDC V1290N
// TDC V1190
DWORD data:19; // TDC V1190 measurement (19bit@100 & @200, 17bit@800ps)
WORD channel:7; // 128 channel for TDC V1190A, 64 channel for TDC V1190B
//
WORD edge:1; // 0 -> leading edge, 1 -> trailing edge
WORD buffer:3; // 000 -> TDC measurement, 100 -> TDC error
WORD filler:2; // 00 -> TDC data
} V1190_DATA;
std::multimap <Long64_t, int> kamilHitMultimap;
std::multimap <Long64_t, int>::iterator it;
std::multimap <Long64_t, int>::iterator it1;
std::multimap <Long64_t, int>::iterator it2;
std::multimap <Long64_t, int>::iterator it3;
std::multimap <Long64_t, int>::iterator it4;
std::multimap <Long64_t, int>::iterator it5;
std::multimap <Long64_t, int>::iterator it6;
};
#endif