Main Page
Namespaces
Classes
Package Documentation
EventFilter
CSCRawToDigi
src
CSCDDUDataItr.cc
Go to the documentation of this file.
1
#include "
EventFilter/CSCRawToDigi/interface/CSCDDUDataItr.h
"
2
#include "
EventFilter/CSCRawToDigi/interface/CSCDDUEventData.h
"
3
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
4
5
// theCurrentCSC starts at -1, since user is expected to next() before he dereferences
6
// for the first time
7
CSCDDUDataItr::CSCDDUDataItr
() : theDDUData(
nullptr
), theCurrentCSC(-1), theNumberOfCSCs(0), theDataIsOwnedByMe(
true
) {}
8
9
CSCDDUDataItr::CSCDDUDataItr
(
const
char
*buf)
10
:
theDDUData
(
nullptr
),
theCurrentCSC
(-1),
theNumberOfCSCs
(0),
theDataIsOwnedByMe
(
true
) {
11
// check if it's OK first
12
const
CSCDDUHeader
*dduHeader =
reinterpret_cast<
const
CSCDDUHeader
*
>
(buf);
13
if
(dduHeader->
check
()) {
14
theDDUData
=
new
CSCDDUEventData
((
const
uint16_t *)buf);
15
theNumberOfCSCs
=
theDDUData
->
cscData
().size();
16
}
else
{
17
LogTrace
(
"CSCDDUDataItr|CSCRawToDigi"
) <<
"Failed DDU header check."
;
18
}
19
}
20
21
CSCDDUDataItr::CSCDDUDataItr
(
const
CSCDDUEventData
*dduData)
22
:
theDDUData
(dduData),
23
theCurrentCSC
(-1),
24
theNumberOfCSCs
(
theDDUData
->cscData().
size
()),
25
theDataIsOwnedByMe
(
false
) {}
26
27
CSCDDUDataItr::~CSCDDUDataItr
() {
28
if
(
theDataIsOwnedByMe
)
29
delete
theDDUData
;
30
}
31
32
CSCDDUDataItr::CSCDDUDataItr
(
const
CSCDDUDataItr
&
i
)
33
:
theCurrentCSC
(i.
theCurrentCSC
),
theNumberOfCSCs
(i.
theNumberOfCSCs
),
theDataIsOwnedByMe
(i.
theDataIsOwnedByMe
) {
34
if
(
theDataIsOwnedByMe
) {
35
if
(i.
theDDUData
!=
nullptr
) {
36
theDDUData
=
new
CSCDDUEventData
(*(i.
theDDUData
));
37
}
38
}
else
{
39
theDDUData
= i.
theDDUData
;
40
}
41
}
42
43
void
CSCDDUDataItr::operator=
(
const
CSCDDUDataItr
&
i
) {
44
if
(
theDataIsOwnedByMe
&&
theDDUData
!= i.
theDDUData
) {
45
delete
theDDUData
;
46
if
(i.
theDDUData
!=
nullptr
) {
47
theDDUData
=
new
CSCDDUEventData
(*(i.
theDDUData
));
48
}
49
}
else
{
50
theDDUData
= i.
theDDUData
;
51
}
52
53
theDDUData
= i.
theDDUData
;
54
theCurrentCSC
= i.
theCurrentCSC
;
55
theNumberOfCSCs
= i.
theNumberOfCSCs
;
56
theDataIsOwnedByMe
= i.
theDataIsOwnedByMe
;
57
}
58
59
bool
CSCDDUDataItr::next
() {
return
(++
theCurrentCSC
<
theNumberOfCSCs
); }
60
61
const
CSCEventData
&
CSCDDUDataItr::operator*
() {
62
assert(
theCurrentCSC
>= 0 &&
theCurrentCSC
<
theNumberOfCSCs
);
63
return
theDDUData
->
cscData
()[
theCurrentCSC
];
64
}
findQualityFiles.size
size
Write out results.
Definition:
findQualityFiles.py:443
MessageLogger.h
mps_fire.i
i
Definition:
mps_fire.py:341
CSCDDUHeader::check
bool check() const
Definition:
CSCDDUHeader.cc:43
CSCDDUDataItr::~CSCDDUDataItr
~CSCDDUDataItr()
Definition:
CSCDDUDataItr.cc:27
CSCDDUDataItr::operator=
void operator=(const CSCDDUDataItr &)
Definition:
CSCDDUDataItr.cc:43
funct::false
false
Definition:
Factorize.h:34
nullptr
#define nullptr
Definition:
GCC11Compatibility.h:37
CSCDDUDataItr
Definition:
CSCDDUDataItr.h:13
CSCDDUDataItr::theDDUData
const CSCDDUEventData * theDDUData
Definition:
CSCDDUDataItr.h:35
funct::true
true
Definition:
Factorize.h:173
CSCDDUDataItr::CSCDDUDataItr
CSCDDUDataItr()
default constructor
Definition:
CSCDDUDataItr.cc:7
CSCDDUDataItr.h
CSCDDUDataItr::theCurrentCSC
int theCurrentCSC
Definition:
CSCDDUDataItr.h:36
CSCDDUEventData::cscData
const std::vector< CSCEventData > & cscData() const
accessor to data
Definition:
CSCDDUEventData.h:33
LogTrace
#define LogTrace(id)
Definition:
MessageLogger.h:671
CSCDDUDataItr::theDataIsOwnedByMe
bool theDataIsOwnedByMe
Definition:
CSCDDUDataItr.h:38
CSCDDUEventData.h
CSCDDUHeader
Definition:
CSCDDUHeader.h:11
CSCDDUDataItr::next
bool next()
Definition:
CSCDDUDataItr.cc:59
CSCDDUEventData
Definition:
CSCDDUEventData.h:19
CSCDDUDataItr::operator*
const CSCEventData & operator*()
Definition:
CSCDDUDataItr.cc:61
CSCEventData
Definition:
CSCEventData.h:28
CSCDDUDataItr::theNumberOfCSCs
int theNumberOfCSCs
Definition:
CSCDDUDataItr.h:37
Generated for CMSSW Reference Manual by
1.8.11