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 final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const 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
 
bool wantsStreamRuns () const
 
 ~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
 
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)
 

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< 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 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)
 

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 69 of file CreateTrackerAlignmentRcds.cc.

Constructor & Destructor Documentation

◆ CreateIdealTkAlRecords()

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

Definition at line 109 of file CreateTrackerAlignmentRcds.cc.

116  skipSubDetectors_(toSubDetectors(iConfig.getUntrackedParameter<std::vector<std::string> >("skipSubDetectors"))),
117  alignToGlobalTag_(iConfig.getUntrackedParameter<bool>("alignToGlobalTag")),
118  createReferenceRcd_(iConfig.getUntrackedParameter<bool>("createReferenceRcd")),
119  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< AlignmentErrorsExtended, TrackerAlignmentErrorExtendedRcd > aliErrorToken_
const edm::ESGetToken< AlignmentSurfaceDeformations, TrackerSurfaceDeformationRcd > aliSurfaceToken_
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > ptpToken_

◆ ~CreateIdealTkAlRecords()

CreateIdealTkAlRecords::~CreateIdealTkAlRecords ( )
override

Definition at line 121 of file CreateTrackerAlignmentRcds.cc.

121 {}

Member Function Documentation

◆ addAlignmentInfo()

void CreateIdealTkAlRecords::addAlignmentInfo ( const GeomDet det)
private

Definition at line 261 of file CreateTrackerAlignmentRcds.cc.

References alignmentErrors_, alignments_, createReferenceRcd_, 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().

261  {
262  const auto subDetector = toString(det.subDetector());
263  const auto& detId = det.geographicalId().rawId();
264  const auto& pos = det.position();
265  const auto& rot = det.rotation();
266  rawIDs_.push_back(detId);
267  subDets_.push_back(det.subDetector());
268 
269  // TrackerAlignmentRcd entry
270  if (createReferenceRcd_) {
272  } else {
273  const AlignTransform::Translation translation(pos.x(), pos.y(), pos.z());
275  CLHEP::HepRep3x3(rot.xx(), rot.xy(), rot.xz(), rot.yx(), rot.yy(), rot.yz(), rot.zx(), rot.zy(), rot.zz()));
276  const auto& eulerAngles = rotation.eulerAngles();
277  LogDebug("Alignment") << "============================================================\n"
278  << "subdetector: " << subDetector << "\n"
279  << "detId: " << detId << "\n"
280  << "------------------------------------------------------------\n"
281  << " x: " << pos.x() << "\n"
282  << " y: " << pos.y() << "\n"
283  << " z: " << pos.z() << "\n"
284  << " phi: " << eulerAngles.phi() << "\n"
285  << " theta: " << eulerAngles.theta() << "\n"
286  << " psi: " << eulerAngles.psi() << "\n"
287  << "============================================================\n";
288  alignments_.m_align.emplace_back(AlignTransform(translation, rotation, detId));
289  }
290 
291  // TrackerAlignmentErrorExtendedRcd entry
292  const AlignTransformError::SymMatrix zeroAPEs(6, 0);
293  alignmentErrors_.m_alignError.emplace_back(AlignTransformErrorExtended(zeroAPEs, detId));
294 }
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 296 of file CreateTrackerAlignmentRcds.cc.

References AlignmentSurfaceDeformations::add(), aliErrorToken_, alignmentErrors_, alignments_, alignmentSurfaceDeformations_, aliSurfaceToken_, aliToken_, HLT_2023v12_cff::distance, spr::find(), newFWLiteAna::found, edm::EventSetup::getData(), mps_fire::i, l1ctLayer2EG_cff::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().

