CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
CreateIdealTkAlRecords Class Reference
Inheritance diagram for CreateIdealTkAlRecords:
edm::one::EDAnalyzer<> edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 CreateIdealTkAlRecords (const edm::ParameterSet &)
 
 ~CreateIdealTkAlRecords () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const noexcept final
 
bool wantsGlobalRuns () const noexcept final
 
bool wantsInputProcessBlocks () const noexcept final
 
bool wantsProcessBlocks () const noexcept final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const noexcept
 
bool wantsStreamRuns () const noexcept
 
 ~EDAnalyzerBase () 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
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
static std::string toString (const GeomDetEnumerators::SubDetector &)
 
static GeomDetEnumerators::SubDetector toSubDetector (const std::string &sub)
 
static std::vector< GeomDetEnumerators::SubDetectortoSubDetectors (const std::vector< std::string > &subs)
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void addAlignmentInfo (const GeomDet &)
 
void alignToGT (const edm::EventSetup &)
 
void analyze (const edm::Event &, const edm::EventSetup &) override
 
void clearAlignmentInfos ()
 
std::unique_ptr< TrackerGeometryretrieveGeometry (const edm::EventSetup &)
 
void writeToDB ()
 

Private Attributes

const edm::ESGetToken< AlignmentErrorsExtended, TrackerAlignmentErrorExtendedRcdaliErrorToken_
 
AlignmentErrorsExtended alignmentErrors_
 
Alignments alignments_
 
AlignmentSurfaceDeformations alignmentSurfaceDeformations_
 
const bool alignToGlobalTag_
 
const edm::ESGetToken< AlignmentSurfaceDeformations, TrackerSurfaceDeformationRcdaliSurfaceToken_
 
const edm::ESGetToken< Alignments, TrackerAlignmentRcdaliToken_
 
const bool createReferenceRcd_
 
bool firstEvent_
 
const edm::ESGetToken< GeometricDet, IdealGeometryRecordgeomDetToken_
 
const edm::ESGetToken< PTrackerAdditionalParametersPerDet, PTrackerAdditionalParametersPerDetRcdptitpToken_
 
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcdptpToken_
 
std::vector< uint32_t > rawIDs_
 
const std::vector< GeomDetEnumerators::SubDetectorskipSubDetectors_
 
std::vector< GeomDetEnumerators::SubDetectorsubDets_
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtopoToken_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- 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 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)
 

Detailed Description

Description: Plugin to create ideal tracker alignment records.

Implementation: The plugin takes the geometry stored in the global tag and transfers this information to the format needed in the TrackerAlignmentRcd. The APEs are set to zero for all det IDs of the tracker geometry and put into an TrackerAlignmentErrorExtendedRcd. In addition an empty TrackerSurfaceDeformationRcd is created corresponding to ideal surfaces.

An option exists to align to the content of the used global tag. This is useful, if the geometry record and the tracker alignment records do not match.

Definition at line 71 of file CreateTrackerAlignmentRcds.cc.

Constructor & Destructor Documentation

◆ CreateIdealTkAlRecords()

CreateIdealTkAlRecords::CreateIdealTkAlRecords ( const edm::ParameterSet iConfig)
explicit

Definition at line 112 of file CreateTrackerAlignmentRcds.cc.

120  skipSubDetectors_(toSubDetectors(iConfig.getUntrackedParameter<std::vector<std::string> >("skipSubDetectors"))),
121  alignToGlobalTag_(iConfig.getUntrackedParameter<bool>("alignToGlobalTag")),
122  createReferenceRcd_(iConfig.getUntrackedParameter<bool>("createReferenceRcd")),
123  firstEvent_(true) {}
const edm::ESGetToken< GeometricDet, IdealGeometryRecord > geomDetToken_
static std::vector< GeomDetEnumerators::SubDetector > toSubDetectors(const std::vector< std::string > &subs)
const std::vector< GeomDetEnumerators::SubDetector > skipSubDetectors_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
T getUntrackedParameter(std::string const &, T const &) const
const edm::ESGetToken< Alignments, TrackerAlignmentRcd > aliToken_
const edm::ESGetToken< PTrackerAdditionalParametersPerDet, PTrackerAdditionalParametersPerDetRcd > ptitpToken_
const edm::ESGetToken< AlignmentErrorsExtended, TrackerAlignmentErrorExtendedRcd > aliErrorToken_
const edm::ESGetToken< AlignmentSurfaceDeformations, TrackerSurfaceDeformationRcd > aliSurfaceToken_
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > ptpToken_

