FairRoot/PandaRoot
PndMvdPastaTorino.cxx
Go to the documentation of this file.
1 /*
2  * PndMvdPastaTorino.cxx
3  *
4  * Created on: 23.09.2017
5  * Author: Stockmanns
6  */
7 
8 #include <PndMvdPastaTorino.h>
9 
10 #include <fstream>
11 #include <iostream>
12 #include <string>
13 #include <sstream>
14 
16 
18  // TODO Auto-generated constructor stub
19 
20 }
21 
23  // TODO Auto-generated destructor stub
24 }
25 
26 std::vector<PndMvdPastaDigi> PndMvdPastaTorino::ReadTorinoDaqFrame(std::ifstream& infile)
27 {
28  std::vector<PndMvdPastaDigi> pastaDigis;
29 
30  std::string line;
31 
32  bool firstFrame = true;
33 
34  while (std::getline(infile, line))
35  {
36 // std::cout << "Line: " << line << std::endl;
37  if (line.find(":") != std::string::npos){
39  if (firstFrame == true)
40  firstFrame = false;
41  else
42  return pastaDigis;
43  } else {
46  digi.CalcTot();
47  digi.CalcTimeStamp();
48  pastaDigis.push_back(digi);
49  }
50  }
51 
52  return pastaDigis;
53 }
54 
56 {
57  FrameHeader header;
58  std::string separator;
59  std::stringstream ss(line);
60  ss >> header.frameId >> separator >> header.nEvents;
61  return header;
62 }
63 
65 {
66  PndMvdPastaDigi data;
68  std::stringstream ss(line);
69  ss >> time.t_coarse >> time.t_soc >> time.t_eoc >> time.channelId >> time.tacId >> energy.t_coarse >> energy.t_eoc;
70  energy.t_soc = time.t_soc;
71  energy.channelId = time.channelId;
72  energy.tacId = time.tacId;
73 
74  data.SetTimeBranch(time);
75  data.SetEnergyBranch(energy);
76 
77  return data;
78 }
TClonesArray * digi
void SetTimeBranch(ThresholdDataFullMode time)
void SetEnergyBranch(ThresholdDataFullMode energy)
PndMvdPastaDigi AnalyzeData(std::string &line)
ULong64_t frameId
void SetHeader(FrameHeader header)
ULong64_t CalcTimeStamp()
FrameHeader AnalyzeHeader(std::string &line)
FrameHeader fCurrentHeader
std::vector< PndMvdPastaDigi > ReadTorinoDaqFrame(std::ifstream &infile)
ClassImp(PndAnaContFact)
TFile infile("dedx_out.root","READ")
Double_t energy
Definition: plot_dirc.C:15