CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Protected Member Functions | Private Attributes | Static Private Attributes
DiamondSampicCalibrationDQMSource Class Reference

#include <SampicDigi/DiamondSampicCalibrationDQMSource/plugins/DiamondSampicCalibrationDQMSource.cc>

Inheritance diagram for DiamondSampicCalibrationDQMSource:
DQMOneEDAnalyzer<> edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args...> edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Classes

struct  ChannelPlots
 plots related to one Diamond channel More...
 
struct  GlobalPlots
 plots related to the whole system More...
 
struct  PlanePlots
 plots related to one Diamond plane More...
 
struct  PotPlots
 plots related to one Diamond detector package More...
 

Public Member Functions

 DiamondSampicCalibrationDQMSource (const edm::ParameterSet &)
 
 ~DiamondSampicCalibrationDQMSource () override
 
- Public Member Functions inherited from DQMOneEDAnalyzer<>
void accumulate (edm::Event const &event, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMOneEDAnalyzer ()
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args...>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector
< edm::ProductResolverIndex >
const & 
indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector
< edm::ProductResolverIndex >
const & 
putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector
< ProductResolverIndexAndSkipBit >
const & 
itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, const edm::Run &, const edm::EventSetup &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
- Protected Member Functions inherited from DQMOneEDAnalyzer<>
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Private Attributes

std::unordered_map< unsigned
int, ChannelPlots
channelPlots_
 
edm::ESGetToken< CTPPSGeometry,
VeryForwardRealGeometryRecord
geomEsToken_
 
GlobalPlots globalPlot_
 
std::unordered_map< unsigned
int, double > 
horizontalShiftOfDiamond_
 
edm::ESHandle
< PPSTimingCalibration
hTimingCalib_
 
std::unordered_map< unsigned
int, PlanePlots
planePlots_
 
std::unordered_map< unsigned
int, PotPlots
potPlots_
 
edm::TimeValue_t timeOfPreviousEvent_
 
edm::ESGetToken
< PPSTimingCalibration,
PPSTimingCalibrationRcd
timingCalibrationToken_
 
edm::EDGetTokenT
< edm::DetSetVector
< TotemTimingRecHit > > 
tokenRecHit_
 
edm::EDGetTokenT
< edm::DetSetVector
< TotemTimingDigi > > 
totemTimingDigiToken_
 
unsigned int verbosity_
 
float verticalShiftBot_
 
float verticalShiftTop_
 

Static Private Attributes

static const double DISPLAY_RESOLUTION_FOR_HITS_MM = 0.05
 
static const double INV_DISPLAY_RESOLUTION_FOR_HITS_MM
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer<>
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMOneEDAnalyzer<>
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Description: DQM module for the diamond sampic offset calibration

Implementation: [Notes on implementation]

Definition at line 52 of file DiamondSampicCalibrationDQMSource.cc.

Constructor & Destructor Documentation

DiamondSampicCalibrationDQMSource::DiamondSampicCalibrationDQMSource ( const edm::ParameterSet ps)

Definition at line 175 of file DiamondSampicCalibrationDQMSource.cc.

179  timingCalibrationToken_(esConsumes<edm::Transition::BeginRun>()),
180  geomEsToken_(esConsumes<edm::Transition::BeginRun>()),
181  verbosity_(ps.getUntrackedParameter<unsigned int>("verbosity", 0)),
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< edm::DetSetVector< TotemTimingDigi > > totemTimingDigiToken_
edm::EDGetTokenT< edm::DetSetVector< TotemTimingRecHit > > tokenRecHit_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
edm::ESGetToken< CTPPSGeometry, VeryForwardRealGeometryRecord > geomEsToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::ESGetToken< PPSTimingCalibration, PPSTimingCalibrationRcd > timingCalibrationToken_
DiamondSampicCalibrationDQMSource::~DiamondSampicCalibrationDQMSource ( )
override

Definition at line 186 of file DiamondSampicCalibrationDQMSource.cc.

186 {}

Member Function Documentation

void DiamondSampicCalibrationDQMSource::analyze ( const edm::Event event,
const edm::EventSetup eventSetup 
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 235 of file DiamondSampicCalibrationDQMSource.cc.

References channelPlots_, EcalCondDB::db, horizontalShiftOfDiamond_, hTimingCalib_, mps_fire::i, INV_DISPLAY_RESOLUTION_FOR_HITS_MM, TotemTimingRecHit::NO_T_AVAILABLE, hltrates_dqm_sourceclient-live_cfg::offset, potPlots_, HI_PhotonSkim_cff::rechits, CTPPSDiamondDetId::setChannel(), CTPPSDiamondDetId::setPlane(), PPSTimingCalibration::timeOffset(), timeOfPreviousEvent_, tokenRecHit_, and totemTimingDigiToken_.

235  {
237  // get event setup data
239  event.getByToken(tokenRecHit_, timingRecHits);
240 
242  event.getByToken(totemTimingDigiToken_, timingDigi);
243 
244  std::unordered_map<uint32_t, uint32_t> detIdToHw;
245 
246  for (const auto &digis : *timingDigi) {
247  const CTPPSDiamondDetId detId(digis.detId());
248  for (const auto &digi : digis)
249  detIdToHw[detId] = digi.hardwareId();
250  }
251 
252  // Using TotemTimingDigi
253  std::set<uint8_t> boardSet;
254  std::unordered_map<unsigned int, unsigned int> channelsPerPlane;
255  std::unordered_map<unsigned int, unsigned int> channelsPerPlaneWithTime;
256 
257  // End digis
258 
259  for (const auto &rechits : *timingRecHits) {
260  const CTPPSDiamondDetId detId(rechits.detId());
261  CTPPSDiamondDetId detId_pot(rechits.detId());
262  detId_pot.setPlane(0);
263  detId_pot.setChannel(0);
264  CTPPSDiamondDetId detId_plane(rechits.detId());
265  detId_plane.setChannel(0);
266 
267  for (const auto &rechit : rechits) {
268  if (potPlots_.find(detId_pot) != potPlots_.end()) {
269  float UFSDShift = 0.0;
270  if (rechit.yWidth() < 3)
271  UFSDShift = 0.5;
272 
273  TH2F *hitHistoTmp = potPlots_[detId_pot].hitDistribution2d->getTH2F();
274  TAxis *hitHistoTmpYAxis = hitHistoTmp->GetYaxis();
275  int startBin =
276  hitHistoTmpYAxis->FindBin(rechit.x() - horizontalShiftOfDiamond_[detId_pot] - 0.5 * rechit.xWidth());
277  int numOfBins = rechit.xWidth() * INV_DISPLAY_RESOLUTION_FOR_HITS_MM;
278  for (int i = 0; i < numOfBins; ++i)
279  potPlots_[detId_pot].hitDistribution2d->Fill(detId.plane() + UFSDShift,
280  hitHistoTmpYAxis->GetBinCenter(startBin + i));
281 
282  //All plots with Time
283  if (rechit.time() != TotemTimingRecHit::NO_T_AVAILABLE) {
284  int db = (detIdToHw[detId] & 0xE0) >> 5;
285  int sampic = (detIdToHw[detId] & 0x10) >> 4;
286  int channel = (detIdToHw[detId] & 0x0F);
287  double offset = calib.timeOffset(db, sampic, channel);
288  potPlots_[detId_pot].recHitTime->Fill(rechit.time() + offset);
289  if (channelPlots_.find(detId) != channelPlots_.end())
290  channelPlots_[detId].recHitTime->Fill(rechit.time() + offset);
291  }
292  }
293  }
294  }
295  // End RecHits
296 
297  timeOfPreviousEvent_ = event.time().value();
298 }
void setPlane(uint32_t channel)
void setChannel(uint32_t channel)
tuple db
Definition: EcalCondDB.py:153
edm::EDGetTokenT< edm::DetSetVector< TotemTimingDigi > > totemTimingDigiToken_
edm::EDGetTokenT< edm::DetSetVector< TotemTimingRecHit > > tokenRecHit_
double timeOffset(int key1, int key2, int key3, int key4=-1) const
std::unordered_map< unsigned int, double > horizontalShiftOfDiamond_
std::unordered_map< unsigned int, PotPlots > potPlots_
edm::ESHandle< PPSTimingCalibration > hTimingCalib_
std::unordered_map< unsigned int, ChannelPlots > channelPlots_
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
void DiamondSampicCalibrationDQMSource::bookHistograms ( DQMStore::IBooker ibooker,
const edm::Run ,
const edm::EventSetup iSetup 
)
overrideprotectedvirtual

Implements DQMOneEDAnalyzer<>.

Definition at line 208 of file DiamondSampicCalibrationDQMSource.cc.

References CTPPSDetId::arm(), dqm::implementation::NavigatorBase::cd(), CTPPSDiamondDetId::channel(), channelPlots_, CTPPSDiamondDetId::check(), relativeConstraints::geom, geomEsToken_, edm::EventSetup::getData(), edm::EventSetup::getHandle(), globalPlot_, hTimingCalib_, CTPPSDiamondDetId::plane(), planePlots_, potPlots_, CTPPSDetId::rp(), dqm::implementation::NavigatorBase::setCurrentFolder(), CTPPSDetId::station(), and timingCalibrationToken_.

210  {
211  ibooker.cd();
212  ibooker.setCurrentFolder("CTPPS");
213 
214  globalPlot_ = GlobalPlots(ibooker);
215  const auto &geom = iSetup.getData(geomEsToken_);
216  for (auto it = geom.beginSensor(); it != geom.endSensor(); ++it) {
217  if (!CTPPSDiamondDetId::check(it->first))
218  continue;
219  const CTPPSDiamondDetId detid(it->first);
220 
221  const CTPPSDiamondDetId rpId(detid.arm(), detid.station(), detid.rp());
222  potPlots_[rpId] = PotPlots(ibooker, rpId);
223 
224  const CTPPSDiamondDetId plId(detid.arm(), detid.station(), detid.rp(), detid.plane());
225  planePlots_[plId] = PlanePlots(ibooker, plId);
226 
227  const CTPPSDiamondDetId chId(detid.arm(), detid.station(), detid.rp(), detid.plane(), detid.channel());
228  channelPlots_[chId] = ChannelPlots(ibooker, chId);
229  }
231 }
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
bool getData(T &iHolder) const
Definition: EventSetup.h:122
std::unordered_map< unsigned int, PlanePlots > planePlots_
static bool check(unsigned int raw)
returns true if the raw ID is a PPS-timing one
std::unordered_map< unsigned int, PotPlots > potPlots_
edm::ESGetToken< CTPPSGeometry, VeryForwardRealGeometryRecord > geomEsToken_
edm::ESHandle< PPSTimingCalibration > hTimingCalib_
std::unordered_map< unsigned int, ChannelPlots > channelPlots_
edm::ESGetToken< PPSTimingCalibration, PPSTimingCalibrationRcd > timingCalibrationToken_
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:151
void DiamondSampicCalibrationDQMSource::dqmBeginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 190 of file DiamondSampicCalibrationDQMSource.cc.

References CTPPSDiamondDetId::check(), relativeConstraints::geom, geomEsToken_, edm::EventSetup::getData(), DetGeomDesc::getDiamondDimensions(), horizontalShiftOfDiamond_, CTPPSDetId::rpId(), DetGeomDesc::translation(), and DiamondDimensions::xHalfWidth.

190  {
191  // Get detector shifts from the geometry (if present)
192  const auto &geom = iSetup.getData(geomEsToken_);
193  for (auto it = geom.beginSensor(); it != geom.endSensor(); it++) {
194  if (!CTPPSDiamondDetId::check(it->first))
195  continue;
196  const CTPPSDiamondDetId detid(it->first);
197 
198  const DetGeomDesc *det = geom.sensorNoThrow(detid);
199  if (det)
200  horizontalShiftOfDiamond_[detid.rpId()] = det->translation().x() - det->getDiamondDimensions().xHalfWidth;
201  else
202  edm::LogProblem("DiamondSampicCalibrationDQMSource") << "ERROR: no descriptor for detId";
203  }
204 }
const Translation & translation() const
Definition: DetGeomDesc.h:80
const DiamondDimensions & getDiamondDimensions() const
Definition: DetGeomDesc.h:90
bool getData(T &iHolder) const
Definition: EventSetup.h:122
std::unordered_map< unsigned int, double > horizontalShiftOfDiamond_
static bool check(unsigned int raw)
returns true if the raw ID is a PPS-timing one
edm::ESGetToken< CTPPSGeometry, VeryForwardRealGeometryRecord > geomEsToken_
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
Log< level::Error, true > LogProblem

Member Data Documentation

std::unordered_map<unsigned int, ChannelPlots> DiamondSampicCalibrationDQMSource::channelPlots_
private

Definition at line 117 of file DiamondSampicCalibrationDQMSource.cc.

Referenced by analyze(), and bookHistograms().

const double DiamondSampicCalibrationDQMSource::DISPLAY_RESOLUTION_FOR_HITS_MM = 0.05
staticprivate

Definition at line 64 of file DiamondSampicCalibrationDQMSource.cc.

edm::ESGetToken<CTPPSGeometry, VeryForwardRealGeometryRecord> DiamondSampicCalibrationDQMSource::geomEsToken_
private

Definition at line 72 of file DiamondSampicCalibrationDQMSource.cc.

Referenced by bookHistograms(), and dqmBeginRun().

GlobalPlots DiamondSampicCalibrationDQMSource::globalPlot_
private

Definition at line 85 of file DiamondSampicCalibrationDQMSource.cc.

Referenced by bookHistograms().

std::unordered_map<unsigned int, double> DiamondSampicCalibrationDQMSource::horizontalShiftOfDiamond_
private

Definition at line 77 of file DiamondSampicCalibrationDQMSource.cc.

Referenced by analyze(), and dqmBeginRun().

edm::ESHandle<PPSTimingCalibration> DiamondSampicCalibrationDQMSource::hTimingCalib_
private

Definition at line 116 of file DiamondSampicCalibrationDQMSource.cc.

Referenced by analyze(), and bookHistograms().

const double DiamondSampicCalibrationDQMSource::INV_DISPLAY_RESOLUTION_FOR_HITS_MM
staticprivate
std::unordered_map<unsigned int, PlanePlots> DiamondSampicCalibrationDQMSource::planePlots_
private

Definition at line 105 of file DiamondSampicCalibrationDQMSource.cc.

Referenced by bookHistograms().

std::unordered_map<unsigned int, PotPlots> DiamondSampicCalibrationDQMSource::potPlots_
private

Definition at line 97 of file DiamondSampicCalibrationDQMSource.cc.

Referenced by analyze(), and bookHistograms().

edm::TimeValue_t DiamondSampicCalibrationDQMSource::timeOfPreviousEvent_
private

Definition at line 74 of file DiamondSampicCalibrationDQMSource.cc.

Referenced by analyze().

edm::ESGetToken<PPSTimingCalibration, PPSTimingCalibrationRcd> DiamondSampicCalibrationDQMSource::timingCalibrationToken_
private

Definition at line 71 of file DiamondSampicCalibrationDQMSource.cc.

Referenced by bookHistograms().

edm::EDGetTokenT<edm::DetSetVector<TotemTimingRecHit> > DiamondSampicCalibrationDQMSource::tokenRecHit_
private

Definition at line 70 of file DiamondSampicCalibrationDQMSource.cc.

Referenced by analyze().

edm::EDGetTokenT<edm::DetSetVector<TotemTimingDigi> > DiamondSampicCalibrationDQMSource::totemTimingDigiToken_
private

Definition at line 69 of file DiamondSampicCalibrationDQMSource.cc.

Referenced by analyze().

unsigned int DiamondSampicCalibrationDQMSource::verbosity_
private

Definition at line 73 of file DiamondSampicCalibrationDQMSource.cc.

float DiamondSampicCalibrationDQMSource::verticalShiftBot_
private

Definition at line 76 of file DiamondSampicCalibrationDQMSource.cc.

float DiamondSampicCalibrationDQMSource::verticalShiftTop_
private

Definition at line 76 of file DiamondSampicCalibrationDQMSource.cc.