296  {
297  LogDebug("Alignment") << "Aligning to global tag\n";
298 
299  const Alignments* alignments = &iSetup.getData(aliToken_);
300  const AlignmentErrorsExtended* alignmentErrors = &iSetup.getData(aliErrorToken_);
301  const AlignmentSurfaceDeformations* surfaceDeformations = &iSetup.getData(aliSurfaceToken_);
302 
303  if (alignments->m_align.size() != alignmentErrors->m_alignError.size())
304  throw cms::Exception("GeometryMismatch")
305  << "Size mismatch between alignments (size=" << alignments->m_align.size()
306  << ") and alignment errors (size=" << alignmentErrors->m_alignError.size() << ")";
307 
308  std::vector<uint32_t> commonIDs;
309  auto itAlignErr = alignmentErrors->m_alignError.cbegin();
310  for (auto itAlign = alignments->m_align.cbegin(); itAlign != alignments->m_align.cend(); ++itAlign, ++itAlignErr) {
311  const auto id = itAlign->rawId();
312  auto found = std::find(rawIDs_.cbegin(), rawIDs_.cend(), id);
313  if (found != rawIDs_.cend()) {
314  if (id != itAlignErr->rawId())
315  throw cms::Exception("GeometryMismatch") << "DetId mismatch between alignments (rawId=" << id
316  << ") and alignment errors (rawId=" << itAlignErr->rawId() << ")";
317 
318  const auto index = std::distance(rawIDs_.cbegin(), found);
320  continue;
321 
322  if (alignments_.m_align[index].rawId() != alignmentErrors_.m_alignError[index].rawId())
323  throw cms::Exception("GeometryMismatch")
324  << "DetId mismatch between alignments (rawId=" << alignments_.m_align[index].rawId()
325  << ") and alignment errors (rawId=" << alignmentErrors_.m_alignError[index].rawId() << ")";
326 
327  LogDebug("Alignment") << "============================================================\n"
328  << "\nGeometry content (" << toString(subDets_[index]) << ", "
329  << alignments_.m_align[index].rawId() << "):\n"
330  << "\tx: " << alignments_.m_align[index].translation().x()
331  << "\ty: " << alignments_.m_align[index].translation().y()
332  << "\tz: " << alignments_.m_align[index].translation().z()
333  << "\tphi: " << alignments_.m_align[index].rotation().phi()
334  << "\ttheta: " << alignments_.m_align[index].rotation().theta()
335  << "\tpsi: " << alignments_.m_align[index].rotation().psi()
336  << "============================================================\n";
337  alignments_.m_align[index] = *itAlign;
338  alignmentErrors_.m_alignError[index] = *itAlignErr;
339  commonIDs.push_back(id);
340  LogDebug("Alignment") << "============================================================\n"
341  << "Global tag content (" << toString(subDets_[index]) << ", "
342  << alignments_.m_align[index].rawId() << "):\n"
343  << "\tx: " << alignments_.m_align[index].translation().x()
344  << "\ty: " << alignments_.m_align[index].translation().y()
345  << "\tz: " << alignments_.m_align[index].translation().z()
346  << "\tphi: " << alignments_.m_align[index].rotation().phi()
347  << "\ttheta: " << alignments_.m_align[index].rotation().theta()
348  << "\tpsi: " << alignments_.m_align[index].rotation().psi()
349  << "============================================================\n";
350  }
351  }
352 
353  // - surface deformations are stored differently
354  // -> different treatment
355  // - the above payloads contain also entries for ideal modules
356  // - no entry is created for ideal surfaces
357  // -> size of surface deformation payload does not necessarily match the
358  // size of the other tracker alignment payload
359  for (const auto& id : commonIDs) {
360  // search for common raw ID in surface deformation items
361  auto item = std::find_if(surfaceDeformations->items().cbegin(),
362  surfaceDeformations->items().cend(),
363  [&id](const auto& i) { return i.m_rawId == id; });
364  if (item == surfaceDeformations->items().cend())
365  continue; // not found
366 
367  // copy surface deformation item
368  const auto index = std::distance(surfaceDeformations->items().cbegin(), item);
369  const auto beginEndPair = surfaceDeformations->parameters(index);
370  std::vector<align::Scalar> params(beginEndPair.first, beginEndPair.second);
371  alignmentSurfaceDeformations_.add(item->m_rawId, item->m_parametrizationType, params);
372  }
373 }
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 128 of file CreateTrackerAlignmentRcds.cc.

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

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

◆ clearAlignmentInfos()

void CreateIdealTkAlRecords::clearAlignmentInfos ( )
private

