Jpp  test_elongated_shower_pde
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Member Functions | Private Attributes | List of all members
JRunAnalyzer Class Reference

Class dedicated to the analysis of KM3NeT runs. More...

#include <JRunAnalyzer.hh>

Classes

struct  value_type
 

Public Member Functions

 JRunAnalyzer ()
 Default constructor. More...
 
 JRunAnalyzer (string file, string detectorFile, JLimit_t nTimeslices, JLimit_t nSummaryslices, JLimit_t nEvents, bool pmtanalysis)
 Constructor. More...
 
 ~JRunAnalyzer ()
 Destructor. More...
 
void iterateEventTree (JTreeScanner< JDAQEvent > &scanner)
 
void iterateSummarysliceTree (JTreeScanner< JDAQSummaryslice > &scanner)
 
template<class T >
void iterateTimesliceTree (JTreeScanner< T > &scanner)
 
void readSummaryData ()
 
template<class T >
void readTimesliceData ()
 
void readEvents ()
 
JRA_Histograms getHistograms ()
 
void writeToFile (TFile &f)
 

Private Attributes

string inputFile
 
JModuleRouterrouter
 
JRA_Histograms histograms
 
int highest_floor
 
JLimit_t numberOfTimeslices
 
JLimit_t numberOfSummaryslices
 
JLimit_t numberOfEvents
 
bool pmt_analysis
 

Detailed Description

Class dedicated to the analysis of KM3NeT runs.

Definition at line 29 of file JRunAnalyzer.hh.

Constructor & Destructor Documentation

JRunAnalyzer::JRunAnalyzer ( )
inline

Default constructor.

Definition at line 45 of file JRunAnalyzer.hh.

45 {}
JRunAnalyzer::JRunAnalyzer ( string  file,
string  detectorFile,
JLimit_t  nTimeslices,
JLimit_t  nSummaryslices,
JLimit_t  nEvents,
bool  pmtanalysis 
)
inline

Constructor.

Parameters
filePath to the file to be analyzed
detectorFilepath to a detector file
nTimeslicesNumber of timeslices to be read
nSummaryslicesNumber of summary slices to be read
nEventsNumber of frames to be read
pmtanalysisOption for analysis of PMT data

Definition at line 57 of file JRunAnalyzer.hh.

57  :
58  inputFile (file),
59  router (NULL),
60  numberOfTimeslices (nTimeslices),
61  numberOfSummaryslices (nSummaryslices),
62  numberOfEvents (nEvents),
63  pmt_analysis (pmtanalysis)
64  {
65  try {
66  load (detectorFile, detector);
67  }
68  catch(const JException & error) {
69  cerr << "FATAL ERROR. Could not open detector file '" << detectorFile << "'." << endl;
70  exit(1);
71  }
72 
76  }
General exception.
Definition: JException.hh:23
then set_variable PMT_FILE set_variable DAQ_FILE set_variable OUTPUT_FILE set_variable DETECTOR else fatal Wrong number of arguments fi set_variable RUNBYRUN file
JRA_Histograms histograms
Definition: JRunAnalyzer.hh:33
Router for direct addressing of module data in detector data structure.
exit
Definition: JPizza.sh:36
string inputFile
Definition: JRunAnalyzer.hh:31
JLimit_t numberOfTimeslices
Definition: JRunAnalyzer.hh:35
JModuleRouter * router
Definition: JRunAnalyzer.hh:32
floor_range getRangeOfFloors(const JDetector &detector)
Get range of floors.
Detector file.
Definition: JHead.hh:224
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
JLimit_t numberOfEvents
Definition: JRunAnalyzer.hh:37
JLimit_t numberOfSummaryslices
Definition: JRunAnalyzer.hh:36
JRunAnalyzer::~JRunAnalyzer ( )
inline

Destructor.

Definition at line 81 of file JRunAnalyzer.hh.

81 {}

Member Function Documentation

void JRunAnalyzer::iterateEventTree ( JTreeScanner< JDAQEvent > &  scanner)
inline

Definition at line 89 of file JRunAnalyzer.hh.