◆ ~CreateIdealTkAlRecords()

CreateIdealTkAlRecords::~CreateIdealTkAlRecords ( )
override

Definition at line 125 of file CreateTrackerAlignmentRcds.cc.

125 {}

Member Function Documentation

◆ addAlignmentInfo()

void CreateIdealTkAlRecords::addAlignmentInfo ( const GeomDet det)
private

Definition at line 266 of file CreateTrackerAlignmentRcds.cc.

References alignmentErrors_, alignments_, createReferenceRcd_, hcalRecHitTable_cff::detId, GeomDet::geographicalId(), LogDebug, Alignments::m_align, AlignmentErrorsExtended::m_alignError, GeomDet::position(), DetId::rawId(), rawIDs_, makeMuonMisalignmentScenario::rot, idealTransformation::rotation, GeomDet::rotation(), GeomDet::subDetector(), subDets_, and toString().

Referenced by analyze().

266  {
267  const auto subDetector = toString(det.subDetector());
268  const auto& detId = det.geographicalId().rawId();
269  const auto& pos = det.position();
270  const auto& rot = det.rotation();
271  rawIDs_.push_back(detId);
272  subDets_.push_back(det.subDetector());
273 
274  // TrackerAlignmentRcd entry
275  if (createReferenceRcd_) {
277  } else {
278  const AlignTransform::Translation translation(pos.x(), pos.y(), pos.z());
280  CLHEP::HepRep3x3(rot.xx(), rot.xy(), rot.xz(), rot.yx(), rot.yy(), rot.yz(), rot.zx(), rot.zy(), rot.zz()));
281  const auto& eulerAngles = rotation.eulerAngles();
282  LogDebug("Alignment") << "============================================================\n"
283  << "subdetector: " << subDetector << "\n"
284  << "detId: " << detId << "\n"
285  << "------------------------------------------------------------\n"
286  << " x: " << pos.x() << "\n"
287  << " y: " << pos.y() << "\n"
288  << " z: " << pos.z() << "\n"
289  << " phi: " << eulerAngles.phi() << "\n"
290  << " theta: " << eulerAngles.theta() << "\n"
291  << " psi: " << eulerAngles.psi() << "\n"
292  << "============================================================\n";
293  alignments_.m_align.emplace_back(AlignTransform(translation, rotation, detId));
294  }
295 
296  // TrackerAlignmentErrorExtendedRcd entry
297  const AlignTransformError::SymMatrix zeroAPEs(6, 0);
299 }
std::vector< uint32_t > rawIDs_
static std::string toString(const GeomDetEnumerators::SubDetector &)
AlignmentErrorsExtended alignmentErrors_
std::vector< GeomDetEnumerators::SubDetector > subDets_
CLHEP::HepSymMatrix SymMatrix
CLHEP::Hep3Vector Translation
std::vector< AlignTransform > m_align
Definition: Alignments.h:19
const Surface::RotationType & rotation() const
The rotation defining the local R.F.
Definition: GeomDet.h:46
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:64
std::vector< AlignTransformErrorExtended > m_alignError
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
virtual SubDetector subDetector() const
Which subdetector.
Definition: GeomDet.cc:38
const Surface::PositionType & position() const
The position (origin of the R.F.)
Definition: GeomDet.h:43
#define LogDebug(id)
CLHEP::HepRotation Rotation

◆ alignToGT()

void CreateIdealTkAlRecords::alignToGT ( const edm::EventSetup iSetup)
private

