CalibMuon
DTCalibration
plugins
DTT0FillChamberFromDB.cc
Go to the documentation of this file.
1
/*
2
* See header file for a description of this class.
3
*
4
* $Date: 2012/03/21 13:48:46 $
5
* $Revision: 1.2 $
6
* \author A. Vilela Pereira
7
*/
8
9
#include "
DTT0FillChamberFromDB.h
"
10
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
11
#include "
FWCore/Framework/interface/EventSetup.h
"
12
#include "
FWCore/Framework/interface/ESHandle.h
"
13
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
14
15
#include "
DataFormats/MuonDetId/interface/DTWireId.h
"
16
#include "
CondFormats/DTObjects/interface/DTT0.h
"
17
#include "
CondFormats/DataRecord/interface/DTT0Rcd.h
"
18
19
#include <string>
20
#include <sstream>
21
22
using namespace
std
;
23
using namespace
edm
;
24
25
namespace
dtCalibration
{
26
27
DTT0FillChamberFromDB::DTT0FillChamberFromDB(
const
ParameterSet
&
pset
)
28
: dbLabelRef_(
pset
.getParameter<
string
>(
"dbLabelRef"
)), chamberRef_(
pset
.getParameter<
string
>(
"chamberId"
)) {
29
//DTChamberId chosenChamberId;
30
if
(!
chamberRef_
.empty() &&
chamberRef_
!=
"None"
) {
31
stringstream linestr;
32
int
selWheel, selStation, selSector;
33
linestr <<
chamberRef_
;
34
linestr >> selWheel >> selStation >> selSector;
35
chosenChamberId_
=
DTChamberId
(selWheel, selStation, selSector);
36
LogVerbatim
(
"Calibration"
) <<
"[DTT0FillChamberFromDB] Chosen chamber: "
<<
chosenChamberId_
<< endl;
37
}
38
//FIXME: Check if chosen chamber is valid.
39
}
40
41
DTT0FillChamberFromDB::~DTT0FillChamberFromDB
() {}
42
43
void
DTT0FillChamberFromDB::setES
(
const
EventSetup
&
setup
) {
44
// Get t0 record from DB
45
ESHandle<DTT0>
t0H;
46
setup
.get<
DTT0Rcd
>().
get
(t0H);
47
t0Map_
= &*t0H;
48
LogVerbatim
(
"Calibration"
) <<
"[DTT0FillChamberFromDB] T0 version: "
<< t0H->
version
();
49
50
// Get reference t0 DB
51
ESHandle<DTT0>
t0RefH;
52
setup
.get<
DTT0Rcd
>().
get
(
dbLabelRef_
, t0RefH);
53
t0MapRef_
= &*t0RefH;
54
LogVerbatim
(
"Calibration"
) <<
"[DTT0FillChamberFromDB] Reference T0 version: "
<< t0RefH->
version
();
55
}
56
57
DTT0Data
DTT0FillChamberFromDB::correction
(
const
DTWireId
& wireId) {
58
// If wire belongs to chosen chamber, use t0 value from reference DB
59
// Otherwise use value from default DB
60
61
DTChamberId
chamberId = wireId.
layerId
().
superlayerId
().
chamberId
();
62
63
if
(!
chamberRef_
.empty() &&
chamberRef_
!=
"None"
&& chamberId ==
chosenChamberId_
) {
64
// Access reference DB
65
float
t0MeanRef, t0RMSRef;
66
int
statusRef =
t0MapRef_
->
get
(wireId, t0MeanRef, t0RMSRef,
DTTimeUnits::counts
);
67
if
(!statusRef) {
68
return
DTT0Data
(t0MeanRef, t0RMSRef);
69
}
else
{
70
//...
71
throw
cms::Exception
(
"[DTT0FillChamberFromDB]"
)
72
<<
"Could not find t0 entry in reference DB for"
<< wireId << endl;
73
}
74
}
else
{
75
// Access default DB
76
float
t0Mean, t0RMS;
77
int
status
=
t0Map_
->
get
(wireId, t0Mean, t0RMS,
DTTimeUnits::counts
);
78
if
(!
status
) {
79
return
DTT0Data
(t0Mean, t0RMS);
80
}
else
{
81
//...
82
throw
cms::Exception
(
"[DTT0FillChamberFromDB]"
) <<
"Could not find t0 entry in DB for"
<< wireId << endl;
83
}
84
}
85
}
86
87
}
// namespace dtCalibration
MessageLogger.h
ESHandle.h
mps_update.status
status
Definition:
mps_update.py:69
edm
HLT enums.
Definition:
AlignableModifier.h:19
DTT0.h
dtCalibration::DTT0FillChamberFromDB::t0Map_
const DTT0 * t0Map_
Definition:
DTT0FillChamberFromDB.h:43
DTT0::version
const std::string & version() const
access version
Definition:
DTT0.cc:82
DTT0Rcd
Definition:
DTT0Rcd.h:9
singleTopDQM_cfi.setup
setup
Definition:
singleTopDQM_cfi.py:37
dtCalibration::DTT0FillChamberFromDB::chamberRef_
std::string chamberRef_
Definition:
DTT0FillChamberFromDB.h:38
dtCalibration::DTT0FillChamberFromDB::~DTT0FillChamberFromDB
~DTT0FillChamberFromDB() override
Definition:
DTT0FillChamberFromDB.cc:41
DTT0::get
int get(int wheelId, int stationId, int sectorId, int slId, int layerId, int cellId, float &t0mean, float &t0rms, DTTimeUnits::type unit) const
Definition:
DTT0.cc:48
DTWireId
Definition:
DTWireId.h:12
dtCalibration::DTT0FillChamberFromDB::setES
void setES(const edm::EventSetup &setup) override
Definition:
DTT0FillChamberFromDB.cc:43
edm::ESHandle< DTT0 >
dtCalibration::DTT0FillChamberFromDB::chosenChamberId_
DTChamberId chosenChamberId_
Definition:
DTT0FillChamberFromDB.h:40
dtCalibration::DTT0Data
Definition:
DTT0BaseCorrection.h:18
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
dtCalibration::DTT0FillChamberFromDB::correction
DTT0Data correction(const DTWireId &) override
Definition:
DTT0FillChamberFromDB.cc:57
edm::ParameterSet
Definition:
ParameterSet.h:47
DTT0Rcd.h
DTSuperLayerId::chamberId
DTChamberId chamberId() const
Return the corresponding ChamberId.
Definition:
DTSuperLayerId.h:45
edm::EventSetup
Definition:
EventSetup.h:58
get
#define get
dtCalibration
Definition:
DTT0BaseCorrection.h:16
std
Definition:
JetResolutionObject.h:76
DTWireId.h
DTT0FillChamberFromDB.h
DTTimeUnits::counts
Definition:
DTTimeUnits.h:32
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition:
MessageLogger.h:128
Exception
Definition:
hltDiff.cc:245
DTLayerId::superlayerId
DTSuperLayerId superlayerId() const
Return the corresponding SuperLayerId.
Definition:
DTLayerId.h:45
dtCalibration::DTT0FillChamberFromDB::dbLabelRef_
std::string dbLabelRef_
Definition:
DTT0FillChamberFromDB.h:37
EventSetup.h
dtCalibration::DTT0FillChamberFromDB::t0MapRef_
const DTT0 * t0MapRef_
Definition:
DTT0FillChamberFromDB.h:42
DTWireId::layerId
DTLayerId layerId() const
Return the corresponding LayerId.
Definition:
DTWireId.h:45
DTChamberId
Definition:
DTChamberId.h:14
ParameterSet.h
muonDTDigis_cfi.pset
pset
Definition:
muonDTDigis_cfi.py:27
Generated for CMSSW Reference Manual by
1.8.16