89  {
90 
91  while (scanner.hasNext()) {
92 
93  JDAQEvent event = *(scanner.next());
94 
95  histograms.h_trigger.h_Snapshot_hits -> Fill((Double_t) event.size<JDAQSnapshotHit> ());
96  histograms.h_trigger.h_Triggered_hits -> Fill((Double_t) event.size<JDAQTriggeredHit> ());
97  histograms.h_trigger.h_Triggered_over_Snapshot_hits -> Fill((Double_t) event.size<JDAQTriggeredHit> () / event.size<JDAQSnapshotHit > ());
98  histograms.h_trigger.h_Number_of_overlays -> Fill(event.getOverlays());
99 
100  for (unsigned int i = 0; i != NUMBER_OF_TRIGGER_BITS; ++i) {
101 
102  if (event.hasTriggerBit(i)) {
103 
104  histograms.h_trigger.h_Trigger_bit_event -> Fill((Double_t) i);
105  }
106  }
107 
108  int counter_3dmuon = 0;
109  double tmin = numeric_limits<double>::max();
110  double tmax = 0;
111 
112  for (JDAQEvent::const_iterator<JDAQTriggeredHit> hit = event.begin<JDAQTriggeredHit>(); hit != event.end<JDAQTriggeredHit>(); ++hit) {
113 
114  if(hit->getT() < tmin) tmin = hit->getT();
115  if(hit->getT() > tmax) tmax = hit->getT();
116 
117  JDAQTriggerMask trigger_mask(event.getTriggerMask(*hit));
118 
119  if(trigger_mask.hasTriggerBit(getTriggerBit<JTrigger3DMuon>())) counter_3dmuon++;
120 
121  if (router->hasModule(hit->getModuleID())) {
122 
123  const JModule& module = router->getModule (hit->getModuleID());
124 
127 
128  int String = module.getString();
129  int Floor = module.getFloor();
130 
131  histograms.h_trigger.h_Triggered_hits_per_module -> Fill(String , Floor);
132 
133  if(trigger_mask.hasTriggerBit(getTriggerBit<JTrigger3DMuon>())){
135  }
136 
137  for (unsigned int i = 0; i != NUMBER_OF_TRIGGER_BITS; ++i) {
138 
139  if (hit -> hasTriggerBit(i)) {
140 
141  histograms.h_trigger.h_Trigger_bit_hit->Fill((Double_t) i);
142  }
143  }
144  }else{
145  FATAL("JModuleRouter trying to access non existing identifier: "<< hit->getModuleID());
146  }
147  }
148 
149  histograms.h_trigger.h_event_duration->Fill(tmax - tmin);
150 
151  histograms.h_trigger.h_pmt_distribution_triggered_hits->Scale(1. / (Double_t) event.size<JDAQTriggeredHit> ());
152 
153  if(counter_3dmuon != 0) histograms.h_trigger.h_Triggered_hits_3dmuon->Fill(counter_3dmuon);
154 
155  for (JDAQEvent::const_iterator<JDAQSnapshotHit> hit = event.begin<JDAQSnapshotHit>() ; hit != event.end<JDAQSnapshotHit>() ; ++hit){
156 
157  if (router->hasModule(hit->getModuleID())) {
158 
159  const JModule& module = router->getModule (hit->getModuleID());
160 
161  int String = module.getString();
162  int Floor = module.getFloor();
163  int pmt = hit-> getPMT();
164 
165  if(pmt_analysis == true){
166 
167  (*histograms.h_trigger.m_Snapshot_hits_per_pmt)[MAKE_STRING("Detector/DU" + to_string(String))] -> Fill(pmt, Floor);
168 
169  }
170 
171  histograms.h_trigger.h_pmt_distribution_snapshot_hits -> Fill(hit->getPMT());
173  histograms.h_trigger.h_Snapshot_hits_per_module -> Fill(String, Floor);
174 
175 
176  }else{
177  FATAL("JModuleRouter trying to access non existing identifier: "<< hit->getModuleID());
178  }
179  }
180  }
181  }
TH1D * h_pmt_distribution_snapshot_hits
TH2D * h_Snapshot_hits_per_module
DAQ key hit.
Definition: JDAQKeyHit.hh:19
static const unsigned int NUMBER_OF_TRIGGER_BITS
Number of trigger bits.
TH1D * h_pmt_distribution_triggered_hits
int getFloor() const
Get floor number.
Definition: JLocation.hh:145
const JModule & getModule(const JObjectID &id) const
Get module parameters.
Data structure for a composite optical module.
Definition: JModule.hh:68
Auxiliary class for trigger mask.
JRA_Histograms histograms
Definition: JRunAnalyzer.hh:33
TH2D * h_Triggered_hits_per_module
Template const_iterator.
Definition: JDAQEvent.hh:68
JModuleRouter * router
Definition: JRunAnalyzer.hh:32
#define MAKE_STRING(A)
Make string.
Definition: JPrint.hh:142
TH1D * h_tot_distribution_snapshot_hits
TriggerHistograms h_trigger
#define FATAL(A)
Definition: JMessage.hh:67
int getString() const
Get string number.
Definition: JLocation.hh:134
General purpose string class.
Definition: JHead.hh:150
std::string to_string(const T &value)
Convert value to string.
bool hasModule(const JObjectID &id) const
Has module.
TH1D * h_tot_distribution_triggered_hits
TH1D * h_Triggered_hits_3dmuon
TH2D * h_Triggered_hits_3dmuon_per_module
JManager< string, TH2D > * m_Snapshot_hits_per_pmt
TH1D * h_Triggered_over_Snapshot_hits
void JRunAnalyzer::iterateSummarysliceTree ( JTreeScanner< JDAQSummaryslice > &  scanner)
inline