Definition at line 301 of file CreateTrackerAlignmentRcds.cc.

References AlignmentSurfaceDeformations::add(), aliErrorToken_, alignmentErrors_, PixelBaryCentreAnalyzer_cfg::alignments, alignments_, alignmentSurfaceDeformations_, aliSurfaceToken_, aliToken_, HLT_2024v14_cff::distance, spr::find(), newFWLiteAna::found, edm::EventSetup::getData(), mps_fire::i, EcalPhiSymFlatTableProducers_cfi::id, B2GTnPMonitor_cfi::item, AlignmentSurfaceDeformations::items(), LogDebug, Alignments::m_align, AlignmentErrorsExtended::m_alignError, AlignmentSurfaceDeformations::parameters(), submitPVValidationJobs::params, rawIDs_, skipSubDetectors_, subDets_, and toString().

Referenced by analyze().

301  {
302  LogDebug("Alignment") << "Aligning to global tag\n";
303 
304  const Alignments* alignments = &iSetup.getData(aliToken_);
305  const AlignmentErrorsExtended* alignmentErrors = &iSetup.getData(aliErrorToken_);
306  const AlignmentSurfaceDeformations* surfaceDeformations = &iSetup.getData(aliSurfaceToken_);
307 
308  if (alignments->m_align.size() != alignmentErrors->m_alignError.size())
309  throw cms::Exception("GeometryMismatch")
310  << "Size mismatch between alignments (size=" << alignments->m_align.size()
311  << ") and alignment errors (size=" << alignmentErrors->m_alignError.size() << ")";
312 
313  std::vector<uint32_t> commonIDs;
314  auto itAlignErr = alignmentErrors->m_alignError.cbegin();
315  for (auto itAlign = alignments->m_align.cbegin(); itAlign != alignments->m_align.cend(); ++itAlign, ++itAlignErr) {
316  const auto id = itAlign->rawId();
317  auto found = std::find(rawIDs_.cbegin(), rawIDs_.cend(), id);
318  if (found != rawIDs_.cend()) {
319  if (id != itAlignErr->rawId())
320  throw cms::Exception("GeometryMismatch") << "DetId mismatch between alignments (rawId=" << id
321  << ") and alignment errors (rawId=" << itAlignErr->rawId() << ")";
322 
323  const auto index = std::distance(rawIDs_.cbegin(), found);
325  continue;
326 
327  if (alignments_.m_align[index].rawId() != alignmentErrors_.m_alignError[index].rawId())
328  throw cms::Exception("GeometryMismatch")
329  << "DetId mismatch between alignments (rawId=" << alignments_.m_align[index].rawId()
330  << ") and alignment errors (rawId=" << alignmentErrors_.m_alignError[index].rawId() << ")";
331 
332  LogDebug("Alignment") << "============================================================\n"
333  << "\nGeometry content (" << toString(subDets_[index]) << ", "
334  << alignments_.m_align[index].rawId() << "):\n"
335  << "\tx: " << alignments_.m_align[index].translation().x()
336  << "\ty: " << alignments_.m_align[index].translation().y()
337  << "\tz: " << alignments_.m_align[index].translation().z()
338  << "\tphi: " << alignments_.m_align[index].rotation().phi()
339  << "\ttheta: " << alignments_.m_align[index].rotation().theta()
340  << "\tpsi: " << alignments_.m_align[index].rotation().psi()
341  << "============================================================\n";
342  alignments_.m_align[index] = *itAlign;
343  alignmentErrors_.m_alignError[index] = *itAlignErr;
344  commonIDs.push_back(id);
345  LogDebug("Alignment") << "============================================================\n"
346  << "Global tag content (" << toString(subDets_[index]) << ", "
347  << alignments_.m_align[index].rawId() << "):\n"
348  << "\tx: " << alignments_.m_align[index].translation().x()
349  << "\ty: " << alignments_.m_align[index].translation().y()
350  << "\tz: " << alignments_.m_align[index].translation().z()
351  << "\tphi: " << alignments_.m_align[index].rotation().phi()
352  << "\ttheta: " << alignments_.m_align[index].rotation().theta()
353  << "\tpsi: " << alignments_.m_align[index].rotation().psi()
354  << "============================================================\n";
355  }
356  }
357 
358  // - surface deformations are stored differently
359  // -> different treatment
360  // - the above payloads contain also entries for ideal modules
361  // - no entry is created for ideal surfaces
362  // -> size of surface deformation payload does not necessarily match the
363  // size of the other tracker alignment payload
364  for (const auto& id : commonIDs) {
365  // search for common raw ID in surface deformation items
366  auto item = std::find_if(surfaceDeformations->items().cbegin(),
367  surfaceDeformations->items().cend(),
368  [&id](const auto& i) { return i.m_rawId == id; });
369  if (item == surfaceDeformations->items().cend())
370  continue; // not found
371 
372  // copy surface deformation item
373  const auto index = std::distance(surfaceDeformations->items().cbegin(), item);
374  const auto beginEndPair = surfaceDeformations->parameters(index);
375  std::vector<align::Scalar> params(beginEndPair.first, beginEndPair.second);
376  alignmentSurfaceDeformations_.add(item->m_rawId, item->m_parametrizationType, params);
377  }
378 }
std::vector< uint32_t > rawIDs_
static std::string toString(const GeomDetEnumerators::SubDetector &)
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
AlignmentErrorsExtended alignmentErrors_
AlignmentSurfaceDeformations alignmentSurfaceDeformations_
std::vector< GeomDetEnumerators::SubDetector > subDets_
ParametersConstIteratorPair parameters(size_t index) const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
std::vector< AlignTransform > m_align
Definition: Alignments.h:19
const std::vector< GeomDetEnumerators::SubDetector > skipSubDetectors_
const edm::ESGetToken< Alignments, TrackerAlignmentRcd > aliToken_
bool add(align::ID rawId, int type, const std::vector< align::Scalar > &parameters)
Add a new item.
std::vector< AlignTransformErrorExtended > m_alignError
const edm::ESGetToken< AlignmentErrorsExtended, TrackerAlignmentErrorExtendedRcd > aliErrorToken_
const edm::ESGetToken< AlignmentSurfaceDeformations, TrackerSurfaceDeformationRcd > aliSurfaceToken_
const ItemVector & items() const
Get vector of all items.
#define LogDebug(id)

