FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
PndMvdReadInTBDataTask Class Reference

#include <PndMvdReadInTBDataTask.h>

Inheritance diagram for PndMvdReadInTBDataTask:

Public Member Functions

 PndMvdReadInTBDataTask ()
 
virtual ~PndMvdReadInTBDataTask ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual InitStatus ReInit ()
 
virtual void Exec (Option_t *opt)
 
virtual void FinishEvent ()
 
void SetFrequency (Double_t val)
 
void SetNumberOfFrontEnds (Int_t numberfe)
 
virtual void AddFile (Int_t asic, std::string fileName)
 

Protected Member Functions

void WriteoutToPix4Digi (PndSdsDigiTopix4 &data)
 
void WriteoutToPix4Frames (std::vector< std::vector< PndSdsDigiTopix4 > > &frames)
 

Private Member Functions

void Register ()
 
void Reset ()
 
 ClassDef (PndMvdReadInTBDataTask, 1)
 

Private Attributes

std::vector< std::vector
< std::string > > 
fFileNames
 
std::vector< std::ifstream * > fFileHandles
 
std::vector
< PndMvdReadInToPix4TBData * > 
fReader
 
std::vector< Bool_tfEndOfFile
 
UInt_t fEvent
 
TClonesArray * fDigiArray
 
TClonesArray * fFrameHeaderArray
 
TClonesArray * fAllFrameHeaderArray
 
Bool_t fInitDone
 
Double_t fClockFrequency
 

Detailed Description

Definition at line 12 of file PndMvdReadInTBDataTask.h.

Constructor & Destructor Documentation

PndMvdReadInTBDataTask::PndMvdReadInTBDataTask ( )

Definition at line 25 of file PndMvdReadInTBDataTask.cxx.

25  :
26  FairTask("MVDReadInTBDataTask"), fClockFrequency(50), fEvent(0)
27 {
28 }
PndMvdReadInTBDataTask::~PndMvdReadInTBDataTask ( )
virtual

Definition at line 30 of file PndMvdReadInTBDataTask.cxx.

References fReader, and i.

31 {
32  for (int i = 0; i < fReader.size(); i++){
33  delete(fReader[i]);
34  }
35  fReader.clear();
36 }
Int_t i
Definition: run_full.C:25
std::vector< PndMvdReadInToPix4TBData * > fReader

Member Function Documentation

virtual void PndMvdReadInTBDataTask::AddFile ( Int_t  asic,
std::string  fileName 
)
inlinevirtual

Definition at line 30 of file PndMvdReadInTBDataTask.h.

References fFileNames.

Referenced by readInTopix4TBData().

30  {
31  std::cout << "File Added to asic " << asic-1 << " fileName " << fileName << std::endl;
32  if (fFileNames.size() < asic){
33  fFileNames.resize(asic);
34  }
35  fFileNames[asic-1].push_back(fileName);
36  };
std::vector< std::vector< std::string > > fFileNames
PndMvdReadInTBDataTask::ClassDef ( PndMvdReadInTBDataTask  ,
 
)
private
void PndMvdReadInTBDataTask::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 84 of file PndMvdReadInTBDataTask.cxx.

References Bool_t, fEndOfFile, fEvent, fReader, fVerbose, i, and WriteoutToPix4Frames().