Definition at line 197 of file JRunAnalyzer.hh.

197  {
198 
199  map<int, value_type> PMT_rate_quantiles;
200  std::map <int, vector<JQuantile>> DOM_rate_quantiles;
201 
202  while (scanner.hasNext()){
203 
204  JDAQSummaryslice slice = *(scanner.next());
205 
206  for (JDAQSummaryslice::const_iterator frame = slice.begin() ; frame != slice.end() ; ++ frame) {
207 
208  if (router->hasModule(frame->getModuleID())) {
209 
210  const JModule& module = router->getModule (frame->getModuleID());
211 
212  int string = module.getString();
213  int floor = module.getFloor ();
214 
215  JDAQFrameStatus status = frame -> getDAQFrameStatus();
216  int nFIFOcount = status.countFIFOStatus();
217  int nHRVcount = status.countHighRateVeto();
218 
219  if (nHRVcount > 0) {
220  histograms.h_summary.h_hrv_per_dom->Fill(string , floor, nHRVcount);
221  }
222 
223  if (status.testDAQStatus() == false) {
224  histograms.h_summary.h_daq_status_per_dom->Fill(string , floor, (1./distance(scanner.begin(), scanner.end()))*100);
225  }
226 
227  histograms.h_summary.h_fifo_per_dom->Fill(string , floor , nFIFOcount);
228 
229  if(pmt_analysis == true){
230 
231  TH2D* h2 = (*histograms.h_summary.m_summary_rate_distribution)[MAKE_STRING("Detector/DU" + to_string(string) + "/F" + to_string(floor))];
232 
233  double rate = 0;
234  const double factor = 1.0e-3; // [kHz]
235 
236  for (int i = 0 ; i < NUMBER_OF_PMTS ; i++){
237 
238  rate += frame->getRate(i, factor);
239 
240  h2->Fill(i , frame->getRate(i, factor));
241 
242  PMT_rate_quantiles[string][floor][i].put(frame->getRate(i, factor));
243 
244  histograms.h_summary.h_pmt_rate_distribution->Fill(frame->getRate(i, factor), frame->getWeight(i, factor));
245 
246  }
247 
249 
250  DOM_rate_quantiles[string].resize(highest_floor + 1);
251 
252  DOM_rate_quantiles[string][floor].put(rate);
253 
254  } else {
255 
256  double rate = 0;
257  const double factor = 1.0e-3; // [kHz]
258 
259  for (int i = 0 ; i < NUMBER_OF_PMTS ; i++){
260 
261  rate += frame->getRate(i, factor);
262 
263  histograms.h_summary.h_pmt_rate_distribution->Fill(frame->getRate(i, factor), frame->getWeight(i, factor));
264  }
265 
267 
268  DOM_rate_quantiles[string].resize(highest_floor + 1);
269 
270  DOM_rate_quantiles[string][floor].put(rate);
271 
272  }
273 
274  }else{
275  FATAL("JModuleRouter trying to access non existing identifier: "<< frame->getModuleID());
276  }
277  }
278  }
279 
280  for (std::map<int , vector<JQuantile> >::const_iterator i = DOM_rate_quantiles.begin() ; i!= DOM_rate_quantiles.end() ; ++i) {
281 
282  for (int j=1; j <= highest_floor; j++) {
283 
284  if (i->second[j].getCount() > 0) histograms.h_summary.h_rate_summary->Fill(i->first, j, i->second[j].getMean());
285  }
286  }
287 
288  if(pmt_analysis == true){
289 
290  for(map<int, value_type>::const_iterator i = PMT_rate_quantiles.begin(); i != PMT_rate_quantiles.end(); ++i) {
291 
292  for (int j = 1; j <= highest_floor; j++){
293 
294  for (int k=0 ; k < NUMBER_OF_PMTS ; k++){
295 
296  if (i -> second[j][k].getCount() > 0){
297 
298  (*histograms.h_summary.m_mean_summary_rate) [MAKE_STRING("Detector/DU" + to_string(i->first))]->Fill(k, j, i->second[j][k].getMean());
299  (*histograms.h_summary.m_mean_summary_rate_distribution)[MAKE_STRING("Detector/DU" + to_string(i->first))]->Fill( i->second[j][k].getMean());
300  }
301  }
302  }
303  }
304  }
305  }
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
int countFIFOStatus() const
Count FIFO status.
JManager< string, TH1D > * m_mean_summary_rate_distribution
int getFloor() const
Get floor number.
Definition: JLocation.hh:145
const JModule & getModule(const JObjectID &id) const
Get module parameters.
Data structure for a composite optical module.
Definition: JModule.hh:68
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
JRA_Histograms histograms
Definition: JRunAnalyzer.hh:33
then set_variable singlesRate set_variable doublesRate set_variable numberOfSlices echo Generating random background echo Singles rate
JModuleRouter * router
Definition: JRunAnalyzer.hh:32
JManager< string, TH2D > * m_mean_summary_rate
TH1D * h_dom_rate_distribution
#define MAKE_STRING(A)
Make string.
Definition: JPrint.hh:142
TH1D * h_pmt_rate_distribution
#define FATAL(A)
Definition: JMessage.hh:67
SummaryHistograms h_summary
int getString() const
Get string number.
Definition: JLocation.hh:134
int countHighRateVeto() const
Count high-rate veto status.
JManager< string, TH2D > * m_summary_rate_distribution
std::string to_string(const T &value)
Convert value to string.
bool hasModule(const JObjectID &id) const
Has module.
int getCount(const T &hit)
Get hit count.
int j
Definition: JPolint.hh:682
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
bool testDAQStatus() const
Test DAQ status of packets.
template<class T >
void JRunAnalyzer::iterateTimesliceTree ( JTreeScanner< T > &  scanner)
inline

Definition at line 314 of file JRunAnalyzer.hh.

314  {
315 
317 
318  std::map < int , std::map <int , JQuantile> > DOM_rate_quantiles;
319 
320  double inverseFrameTimeSec = 1. / (1.0e-9 * getFrameTime());
321 
322  while (scanner.hasNext()){
323 
324  T slice = *(scanner.next());
325 
326  for(auto & frame : slice) {
327  if (router->hasModule(frame.getModuleID())) {
328 
329  const JModule& module = router->getModule (frame.getModuleID());
330  double rate = frame.numberOfHits * inverseFrameTimeSec;
331  int string = module.getString();
332  int floor = module.getFloor ();
333 
334  DOM_rate_quantiles[string][floor].put(rate);
335 
336  vector <int> pmt_hit_count (NUMBER_OF_PMTS , 0) ;
337 
338  if(pmt_analysis == true){
339 
340  TH2D* h2 = (*histograms.h_timeslice.m_pmt_tot_distributions[ts_type])[MAKE_STRING("Detector/DU" + to_string(string) + "/F" + to_string(floor) + "/" + to_string(frame.getModuleID()))];
341 
342  for (JDAQSuperFrame::const_iterator hit = frame.begin() ; hit != frame.end() ; ++hit){
343 
344  h2 -> Fill(hit->getPMT() , hit->getToT()) ;
345 
346  pmt_hit_count[hit->getPMT()]++;
347 
348  }
349 
350  for (int pmt = 0 ; pmt != NUMBER_OF_PMTS ; ++pmt) {
351 
352  (*histograms.h_timeslice.m_pmt_rate_distributions[ts_type])[MAKE_STRING("Detector/DU" + to_string(string) + "/F" + to_string(floor))] -> Fill(pmt , 1e-3 * pmt_hit_count[pmt] * inverseFrameTimeSec);
353 
354  }
355 
356  }
357 
358  }else{
359  FATAL("JModuleRouter trying to access non existing identifier: "<< frame.getModuleID());
360  }
361  }
362  }
363 
364 
365  for (std::map< int , std::map<int,JQuantile>>::const_iterator i = DOM_rate_quantiles.begin() ; i != DOM_rate_quantiles.end() ; i++){
366 
367  for (std::map<int , JQuantile>::const_iterator j = i->second.begin() ; j != i->second.end() ; j++){
368 
369  if (j->second.getCount() > 0) histograms.h_timeslice.h_dom_mean_rates[ts_type] -> Fill (i->first , j->first , j->second.getMean() ) ;
370  }
371  }
372  }
vector< JManager< string, TH2D > * > m_pmt_tot_distributions
int getFloor() const
Get floor number.
Definition: JLocation.hh:145
const JModule & getModule(const JObjectID &id) const
Get module parameters.
Data structure for a composite optical module.
Definition: JModule.hh:68
vector< TH2D * > h_dom_mean_rates
JRA_Histograms histograms
Definition: JRunAnalyzer.hh:33
then set_variable singlesRate set_variable doublesRate set_variable numberOfSlices echo Generating random background echo Singles rate
JModuleRouter * router
Definition: JRunAnalyzer.hh:32
#define MAKE_STRING(A)
Make string.
Definition: JPrint.hh:142
TimesliceHistograms h_timeslice
Hit data structure.
Definition: JDAQHit.hh:34
double getFrameTime()
Get frame time duration.
Definition: JDAQClock.hh:162
do set_variable OUTPUT_DIRECTORY $WORKDIR T
#define FATAL(A)
Definition: JMessage.hh:67
int getString() const
Get string number.
Definition: JLocation.hh:134
std::string to_string(const T &value)
Convert value to string.
vector< JManager< string, TH2D > * > m_pmt_rate_distributions
bool hasModule(const JObjectID &id) const
Has module.
int j
Definition: JPolint.hh:682
Indexing of data type in type list.
Definition: JTypeList.hh:310
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
void JRunAnalyzer::readSummaryData ( )
inline

Definition at line 380 of file JRunAnalyzer.hh.

380  {
381 
383  if (scanner.hasNext()) {
385  scanner.rewind();
386  iterateSummarysliceTree(scanner);
387  }
388  }
JRA_Histograms histograms
Definition: JRunAnalyzer.hh:33
string inputFile
Definition: JRunAnalyzer.hh:31
void initialize_summary_histograms()
void iterateSummarysliceTree(JTreeScanner< JDAQSummaryslice > &scanner)
Template definition for direct access of elements in ROOT TChain.
Definition: JTreeScanner.hh:91
JLimit_t numberOfSummaryslices
Definition: JRunAnalyzer.hh:36
template<class T >
void JRunAnalyzer::readTimesliceData ( )
inline

Definition at line 397 of file JRunAnalyzer.hh.

397  {
398 
400  if(scanner.hasNext()) {
401 
403  scanner.rewind();
404  iterateTimesliceTree(scanner);
405  }
406  }
void iterateTimesliceTree(JTreeScanner< T > &scanner)
JRA_Histograms histograms
Definition: JRunAnalyzer.hh:33
string inputFile
Definition: JRunAnalyzer.hh:31
JLimit_t numberOfTimeslices
Definition: JRunAnalyzer.hh:35
Template definition for direct access of elements in ROOT TChain.
Definition: JTreeScanner.hh:91
do set_variable OUTPUT_DIRECTORY $WORKDIR T
void initialize_timeslice_histograms()
void JRunAnalyzer::readEvents ( )
inline

Definition at line 414 of file JRunAnalyzer.hh.

414  {
415 
417 
418  if(scanner.hasNext()) {
419 
421  scanner.rewind();
422  iterateEventTree(scanner);
423  }
424  }
JRA_Histograms histograms
Definition: JRunAnalyzer.hh:33
string inputFile
Definition: JRunAnalyzer.hh:31
Template definition for direct access of elements in ROOT TChain.
Definition: JTreeScanner.hh:91
void iterateEventTree(JTreeScanner< JDAQEvent > &scanner)
Definition: JRunAnalyzer.hh:89
JLimit_t numberOfEvents
Definition: JRunAnalyzer.hh:37
void initialize_trigger_histograms()
JRA_Histograms JRunAnalyzer::getHistograms ( )
inline

Definition at line 429 of file JRunAnalyzer.hh.

429  {
430 
431  return histograms ;
432  }
JRA_Histograms histograms
Definition: JRunAnalyzer.hh:33
void JRunAnalyzer::writeToFile ( TFile &  f)
inline

Definition at line 438 of file JRunAnalyzer.hh.

438  {
439 
440  f.mkdir("Detector");
441  f .cd("Detector");
442 
449 
451 
452  for (typename vector < JManager < string , TH2D >* >::const_iterator i = histograms.h_timeslice.m_pmt_tot_distributions.begin();
454 
455  if ((*i)){
456 
457  for (typename JManager < string , TH2D >::const_iterator j = (*i) -> begin() ; j != (*i) -> end() ; ++j){
458 
459  j->second->Scale(1., "width");
460  }
461  }
462  }
463 
466 
468 
471 
473 
476 
477  f.mkdir ( MAKE_STRING ("JDAQEvent").c_str());
478  f.cd ("JDAQEvent");
479 
496  }
TH1D * h_pmt_distribution_snapshot_hits
TH2D * h_Snapshot_hits_per_module
TH1D * h_pmt_distribution_triggered_hits
vector< JManager< string, TH2D > * > m_pmt_tot_distributions
JManager< string, TH1D > * m_mean_summary_rate_distribution
vector< TH2D * > h_dom_mean_rates
JRA_Histograms histograms
Definition: JRunAnalyzer.hh:33
TH2D * h_Triggered_hits_per_module
o $QUALITY_ROOT d $DEBUG!JPlot1D f
Definition: JDataQuality.sh:66
JManager< string, TH2D > * m_mean_summary_rate
TH1D * h_dom_rate_distribution
#define MAKE_STRING(A)
Make string.
Definition: JPrint.hh:142
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
Definition: JManager.hh:43
TimesliceHistograms h_timeslice
TH1D * h_tot_distribution_snapshot_hits
TriggerHistograms h_trigger
void Write_manager_table_in_key_dir(TFile &f, vector< JManager< T, V > * > table)
TH1D * h_pmt_rate_distribution
void Write_histogram_table_to_file(TFile &f, string dirname, vector< vector< T * > > table)
vector< JManager< string, TH1D > * > m_mean_ToT_distribution
SummaryHistograms h_summary
JManager< string, TH2D > * m_summary_rate_distribution
void Write_manager_in_key_dir(TFile &f, JManager< T, V > *manager)
vector< JManager< string, TH2D > * > m_mean_ToT
vector< JManager< string, TH2D > * > m_pmt_rate_distributions
TH1D * h_tot_distribution_triggered_hits
TH1D * h_Triggered_hits_3dmuon
int j
Definition: JPolint.hh:682
TH2D * h_Triggered_hits_3dmuon_per_module
JManager< string, TH2D > * m_Snapshot_hits_per_pmt
TH1D * h_Triggered_over_Snapshot_hits

Member Data Documentation

string JRunAnalyzer::inputFile
private

Definition at line 31 of file JRunAnalyzer.hh.

JModuleRouter* JRunAnalyzer::router
private

Definition at line 32 of file JRunAnalyzer.hh.

JRA_Histograms JRunAnalyzer::histograms
private

Definition at line 33 of file JRunAnalyzer.hh.

int JRunAnalyzer::highest_floor
private

Definition at line 34 of file JRunAnalyzer.hh.

JLimit_t JRunAnalyzer::numberOfTimeslices
private

Definition at line 35 of file JRunAnalyzer.hh.

JLimit_t JRunAnalyzer::numberOfSummaryslices
private

Definition at line 36 of file JRunAnalyzer.hh.

JLimit_t JRunAnalyzer::numberOfEvents
private

Definition at line 37 of file JRunAnalyzer.hh.

bool JRunAnalyzer::pmt_analysis
private

Definition at line 38 of file JRunAnalyzer.hh.


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