◆ analyze()

void CreateIdealTkAlRecords::analyze ( const edm::Event ,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 132 of file CreateTrackerAlignmentRcds.cc.

References a, addAlignmentInfo(), alignToGlobalTag_, alignToGT(), b, clearAlignmentInfos(), createReferenceRcd_, firstEvent_, retrieveGeometry(), jetUpdater_cfi::sort, PbPb_ZMuSkimMuonDPG_cff::tracker, and writeToDB().

132  {
133  if (firstEvent_) {
135  const auto tracker = retrieveGeometry(iSetup);
136 
137  auto dets = tracker->dets();
138  std::sort(dets.begin(), dets.end(), [](const auto& a, const auto& b) {
139  return a->geographicalId().rawId() < b->geographicalId().rawId();
140  });
141 
142  for (const auto& det : dets)
143  addAlignmentInfo(*det);
145  alignToGT(iSetup);
146  writeToDB();
147  firstEvent_ = false;
148  }
149 }
std::unique_ptr< TrackerGeometry > retrieveGeometry(const edm::EventSetup &)
void addAlignmentInfo(const GeomDet &)
void alignToGT(const edm::EventSetup &)
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121

◆ clearAlignmentInfos()

void CreateIdealTkAlRecords::clearAlignmentInfos ( )
private

Definition at line 248 of file CreateTrackerAlignmentRcds.cc.

References alignmentErrors_, alignments_, alignmentSurfaceDeformations_, AlignmentErrorsExtended::clear(), Alignments::clear(), and rawIDs_.

Referenced by analyze().

248  {
249  alignments_.clear();
252  rawIDs_.clear();
253 }
std::vector< uint32_t > rawIDs_
AlignmentErrorsExtended alignmentErrors_
AlignmentSurfaceDeformations alignmentSurfaceDeformations_
void clear()
Clear vector without having to look into internals:
Definition: Alignments.h:17
void clear()
Clear vector without having to look into internals:

◆ fillDescriptions()

void CreateIdealTkAlRecords::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 395 of file CreateTrackerAlignmentRcds.cc.

References edm::ConfigurationDescriptions::add(), and submitPVResolutionJobs::desc.

395  {
397  desc.setComment(
398  "Creates ideal TrackerAlignmentRcd and TrackerAlignmentErrorExtendedRcd "
399  "from the loaded tracker geometry. "
400  "PoolDBOutputService must be set up for these records.");
401  desc.addUntracked<bool>("alignToGlobalTag", false);
402  desc.addUntracked<std::vector<std::string> >("skipSubDetectors", std::vector<std::string>{});
403  desc.addUntracked<bool>("createReferenceRcd", false);
404  descriptions.add("createIdealTkAlRecords", desc);
405 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ retrieveGeometry()

std::unique_ptr< TrackerGeometry > CreateIdealTkAlRecords::retrieveGeometry ( const edm::EventSetup iSetup)
private

Definition at line 255 of file CreateTrackerAlignmentRcds.cc.

References TrackerGeomBuilderFromGeometricDet::build(), geomDetToken_, edm::EventSetup::getData(), ptitpToken_, ptpToken_, and topoToken_.

Referenced by analyze().

255  {
256  const GeometricDet* geometricDet = &iSetup.getData(geomDetToken_);
257  const PTrackerParameters& ptp = iSetup.getData(ptpToken_);
259  const TrackerTopology* tTopo = &iSetup.getData(topoToken_);
260 
261  TrackerGeomBuilderFromGeometricDet trackerBuilder;
262 
263  return std::unique_ptr<TrackerGeometry>{trackerBuilder.build(geometricDet, ptitp, ptp, tTopo)};
264 }
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
const edm::ESGetToken< GeometricDet, IdealGeometryRecord > geomDetToken_
TrackerGeometry * build(const GeometricDet *gd, const PTrackerAdditionalParametersPerDet *ptitp, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
const edm::ESGetToken< PTrackerAdditionalParametersPerDet, PTrackerAdditionalParametersPerDetRcd > ptitpToken_
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > ptpToken_

◆ toString()

std::string CreateIdealTkAlRecords::toString ( const GeomDetEnumerators::SubDetector sub)
static

Definition at line 151 of file CreateTrackerAlignmentRcds.cc.

References GeomDetEnumerators::CSC, GeomDetEnumerators::DT, Exception, GeomDetEnumerators::GEM, GeomDetEnumerators::invalidDet, GeomDetEnumerators::ME0, GeomDetEnumerators::P1PXB, GeomDetEnumerators::P1PXEC, GeomDetEnumerators::P2OTB, GeomDetEnumerators::P2OTEC, GeomDetEnumerators::P2PXB, GeomDetEnumerators::P2PXEC, GeomDetEnumerators::PixelBarrel, GeomDetEnumerators::PixelEndcap, GeomDetEnumerators::RPCBarrel, GeomDetEnumerators::RPCEndcap, GeomDetEnumerators::TEC, GeomDetEnumerators::TIB, GeomDetEnumerators::TID, and GeomDetEnumerators::TOB.

Referenced by addAlignmentInfo(), and alignToGT().

151  {
152  switch (sub) {
154  return "PixelBarrel";
156  return "PixelEndcap";
158  return "TIB";
160  return "TOB";
162  return "TID";
164  return "TEC";
166  return "CSC";
168  return "DT";
170  return "RPCBarrel";
172  return "RPCEndcap";
174  return "GEM";
176  return "ME0";
178  return "P2OTB";
180  return "P2OTEC";
182  return "P1PXB";
184  return "P1PXEC";
186  return "P2PXB";
188  return "P2PXEC";
190  return "invalidDet";
191  default:
192  throw cms::Exception("UnknownSubdetector");
193  }
194 }

◆ toSubDetector()

GeomDetEnumerators::SubDetector CreateIdealTkAlRecords::toSubDetector ( const std::string &  sub)
static

Definition at line 196 of file CreateTrackerAlignmentRcds.cc.

References GeomDetEnumerators::CSC, GeomDetEnumerators::DT, Exception, GeomDetEnumerators::GEM, GeomDetEnumerators::invalidDet, GeomDetEnumerators::ME0, GeomDetEnumerators::P1PXB, GeomDetEnumerators::P1PXEC, GeomDetEnumerators::P2OTB, GeomDetEnumerators::P2OTEC, GeomDetEnumerators::P2PXB, GeomDetEnumerators::P2PXEC, GeomDetEnumerators::PixelBarrel, GeomDetEnumerators::PixelEndcap, GeomDetEnumerators::RPCBarrel, GeomDetEnumerators::RPCEndcap, GeomDetEnumerators::TEC, GeomDetEnumerators::TIB, GeomDetEnumerators::TID, and GeomDetEnumerators::TOB.

Referenced by toSubDetectors().

196  {
197  if (sub == "PixelBarrel")
199  else if (sub == "PixelEndcap")
201  else if (sub == "TIB")
203  else if (sub == "TOB")
205  else if (sub == "TID")
207  else if (sub == "TEC")
209  else if (sub == "CSC")
211  else if (sub == "DT")
212  return GeomDetEnumerators::DT;
213  else if (sub == "RPCBarrel")
215  else if (sub == "RPCEndcap")
217  else if (sub == "GEM")
219  else if (sub == "ME0")
221  else if (sub == "P2OTB")
223  else if (sub == "P2OTEC")
225  else if (sub == "P1PXB")
227  else if (sub == "P1PXEC")
229  else if (sub == "P2PXB")
231  else if (sub == "P2PXEC")
233  else if (sub == "invalidDet")
235  else
236  throw cms::Exception("UnknownSubdetector") << sub;
237 }

◆ toSubDetectors()

std::vector< GeomDetEnumerators::SubDetector > CreateIdealTkAlRecords::toSubDetectors ( const std::vector< std::string > &  subs)
static

Definition at line 239 of file CreateTrackerAlignmentRcds.cc.

References mps_fire::result, and toSubDetector().

240  {
241  std::vector<GeomDetEnumerators::SubDetector> result;
242  result.reserve(subs.size());
243  for (const auto& sub : subs)
244  result.emplace_back(toSubDetector(sub));
245  return result;
246 }
static GeomDetEnumerators::SubDetector toSubDetector(const std::string &sub)

◆ writeToDB()

void CreateIdealTkAlRecords::writeToDB ( )
private

Definition at line 380 of file CreateTrackerAlignmentRcds.cc.

References alignmentErrors_, alignments_, alignmentSurfaceDeformations_, cond::TimeTypeSpecs::beginValue, Exception, edm::Service< T >::isAvailable(), cond::runnumber, SiStripO2O_cfg_template::since, cond::timeTypeSpecs, and cond::service::PoolDBOutputService::writeOneIOV().

Referenced by analyze().

380  {
382 
384  if (!poolDb.isAvailable()) {
385  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
386  }
387 
388  edm::LogInfo("Alignment") << "Writing ideal tracker-alignment records.";
389  poolDb->writeOneIOV(alignments_, since, "TrackerAlignmentRcd");
390  poolDb->writeOneIOV(alignmentErrors_, since, "TrackerAlignmentErrorExtendedRcd");
391  poolDb->writeOneIOV(alignmentSurfaceDeformations_, since, "TrackerSurfaceDeformationRcd");
392 }
const TimeTypeSpecs timeTypeSpecs[]
Definition: Time.cc:16
AlignmentErrorsExtended alignmentErrors_
AlignmentSurfaceDeformations alignmentSurfaceDeformations_
Time_t beginValue
Definition: Time.h:41
Hash writeOneIOV(const T &payload, Time_t time, const std::string &recordName)
Log< level::Info, false > LogInfo
bool isAvailable() const
Definition: Service.h:40

Member Data Documentation

◆ aliErrorToken_

const edm::ESGetToken<AlignmentErrorsExtended, TrackerAlignmentErrorExtendedRcd> CreateIdealTkAlRecords::aliErrorToken_
private

Definition at line 96 of file CreateTrackerAlignmentRcds.cc.

Referenced by alignToGT().

◆ alignmentErrors_

AlignmentErrorsExtended CreateIdealTkAlRecords::alignmentErrors_
private

◆ alignments_

Alignments CreateIdealTkAlRecords::alignments_
private

◆ alignmentSurfaceDeformations_

AlignmentSurfaceDeformations CreateIdealTkAlRecords::alignmentSurfaceDeformations_
private

Definition at line 104 of file CreateTrackerAlignmentRcds.cc.

Referenced by alignToGT(), clearAlignmentInfos(), and writeToDB().

◆ alignToGlobalTag_

const bool CreateIdealTkAlRecords::alignToGlobalTag_
private

Definition at line 99 of file CreateTrackerAlignmentRcds.cc.

Referenced by analyze().

◆ aliSurfaceToken_

const edm::ESGetToken<AlignmentSurfaceDeformations, TrackerSurfaceDeformationRcd> CreateIdealTkAlRecords::aliSurfaceToken_
private

Definition at line 97 of file CreateTrackerAlignmentRcds.cc.

Referenced by alignToGT().

◆ aliToken_

const edm::ESGetToken<Alignments, TrackerAlignmentRcd> CreateIdealTkAlRecords::aliToken_
private

Definition at line 95 of file CreateTrackerAlignmentRcds.cc.

Referenced by alignToGT().

◆ createReferenceRcd_

const bool CreateIdealTkAlRecords::createReferenceRcd_
private

Definition at line 100 of file CreateTrackerAlignmentRcds.cc.

Referenced by addAlignmentInfo(), and analyze().

◆ firstEvent_

bool CreateIdealTkAlRecords::firstEvent_
private

Definition at line 101 of file CreateTrackerAlignmentRcds.cc.

Referenced by analyze().

◆ geomDetToken_

const edm::ESGetToken<GeometricDet, IdealGeometryRecord> CreateIdealTkAlRecords::geomDetToken_
private

Definition at line 91 of file CreateTrackerAlignmentRcds.cc.

Referenced by retrieveGeometry().

◆ ptitpToken_

Definition at line 93 of file CreateTrackerAlignmentRcds.cc.

Referenced by retrieveGeometry().

◆ ptpToken_

const edm::ESGetToken<PTrackerParameters, PTrackerParametersRcd> CreateIdealTkAlRecords::ptpToken_
private

Definition at line 92 of file CreateTrackerAlignmentRcds.cc.

Referenced by retrieveGeometry().

◆ rawIDs_

std::vector<uint32_t> CreateIdealTkAlRecords::rawIDs_
private

Definition at line 105 of file CreateTrackerAlignmentRcds.cc.

Referenced by addAlignmentInfo(), alignToGT(), and clearAlignmentInfos().

◆ skipSubDetectors_

const std::vector<GeomDetEnumerators::SubDetector> CreateIdealTkAlRecords::skipSubDetectors_
private

Definition at line 98 of file CreateTrackerAlignmentRcds.cc.

Referenced by alignToGT().

◆ subDets_

std::vector<GeomDetEnumerators::SubDetector> CreateIdealTkAlRecords::subDets_
private

Definition at line 106 of file CreateTrackerAlignmentRcds.cc.

Referenced by addAlignmentInfo(), and alignToGT().

◆ topoToken_

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> CreateIdealTkAlRecords::topoToken_
private

Definition at line 94 of file CreateTrackerAlignmentRcds.cc.

Referenced by retrieveGeometry().