85 {
86  if (fEvent % 10000 == 0) {
87  std::cout << "PndMvdReadInTBDataTask::Exec called - Event " <<std::dec<< fEvent << std::endl;
88  }
89  fEvent++;
90 
91  for(int i = 0; i < fReader.size(); i++){
92  if (fEndOfFile[i] != kTRUE){
93  if (fVerbose > 1)
94  std::cout << std::endl << "Reader: " << i << " running " << std::endl;
95  std::vector<std::vector<PndSdsDigiTopix4> > data;
96  fEndOfFile[i] = fReader[i]->ReadInData(data);
98  }
99  }
100  Bool_t endOfFiles = kTRUE;
101  for (int j = 0; j < fEndOfFile.size(); j++){
102  endOfFiles &= fEndOfFile[j];
103  }
104  if (endOfFiles == kTRUE){
105  std::cout << "Number of: " << std::endl;
106  for(int i = 0; i < fReader.size(); i++){
107  UInt_t nonSequential = fReader[i]->GetNonSequenctialFC();
108  std::cout << i << " : non sequential header " << nonSequential
109  << " double header: " << fReader[i]->GetDoubleHeader()
110  << " double trailer: " << fReader[i]->GetDoubleTrailer() << std::endl;
111  std::cout << i << " SuperFrameCount: " << fReader[i]->GetSuperFrameCount() << std::endl;
112 
113  std::cout << i << " Total Header Count : " << fReader[i]->GetTotalHeaderCount() << std::endl;
114  std::cout << i << " Total Trailer Count : " << fReader[i]->GetTotalTrailerCount() << std::endl;
115 
116  std::cout << i << " Total (build) Frames : " << fReader[i]->GetTotalFrameCount() << std::endl;
117  std::cout << i << " Hamming Loss Frame Count: " << fReader[i]->GetHammingLossFrameCount() << std::endl;
118  std::cout << i << " CRC Loss Frame Count: " << fReader[i]->GetCRCLossFrameCount() << std::endl;
119  std::cout << i << " Correct Frame Count: " << fReader[i]->GetCorrectFrameCount() << std::endl;
120 
121  std::cout << i << " Total Hits : " << fReader[i]->GetTotalHitCount() << std::endl;
122  std::cout << i << " Pre Frame Loss Hit Count : " << fReader[i]->GetPreFrameLossHitCount() << std::endl;
123  std::cout << i << " Hamming Loss Hit Count : " << fReader[i]->GetHammingLossHitCount() << std::endl;
124  std::cout << i << " CRC Loss Hit Count : " << fReader[i]->GetCRCLossHitCount() << std::endl;
125  std::cout << i << " Correct Hit Count : " << fReader[i]->GetCorrectHitCount() << std::endl;
126 
127  }
128  FairRootManager::Instance()->SetFinishRun(kTRUE);
129  }
130 
131 }
int fVerbose
Definition: poormantracks.C:24
std::vector< Bool_t > fEndOfFile
Int_t i
Definition: run_full.C:25
void WriteoutToPix4Frames(std::vector< std::vector< PndSdsDigiTopix4 > > &frames)
std::vector< PndMvdReadInToPix4TBData * > fReader
void PndMvdReadInTBDataTask::FinishEvent ( )
virtual

Definition at line 133 of file PndMvdReadInTBDataTask.cxx.

References fDigiArray, and fFrameHeaderArray.

134 {
135  fDigiArray->Delete();
136  fFrameHeaderArray->Delete();
137 // fAllFrameHeaderArray->Delete();
138 }
InitStatus PndMvdReadInTBDataTask::Init ( )
virtual

Definition at line 50 of file PndMvdReadInTBDataTask.cxx.

References fClockFrequency, fDigiArray, fEndOfFile, fFileNames, fFrameHeaderArray, fInitDone, fReader, fVerbose, and i.

51 {
52  FairRootManager* ioman = FairRootManager::Instance();
53  std::cout << "PndMvdReadInTBDataTask::Init start of Init" << std::endl;
54 
55  if ( ! ioman )
56  {
57  std::cout << "-E- PndMvdReadInTBDataTask::Init: "
58  << "RootManager not instantiated!" << std::endl;
59  return kFATAL;
60  }
61 
62  for (int i = 0; i < fFileNames.size(); i++) {
63  std::cout << "PndMvdReadInTBDataTask::Init FileName: " << fFileNames[i][0] << std::endl;
64  fReader.push_back(new PndMvdReadInToPix4TBData());
65  fEndOfFile.push_back(kFALSE);
66  fReader[i]->SetFileName(fFileNames[i]);
67  fReader[i]->SetClockFrequency(fClockFrequency);
68  fReader[i]->SetVerbose(fVerbose);
69  fReader[i]->SetFE(i+1);
70  std::cout << "PndMvdReadInTBDataTask::Init before Reader Init" << std::endl;
71  fReader[i]->Init();
72  }
73 
74  fDigiArray = ioman->Register("ToPix4Hits", "PndSdsDigiTopix4", "MVD", kTRUE);
75  fFrameHeaderArray = ioman->Register("ToPix4FrameHeader","PndSdsDigiTopix4Header","MVD", kTRUE);
76  // fAllFrameHeaderArray = ioman->Register("AllToPix4FrameHeader","PndSdsDigiTopix4Header","MVD", kTRUE);
77 
78  std::cout << "-I- PndMvdReadInTBDataTask: Initialisation successfull" << std::endl;
79  fInitDone = kTRUE;
80  return kSUCCESS;
81 }
int fVerbose
Definition: poormantracks.C:24
std::vector< Bool_t > fEndOfFile
Int_t i
Definition: run_full.C:25
std::vector< PndMvdReadInToPix4TBData * > fReader
std::vector< std::vector< std::string > > fFileNames
void PndMvdReadInTBDataTask::Register ( )
private
InitStatus PndMvdReadInTBDataTask::ReInit ( )
virtual

