FairRoot/PandaRoot
PndMvdPasta.cxx
Go to the documentation of this file.
1 /*
2  * PndMvdPasta.cxx
3  *
4  * Created on: 23.09.2017
5  * Author: Stockmanns
6  */
7 
8 #include <PndMvdPasta.h>
9 #include "mrftools.h"
10 
12 
14  // TODO Auto-generated constructor stub
15 
16 }
17 
19  // TODO Auto-generated destructor stub
20 }
21 
23 {
24  ULong_t tempTime = word;
25  ThresholdDataFullMode result;
26  result.tacId = tempTime & 0x3;
27  tempTime = tempTime >> 2;
28  result.channelId = tempTime & 0x3f;
29  tempTime = tempTime >> 8; //two bits are empty
30  result.t_eoc = mrftools::grayToBin(tempTime & 0x3ff);
31  tempTime = tempTime >> 10;
32  result.t_soc = mrftools::grayToBin(tempTime & 0x3ff);
33  tempTime = tempTime >> 10;
34  result.t_coarse = mrftools::grayToBin(tempTime & 0x3ff);
35 
36  return result;
37 }
38 
40 {
41  FrameHeader tempHeader;
42  ULong_t temp = word;
43  tempHeader.frameId = temp & 0xffffffff;
44  temp = temp >> 32;
45  tempHeader.nEvents = temp & 0xff;
46 
47  return tempHeader;
48 }
49 
50 std::vector<char> PndMvdPasta::ConvertData(std::vector<ULong64_t> frame)
51 {
52  std::vector<char> result;
53  for (int wordInFrame = 0; wordInFrame < frame.size() - 1; wordInFrame++){
54 // std::cout << "WordInFrame: " << std::hex << frame[wordInFrame] << std::endl;
55  for (int charInWord = 0; charInWord != 5; charInWord++){
56  char value = (frame[wordInFrame] >> ((4 - charInWord)*8)) & 0xff;
57  //std::cout << charInWord << " charInWord: " << std::hex << (int)value << std::endl;
58  result.push_back(value);
59  }
60  }
61  if (frame.size() % 2 == 0)
62  result.push_back(0x00);
63 // for (int charInWord = 0; charInWord != 2; charInWord++){
64 // char value = ((frame[frame.size()-1]) >> (1 - charInWord)*8);
65 // std::cout << charInWord << " charInWord: " << std::hex << (int)value << std::endl;
66 // result.push_back(value);
67 // }
68 
69  return result;
70 }
ThresholdDataFullMode AnalyzeThresholdWordFull(ULong64_t word)
Definition: PndMvdPasta.cxx:22
UInt_t grayToBin(UInt_t gray)
Converts gray encoded values to bianry values.
ULong64_t frameId
std::vector< char > ConvertData(std::vector< ULong64_t > frame)
Definition: PndMvdPasta.cxx:50
FrameHeader AnalyzeHeader(ULong64_t word)
Definition: PndMvdPasta.cxx:39
ClassImp(PndAnaContFact)
virtual ~PndMvdPasta()
Definition: PndMvdPasta.cxx:18