RecoTBCalo
EcalTBTDCReconstructor
src
EcalTBH2TDCRecInfoAlgo.cc
Go to the documentation of this file.
1
#include "
RecoTBCalo/EcalTBTDCReconstructor/interface/EcalTBH2TDCRecInfoAlgo.h
"
2
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
3
4
#include <list>
5
#include <vector>
6
#include <iostream>
7
8
EcalTBH2TDCRecInfoAlgo::EcalTBH2TDCRecInfoAlgo
(
const
std::vector<EcalTBH2TDCRanges>&
tdcZeros
)
9
: tdcZeros_(
tdcZeros
), actualRun_(-1), actualRange_(-1) {}
10
11
EcalTBTDCRecInfo
EcalTBH2TDCRecInfoAlgo::reconstruct
(
const
int
&
runNumber
,
const
HcalTBTiming
& TDCRawInfo)
const
{
12
if
(
actualRun_
!=
runNumber
) {
13
actualRun_
=
runNumber
;
14
actualRange_
= -1;
15
for
(
unsigned
int
i
= 0;
i
<
tdcZeros_
.size();
i
++)
16
if
(
runNumber
<=
tdcZeros_
[
i
].runRanges.second &&
runNumber
>=
tdcZeros_
[
i
].runRanges.first)
17
actualRange_
=
i
;
18
19
if
(
actualRange_
== -1) {
20
edm::LogError
(
"TDCRange not found"
) <<
"TDC range not found"
;
21
return
EcalTBTDCRecInfo
(-1);
22
}
23
}
24
25
int
ntdc = TDCRawInfo.
BeamCoincidenceCount
();
26
edm::LogInfo
(
""
) <<
"EcalTBH2TDCRecInfoAlgo::reconstruct # tdc hits: "
<< ntdc << std::endl;
27
;
28
if
(ntdc > 1) {
29
for
(
int
i
= 0;
i
< ntdc; ++
i
) {
30
edm::LogInfo
(
""
) <<
"hit i: "
<<
i
<<
" tdc: "
<< TDCRawInfo.
BeamCoincidenceHits
(
i
) << std::endl;
31
}
32
}
33
34
if
(ntdc == 0) {
35
edm::LogError
(
"NoTDCHits"
) <<
"no TDC hits. TDC info not reliable"
<< std::endl;
36
return
EcalTBTDCRecInfo
(-999.);
37
}
38
39
//double tdcd = TDCRawInfo.ttcL1Atime() - TDCRawInfo.beamCoincidence();
40
double
tdcd = TDCRawInfo.
ttcL1Atime
() - TDCRawInfo.
BeamCoincidenceHits
(0);
41
42
if
(
43
(tdcd <
tdcZeros_
[
actualRange_
].
tdcZero
- 1 || tdcd >
tdcZeros_
[
actualRange_
].
tdcZero
+ 26)) {
44
edm::LogError
(
"TDCOutOfRange"
) <<
" ============================\n"
45
<<
" tdc value out of range = "
<< tdcd
46
<<
" tdcZero = "
<<
tdcZeros_
[
actualRange_
].tdcZero <<
"\n"
47
<<
" ============================\n"
48
<< std::endl;
49
tdcRangeErrorMessageAlreadyDisplayed_
=
true
;
50
return
EcalTBTDCRecInfo
(-999.);
51
}
52
53
double
offset
= ((double)tdcd - (
double
)
tdcZeros_
[
actualRange_
].tdcZero) / 25.;
//
54
// if (use2004OffsetConvention)
55
// offset = (1. - offset) ;
56
return
EcalTBTDCRecInfo
(
offset
);
57
}
mps_fire.i
i
Definition:
mps_fire.py:355
EcalTBH2TDCRecInfoAlgo::tdcZeros_
std::vector< EcalTBH2TDCRanges > tdcZeros_
Definition:
EcalTBH2TDCRecInfoAlgo.h:26
MessageLogger.h
edm::LogInfo
Definition:
MessageLogger.h:254
EcalTBH2TDCRecInfoAlgo::tdcRangeErrorMessageAlreadyDisplayed_
bool tdcRangeErrorMessageAlreadyDisplayed_
Definition:
EcalTBH2TDCRecInfoAlgo.h:27
Ecal2006TBH2TDCRanges_v1_cff.tdcZeros
tdcZeros
Definition:
Ecal2006TBH2TDCRanges_v1_cff.py:3
Ecal2006TBH2TDCRanges_v0_cff.tdcZero
tdcZero
Definition:
Ecal2006TBH2TDCRanges_v0_cff.py:3
convertSQLiteXML.runNumber
runNumber
Definition:
convertSQLiteXML.py:91
HcalTBTiming::BeamCoincidenceHits
double BeamCoincidenceHits(int index) const
Returns the indexed hit time from Beam Coincidence.
Definition:
HcalTBTiming.h:71
HcalTBTiming
Definition:
HcalTBTiming.h:17
edm::LogError
Definition:
MessageLogger.h:183
EcalTBH2TDCRecInfoAlgo::actualRun_
int actualRun_
Definition:
EcalTBH2TDCRecInfoAlgo.h:28
EcalTBH2TDCRecInfoAlgo.h
HcalTBTiming::ttcL1Atime
double ttcL1Atime() const
Returns the Level 1 Accept time in ns.
Definition:
HcalTBTiming.h:27
EcalTBH2TDCRecInfoAlgo::EcalTBH2TDCRecInfoAlgo
EcalTBH2TDCRecInfoAlgo()
Definition:
EcalTBH2TDCRecInfoAlgo.h:12
HcalTBTiming::BeamCoincidenceCount
int BeamCoincidenceCount() const
Returns the number of hits from Beam Coincidence.
Definition:
HcalTBTiming.h:44
EcalTBH2TDCRecInfoAlgo::reconstruct
EcalTBTDCRecInfo reconstruct(const int &runNumber, const HcalTBTiming &TDCRawInfo) const
Definition:
EcalTBH2TDCRecInfoAlgo.cc:11
EcalTBTDCRecInfo
Definition:
EcalTBTDCRecInfo.h:12
EcalTBH2TDCRecInfoAlgo::actualRange_
int actualRange_
Definition:
EcalTBH2TDCRecInfoAlgo.h:29
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition:
hltrates_dqm_sourceclient-live_cfg.py:82
Generated for CMSSW Reference Manual by
1.8.16