HARPO  5.1.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
pmm2print.cxx
Go to the documentation of this file.
1 /*
2  * Print PMM2 DetEvents from PMM2v2DAQ raw file.
3  * The option --from --to allow select printing region.
4  */
5 #include <cstdlib>
6 #include <cstdio>
7 #include <iostream>
8 
9 #include "HarpoConfig.h"
10 #include "Pmm2Reader.h"
11 #include "Pmm2Event.h"
12 
13 using namespace std;
14 
15 int main(int argc, char **argv)
16 {
17  Bool_t found = false;
18  Pmm2Header *hdr;
19  int rdformat = 1;
20 
21  HarpoConfig::gHReaderType = hDummyReader; //no high level reader
22 
23  HarpoConfig *cfg = new HarpoConfig(argc,argv,PMM2);
24  cfg->Init(); // read configuration file
25  int verbose = cfg->GetVerbose();
26  if(verbose) cfg->print();
27  if(verbose) gHDetSet->print();
28  rdformat = cfg->GetDetRdrType(PMM2);
29  if(verbose) cout << endl << "Pmm2 reader " << rdformat << endl;
30 
31  Pmm2Reader *rdr = new Pmm2Reader( cfg );
32  // cout << "cfg Det " << cfg->GetDet() << " rdr Det " << rdr->GetDet() << endl;
33  //rdr->SetDet(cfg->GetDet()); // FIXED
34 
35  rdr->SetReadOutMode(rdformat);
36 
37  if ( rdr->Init() ) {
38  hdr = rdr->GetDetHeader();
39  if(verbose) hdr->print();
40  }
41  else
42  {
43  printf ("Int ERROR exiting ...\n");
44  return 1;
45  }
46  if(verbose) printf("\nLooking for event %lld ...\n",cfg->GetFromEvent());
47 
48  found = rdr->Find(cfg->GetFromEvent());
49 
50  if (found) {
51  Pmm2Status *st = hdr->getStatus();
52  if (st != NULL) {
53  if (verbose) st->print();
54  if(verbose > 1) st->Dump();
55  }
56  do {
57  Pmm2Event *evt = rdr->GetEvent();
58  if(verbose)evt->print();
59  if(verbose > 1)cout << " ** Start Event " << endl;
60 
61  Pmm2MesVect * mlist = evt->GetMesurements();
62 
63  if (mlist != NULL ) {
64  // Print all 212 mesurements
65  mlist->print();
66  } else {
67  std::cout << "--- Decoding error--" << std::endl;
68  }
69  if(verbose>1)std::cout << "** Done Event " << rdr->GetReadEvts() << std::endl;
70  } while (rdr->NextEvent() && ((rdr->GetReadEvts() -1) <= cfg->GetToEvent()));
71  }
72  else
73  {
74  std::cout << "Event " << cfg->GetFromEvent() << " no found." << std::endl;
75  }
76 
77  if(verbose) std::cout << " Done after event " << rdr->GetReadEvts()
78  << " ( EOF ) : " << rdr->isDone()
79  << " Err " << rdr->isError() << std::endl;
80 
81  // valgrind happy with this "delete" ? Yes.
82  delete rdr;
83  delete cfg;
84  return 0;
85 }
86 
87 
88 
virtual void print()
Definition: HarpoDetSet.cxx:43
Pmm2Event * GetEvent()
Can Read next event from raw file.
Definition: Pmm2Reader.cxx:387
Dcc Plane Y.
Definition: HarpoDet.h:20
A class Pmm2Status is bits representation of pmm2 status register (0x400).
Definition: Pmm2Status.h:12
int main(int argc, char **argv)
Definition: pmm2print.cxx:15
void print() const
Add new Digi to the event.
Definition: Pmm2Event.cxx:53
A class hold HARPO run information.
Definition: Pmm2Header.h:17
Bool_t isError()
EOF reached.
Definition: Pmm2Reader.h:50
Long_t GetReadEvts()
void Init()
Definition: HarpoConfig.h:63
void SetReadOutMode(Long_t version)
Definition: Pmm2Reader.h:55
Pmm2MesVect * GetMesurements()
Return pointer to decoded data.
Definition: Pmm2Event.cxx:78
Pmm2Status * getStatus()
Definition: Pmm2Header.h:36
Long64_t GetToEvent()
Get Last Event number to process.
Definition: HarpoConfig.h:122
Bool_t Init()
Init method : Open in/out files and check run header signature.
Definition: Pmm2Reader.cxx:401
void print() const
Definition: Pmm2MesList.cxx:34
Bool_t NextEvent()
Definition: Pmm2Reader.cxx:154
Long64_t GetDetRdrType(HarpoDetType nDet)
Return type of reader impementation for given Harpo Detector.
void print()
Definition: Pmm2Header.cxx:115
A class store HARPO raw PMM2 event buffer and header. End provide access metods to the row data...
Definition: Pmm2Event.h:19
void print() const
Read config file in libconfig format.
Long64_t GetFromEvent()
Get First Event to process.
Definition: HarpoConfig.h:120
void Dump() const
Definition: Pmm2Status.cxx:147
Bool_t Find(Long_t eventNo)
Init method : Open in/out files and check run header signature.
A class which read HARPO raw file from PMM2 and create Raw Events objects.
Definition: Pmm2Reader.h:31
A list of all mesurements in one Event for Pmm2 v2 card The class is place holder for all unpacked me...
Definition: Pmm2MesList.h:19
static hReaderType gHReaderType
Reader Type.
Definition: HarpoConfig.h:179
void print() const
Definition: Pmm2Status.cxx:200
A class which keeps track of the entire configuration of the analysis.
Definition: HarpoConfig.h:50
R__EXTERN HarpoDetSet * gHDetSet
Definition: HarpoDetSet.h:71
Bool_t isDone()
Definition: Pmm2Reader.h:49
Pmm2Header * GetDetHeader()
Definition: Pmm2Reader.cxx:392
Long64_t GetVerbose()
Get program verbosity level.
Definition: HarpoConfig.h:115