Definition at line 43 of file PndMvdReadInTBDataTask.cxx.

References fInitDone.

44 {
45  fInitDone = kTRUE;
46  return kSUCCESS;
47 }
void PndMvdReadInTBDataTask::Reset ( )
private
void PndMvdReadInTBDataTask::SetFrequency ( Double_t  val)
inline

Definition at line 27 of file PndMvdReadInTBDataTask.h.

References fClockFrequency, and val.

Referenced by readInTopix4TBData().

Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
void PndMvdReadInTBDataTask::SetNumberOfFrontEnds ( Int_t  numberfe)

Definition at line 140 of file PndMvdReadInTBDataTask.cxx.

References fFileNames, and i.

141 {
142  for(int i=0; i< numberfrontends; i++)
143  {
144  std::vector<std::string> vector;
145  fFileNames.push_back(vector);
146  }
147 }
Int_t i
Definition: run_full.C:25
std::vector< std::vector< std::string > > fFileNames
void PndMvdReadInTBDataTask::SetParContainers ( )
virtual

Virtual method Init

Definition at line 38 of file PndMvdReadInTBDataTask.cxx.

References rtdb.

39 {
40  FairRuntimeDb* rtdb = FairRunAna::Instance()->GetRuntimeDb();
41 }
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
void PndMvdReadInTBDataTask::WriteoutToPix4Digi ( PndSdsDigiTopix4 data)
protected

Definition at line 149 of file PndMvdReadInTBDataTask.cxx.

References fDigiArray.

Referenced by WriteoutToPix4Frames().

150 {
151  new ((*fDigiArray)[fDigiArray->GetEntriesFast()]) PndSdsDigiTopix4(data);
152 }
Data class to store the digi output of a pixel module.
void PndMvdReadInTBDataTask::WriteoutToPix4Frames ( std::vector< std::vector< PndSdsDigiTopix4 > > &  frames)
protected

Definition at line 154 of file PndMvdReadInTBDataTask.cxx.

References WriteoutToPix4Digi().

Referenced by Exec().

155 {
156  for (auto it1 : frames){
157  for(auto it2 : it1) {
158  WriteoutToPix4Digi(it2);
159  }
160  }
161 }
void WriteoutToPix4Digi(PndSdsDigiTopix4 &data)

Member Data Documentation

TClonesArray* PndMvdReadInTBDataTask::fAllFrameHeaderArray
private

Definition at line 54 of file PndMvdReadInTBDataTask.h.

Double_t PndMvdReadInTBDataTask::fClockFrequency
private

Definition at line 57 of file PndMvdReadInTBDataTask.h.

Referenced by Init(), and SetFrequency().

TClonesArray* PndMvdReadInTBDataTask::fDigiArray
private

Definition at line 52 of file PndMvdReadInTBDataTask.h.

Referenced by FinishEvent(), Init(), and WriteoutToPix4Digi().

std::vector<Bool_t> PndMvdReadInTBDataTask::fEndOfFile
private

Definition at line 48 of file PndMvdReadInTBDataTask.h.

Referenced by Exec(), and Init().

UInt_t PndMvdReadInTBDataTask::fEvent
private

Definition at line 50 of file PndMvdReadInTBDataTask.h.

Referenced by Exec().

std::vector<std::ifstream*> PndMvdReadInTBDataTask::fFileHandles
private

Definition at line 46 of file PndMvdReadInTBDataTask.h.

std::vector<std::vector<std::string> > PndMvdReadInTBDataTask::fFileNames
private

Definition at line 43 of file PndMvdReadInTBDataTask.h.

Referenced by AddFile(), Init(), and SetNumberOfFrontEnds().

TClonesArray* PndMvdReadInTBDataTask::fFrameHeaderArray
private

Definition at line 53 of file PndMvdReadInTBDataTask.h.

Referenced by FinishEvent(), and Init().

Bool_t PndMvdReadInTBDataTask::fInitDone
private

Definition at line 56 of file PndMvdReadInTBDataTask.h.

Referenced by Init(), and ReInit().

std::vector<PndMvdReadInToPix4TBData*> PndMvdReadInTBDataTask::fReader
private

Definition at line 47 of file PndMvdReadInTBDataTask.h.

Referenced by Exec(), Init(), and ~PndMvdReadInTBDataTask().


The documentation for this class was generated from the following files: