ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCalib
MuonCalibStream
MuonCalibStreamCnvSvc
src
MuonCalibStreamFileInputSvc.cxx
Go to the documentation of this file.
1
//===================================================================
2
// Implementation of MuonCalibStreamFileInputSvc
3
//===================================================================
4
//
5
6
// Include files.
7
#include "
MuonCalibStreamCnvSvc/MuonCalibStreamFileInputSvc.h
"
8
9
#include <iostream>
10
11
#include "EventStorage/pickDataReader.h"
12
#include "GaudiKernel/GenericAddress.h"
13
#include "GaudiKernel/IChronoStatSvc.h"
14
#include "GaudiKernel/ISvcLocator.h"
15
#include "MuCalDecode/CalibUti.h"
16
//#include "EventStorage/DataReaderBase.h"
17
//#include "EventStorage/DataReader.h"
18
#include "EventStorage/EventStorageRecords.h"
19
#include "EventStorage/fRead.h"
20
#include "EventStorage/loadfRead.h"
21
22
// Constructor.
23
MuonCalibStreamFileInputSvc::MuonCalibStreamFileInputSvc
(
const
std::string& name, ISvcLocator* svcloc) :
24
base_class(name, svcloc) {}
25
26
// Destructor.
27
MuonCalibStreamFileInputSvc::~MuonCalibStreamFileInputSvc
() {}
28
29
// Open the first input file and read the first event.
30
StatusCode
MuonCalibStreamFileInputSvc::initialize
() {
31
32
// Check that the vector of input file names is not empty.
33
if
(
m_inputFiles
.empty()) {
34
ATH_MSG_ERROR
(
" initialize: No input event files "
);
35
return
StatusCode::FAILURE;
36
}
37
38
// Set the iterator to the first input file.
39
m_inputFilesIt
=
m_inputFiles
.begin();
40
41
// instantiate the data loader
42
m_dataLoader
= std::make_unique<LVL2_MUON_CALIBRATION::CalibDataLoader>(
m_inputFilesIt
->c_str(),
false
, 0xffffffff, 0, DEFAULT_BUFFER_SIZE);
43
44
m_EoF
=
false
;
45
46
return
StatusCode::SUCCESS;
47
}
// MuonCalibStreamFileInputSvc::initialize()
48
49
// Read the next event.
50
const
LVL2_MUON_CALIBRATION::CalibEvent*
MuonCalibStreamFileInputSvc::nextEvent
() {
51
52
if
(
m_EoF
) {
// EOF reached, need to change input file
53
ATH_MSG_INFO
(
"nextEvent: end of file reached "
);
54
m_totalEventCounter
+=
m_fileEventCounter
;
55
56
ATH_MSG_INFO
(
"nextEvent: finished with file "
<< *
m_inputFilesIt
);
57
ATH_MSG_INFO
(
" Number of Events in this file "
<<
m_fileEventCounter
);
58
ATH_MSG_INFO
(
" Total number of Events "
<<
m_totalEventCounter
);
59
60
// Reinitialize the file event counter.
61
m_fileEventCounter
= 0;
62
63
++
m_inputFilesIt
;
64
65
if
(
m_inputFilesIt
==
m_inputFiles
.end()) {
66
ATH_MSG_INFO
(
"no more file to read "
);
67
return
0;
68
}
69
70
// do the next File
71
m_dataLoader
= std::make_unique<LVL2_MUON_CALIBRATION::CalibDataLoader>(
m_inputFilesIt
->c_str(),
false
, 0xffffffff, 0, DEFAULT_BUFFER_SIZE);
72
73
m_EoF
=
false
;
74
75
return
nextEvent
();
76
}
77
78
++
m_fileEventCounter
;
79
80
// try to read next event
81
// add TGC fragment and move the print out of the fragment to DEBUG outputLevel
82
if
(
m_dataLoader
->next(
m_dataBuffer
)) {
83
m_re
= std::make_unique<LVL2_MUON_CALIBRATION::CalibEvent>(
m_dataBuffer
);
84
85
if
(
m_re
) {
86
if
(
m_re
->mdt() != 0) {
87
if
(
m_DumpStream
!= 0)
88
ATH_MSG_DEBUG
(
" MuonCalibStreamFileInputSvc::next event -- eta="
<<
m_re
->eta() <<
" mdt "
<< *(
m_re
->mdt()));
89
}
90
if
(
m_re
->rpc() != 0) {
91
if
(
m_DumpStream
!= 0)
92
ATH_MSG_DEBUG
(
" MuonCalibStreamFileInputSvc::next event -- eta="
<<
m_re
->eta() <<
" rpc "
<< *(
m_re
->rpc()));
93
}
94
if
(
m_re
->tgc() != 0) {
95
if
(
m_DumpStream
!= 0)
96
ATH_MSG_DEBUG
(
" MuonCalibStreamFileInputSvc::next event -- eta="
<<
m_re
->eta() <<
" tgc "
<< *(
m_re
->tgc()));
97
}
98
}
99
}
else
{
100
// file must be over
101
m_EoF
=
true
;
102
return
nextEvent
();
103
}
104
105
// Return
106
return
m_re
.get();
107
}
// MuonCalibStreamFileInputSvc::nextEvent()
108
110
const
LVL2_MUON_CALIBRATION::CalibEvent*
MuonCalibStreamFileInputSvc::currentEvent
()
const
{
111
// Return a pointer to the raw event.
112
return
m_re
.get();
113
}
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
MuonCalibStreamFileInputSvc.h
MuonCalibStreamFileInputSvc::m_totalEventCounter
Long64_t m_totalEventCounter
Definition
MuonCalibStreamFileInputSvc.h:39
MuonCalibStreamFileInputSvc::m_dataBuffer
DataBuffer m_dataBuffer
Definition
MuonCalibStreamFileInputSvc.h:45
MuonCalibStreamFileInputSvc::m_re
std::unique_ptr< LVL2_MUON_CALIBRATION::CalibEvent > m_re
Definition
MuonCalibStreamFileInputSvc.h:43
MuonCalibStreamFileInputSvc::nextEvent
virtual const LVL2_MUON_CALIBRATION::CalibEvent * nextEvent() override
Definition
MuonCalibStreamFileInputSvc.cxx:50
MuonCalibStreamFileInputSvc::initialize
virtual StatusCode initialize() override
Definition
MuonCalibStreamFileInputSvc.cxx:30
MuonCalibStreamFileInputSvc::m_inputFiles
Gaudi::Property< std::vector< std::string > > m_inputFiles
Definition
MuonCalibStreamFileInputSvc.h:46
MuonCalibStreamFileInputSvc::MuonCalibStreamFileInputSvc
MuonCalibStreamFileInputSvc(const std::string &name, ISvcLocator *svcloc)
Definition
MuonCalibStreamFileInputSvc.cxx:23
MuonCalibStreamFileInputSvc::~MuonCalibStreamFileInputSvc
virtual ~MuonCalibStreamFileInputSvc()
Definition
MuonCalibStreamFileInputSvc.cxx:27
MuonCalibStreamFileInputSvc::m_dataLoader
std::unique_ptr< LVL2_MUON_CALIBRATION::CalibDataLoader > m_dataLoader
Definition
MuonCalibStreamFileInputSvc.h:44
MuonCalibStreamFileInputSvc::currentEvent
virtual const LVL2_MUON_CALIBRATION::CalibEvent * currentEvent() const override
Get a pointer to the current event.
Definition
MuonCalibStreamFileInputSvc.cxx:110
MuonCalibStreamFileInputSvc::m_DumpStream
Gaudi::Property< int > m_DumpStream
Definition
MuonCalibStreamFileInputSvc.h:40
MuonCalibStreamFileInputSvc::m_EoF
bool m_EoF
Definition
MuonCalibStreamFileInputSvc.h:42
MuonCalibStreamFileInputSvc::m_fileEventCounter
Long64_t m_fileEventCounter
Definition
MuonCalibStreamFileInputSvc.h:38
MuonCalibStreamFileInputSvc::m_inputFilesIt
std::vector< std::string >::iterator m_inputFilesIt
Definition
MuonCalibStreamFileInputSvc.h:47
Generated on
for ATLAS Offline Software by
1.17.0