Definition at line 244 of file CreateTrackerAlignmentRcds.cc.

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

Referenced by analyze().

244  {
245  alignments_.clear();
248  rawIDs_.clear();
249 }
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 390 of file CreateTrackerAlignmentRcds.cc.

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

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

◆ retrieveGeometry()

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

Definition at line 251 of file CreateTrackerAlignmentRcds.cc.

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

Referenced by analyze().

251  {
252  const GeometricDet* geometricDet = &iSetup.getData(geomDetToken_);
253  const PTrackerParameters& ptp = iSetup.getData(ptpToken_);
254  const TrackerTopology* tTopo = &iSetup.getData(topoToken_);
255 
256  TrackerGeomBuilderFromGeometricDet trackerBuilder;
257 
258  return std::unique_ptr<TrackerGeometry>{trackerBuilder.build(geometricDet, ptp, tTopo)};
259 }
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 PTrackerParameters &ptp, const TrackerTopology *tTopo)
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > ptpToken_

◆ toString()

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

Definition at line 147 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().

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

◆ toSubDetector()

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

Definition at line 192 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().

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

◆ toSubDetectors()

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

Definition at line 235 of file CreateTrackerAlignmentRcds.cc.

References mps_fire::result, and toSubDetector().

236  {
237  std::vector<GeomDetEnumerators::SubDetector> result;
238  result.reserve(subs.size());
239  for (const auto& sub : subs)
240  result.emplace_back(toSubDetector(sub));
241  return result;
242 }
static GeomDetEnumerators::SubDetector toSubDetector(const std::string &sub)

◆ writeToDB()

void CreateIdealTkAlRecords::writeToDB ( )
private

Definition at line 375 of file CreateTrackerAlignmentRcds.cc.

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

Referenced by analyze().

375  {
377 
379  if (!poolDb.isAvailable()) {
380  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
381  }
382 
383  edm::LogInfo("Alignment") << "Writing ideal tracker-alignment records.";
384  poolDb->writeOneIOV(alignments_, since, "TrackerAlignmentRcd");
385  poolDb->writeOneIOV(alignmentErrors_, since, "TrackerAlignmentErrorExtendedRcd");
386  poolDb->writeOneIOV(alignmentSurfaceDeformations_, since, "TrackerSurfaceDeformationRcd");
387 }
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 93 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 101 of file CreateTrackerAlignmentRcds.cc.

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

◆ alignToGlobalTag_

const bool CreateIdealTkAlRecords::alignToGlobalTag_
private

Definition at line 96 of file CreateTrackerAlignmentRcds.cc.

Referenced by analyze().

◆ aliSurfaceToken_

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

Definition at line 94 of file CreateTrackerAlignmentRcds.cc.

Referenced by alignToGT().

◆ aliToken_

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

Definition at line 92 of file CreateTrackerAlignmentRcds.cc.

Referenced by alignToGT().

◆ createReferenceRcd_

const bool CreateIdealTkAlRecords::createReferenceRcd_
private

Definition at line 97 of file CreateTrackerAlignmentRcds.cc.

Referenced by addAlignmentInfo(), and analyze().

◆ firstEvent_

bool CreateIdealTkAlRecords::firstEvent_
private

Definition at line 98 of file CreateTrackerAlignmentRcds.cc.

Referenced by analyze().

◆ geomDetToken_

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

Definition at line 89 of file CreateTrackerAlignmentRcds.cc.

Referenced by retrieveGeometry().

◆ ptpToken_

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

Definition at line 90 of file CreateTrackerAlignmentRcds.cc.

Referenced by retrieveGeometry().

◆ rawIDs_

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

Definition at line 102 of file CreateTrackerAlignmentRcds.cc.

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

◆ skipSubDetectors_

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

Definition at line 95 of file CreateTrackerAlignmentRcds.cc.

Referenced by alignToGT().

◆ subDets_

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

Definition at line 103 of file CreateTrackerAlignmentRcds.cc.

Referenced by addAlignmentInfo(), and alignToGT().

◆ topoToken_

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

Definition at line 91 of file CreateTrackerAlignmentRcds.cc.

Referenced by retrieveGeometry().