CMS 3D CMS Logo

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 
14 
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 
42 
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 
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:57
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:246
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