CMS 3D CMS Logo

List of all members | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
AlignmentProducerBase Class Referenceabstract

#include <AlignmentProducerBase.h>

Inheritance diagram for AlignmentProducerBase:
AlignmentProducer AlignmentProducerAsAnalyzer

Protected Member Functions

 AlignmentProducerBase (const edm::ParameterSet &)
 
void beginLuminosityBlockImpl (const edm::LuminosityBlock &, const edm::EventSetup &)
 begin lumi block More...
 
void beginRunImpl (const edm::Run &, const edm::EventSetup &)
 begin run More...
 
void endLuminosityBlockImpl (const edm::LuminosityBlock &, const edm::EventSetup &)
 end lumi block More...
 
void endRunImpl (const edm::Run &, const edm::EventSetup &)
 end run More...
 
bool finish ()
 
virtual bool getAliClusterValueMap (const edm::Event &, edm::Handle< AliClusterValueMap > &)=0
 
virtual bool getBeamSpot (const edm::Event &, edm::Handle< reco::BeamSpot > &)=0
 
virtual bool getTkFittedLasBeamCollection (const edm::Run &, edm::Handle< TkFittedLasBeamCollection > &)=0
 
virtual bool getTrajTrackAssociationCollection (const edm::Event &, edm::Handle< TrajTrackAssociationCollection > &)=0
 
virtual bool getTsosVectorCollection (const edm::Run &, edm::Handle< TsosVectorCollection > &)=0
 
void initAlignmentAlgorithm (const edm::EventSetup &, bool update=false)
 
int nEvent () const
 
bool processEvent (const edm::Event &, const edm::EventSetup &)
 Process event. More...
 
void startProcessing ()
 Start processing of events. More...
 
void terminateProcessing (const edm::EventSetup *=nullptr)
 Terminate processing of events. More...
 
virtual ~AlignmentProducerBase () noexcept(false)
 

Protected Attributes

const edm::InputTag beamSpotTag_
 BeamSpot. More...
 
const edm::InputTag clusterValueMapTag_
 ValueMap containing associtaion cluster-flag. More...
 
const bool doMuon_
 
const bool doTracker_
 
edm::ESHandle< CSCGeometrymuonCSCGeometry_
 
edm::ESHandle< DTGeometrymuonDTGeometry_
 
edm::ESHandle< GEMGeometrymuonGEMGeometry_
 
const edm::InputTag tjTkAssociationMapTag_
 Map with tracks/trajectories. More...
 
const edm::InputTag tkLasBeamTag_
 LAS beams in edm::Run (ignore if empty) More...
 
std::shared_ptr< TrackerGeometrytrackerGeometry_
 
const bool useExtras_
 

Private Member Functions

void addSurveyInfo (Alignable *)
 Adds survey info to an Alignable. More...
 
void applyAlignmentsToDB (const edm::EventSetup &)
 
void applyAlignmentsToGeometry ()
 
template<class G , class DeformationRcd >
void applyDB (const G *, const edm::EventSetup &) const
 Applies DB constants for SurfaceDeformations. More...
 
template<class G , class Rcd , class ErrRcd >
void applyDB (const G *, const edm::EventSetup &, const AlignTransform &) const
 
void applyMisalignment ()
 Applies misalignment scenario to @alignableTracker_. More...
 
void buildParameterStore ()
 Creates the @alignmentParameterStore_, which manages all Alignables. More...
 
void createAlignables (const TrackerTopology *, bool update=false)
 
void createAlignmentAlgorithm ()
 Creates the choosen alignment algorithm. More...
 
void createCalibrations ()
 Creates the calibrations. More...
 
void createGeometries (const edm::EventSetup &, const TrackerTopology *)
 Creates ideal geometry @trackerGeometry_ from IdealGeometryRecord. More...
 
void createMonitors ()
 Creates the monitors. More...
 
void initBeamSpot (const edm::Event &)
 Initializes Beamspot @beamSpot_ of Alignables @alignableExtras_. More...
 
void readInSurveyRcds (const edm::EventSetup &)
 Reads in survey records. More...
 
bool setupChanged (const edm::EventSetup &)
 Checks if one of the EventSetup-Records has changed. More...
 
void simpleMisalignment (const align::Alignables &, const std::string &, float, float, bool)
 Applies misalignment scenario to @alignableTracker_. More...
 
void storeAlignmentsToDB ()
 Writes Alignments (i.e. Records) to database-file. More...
 
void writeDB (Alignments *, const std::string &, AlignmentErrorsExtended *, const std::string &, const AlignTransform *, cond::Time_t) const
 
void writeDB (AlignmentSurfaceDeformations *, const std::string &, cond::Time_t) const
 
void writeForRunRange (cond::Time_t)
 

Private Attributes

std::unique_ptr< AlignableExtrasalignableExtras_
 
std::unique_ptr< AlignableMuonalignableMuon_
 
std::unique_ptr< AlignableTrackeralignableTracker_
 
std::unique_ptr< AlignmentAlgorithmBasealignmentAlgo_
 
std::unique_ptr< AlignmentParameterStorealignmentParameterStore_
 
const bool applyDbAlignment_
 
edm::Handle< reco::BeamSpotbeamSpot_
 
CalibrationsOwner calibrations_
 
const bool checkDbAlignmentValidity_
 
edm::ParameterSet config_
 
const bool doMisalignmentScenario_
 
const bool enableAlignableUpdates_
 
cond::Time_t firstRun_ {cond::timeTypeSpecs[cond::runnumber].endValue}
 
std::unique_ptr< const AlignmentsglobalPositions_
 GlobalPositions that might be read from DB, nullptr otherwise. More...
 
std::string idealGeometryLabel
 
bool isAlgoInitialized_ {false}
 
bool isDuringLoop_ {false}
 
AlignmentMonitors monitors_
 
int nevent_ {0}
 
bool runAtPCL_ {false}
 
const bool saveApeToDB_
 
const bool saveDeformationsToDB_
 
const bool saveToDB_
 
const int stNFixAlignables_
 
const double stRandomRotation_
 
const double stRandomShift_
 
const SurveyErrorssurveyErrors_ {nullptr}
 
size_t surveyIndex_ {0}
 
const AlignmentssurveyValues_ {nullptr}
 
const align::RunRanges uniqueRunRanges_
 
const bool useSurvey_
 
edm::ESWatcher< CSCAlignmentErrorExtendedRcdwatchCSCAlErrExtRcd_
 
edm::ESWatcher< CSCAlignmentRcdwatchCSCAlRcd_
 
edm::ESWatcher< CSCSurveyErrorExtendedRcdwatchCSCSurveyErrExtRcd_
 
edm::ESWatcher< CSCSurveyRcdwatchCSCSurveyRcd_
 
edm::ESWatcher< DTAlignmentErrorExtendedRcdwatchDTAlErrExtRcd_
 
edm::ESWatcher< DTAlignmentRcdwatchDTAlRcd_
 
edm::ESWatcher< DTSurveyErrorExtendedRcdwatchDTSurveyErrExtRcd_
 
edm::ESWatcher< DTSurveyRcdwatchDTSurveyRcd_
 
edm::ESWatcher< GlobalPositionRcdwatchGlobalPositionRcd_
 
edm::ESWatcher< IdealGeometryRecordwatchIdealGeometryRcd_
 
edm::ESWatcher< TrackerSurveyErrorExtendedRcdwatchTkSurveyErrExtRcd_
 
edm::ESWatcher< TrackerSurveyRcdwatchTkSurveyRcd_
 
edm::ESWatcher< TrackerAlignmentErrorExtendedRcdwatchTrackerAlErrorExtRcd_
 
edm::ESWatcher< TrackerAlignmentRcdwatchTrackerAlRcd_
 
edm::ESWatcher< TrackerSurfaceDeformationRcdwatchTrackerSurDeRcd_
 

Detailed Description

Definition at line 70 of file AlignmentProducerBase.h.

Constructor & Destructor Documentation

◆ AlignmentProducerBase()

AlignmentProducerBase::AlignmentProducerBase ( const edm::ParameterSet config)
protected

Definition at line 30 of file AlignmentProducerBase.cc.

31  : doTracker_{config.getUntrackedParameter<bool>("doTracker")},
32  doMuon_{config.getUntrackedParameter<bool>("doMuon")},
33  useExtras_{config.getUntrackedParameter<bool>("useExtras")},
34  tjTkAssociationMapTag_{config.getParameter<edm::InputTag>("tjTkAssociationMapTag")},
35  beamSpotTag_{config.getParameter<edm::InputTag>("beamSpotTag")},
36  tkLasBeamTag_{config.getParameter<edm::InputTag>("tkLasBeamTag")},
37  clusterValueMapTag_{config.getParameter<edm::InputTag>("hitPrescaleMapTag")},
38  uniqueRunRanges_{align::makeUniqueRunRanges(config.getParameter<edm::VParameterSet>("RunRangeSelection"),
40  config_{config},
41  stNFixAlignables_{config.getParameter<int>("nFixAlignables")},
42  stRandomShift_{config.getParameter<double>("randomShift")},
43  stRandomRotation_{config.getParameter<double>("randomRotation")},
44  applyDbAlignment_{config.getUntrackedParameter<bool>("applyDbAlignment")},
45  checkDbAlignmentValidity_{config.getUntrackedParameter<bool>("checkDbAlignmentValidity")},
46  doMisalignmentScenario_{config.getParameter<bool>("doMisalignmentScenario")},
47  saveToDB_{config.getParameter<bool>("saveToDB")},
48  saveApeToDB_{config.getParameter<bool>("saveApeToDB")},
49  saveDeformationsToDB_{config.getParameter<bool>("saveDeformationsToDB")},
50  useSurvey_{config.getParameter<bool>("useSurvey")},
51  enableAlignableUpdates_{config.getParameter<bool>("enableAlignableUpdates")},
52  idealGeometryLabel("idealForAlignmentProducerBase") {
53  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::AlignmentProducerBase";
54 
55  const auto& algoConfig = config_.getParameterSet("algoConfig");
56  if (config_.existsAs<bool>("runAtPCL")) {
57  // configured in main config?
58  runAtPCL_ = config_.getParameter<bool>("runAtPCL");
59 
60  if (algoConfig.existsAs<bool>("runAtPCL") && (runAtPCL_ != algoConfig.getParameter<bool>("runAtPCL"))) {
61  throw cms::Exception("BadConfig") << "Inconsistent settings for 'runAtPCL' in configuration of the "
62  << "alignment producer and the alignment algorithm.";
63  }
64 
65  } else if (algoConfig.existsAs<bool>("runAtPCL")) {
66  // configured in algo config?
67  runAtPCL_ = algoConfig.getParameter<bool>("runAtPCL");
68 
69  } else {
70  // assume 'false' if it was not configured
71  runAtPCL_ = false;
72  }
73 
77 }

◆ ~AlignmentProducerBase()

AlignmentProducerBase::~AlignmentProducerBase ( )
protectedvirtualnoexcept

Definition at line 80 of file AlignmentProducerBase.cc.

80 {}

Member Function Documentation

◆ addSurveyInfo()

void AlignmentProducerBase::addSurveyInfo ( Alignable ali)
private

Adds survey info to an Alignable.

Definition at line 723 of file AlignmentProducerBase.cc.

723  {
724  const auto& comps = ali->components();
725 
726  for (const auto& comp : comps)
728 
730 
731  if (ali->id() != error.rawId() || ali->alignableObjectId() != error.structureType()) {
732  throw cms::Exception("DatabaseError") << "Error reading survey info from DB. Mismatched id!";
733  }
734 
735  const auto& pos = surveyValues_->m_align[surveyIndex_].translation();
736  const auto& rot = surveyValues_->m_align[surveyIndex_].rotation();
737 
738  AlignableSurface surf(
739  align::PositionType(pos.x(), pos.y(), pos.z()),
740  align::RotationType(rot.xx(), rot.xy(), rot.xz(), rot.yx(), rot.yy(), rot.yz(), rot.zx(), rot.zy(), rot.zz()));
741 
742  surf.setWidth(ali->surface().width());
743  surf.setLength(ali->surface().length());
744 
745  ali->setSurvey(new SurveyDet(surf, error.matrix()));
746 
747  ++surveyIndex_;
748 }

References Alignable::alignableObjectId(), AlCaHLTBitMon_QueryRunRegistry::comp, Alignable::components(), relativeConstraints::error, Exception, Alignable::id(), AlignableSurface::length(), Alignments::m_align, SurveyErrors::m_surveyErrors, makeMuonMisalignmentScenario::rot, AlignableSurface::setLength(), Alignable::setSurvey(), AlignableSurface::setWidth(), Alignable::surface(), surveyErrors_, surveyIndex_, surveyValues_, and AlignableSurface::width().

Referenced by readInSurveyRcds().

◆ applyAlignmentsToDB()

void AlignmentProducerBase::applyAlignmentsToDB ( const edm::EventSetup setup)
private

Applies Alignments from Database (GlobalPositionRcd) to Geometry @trackerGeometry_

Definition at line 433 of file AlignmentProducerBase.cc.

433  {
434  // Retrieve and apply alignments, if requested (requires z setup)
435  if (applyDbAlignment_) {
436  // we need GlobalPositionRcd - and have to keep track for later removal
437  // before writing again to DB...
438 
439  edm::ESHandle<Alignments> globalAlignments;
440  setup.get<GlobalPositionRcd>().get(globalAlignments);
441  globalPositions_ = std::make_unique<Alignments>(*globalAlignments);
442 
443  if (doTracker_) {
444  applyDB<TrackerGeometry, TrackerAlignmentRcd, TrackerAlignmentErrorExtendedRcd>(
446 
447  applyDB<TrackerGeometry, TrackerSurfaceDeformationRcd>(trackerGeometry_.get(), setup);
448  }
449 
450  if (doMuon_) {
451  applyDB<DTGeometry, DTAlignmentRcd, DTAlignmentErrorExtendedRcd>(
453 
454  applyDB<CSCGeometry, CSCAlignmentRcd, CSCAlignmentErrorExtendedRcd>(
456 
457  applyDB<GEMGeometry, GEMAlignmentRcd, GEMAlignmentErrorExtendedRcd>(
459  }
460  }
461 }

References applyDbAlignment_, align::DetectorGlobalPosition(), doMuon_, doTracker_, get, globalPositions_, DetId::Muon, muonCSCGeometry_, muonDTGeometry_, muonGEMGeometry_, singleTopDQM_cfi::setup, DetId::Tracker, and trackerGeometry_.

Referenced by initAlignmentAlgorithm().

◆ applyAlignmentsToGeometry()

void AlignmentProducerBase::applyAlignmentsToGeometry ( )
private

Applies Alignments, AlignmentErrors and SurfaceDeformations to @trackerGeometry_

Definition at line 624 of file AlignmentProducerBase.cc.

624  {
625  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::applyAlignmentsToGeometry"
626  << "Now physically apply alignments to geometry...";
627 
628  // Propagate changes to reconstruction geometry (from initialisation or iteration)
629  GeometryAligner aligner;
630 
631  if (doTracker_) {
632  if (!alignableTracker_) {
633  throw cms::Exception("LogicError") << "@SUB=AlignmentProducerBase::applyAlignmentsToGeometry\n"
634  << "Trying to apply tracker alignment before creating it.";
635  }
636 
637  std::unique_ptr<Alignments> alignments{alignableTracker_->alignments()};
638  std::unique_ptr<AlignmentErrorsExtended> alignmentErrExt{alignableTracker_->alignmentErrors()};
639  std::unique_ptr<AlignmentSurfaceDeformations> aliDeforms{alignableTracker_->surfaceDeformations()};
640 
641  aligner.applyAlignments(trackerGeometry_.get(), alignments.get(), alignmentErrExt.get(), AlignTransform());
642  aligner.attachSurfaceDeformations(trackerGeometry_.get(), aliDeforms.get());
643  }
644 
645  if (doMuon_) {
646  if (!alignableMuon_) {
647  throw cms::Exception("LogicError") << "@SUB=AlignmentProducerBase::applyAlignmentsToGeometry\n"
648  << "Trying to apply muon alignment before creating it.";
649  }
650 
651  std::unique_ptr<Alignments> dtAlignments{alignableMuon_->dtAlignments()};
652  std::unique_ptr<Alignments> cscAlignments{alignableMuon_->cscAlignments()};
653  std::unique_ptr<Alignments> gemAlignments{alignableMuon_->gemAlignments()};
654 
655  std::unique_ptr<AlignmentErrorsExtended> dtAlignmentErrExt{alignableMuon_->dtAlignmentErrorsExtended()};
656  std::unique_ptr<AlignmentErrorsExtended> cscAlignmentErrExt{alignableMuon_->cscAlignmentErrorsExtended()};
657  std::unique_ptr<AlignmentErrorsExtended> gemAlignmentErrExt{alignableMuon_->gemAlignmentErrorsExtended()};
658 
659  aligner.applyAlignments(&*muonDTGeometry_, dtAlignments.get(), dtAlignmentErrExt.get(), AlignTransform());
660  aligner.applyAlignments(&*muonCSCGeometry_, cscAlignments.get(), cscAlignmentErrExt.get(), AlignTransform());
661  aligner.applyAlignments(&*muonGEMGeometry_, gemAlignments.get(), gemAlignmentErrExt.get(), AlignTransform());
662  }
663 }

References alignableMuon_, alignableTracker_, GeometryAligner::applyAlignments(), GeometryAligner::attachSurfaceDeformations(), doMuon_, doTracker_, Exception, muonCSCGeometry_, muonDTGeometry_, muonGEMGeometry_, and trackerGeometry_.

Referenced by initAlignmentAlgorithm(), and startProcessing().

◆ applyDB() [1/2]

template<class G , class DeformationRcd >
void AlignmentProducerBase::applyDB ( const G *  geometry,
const edm::EventSetup iSetup 
) const
private

Applies DB constants for SurfaceDeformations.

Definition at line 311 of file AlignmentProducerBase.h.

311  {
312  // 'G' is the geometry class for that DB should be applied,
313  // 'DeformationRcd' is the record class for its surface deformations
314 
315  const DeformationRcd& record = iSetup.get<DeformationRcd>();
317  const edm::ValidityInterval& validity = record.validityInterval();
318  const edm::IOVSyncValue first = validity.first();
319  const edm::IOVSyncValue last = validity.last();
321  throw cms::Exception("DatabaseError")
322  << "@SUB=AlignmentProducerBase::applyDB"
323  << "\nTrying to apply " << record.key().name() << " with multiple IOVs in tag.\n"
324  << "Validity range is " << first.eventID().run() << " - " << last.eventID().run();
325  }
326  }
328  record.get(surfaceDeformations);
329 
330  GeometryAligner aligner;
331  aligner.attachSurfaceDeformations<G>(geometry, &(*surfaceDeformations));
332 }

References GeometryAligner::attachSurfaceDeformations(), edm::IOVSyncValue::beginOfTime(), checkDbAlignmentValidity_, edm::IOVSyncValue::endOfTime(), Exception, edm::ValidityInterval::first(), first, callgraph::G, relativeConstraints::geometry, edm::EventSetup::get(), edm::ValidityInterval::last(), dqmdumpme::last, and GlobalPosition_Frontier_DevDB_cff::record.

◆ applyDB() [2/2]

template<class G , class Rcd , class ErrRcd >
void AlignmentProducerBase::applyDB ( const G *  geometry,
const edm::EventSetup iSetup,
const AlignTransform globalCoordinates 
) const
private

Applies DB constants belonging to (Err)Rcd to Geometry, taking into account 'globalPosition' correction.

Definition at line 279 of file AlignmentProducerBase.h.

281  {
282  // 'G' is the geometry class for that DB should be applied,
283  // 'Rcd' is the record class for its Alignments
284  // 'ErrRcd' is the record class for its AlignmentErrorsExtended
285  // 'globalCoordinates' are global transformation for this geometry
286 
287  const Rcd& record = iSetup.get<Rcd>();
289  const edm::ValidityInterval& validity = record.validityInterval();
290  const edm::IOVSyncValue first = validity.first();
291  const edm::IOVSyncValue last = validity.last();
293  throw cms::Exception("DatabaseError")
294  << "@SUB=AlignmentProducerBase::applyDB"
295  << "\nTrying to apply " << record.key().name() << " with multiple IOVs in tag.\n"
296  << "Validity range is " << first.eventID().run() << " - " << last.eventID().run();
297  }
298  }
299 
300  edm::ESHandle<Alignments> alignments;
301  record.get(alignments);
302 
304  iSetup.get<ErrRcd>().get(alignmentErrors);
305 
306  GeometryAligner aligner;
307  aligner.applyAlignments<G>(geometry, &(*alignments), &(*alignmentErrors), globalCoordinates);
308 }

References GeometryAligner::applyAlignments(), edm::IOVSyncValue::beginOfTime(), checkDbAlignmentValidity_, edm::IOVSyncValue::endOfTime(), Exception, edm::ValidityInterval::first(), first, callgraph::G, relativeConstraints::geometry, edm::EventSetup::get(), get, edm::ValidityInterval::last(), dqmdumpme::last, and GlobalPosition_Frontier_DevDB_cff::record.

◆ applyMisalignment()

void AlignmentProducerBase::applyMisalignment ( )
private

Applies misalignment scenario to @alignableTracker_.

Definition at line 519 of file AlignmentProducerBase.cc.

519  {
520  // Apply misalignment scenario to alignable tracker and muon if requested
521  // WARNING: this assumes scenarioConfig can be passed to both muon and tracker
522 
524  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::applyMisalignment"
525  << "Applying misalignment scenario to " << (doTracker_ ? "tracker" : "")
526  << (doMuon_ ? (doTracker_ ? " and muon" : "muon") : ".");
527 
528  const auto& scenarioConfig = config_.getParameterSet("MisalignmentScenario");
529 
530  if (doTracker_) {
531  TrackerScenarioBuilder scenarioBuilder(alignableTracker_.get());
532  scenarioBuilder.applyScenario(scenarioConfig);
533  }
534  if (doMuon_) {
535  MuonScenarioBuilder muonScenarioBuilder(alignableMuon_.get());
536  muonScenarioBuilder.applyScenario(scenarioConfig);
537  }
538 
539  } else {
540  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::applyMisalignment"
541  << "NOT applying misalignment scenario!";
542  }
543 
544  // Apply simple misalignment
545  const auto& sParSel = config_.getParameter<std::string>("parameterSelectorSimple");
547 }

References alignableMuon_, alignableTracker_, alignmentParameterStore_, MuonScenarioBuilder::applyScenario(), TrackerScenarioBuilder::applyScenario(), config_, doMisalignmentScenario_, doMuon_, doTracker_, edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterSet(), simpleMisalignment(), stRandomRotation_, stRandomShift_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by initAlignmentAlgorithm().

◆ beginLuminosityBlockImpl()

void AlignmentProducerBase::beginLuminosityBlockImpl ( const edm::LuminosityBlock ,
const edm::EventSetup setup 
)
protected

begin lumi block

Definition at line 247 of file AlignmentProducerBase.cc.

247  {
248  // Do not forward edm::LuminosityBlock
249  alignmentAlgo_->beginLuminosityBlock(setup);
250 }

References alignmentAlgo_, and singleTopDQM_cfi::setup.

Referenced by AlignmentProducer::beginLuminosityBlock(), and AlignmentProducerAsAnalyzer::beginLuminosityBlock().

◆ beginRunImpl()

void AlignmentProducerBase::beginRunImpl ( const edm::Run run,
const edm::EventSetup setup 
)
protected

begin run

Definition at line 204 of file AlignmentProducerBase.cc.

204  {
205  const bool changed{setupChanged(setup)};
206  if (changed) {
207  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::beginRunImpl"
208  << "EventSetup-Record changed.";
209 
210  // updatable alignables are currently not used at PCL, but event setup
211  // changes require a complete re-initialization
212  if (runAtPCL_) {
213  initAlignmentAlgorithm(setup, /* update = */ false);
214  } else if (enableAlignableUpdates_) {
215  initAlignmentAlgorithm(setup, /* update = */ true);
216  }
217  }
218 
219  alignmentAlgo_->beginRun(run, setup, changed && (runAtPCL_ || enableAlignableUpdates_));
220 
221  for (const auto& iCal : calibrations_)
222  iCal->beginRun(run, setup);
223 
224  //store the first run analyzed to be used for setting the IOV (for PCL)
225  if (firstRun_ > static_cast<cond::Time_t>(run.id().run())) {
226  firstRun_ = static_cast<cond::Time_t>(run.id().run());
227  }
228 }

References alignmentAlgo_, calibrations_, enableAlignableUpdates_, firstRun_, initAlignmentAlgorithm(), writedatasetfile::run, runAtPCL_, singleTopDQM_cfi::setup, and setupChanged().

Referenced by AlignmentProducer::beginRun(), and AlignmentProducerAsAnalyzer::beginRun().

◆ buildParameterStore()

void AlignmentProducerBase::buildParameterStore ( )
private

Creates the @alignmentParameterStore_, which manages all Alignables.

Definition at line 491 of file AlignmentProducerBase.cc.

491  {
492  // Create alignment parameter builder
493  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::buildParameterStore"
494  << "Creating AlignmentParameterBuilder";
495 
496  const auto& alParamBuildCfg = config_.getParameter<edm::ParameterSet>("ParameterBuilder");
497  const auto& alParamStoreCfg = config_.getParameter<edm::ParameterSet>("ParameterStore");
498 
499  AlignmentParameterBuilder alignmentParameterBuilder{
500  alignableTracker_.get(), alignableMuon_.get(), alignableExtras_.get(), alParamBuildCfg};
501 
502  // Fix alignables if requested
503  if (stNFixAlignables_ > 0) {
504  alignmentParameterBuilder.fixAlignables(stNFixAlignables_);
505  }
506 
507  // Get list of alignables
508  const auto& alignables = alignmentParameterBuilder.alignables();
509  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::buildParameterStore"
510  << "got " << alignables.size() << " alignables";
511 
512  // Create AlignmentParameterStore
513  alignmentParameterStore_ = std::make_unique<AlignmentParameterStore>(alignables, alParamStoreCfg);
514  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::buildParameterStore"
515  << "AlignmentParameterStore created!";
516 }

References alignableExtras_, alignableMuon_, alignableTracker_, alignmentParameterStore_, config_, edm::ParameterSet::getParameter(), and stNFixAlignables_.

Referenced by initAlignmentAlgorithm().

◆ createAlignables()

void AlignmentProducerBase::createAlignables ( const TrackerTopology tTopo,
bool  update = false 
)
private

Creates Alignables @alignableTracker_ from the previously loaded Geometry @trackerGeometry_

Definition at line 464 of file AlignmentProducerBase.cc.

464  {
465  if (doTracker_) {
466  if (update) {
467  alignableTracker_->update(trackerGeometry_.get(), tTopo);
468  } else {
469  alignableTracker_ = std::make_unique<AlignableTracker>(trackerGeometry_.get(), tTopo);
470  }
471  }
472 
473  if (doMuon_) {
474  if (update) {
476  } else {
477  alignableMuon_ = std::make_unique<AlignableMuon>(&*muonDTGeometry_, &*muonCSCGeometry_, &*muonGEMGeometry_);
478  }
479  }
480 
481  if (useExtras_) {
482  if (update) {
483  // FIXME: Requires further code changes to track beam spot condition changes
484  } else {
485  alignableExtras_ = std::make_unique<AlignableExtras>();
486  }
487  }
488 }

References alignableExtras_, alignableMuon_, alignableTracker_, doMuon_, doTracker_, muonCSCGeometry_, muonDTGeometry_, muonGEMGeometry_, trackerGeometry_, update, and useExtras_.

Referenced by initAlignmentAlgorithm().

◆ createAlignmentAlgorithm()

void AlignmentProducerBase::createAlignmentAlgorithm ( )
private

Creates the choosen alignment algorithm.

Definition at line 259 of file AlignmentProducerBase.cc.

259  {
260  auto algoConfig = config_.getParameter<edm::ParameterSet>("algoConfig");
261  algoConfig.addUntrackedParameter("RunRangeSelection", config_.getParameter<edm::VParameterSet>("RunRangeSelection"));
262  algoConfig.addUntrackedParameter<align::RunNumber>("firstIOV", runAtPCL_ ? 1 : uniqueRunRanges_.front().first);
263  algoConfig.addUntrackedParameter("enableAlignableUpdates", enableAlignableUpdates_);
264 
265  const auto& algoName = algoConfig.getParameter<std::string>("algoName");
267 }

References ALCARECOPromptCalibProdSiPixelAli0T_cff::algoConfig, HIPAlignmentAlgorithm_cfi::algoName, alignmentAlgo_, config_, enableAlignableUpdates_, get, edm::ParameterSet::getParameter(), runAtPCL_, AlCaHLTBitMon_QueryRunRegistry::string, and uniqueRunRanges_.

◆ createCalibrations()

void AlignmentProducerBase::createCalibrations ( )
private

Creates the calibrations.

Definition at line 280 of file AlignmentProducerBase.cc.

280  {
281  const auto& calibrations = config_.getParameter<edm::VParameterSet>("calibrations");
282  for (const auto& iCalib : calibrations) {
283  calibrations_.emplace_back(
284  IntegratedCalibrationPluginFactory::get()->create(iCalib.getParameter<std::string>("calibrationName"), iCalib));
285  }
286 }

References AlignmentProducer_cff::calibrations, calibrations_, config_, beamerCreator::create(), get, edm::ParameterSet::getParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ createGeometries()

void AlignmentProducerBase::createGeometries ( const edm::EventSetup iSetup,
const TrackerTopology tTopo 
)
private

Creates ideal geometry @trackerGeometry_ from IdealGeometryRecord.

Definition at line 412 of file AlignmentProducerBase.cc.

412  {
413  if (doTracker_) {
414  edm::ESHandle<GeometricDet> geometricDet;
415  iSetup.get<IdealGeometryRecord>().get(geometricDet);
416 
418  iSetup.get<PTrackerParametersRcd>().get(ptp);
419 
420  TrackerGeomBuilderFromGeometricDet trackerBuilder;
421 
422  trackerGeometry_ = std::shared_ptr<TrackerGeometry>(trackerBuilder.build(&(*geometricDet), *ptp, tTopo));
423  }
424 
425  if (doMuon_) {
429  }
430 }

References TrackerGeomBuilderFromGeometricDet::build(), doMuon_, doTracker_, edm::EventSetup::get(), get, idealGeometryLabel, muonCSCGeometry_, muonDTGeometry_, muonGEMGeometry_, and trackerGeometry_.

Referenced by initAlignmentAlgorithm().

◆ createMonitors()

void AlignmentProducerBase::createMonitors ( )
private

Creates the monitors.

Definition at line 270 of file AlignmentProducerBase.cc.

270  {
271  const auto& monitorConfig = config_.getParameter<edm::ParameterSet>("monitorConfig");
272  auto monitors = monitorConfig.getUntrackedParameter<std::vector<std::string> >("monitors");
273  for (const auto& miter : monitors) {
274  monitors_.emplace_back(
275  AlignmentMonitorPluginFactory::get()->create(miter, monitorConfig.getUntrackedParameterSet(miter)));
276  }
277 }

References config_, beamerCreator::create(), get, edm::ParameterSet::getParameter(), AlignmentProducer_cff::monitorConfig, gather_cfg::monitors, and monitors_.

◆ endLuminosityBlockImpl()

void AlignmentProducerBase::endLuminosityBlockImpl ( const edm::LuminosityBlock ,
const edm::EventSetup setup 
)
protected

end lumi block

Definition at line 253 of file AlignmentProducerBase.cc.

253  {
254  // Do not forward edm::LuminosityBlock
255  alignmentAlgo_->endLuminosityBlock(setup);
256 }

References alignmentAlgo_, and singleTopDQM_cfi::setup.

Referenced by AlignmentProducer::endLuminosityBlock(), and AlignmentProducerAsAnalyzer::endLuminosityBlock().

◆ endRunImpl()

void AlignmentProducerBase::endRunImpl ( const edm::Run run,
const edm::EventSetup setup 
)
protected

end run

Definition at line 231 of file AlignmentProducerBase.cc.

231  {
232  if (!tkLasBeamTag_.encode().empty()) {
236  getTsosVectorCollection(run, tsoses);
237 
238  alignmentAlgo_->endRun(EndRunInfo(run.id(), &(*lasBeams), &(*tsoses)), setup);
239  } else {
240  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::endRunImpl"
241  << "No Tk LAS beams to forward to algorithm.";
242  alignmentAlgo_->endRun(EndRunInfo(run.id(), nullptr, nullptr), setup);
243  }
244 }

References alignmentAlgo_, edm::InputTag::encode(), getTkFittedLasBeamCollection(), getTsosVectorCollection(), writedatasetfile::run, singleTopDQM_cfi::setup, and tkLasBeamTag_.

Referenced by AlignmentProducer::endRun(), and AlignmentProducerAsAnalyzer::endRun().

◆ finish()

bool AlignmentProducerBase::finish ( )
protected

Steers activities after end of job, terminates the AlignmentAlgorithm @alignmentAlgo_

Definition at line 751 of file AlignmentProducerBase.cc.

751  {
752  for (const auto& monitor : monitors_)
753  monitor->endOfJob();
754 
755  if (alignmentAlgo_->processesEvents() && nevent_ == 0) {
756  return false;
757  }
758 
760  if (alignmentAlgo_->storeAlignments())
762  } else {
763  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::finish"
764  << "No payload to be stored!";
765  }
766 
767  // takes care of storing output of calibrations, but needs to be called only
768  // after 'storeAlignmentsToDB()'
769  for (const auto& iCal : calibrations_)
770  iCal->endOfJob();
771 
772  return true;
773 }

References alignmentAlgo_, calibrations_, beam_dqm_sourceclient-live_cfg::monitor, monitors_, nevent_, saveApeToDB_, saveDeformationsToDB_, saveToDB_, and storeAlignmentsToDB().

Referenced by progressbar.ProgressBar::__next__(), AlignmentProducer::endOfJob(), and AlignmentProducerAsAnalyzer::endProcessBlockProduce().

◆ getAliClusterValueMap()

virtual bool AlignmentProducerBase::getAliClusterValueMap ( const edm::Event ,
edm::Handle< AliClusterValueMap > &   
)
protectedpure virtual

Implemented in AlignmentProducerAsAnalyzer, and AlignmentProducer.

Referenced by processEvent().

◆ getBeamSpot()

virtual bool AlignmentProducerBase::getBeamSpot ( const edm::Event ,
edm::Handle< reco::BeamSpot > &   
)
protectedpure virtual

Implemented in AlignmentProducerAsAnalyzer, and AlignmentProducer.

Referenced by initBeamSpot().

◆ getTkFittedLasBeamCollection()

virtual bool AlignmentProducerBase::getTkFittedLasBeamCollection ( const edm::Run ,
edm::Handle< TkFittedLasBeamCollection > &   
)
protectedpure virtual

Implemented in AlignmentProducerAsAnalyzer, and AlignmentProducer.

Referenced by endRunImpl().

◆ getTrajTrackAssociationCollection()

virtual bool AlignmentProducerBase::getTrajTrackAssociationCollection ( const edm::Event ,
edm::Handle< TrajTrackAssociationCollection > &   
)
protectedpure virtual

Implemented in AlignmentProducerAsAnalyzer, and AlignmentProducer.

Referenced by processEvent().

◆ getTsosVectorCollection()

virtual bool AlignmentProducerBase::getTsosVectorCollection ( const edm::Run ,
edm::Handle< TsosVectorCollection > &   
)
protectedpure virtual

Implemented in AlignmentProducerAsAnalyzer, and AlignmentProducer.

Referenced by endRunImpl().

◆ initAlignmentAlgorithm()

void AlignmentProducerBase::initAlignmentAlgorithm ( const edm::EventSetup setup,
bool  update = false 
)
protected

Creates Geometry and Alignables of the Tracker and initializes the AlignmentAlgorithm @alignmentAlgo_

Definition at line 341 of file AlignmentProducerBase.cc.

341  {
342  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::initAlignmentAlgorithm"
343  << "Begin";
344 
345  auto isTrueUpdate = update && isAlgoInitialized_;
346 
347  // Retrieve tracker topology from geometry
348  edm::ESHandle<TrackerTopology> tTopoHandle;
349  setup.get<TrackerTopologyRcd>().get(tTopoHandle);
350  const TrackerTopology* const tTopo = tTopoHandle.product();
351 
352  // Create the geometries from the ideal geometries
353  createGeometries(setup, tTopo);
354 
356  createAlignables(tTopo, isTrueUpdate);
359 
360  // Initialize alignment algorithm and integrated calibration and pass the
361  // latter to algorithm
362  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::initAlignmentAlgorithm"
363  << "Initializing alignment algorithm.";
364  alignmentAlgo_->initialize(
366 
367  // Not all algorithms support calibrations - so do not pass empty vector
368  // and throw if non-empty and not supported:
369  if (!calibrations_.empty()) {
370  if (alignmentAlgo_->supportsCalibrations()) {
371  alignmentAlgo_->addCalibrations(calibrations_);
372  } else {
373  throw cms::Exception("BadConfig") << "@SUB=AlignmentProducerBase::createCalibrations\n"
374  << "Configured " << calibrations_.size() << " calibration(s) "
375  << "for algorithm not supporting it.";
376  }
377  }
378 
379  isAlgoInitialized_ = true;
380 
382 
383  if (!isTrueUpdate) { // only needed the first time
384  for (const auto& iCal : calibrations_) {
385  iCal->beginOfJob(alignableTracker_.get(), alignableMuon_.get(), alignableExtras_.get());
386  }
387  for (const auto& monitor : monitors_) {
388  monitor->beginOfJob(alignableTracker_.get(), alignableMuon_.get(), alignmentParameterStore_.get());
389  }
390  }
391  startProcessing(); // needed if derived class is non-EDLooper-based
392  // has no effect, if called during loop
393 
394  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::initAlignmentAlgorithm"
395  << "End";
396 }

References alignableExtras_, alignableMuon_, alignableTracker_, alignmentAlgo_, alignmentParameterStore_, applyAlignmentsToDB(), applyAlignmentsToGeometry(), applyMisalignment(), buildParameterStore(), calibrations_, createAlignables(), createGeometries(), Exception, get, isAlgoInitialized_, beam_dqm_sourceclient-live_cfg::monitor, monitors_, edm::ESHandle< T >::product(), singleTopDQM_cfi::setup, startProcessing(), and update.

Referenced by AlignmentProducer::beginOfJob(), beginRunImpl(), and processEvent().

◆ initBeamSpot()

void AlignmentProducerBase::initBeamSpot ( const edm::Event event)
private

Initializes Beamspot @beamSpot_ of Alignables @alignableExtras_.

Definition at line 399 of file AlignmentProducerBase.cc.

399  {
401 
402  if (nevent_ == 0 && alignableExtras_) {
403  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::initBeamSpot"
404  << "Initializing AlignableBeamSpot";
405 
406  alignableExtras_->initializeBeamSpot(
408  }
409 }

References alignableExtras_, beamSpot_, reco::BeamSpot::dxdz(), reco::BeamSpot::dydz(), getBeamSpot(), nevent_, reco::BeamSpot::x0(), reco::BeamSpot::y0(), and reco::BeamSpot::z0().

Referenced by processEvent().

◆ nEvent()

int AlignmentProducerBase::nEvent ( ) const
inlineprotected

Definition at line 99 of file AlignmentProducerBase.h.

99 { return nevent_; }

References nevent_.

Referenced by AlignmentProducer::endOfLoop().

◆ processEvent()

bool AlignmentProducerBase::processEvent ( const edm::Event event,
const edm::EventSetup setup 
)
protected

Process event.

Definition at line 133 of file AlignmentProducerBase.cc.

133  {
134  if (setupChanged(setup)) {
135  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::processEvent"
136  << "EventSetup-Record changed.";
137 
138  // updatable alignables are currently not used at PCL, but event setup
139  // changes require a complete re-initialization
140  if (runAtPCL_) {
141  initAlignmentAlgorithm(setup, /* update = */ false);
142  } else if (enableAlignableUpdates_) {
143  initAlignmentAlgorithm(setup, /* update = */ true);
144  }
145  }
146 
147  initBeamSpot(event); // must happen every event and before incrementing 'nevent_'
148 
149  ++nevent_; // must happen before the check below;
150  // otherwise subsequent checks fail for "EmptySource"
151 
152  if (!alignmentAlgo_->processesEvents()) {
153  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::processEvent"
154  << "Skipping event. The current configuration of the alignment algorithm "
155  << "does not need to process any events.";
156  return false;
157  }
158 
159  // reading in survey records
161 
162  // Printout event number
163  for (int i = 10; i < 10000000; i *= 10) {
164  if (nevent_ < 10 * i && (nevent_ % i) == 0) {
165  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::processEvent"
166  << "Events processed: " << nevent_;
167  }
168  }
169 
170  // Retrieve trajectories and tracks from the event
171  // -> merely skip if collection is empty
172  edm::Handle<TrajTrackAssociationCollection> handleTrajTracksCollection;
173 
174  if (getTrajTrackAssociationCollection(event, handleTrajTracksCollection)) {
175  // Form pairs of trajectories and tracks
176  ConstTrajTrackPairs trajTracks;
177  for (auto iter = handleTrajTracksCollection->begin(); iter != handleTrajTracksCollection->end(); ++iter) {
178  trajTracks.push_back(ConstTrajTrackPair(&(*(*iter).key), &(*(*iter).val)));
179  }
180 
181  // Run the alignment algorithm with its input
182  const AliClusterValueMap* clusterValueMapPtr{nullptr};
183  if (!clusterValueMapTag_.encode().empty()) {
184  edm::Handle<AliClusterValueMap> clusterValueMap;
185  getAliClusterValueMap(event, clusterValueMap);
186  clusterValueMapPtr = &(*clusterValueMap);
187  }
188 
189  const AlignmentAlgorithmBase::EventInfo eventInfo{event.id(), trajTracks, *beamSpot_, clusterValueMapPtr};
191 
192  for (const auto& monitor : monitors_) {
193  monitor->duringLoop(event, setup, trajTracks); // forward eventInfo?
194  }
195  } else {
196  edm::LogError("Alignment") << "@SUB=AlignmentProducerBase::processEvent"
197  << "No track collection found: skipping event";
198  }
199 
200  return true;
201 }

References alignmentAlgo_, beamSpot_, edm::AssociationMap< Tag >::begin(), clusterValueMapTag_, enableAlignableUpdates_, edm::InputTag::encode(), edm::AssociationMap< Tag >::end(), dumpTauVariables_cfi::eventInfo, getAliClusterValueMap(), getTrajTrackAssociationCollection(), mps_fire::i, initAlignmentAlgorithm(), initBeamSpot(), beam_dqm_sourceclient-live_cfg::monitor, monitors_, nevent_, readInSurveyRcds(), runAtPCL_, singleTopDQM_cfi::setup, and setupChanged().

Referenced by AlignmentProducerAsAnalyzer::accumulate(), and AlignmentProducer::duringLoop().

◆ readInSurveyRcds()

void AlignmentProducerBase::readInSurveyRcds ( const edm::EventSetup iSetup)
private

Reads in survey records.

Definition at line 666 of file AlignmentProducerBase.cc.

666  {
667  // Get Survey Rcds and add Survey Info
668  if (doTracker_ && useSurvey_) {
669  bool tkSurveyBool = watchTkSurveyRcd_.check(iSetup);
670  bool tkSurveyErrBool = watchTkSurveyErrExtRcd_.check(iSetup);
671  edm::LogInfo("Alignment") << "watcher tksurveyrcd: " << tkSurveyBool;
672  edm::LogInfo("Alignment") << "watcher tksurveyerrrcd: " << tkSurveyErrBool;
673  if (tkSurveyBool || tkSurveyErrBool) {
674  edm::LogInfo("Alignment") << "ADDING THE SURVEY INFORMATION";
676  edm::ESHandle<SurveyErrors> surveyErrors;
677 
678  iSetup.get<TrackerSurveyRcd>().get(surveys);
679  iSetup.get<TrackerSurveyErrorExtendedRcd>().get(surveyErrors);
680 
681  surveyIndex_ = 0;
682  surveyValues_ = &*surveys;
683  surveyErrors_ = &*surveyErrors;
685  }
686  }
687 
688  if (doMuon_ && useSurvey_) {
689  bool DTSurveyBool = watchTkSurveyRcd_.check(iSetup);
690  bool DTSurveyErrBool = watchTkSurveyErrExtRcd_.check(iSetup);
691  bool CSCSurveyBool = watchTkSurveyRcd_.check(iSetup);
692  bool CSCSurveyErrBool = watchTkSurveyErrExtRcd_.check(iSetup);
693 
694  if (DTSurveyBool || DTSurveyErrBool || CSCSurveyBool || CSCSurveyErrBool) {
695  edm::ESHandle<Alignments> dtSurveys;
696  edm::ESHandle<SurveyErrors> dtSurveyErrors;
697  edm::ESHandle<Alignments> cscSurveys;
698  edm::ESHandle<SurveyErrors> cscSurveyErrors;
699 
700  iSetup.get<DTSurveyRcd>().get(dtSurveys);
701  iSetup.get<DTSurveyErrorExtendedRcd>().get(dtSurveyErrors);
702  iSetup.get<CSCSurveyRcd>().get(cscSurveys);
703  iSetup.get<CSCSurveyErrorExtendedRcd>().get(cscSurveyErrors);
704 
705  surveyIndex_ = 0;
706  surveyValues_ = &*dtSurveys;
707  surveyErrors_ = &*dtSurveyErrors;
708  const auto& barrels = alignableMuon_->DTBarrel();
709  for (const auto& barrel : barrels)
711 
712  surveyIndex_ = 0;
713  surveyValues_ = &*cscSurveys;
714  surveyErrors_ = &*cscSurveyErrors;
715  const auto& endcaps = alignableMuon_->CSCEndcaps();
716  for (const auto& endcap : endcaps)
718  }
719  }
720 }

References addSurveyInfo(), alignableMuon_, alignableTracker_, Reference_intrackfit_cff::barrel, edm::ESWatcher< T >::check(), doMuon_, doTracker_, makeMuonMisalignmentScenario::endcap, edm::EventSetup::get(), get, surveyErrors_, surveyIndex_, surveyValues_, useSurvey_, watchTkSurveyErrExtRcd_, and watchTkSurveyRcd_.

Referenced by processEvent().

◆ setupChanged()

bool AlignmentProducerBase::setupChanged ( const edm::EventSetup setup)
private

Checks if one of the EventSetup-Records has changed.

Definition at line 289 of file AlignmentProducerBase.cc.

289  {
290  bool changed{false};
291 
293  changed = true;
294  }
295 
297  changed = true;
298  }
299 
300  if (doTracker_) {
302  changed = true;
303  }
304 
306  changed = true;
307  }
308 
310  changed = true;
311  }
312  }
313 
314  if (doMuon_) {
315  if (watchDTAlRcd_.check(setup)) {
316  changed = true;
317  }
318 
320  changed = true;
321  }
322 
323  if (watchCSCAlRcd_.check(setup)) {
324  changed = true;
325  }
326 
328  changed = true;
329  }
330  }
331 
332  /* TODO: ExtraAlignables: Which record(s) to check?
333  *
334  if (useExtras_) {}
335  */
336 
337  return changed;
338 }

References edm::ESWatcher< T >::check(), doMuon_, doTracker_, singleTopDQM_cfi::setup, watchCSCAlErrExtRcd_, watchCSCAlRcd_, watchDTAlErrExtRcd_, watchDTAlRcd_, watchGlobalPositionRcd_, watchIdealGeometryRcd_, watchTrackerAlErrorExtRcd_, watchTrackerAlRcd_, and watchTrackerSurDeRcd_.

Referenced by beginRunImpl(), and processEvent().

◆ simpleMisalignment()

void AlignmentProducerBase::simpleMisalignment ( const align::Alignables alivec,
const std::string &  selection,
float  shift,
float  rot,
bool  local 
)
private

Applies misalignment scenario to @alignableTracker_.

Definition at line 550 of file AlignmentProducerBase.cc.

551  {
552  std::ostringstream output; // collecting output
553 
554  if (shift > 0. || rot > 0.) {
555  output << "Adding random flat shift of max size " << shift << " and adding random flat rotation of max size " << rot
556  << " to ";
557 
558  std::vector<bool> commSel(0);
559  if (selection != "-1") {
560  AlignmentParameterSelector aSelector(nullptr, nullptr); // no alignable needed here...
561  const std::vector<char> cSel(aSelector.convertParamSel(selection));
562  if (cSel.size() < RigidBodyAlignmentParameters::N_PARAM) {
563  throw cms::Exception("BadConfig")
564  << "[AlignmentProducerBase::simpleMisalignment_]\n"
565  << "Expect selection string '" << selection << "' to be at least of length "
566  << RigidBodyAlignmentParameters::N_PARAM << " or to be '-1'.\n"
567  << "(Most probably you have to adjust the parameter 'parameterSelectorSimple'.)";
568  }
569  for (const auto& cIter : cSel) {
570  commSel.push_back(cIter == '0' ? false : true);
571  }
572  output << "parameters defined by (" << selection << "), representing (x,y,z,alpha,beta,gamma),";
573  } else {
574  output << "the active parameters of each alignable,";
575  }
576  output << " in " << (local ? "local" : "global") << " frame.";
577 
578  for (const auto& ali : alivec) {
579  std::vector<bool> mysel(commSel.empty() ? ali->alignmentParameters()->selector() : commSel);
580 
581  if (std::abs(shift) > 0.00001) {
582  double s0 = 0., s1 = 0., s2 = 0.;
584  s0 = shift * double(random() % 1000 - 500) / 500.;
586  s1 = shift * double(random() % 1000 - 500) / 500.;
588  s2 = shift * double(random() % 1000 - 500) / 500.;
589 
590  if (local)
591  ali->move(ali->surface().toGlobal(align::LocalVector(s0, s1, s2)));
592  else
593  ali->move(align::GlobalVector(s0, s1, s2));
594 
595  //AlignmentPositionError ape(dx,dy,dz);
596  //ali->addAlignmentPositionError(ape);
597  }
598 
599  if (std::abs(rot) > 0.00001) {
602  r(1) = rot * double(random() % 1000 - 500) / 500.;
604  r(2) = rot * double(random() % 1000 - 500) / 500.;
606  r(3) = rot * double(random() % 1000 - 500) / 500.;
607 
608  const align::RotationType mrot = align::toMatrix(r);
609  if (local)
610  ali->rotateInLocalFrame(mrot);
611  else
612  ali->rotateInGlobalFrame(mrot);
613 
614  //ali->addAlignmentPositionErrorFromRotation(mrot);
615  }
616  } // end loop on alignables
617  } else {
618  output << "No simple misalignment added!";
619  }
620  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::simpleMisalignment" << output.str();
621 }

References funct::abs(), AlignmentParameterSelector::convertParamSel(), RigidBodyAlignmentParameters::dalpha, RigidBodyAlignmentParameters::dbeta, RigidBodyAlignmentParameters::dgamma, RigidBodyAlignmentParameters::dx, RigidBodyAlignmentParameters::dy, RigidBodyAlignmentParameters::dz, Exception, DTRecHitClients_cfi::local, RigidBodyAlignmentParameters::N_PARAM, convertSQLitetoXML_cfg::output, alignCSCRings::r, makeMuonMisalignmentScenario::rot, indexGen::s2, corrVsCorr::selection, edm::shift, and align::toMatrix().

Referenced by applyMisalignment().

◆ startProcessing()

void AlignmentProducerBase::startProcessing ( )
protected

Start processing of events.

Definition at line 83 of file AlignmentProducerBase.cc.

83  {
84  if (isDuringLoop_)
85  return;
86 
87  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::startProcessing"
88  << "Begin";
89 
90  if (!isAlgoInitialized_) {
91  throw cms::Exception("LogicError") << "@SUB=AlignmentProducerBase::startProcessing\n"
92  << "Trying to start event processing before initializing the alignment "
93  << "algorithm.";
94  }
95 
96  nevent_ = 0;
97 
98  alignmentAlgo_->startNewLoop();
99 
100  // FIXME: Should this be done in algorithm::startNewLoop()??
101  for (const auto& iCal : calibrations_)
102  iCal->startNewLoop();
103  for (const auto& monitor : monitors_)
104  monitor->startingNewLoop();
105 
107  isDuringLoop_ = true;
108 }

References alignmentAlgo_, applyAlignmentsToGeometry(), calibrations_, Exception, isAlgoInitialized_, isDuringLoop_, beam_dqm_sourceclient-live_cfg::monitor, monitors_, and nevent_.

Referenced by initAlignmentAlgorithm(), and AlignmentProducer::startingNewLoop().

◆ storeAlignmentsToDB()

void AlignmentProducerBase::storeAlignmentsToDB ( )
private

Writes Alignments (i.e. Records) to database-file.

Definition at line 776 of file AlignmentProducerBase.cc.

776  {
777  const auto runRangeSelectionVPSet = config_.getParameterSetVector("RunRangeSelection");
778 
779  // handle PCL use case
780  const auto& uniqueRunRanges =
781  (runAtPCL_ ? align::makeUniqueRunRanges(runRangeSelectionVPSet, firstRun_) : uniqueRunRanges_);
782 
783  std::vector<AlgebraicVector> beamSpotParameters;
784 
785  for (const auto& iRunRange : uniqueRunRanges) {
786  alignmentAlgo_->setParametersForRunRange(iRunRange);
787 
788  // Save alignments to database
790  writeForRunRange(iRunRange.first);
791  }
792 
793  // Deal with extra alignables, e.g. beam spot
794  if (alignableExtras_) {
795  auto& alis = alignableExtras_->beamSpot();
796  if (!alis.empty()) {
797  auto beamSpotAliPars = dynamic_cast<BeamSpotAlignmentParameters*>(alis[0]->alignmentParameters());
798  if (!beamSpotAliPars) {
799  throw cms::Exception("LogicError") << "@SUB=AlignmentProducerBase::storeAlignmentsToDB\n"
800  << "First alignable of alignableExtras_ does not have "
801  << "'BeamSpotAlignmentParameters', while it should have.";
802  }
803 
804  beamSpotParameters.push_back(beamSpotAliPars->parameters());
805  }
806  }
807  }
808 
809  if (alignableExtras_) {
810  std::ostringstream bsOutput;
811 
812  auto itPar = beamSpotParameters.cbegin();
813  for (auto iRunRange = uniqueRunRanges.cbegin(); iRunRange != uniqueRunRanges.cend(); ++iRunRange, ++itPar) {
814  bsOutput << "Run range: " << (*iRunRange).first << " - " << (*iRunRange).second << "\n";
815  bsOutput << " Displacement: x=" << (*itPar)[0] << ", y=" << (*itPar)[1] << "\n";
816  bsOutput << " Slope: dx/dz=" << (*itPar)[2] << ", dy/dz=" << (*itPar)[3] << "\n";
817  }
818 
819  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::storeAlignmentsToDB"
820  << "Parameters for alignable beamspot:\n"
821  << bsOutput.str();
822  }
823 }

References alignableExtras_, alignmentAlgo_, config_, Exception, firstRun_, edm::ParameterSet::getParameterSetVector(), align::makeUniqueRunRanges(), runAtPCL_, saveApeToDB_, saveDeformationsToDB_, saveToDB_, uniqueRunRanges_, and writeForRunRange().

Referenced by finish().

◆ terminateProcessing()

void AlignmentProducerBase::terminateProcessing ( const edm::EventSetup setup = nullptr)
protected

Terminate processing of events.

Definition at line 111 of file AlignmentProducerBase.cc.

111  {
112  if (!isDuringLoop_)
113  return;
114 
115  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::terminateProcessing"
116  << "Terminating algorithm.";
117  if (setup) {
118  alignmentAlgo_->terminate(*setup);
119  } else {
120  alignmentAlgo_->terminate();
121  }
122 
123  // FIXME: Should this be done in algorithm::terminate()??
124  for (const auto& iCal : calibrations_)
125  iCal->endOfLoop();
126  for (const auto& monitor : monitors_)
127  monitor->endOfLoop();
128 
129  isDuringLoop_ = false;
130 }

References alignmentAlgo_, calibrations_, isDuringLoop_, beam_dqm_sourceclient-live_cfg::monitor, monitors_, and singleTopDQM_cfi::setup.

Referenced by AlignmentProducer::endOfLoop(), and AlignmentProducerAsAnalyzer::endProcessBlockProduce().

◆ writeDB() [1/2]

void AlignmentProducerBase::writeDB ( Alignments alignments,
const std::string &  alignRcd,
AlignmentErrorsExtended alignmentErrors,
const std::string &  errRcd,
const AlignTransform globalCoordinates,
cond::Time_t  time 
) const
private

Writes Alignments and/or AlignmentErrors to DB for record names (removes *globalCoordinates before writing if non-null...). Takes over ownership of Alignments and AlignmentErrors.

Definition at line 863 of file AlignmentProducerBase.cc.

868  {
869  Alignments* tempAlignments = alignments;
870  AlignmentErrorsExtended* tempAlignmentErrorsExtended = alignmentErrors;
871 
872  // Call service
874  if (!poolDb.isAvailable()) { // Die if not available
875  delete tempAlignments; // promised to take over ownership...
876  delete tempAlignmentErrorsExtended; // dito
877  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
878  }
879 
880  if (globalCoordinates // happens only if (applyDbAlignment_ == true)
881  && globalCoordinates->transform() != AlignTransform::Transform::Identity) {
882  tempAlignments = new Alignments(); // temporary storage for
883  tempAlignmentErrorsExtended = new AlignmentErrorsExtended(); // final alignments and errors
884 
885  GeometryAligner aligner;
886  aligner.removeGlobalTransform(
887  alignments, alignmentErrors, *globalCoordinates, tempAlignments, tempAlignmentErrorsExtended);
888 
889  delete alignments; // have to delete original alignments
890  delete alignmentErrors; // same thing for the errors
891 
892  edm::LogInfo("Alignment") << "@SUB=AlignmentProducerBase::writeDB"
893  << "globalCoordinates removed from alignments (" << alignRcd << ") and errors ("
894  << alignRcd << ").";
895  }
896 
897  if (saveToDB_) {
898  edm::LogInfo("Alignment") << "Writing Alignments for run " << time << " to " << alignRcd << ".";
899  poolDb->writeOne<Alignments>(tempAlignments, time, alignRcd);
900  } else { // poolDb->writeOne(..) takes over 'alignments' ownership,...
901  delete tempAlignments; // ...otherwise we have to delete, as promised!
902  }
903 
904  if (saveApeToDB_) {
905  edm::LogInfo("Alignment") << "Writing AlignmentErrorsExtended for run " << time << " to " << errRcd << ".";
906  poolDb->writeOne<AlignmentErrorsExtended>(tempAlignmentErrorsExtended, time, errRcd);
907  } else { // poolDb->writeOne(..) takes over 'alignmentErrors' ownership,...
908  delete tempAlignmentErrorsExtended; // ...otherwise we have to delete, as promised!
909  }
910 }

References Exception, edm::Service< T >::isAvailable(), GeometryAligner::removeGlobalTransform(), saveApeToDB_, saveToDB_, protons_cff::time, AlignTransform::transform(), and cond::service::PoolDBOutputService::writeOne().

Referenced by writeForRunRange().

◆ writeDB() [2/2]

void AlignmentProducerBase::writeDB ( AlignmentSurfaceDeformations alignmentSurfaceDeformations,
const std::string &  surfaceDeformationRcd,
cond::Time_t  time 
) const
private

Writes SurfaceDeformations (bows & kinks) to DB for given record name Takes over ownership of AlignmentSurfaceDeformations.

Definition at line 913 of file AlignmentProducerBase.cc.

915  {
916  // Call service
918  if (!poolDb.isAvailable()) { // Die if not available
919  delete alignmentSurfaceDeformations; // promised to take over ownership...
920  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
921  }
922 
923  if (saveDeformationsToDB_) {
924  edm::LogInfo("Alignment") << "Writing AlignmentSurfaceDeformations for run " << time << " to "
925  << surfaceDeformationRcd << ".";
926  poolDb->writeOne<AlignmentSurfaceDeformations>(alignmentSurfaceDeformations, time, surfaceDeformationRcd);
927  } else { // poolDb->writeOne(..) takes over 'surfaceDeformation' ownership,...
928  delete alignmentSurfaceDeformations; // ...otherwise we have to delete, as promised!
929  }
930 }

References Exception, edm::Service< T >::isAvailable(), saveDeformationsToDB_, protons_cff::time, and cond::service::PoolDBOutputService::writeOne().

◆ writeForRunRange()

void AlignmentProducerBase::writeForRunRange ( cond::Time_t  time)
private

Writes Alignments and AlignmentErrors for all sub detectors and the given run number

Definition at line 826 of file AlignmentProducerBase.cc.

826  {
827  if (doTracker_) { // first tracker
828  const AlignTransform* trackerGlobal{nullptr}; // will be 'removed' from constants
829  if (globalPositions_) { // i.e. applied before in applyDB
831  }
832 
833  auto alignments = alignableTracker_->alignments();
834  auto alignmentErrors = alignableTracker_->alignmentErrors();
835  this->writeDB(
836  alignments, "TrackerAlignmentRcd", alignmentErrors, "TrackerAlignmentErrorExtendedRcd", trackerGlobal, time);
837 
838  // Save surface deformations to database
839  if (saveDeformationsToDB_) {
840  auto alignmentSurfaceDeformations = alignableTracker_->surfaceDeformations();
841  this->writeDB(alignmentSurfaceDeformations, "TrackerSurfaceDeformationRcd", time);
842  }
843  }
844 
845  if (doMuon_) { // now muon
846  const AlignTransform* muonGlobal{nullptr}; // will be 'removed' from constants
847  if (globalPositions_) { // i.e. applied before in applyDB
849  }
850  // Get alignments+errors, first DT - ownership taken over by writeDB(..), so no delete
851  auto alignments = alignableMuon_->dtAlignments();
852  auto alignmentErrors = alignableMuon_->dtAlignmentErrorsExtended();
853  this->writeDB(alignments, "DTAlignmentRcd", alignmentErrors, "DTAlignmentErrorExtendedRcd", muonGlobal, time);
854 
855  // Get alignments+errors, now CSC - ownership taken over by writeDB(..), so no delete
856  alignments = alignableMuon_->cscAlignments();
857  alignmentErrors = alignableMuon_->cscAlignmentErrorsExtended();
858  this->writeDB(alignments, "CSCAlignmentRcd", alignmentErrors, "CSCAlignmentErrorExtendedRcd", muonGlobal, time);
859  }
860 }

References alignableMuon_, alignableTracker_, align::DetectorGlobalPosition(), doMuon_, doTracker_, globalPositions_, DetId::Muon, saveDeformationsToDB_, protons_cff::time, DetId::Tracker, and writeDB().

Referenced by storeAlignmentsToDB().

Member Data Documentation

◆ alignableExtras_

std::unique_ptr<AlignableExtras> AlignmentProducerBase::alignableExtras_
private

◆ alignableMuon_

std::unique_ptr<AlignableMuon> AlignmentProducerBase::alignableMuon_
private

◆ alignableTracker_

std::unique_ptr<AlignableTracker> AlignmentProducerBase::alignableTracker_
private

◆ alignmentAlgo_

std::unique_ptr<AlignmentAlgorithmBase> AlignmentProducerBase::alignmentAlgo_
private

◆ alignmentParameterStore_

std::unique_ptr<AlignmentParameterStore> AlignmentProducerBase::alignmentParameterStore_
private

◆ applyDbAlignment_

const bool AlignmentProducerBase::applyDbAlignment_
private

Definition at line 237 of file AlignmentProducerBase.h.

Referenced by applyAlignmentsToDB().

◆ beamSpot_

edm::Handle<reco::BeamSpot> AlignmentProducerBase::beamSpot_
private

Definition at line 223 of file AlignmentProducerBase.h.

Referenced by initBeamSpot(), and processEvent().

◆ beamSpotTag_

const edm::InputTag AlignmentProducerBase::beamSpotTag_
protected

BeamSpot.

Definition at line 125 of file AlignmentProducerBase.h.

Referenced by AlignmentProducer::getBeamSpot().

◆ calibrations_

CalibrationsOwner AlignmentProducerBase::calibrations_
private

◆ checkDbAlignmentValidity_

const bool AlignmentProducerBase::checkDbAlignmentValidity_
private

Definition at line 237 of file AlignmentProducerBase.h.

Referenced by applyDB().

◆ clusterValueMapTag_

const edm::InputTag AlignmentProducerBase::clusterValueMapTag_
protected

ValueMap containing associtaion cluster-flag.

Definition at line 131 of file AlignmentProducerBase.h.

Referenced by AlignmentProducer::getAliClusterValueMap(), and processEvent().

◆ config_

edm::ParameterSet AlignmentProducerBase::config_
private

◆ doMisalignmentScenario_

const bool AlignmentProducerBase::doMisalignmentScenario_
private

Definition at line 238 of file AlignmentProducerBase.h.

Referenced by applyMisalignment().

◆ doMuon_

const bool AlignmentProducerBase::doMuon_
protected

◆ doTracker_

const bool AlignmentProducerBase::doTracker_
protected

◆ enableAlignableUpdates_

const bool AlignmentProducerBase::enableAlignableUpdates_
private

Definition at line 241 of file AlignmentProducerBase.h.

Referenced by beginRunImpl(), createAlignmentAlgorithm(), and processEvent().

◆ firstRun_

cond::Time_t AlignmentProducerBase::firstRun_ {cond::timeTypeSpecs[cond::runnumber].endValue}
private

Definition at line 275 of file AlignmentProducerBase.h.

Referenced by beginRunImpl(), and storeAlignmentsToDB().

◆ globalPositions_

std::unique_ptr<const Alignments> AlignmentProducerBase::globalPositions_
private

GlobalPositions that might be read from DB, nullptr otherwise.

Definition at line 225 of file AlignmentProducerBase.h.

Referenced by applyAlignmentsToDB(), and writeForRunRange().

◆ idealGeometryLabel

std::string AlignmentProducerBase::idealGeometryLabel
private

Definition at line 242 of file AlignmentProducerBase.h.

Referenced by createGeometries().

◆ isAlgoInitialized_

bool AlignmentProducerBase::isAlgoInitialized_ {false}
private

Definition at line 271 of file AlignmentProducerBase.h.

Referenced by initAlignmentAlgorithm(), and startProcessing().

◆ isDuringLoop_

bool AlignmentProducerBase::isDuringLoop_ {false}
private

Definition at line 272 of file AlignmentProducerBase.h.

Referenced by startProcessing(), and terminateProcessing().

◆ monitors_

AlignmentMonitors AlignmentProducerBase::monitors_
private

◆ muonCSCGeometry_

edm::ESHandle<CSCGeometry> AlignmentProducerBase::muonCSCGeometry_
protected

◆ muonDTGeometry_

edm::ESHandle<DTGeometry> AlignmentProducerBase::muonDTGeometry_
protected

◆ muonGEMGeometry_

edm::ESHandle<GEMGeometry> AlignmentProducerBase::muonGEMGeometry_
protected

◆ nevent_

int AlignmentProducerBase::nevent_ {0}
private

Definition at line 228 of file AlignmentProducerBase.h.

Referenced by finish(), initBeamSpot(), nEvent(), processEvent(), and startProcessing().

◆ runAtPCL_

bool AlignmentProducerBase::runAtPCL_ {false}
private

◆ saveApeToDB_

const bool AlignmentProducerBase::saveApeToDB_
private

Definition at line 239 of file AlignmentProducerBase.h.

Referenced by finish(), storeAlignmentsToDB(), and writeDB().

◆ saveDeformationsToDB_

const bool AlignmentProducerBase::saveDeformationsToDB_
private

Definition at line 239 of file AlignmentProducerBase.h.

Referenced by finish(), storeAlignmentsToDB(), writeDB(), and writeForRunRange().

◆ saveToDB_

const bool AlignmentProducerBase::saveToDB_
private

Definition at line 239 of file AlignmentProducerBase.h.

Referenced by finish(), storeAlignmentsToDB(), and writeDB().

◆ stNFixAlignables_

const int AlignmentProducerBase::stNFixAlignables_
private

Definition at line 235 of file AlignmentProducerBase.h.

Referenced by buildParameterStore().

◆ stRandomRotation_

const double AlignmentProducerBase::stRandomRotation_
private

Definition at line 236 of file AlignmentProducerBase.h.

Referenced by applyMisalignment().

◆ stRandomShift_

const double AlignmentProducerBase::stRandomShift_
private

Definition at line 236 of file AlignmentProducerBase.h.

Referenced by applyMisalignment().

◆ surveyErrors_

const SurveyErrors* AlignmentProducerBase::surveyErrors_ {nullptr}
private

Definition at line 268 of file AlignmentProducerBase.h.

Referenced by addSurveyInfo(), and readInSurveyRcds().

◆ surveyIndex_

size_t AlignmentProducerBase::surveyIndex_ {0}
private

Definition at line 266 of file AlignmentProducerBase.h.

Referenced by addSurveyInfo(), and readInSurveyRcds().

◆ surveyValues_

const Alignments* AlignmentProducerBase::surveyValues_ {nullptr}
private

Definition at line 267 of file AlignmentProducerBase.h.

Referenced by addSurveyInfo(), and readInSurveyRcds().

◆ tjTkAssociationMapTag_

const edm::InputTag AlignmentProducerBase::tjTkAssociationMapTag_
protected

Map with tracks/trajectories.

Definition at line 122 of file AlignmentProducerBase.h.

Referenced by AlignmentProducer::getTrajTrackAssociationCollection().

◆ tkLasBeamTag_

const edm::InputTag AlignmentProducerBase::tkLasBeamTag_
protected

◆ trackerGeometry_

std::shared_ptr<TrackerGeometry> AlignmentProducerBase::trackerGeometry_
protected

◆ uniqueRunRanges_

const align::RunRanges AlignmentProducerBase::uniqueRunRanges_
private

Definition at line 227 of file AlignmentProducerBase.h.

Referenced by createAlignmentAlgorithm(), and storeAlignmentsToDB().

◆ useExtras_

const bool AlignmentProducerBase::useExtras_
protected

Definition at line 119 of file AlignmentProducerBase.h.

Referenced by createAlignables().

◆ useSurvey_

const bool AlignmentProducerBase::useSurvey_
private

Definition at line 240 of file AlignmentProducerBase.h.

Referenced by readInSurveyRcds().

◆ watchCSCAlErrExtRcd_

edm::ESWatcher<CSCAlignmentErrorExtendedRcd> AlignmentProducerBase::watchCSCAlErrExtRcd_
private

Definition at line 255 of file AlignmentProducerBase.h.

Referenced by setupChanged().

◆ watchCSCAlRcd_

edm::ESWatcher<CSCAlignmentRcd> AlignmentProducerBase::watchCSCAlRcd_
private

Definition at line 254 of file AlignmentProducerBase.h.

Referenced by setupChanged().

◆ watchCSCSurveyErrExtRcd_

edm::ESWatcher<CSCSurveyErrorExtendedRcd> AlignmentProducerBase::watchCSCSurveyErrExtRcd_
private

Definition at line 262 of file AlignmentProducerBase.h.

◆ watchCSCSurveyRcd_

edm::ESWatcher<CSCSurveyRcd> AlignmentProducerBase::watchCSCSurveyRcd_
private

Definition at line 261 of file AlignmentProducerBase.h.

◆ watchDTAlErrExtRcd_

edm::ESWatcher<DTAlignmentErrorExtendedRcd> AlignmentProducerBase::watchDTAlErrExtRcd_
private

Definition at line 253 of file AlignmentProducerBase.h.

Referenced by setupChanged().

◆ watchDTAlRcd_

edm::ESWatcher<DTAlignmentRcd> AlignmentProducerBase::watchDTAlRcd_
private

Definition at line 252 of file AlignmentProducerBase.h.

Referenced by setupChanged().

◆ watchDTSurveyErrExtRcd_

edm::ESWatcher<DTSurveyErrorExtendedRcd> AlignmentProducerBase::watchDTSurveyErrExtRcd_
private

Definition at line 260 of file AlignmentProducerBase.h.

◆ watchDTSurveyRcd_

edm::ESWatcher<DTSurveyRcd> AlignmentProducerBase::watchDTSurveyRcd_
private

Definition at line 259 of file AlignmentProducerBase.h.

◆ watchGlobalPositionRcd_

edm::ESWatcher<GlobalPositionRcd> AlignmentProducerBase::watchGlobalPositionRcd_
private

Definition at line 246 of file AlignmentProducerBase.h.

Referenced by setupChanged().

◆ watchIdealGeometryRcd_

edm::ESWatcher<IdealGeometryRecord> AlignmentProducerBase::watchIdealGeometryRcd_
private

Definition at line 245 of file AlignmentProducerBase.h.

Referenced by setupChanged().

◆ watchTkSurveyErrExtRcd_

edm::ESWatcher<TrackerSurveyErrorExtendedRcd> AlignmentProducerBase::watchTkSurveyErrExtRcd_
private

Definition at line 258 of file AlignmentProducerBase.h.

Referenced by readInSurveyRcds().

◆ watchTkSurveyRcd_

edm::ESWatcher<TrackerSurveyRcd> AlignmentProducerBase::watchTkSurveyRcd_
private

Definition at line 257 of file AlignmentProducerBase.h.

Referenced by readInSurveyRcds().

◆ watchTrackerAlErrorExtRcd_

edm::ESWatcher<TrackerAlignmentErrorExtendedRcd> AlignmentProducerBase::watchTrackerAlErrorExtRcd_
private

Definition at line 249 of file AlignmentProducerBase.h.

Referenced by setupChanged().

◆ watchTrackerAlRcd_

edm::ESWatcher<TrackerAlignmentRcd> AlignmentProducerBase::watchTrackerAlRcd_
private

Definition at line 248 of file AlignmentProducerBase.h.

Referenced by setupChanged().

◆ watchTrackerSurDeRcd_

edm::ESWatcher<TrackerSurfaceDeformationRcd> AlignmentProducerBase::watchTrackerSurDeRcd_
private

Definition at line 250 of file AlignmentProducerBase.h.

Referenced by setupChanged().

Vector3DBase
Definition: Vector3DBase.h:8
edm::ESWatcher::check
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
AlignmentProducerBase::nevent_
int nevent_
Definition: AlignmentProducerBase.h:228
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
TkRotation< Scalar >
AlignmentProducerBase::initAlignmentAlgorithm
void initAlignmentAlgorithm(const edm::EventSetup &, bool update=false)
Definition: AlignmentProducerBase.cc:341
AlignmentProducerBase::muonDTGeometry_
edm::ESHandle< DTGeometry > muonDTGeometry_
Definition: AlignmentProducerBase.h:116
AlignmentProducerBase::createGeometries
void createGeometries(const edm::EventSetup &, const TrackerTopology *)
Creates ideal geometry @trackerGeometry_ from IdealGeometryRecord.
Definition: AlignmentProducerBase.cc:412
mps_fire.i
i
Definition: mps_fire.py:428
AlignmentProducerBase::alignableMuon_
std::unique_ptr< AlignableMuon > alignableMuon_
Definition: AlignmentProducerBase.h:220
Reference_intrackfit_cff.barrel
list barrel
Definition: Reference_intrackfit_cff.py:37
AlignmentProducerBase::idealGeometryLabel
std::string idealGeometryLabel
Definition: AlignmentProducerBase.h:242
cond::TimeTypeSpecs::beginValue
Time_t beginValue
Definition: Time.h:41
AlignmentParameterBuilder
Definition: AlignmentParameterBuilder.h:25
ALCARECOPromptCalibProdSiPixelAli0T_cff.algoConfig
algoConfig
Definition: ALCARECOPromptCalibProdSiPixelAli0T_cff.py:95
AlignmentProducerBase::watchDTAlErrExtRcd_
edm::ESWatcher< DTAlignmentErrorExtendedRcd > watchDTAlErrExtRcd_
Definition: AlignmentProducerBase.h:253
AlignmentProducerBase::applyMisalignment
void applyMisalignment()
Applies misalignment scenario to @alignableTracker_.
Definition: AlignmentProducerBase.cc:519
AlignmentProducerBase::createMonitors
void createMonitors()
Creates the monitors.
Definition: AlignmentProducerBase.cc:270
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
AlignmentProducerBase::alignableExtras_
std::unique_ptr< AlignableExtras > alignableExtras_
Definition: AlignmentProducerBase.h:221
TrackerScenarioBuilder
Builds a scenario from configuration and applies it to the alignable tracker.
Definition: TrackerScenarioBuilder.h:24
reco::BeamSpot::z0
double z0() const
z coordinate
Definition: BeamSpot.h:65
TrackerTopology
Definition: TrackerTopology.h:16
AlignmentProducerBase::watchDTAlRcd_
edm::ESWatcher< DTAlignmentRcd > watchDTAlRcd_
Definition: AlignmentProducerBase.h:252
align::RunNumber
cond::RealTimeType< cond::runnumber >::type RunNumber
Definition: Utilities.h:37
pos
Definition: PixelAliasList.h:18
RigidBodyAlignmentParameters::dbeta
Definition: RigidBodyAlignmentParameters.h:24
edm::ValidityInterval::last
const IOVSyncValue & last() const
Definition: ValidityInterval.h:38
edm::ValidityInterval
Definition: ValidityInterval.h:28
GlobalPosition_Frontier_DevDB_cff.record
record
Definition: GlobalPosition_Frontier_DevDB_cff.py:10
GeometryAligner::removeGlobalTransform
void removeGlobalTransform(const Alignments *alignments, const AlignmentErrorsExtended *alignmentErrors, const AlignTransform &globalCoordinates, Alignments *newAlignments, AlignmentErrorsExtended *newAlignmentErrorsExtended)
Definition: GeometryAligner.h:172
AlignmentProducerBase::useSurvey_
const bool useSurvey_
Definition: AlignmentProducerBase.h:240
AlignmentProducerBase::simpleMisalignment
void simpleMisalignment(const align::Alignables &, const std::string &, float, float, bool)
Applies misalignment scenario to @alignableTracker_.
Definition: AlignmentProducerBase.cc:550
AlignmentProducerBase::watchTrackerAlErrorExtRcd_
edm::ESWatcher< TrackerAlignmentErrorExtendedRcd > watchTrackerAlErrorExtRcd_
Definition: AlignmentProducerBase.h:249
protons_cff.time
time
Definition: protons_cff.py:39
edm::VParameterSet
std::vector< ParameterSet > VParameterSet
Definition: ParameterSet.h:34
HIPAlignmentAlgorithm_cfi.algoName
algoName
Definition: HIPAlignmentAlgorithm_cfi.py:5
edm::ValidityInterval::first
const IOVSyncValue & first() const
Definition: ValidityInterval.h:37
callgraph.G
G
Definition: callgraph.py:17
relativeConstraints.geometry
geometry
Definition: relativeConstraints.py:39
CSCSurveyRcd
Definition: CSCSurveyRcd.h:15
TrackerGeomBuilderFromGeometricDet::build
TrackerGeometry * build(const GeometricDet *gd, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
Definition: TrackerGeomBuilderFromGeometricDet.cc:43
AlignmentProducer_cff.calibrations
calibrations
Definition: AlignmentProducer_cff.py:59
RigidBodyAlignmentParameters::dx
Definition: RigidBodyAlignmentParameters.h:24
AlignmentProducerBase::surveyValues_
const Alignments * surveyValues_
Definition: AlignmentProducerBase.h:267
indexGen.s2
s2
Definition: indexGen.py:107
edm::ParameterSet::existsAs
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:171
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
beamerCreator.create
def create(alignables, pedeDump, additionalData, outputFile, config)
Definition: beamerCreator.py:44
AlignmentProducerBase::isDuringLoop_
bool isDuringLoop_
Definition: AlignmentProducerBase.h:272
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
AlignmentProducerBase::doMisalignmentScenario_
const bool doMisalignmentScenario_
Definition: AlignmentProducerBase.h:238
reco::BeamSpot::dxdz
double dxdz() const
dxdz slope
Definition: BeamSpot.h:78
AlignableSurface::length
align::Scalar length() const
Definition: AlignableSurface.h:32
edm::Handle
Definition: AssociativeIterator.h:50
relativeConstraints.error
error
Definition: relativeConstraints.py:53
edm::Service::isAvailable
bool isAvailable() const
Definition: Service.h:40
TrackerSurveyRcd
Definition: TrackerSurveyRcd.h:15
AlignmentProducerBase::isAlgoInitialized_
bool isAlgoInitialized_
Definition: AlignmentProducerBase.h:271
GeometryAligner::applyAlignments
void applyAlignments(const C *geometry, const Alignments *alignments, const AlignmentErrorsExtended *alignmentErrors, const AlignTransform &globalCoordinates)
Definition: GeometryAligner.h:52
GlobalPositionRcd
Definition: GlobalPositionRcd.h:6
AlCaHLTBitMon_QueryRunRegistry.comp
comp
Definition: AlCaHLTBitMon_QueryRunRegistry.py:249
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
PTrackerParametersRcd
Definition: PTrackerParametersRcd.h:9
AlignmentProducerBase::getBeamSpot
virtual bool getBeamSpot(const edm::Event &, edm::Handle< reco::BeamSpot > &)=0
AlignmentProducerBase::uniqueRunRanges_
const align::RunRanges uniqueRunRanges_
Definition: AlignmentProducerBase.h:227
AlignmentProducerBase::beamSpotTag_
const edm::InputTag beamSpotTag_
BeamSpot.
Definition: AlignmentProducerBase.h:125
RigidBodyAlignmentParameters::N_PARAM
Definition: RigidBodyAlignmentParameters.h:24
AlignmentProducerBase::trackerGeometry_
std::shared_ptr< TrackerGeometry > trackerGeometry_
Definition: AlignmentProducerBase.h:115
SurveyDet
Definition: SurveyDet.h:15
config
Definition: config.py:1
DetId
Definition: DetId.h:17
edm::AssociationMap::end
const_iterator end() const
last iterator over the map (read only)
Definition: AssociationMap.h:171
Alignable::setSurvey
void setSurvey(const SurveyDet *)
Set survey info.
Definition: Alignable.cc:266
AlignmentProducerBase::tjTkAssociationMapTag_
const edm::InputTag tjTkAssociationMapTag_
Map with tracks/trajectories.
Definition: AlignmentProducerBase.h:122
dqmdumpme.last
last
Definition: dqmdumpme.py:56
ConstTrajTrackPairs
std::vector< ConstTrajTrackPair > ConstTrajTrackPairs
Definition: AlignmentAlgorithmBase.h:52
cond::timeTypeSpecs
const TimeTypeSpecs timeTypeSpecs[]
Definition: Time.cc:16
MuonScenarioBuilder::applyScenario
void applyScenario(const edm::ParameterSet &scenario) override
Apply misalignment scenario to the Muon.
Definition: MuonScenarioBuilder.cc:37
AlignmentProducerBase::beamSpot_
edm::Handle< reco::BeamSpot > beamSpot_
Definition: AlignmentProducerBase.h:223
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
AlignmentProducerBase::surveyIndex_
size_t surveyIndex_
Definition: AlignmentProducerBase.h:266
AlignmentProducerBase::writeForRunRange
void writeForRunRange(cond::Time_t)
Definition: AlignmentProducerBase.cc:826
AlignmentProducerBase::watchTkSurveyErrExtRcd_
edm::ESWatcher< TrackerSurveyErrorExtendedRcd > watchTkSurveyErrExtRcd_
Definition: AlignmentProducerBase.h:258
AlignmentProducerBase::addSurveyInfo
void addSurveyInfo(Alignable *)
Adds survey info to an Alignable.
Definition: AlignmentProducerBase.cc:723
Alignable::alignableObjectId
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
EndRunInfo
AlignmentAlgorithmBase::EndRunInfo EndRunInfo
Definition: AlignmentAlgorithmBase.h:181
corrVsCorr.selection
selection
main part
Definition: corrVsCorr.py:100
AlignmentProducerBase::watchIdealGeometryRcd_
edm::ESWatcher< IdealGeometryRecord > watchIdealGeometryRcd_
Definition: AlignmentProducerBase.h:245
TrackerScenarioBuilder::applyScenario
void applyScenario(const edm::ParameterSet &scenario) override
Apply misalignment scenario to the tracker.
Definition: TrackerScenarioBuilder.cc:39
AlignmentProducerBase::muonCSCGeometry_
edm::ESHandle< CSCGeometry > muonCSCGeometry_
Definition: AlignmentProducerBase.h:117
edm::ESHandle< Alignments >
AlignmentProducerBase::calibrations_
CalibrationsOwner calibrations_
Definition: AlignmentProducerBase.h:215
AlignmentProducerBase::checkDbAlignmentValidity_
const bool checkDbAlignmentValidity_
Definition: AlignmentProducerBase.h:237
AlignmentProducerBase::getTrajTrackAssociationCollection
virtual bool getTrajTrackAssociationCollection(const edm::Event &, edm::Handle< TrajTrackAssociationCollection > &)=0
AlignmentProducerBase::saveApeToDB_
const bool saveApeToDB_
Definition: AlignmentProducerBase.h:239
AlignmentProducerBase::applyDbAlignment_
const bool applyDbAlignment_
Definition: AlignmentProducerBase.h:237
Alignable::surface
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
Definition: Alignable.h:132
AlignmentProducerBase::watchTrackerAlRcd_
edm::ESWatcher< TrackerAlignmentRcd > watchTrackerAlRcd_
Definition: AlignmentProducerBase.h:248
Point3DBase< Scalar, GlobalTag >
AlignmentProducerBase::stNFixAlignables_
const int stNFixAlignables_
Definition: AlignmentProducerBase.h:235
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:112
edm::IOVSyncValue
Definition: IOVSyncValue.h:31
AlignmentProducerBase::doTracker_
const bool doTracker_
Definition: AlignmentProducerBase.h:119
AlignTransform
Definition: AlignTransform.h:15
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
AlignmentProducerBase::createAlignables
void createAlignables(const TrackerTopology *, bool update=false)
Definition: AlignmentProducerBase.cc:464
gather_cfg.monitors
monitors
Definition: gather_cfg.py:173
AlignmentProducerBase::watchCSCAlRcd_
edm::ESWatcher< CSCAlignmentRcd > watchCSCAlRcd_
Definition: AlignmentProducerBase.h:254
AlignmentProducerBase::alignmentAlgo_
std::unique_ptr< AlignmentAlgorithmBase > alignmentAlgo_
Definition: AlignmentProducerBase.h:214
edm::ParameterSet
Definition: ParameterSet.h:47
AlignmentProducerBase::alignableTracker_
std::unique_ptr< AlignableTracker > alignableTracker_
Definition: AlignmentProducerBase.h:219
DetId::Tracker
Definition: DetId.h:25
align::DetectorGlobalPosition
const AlignTransform & DetectorGlobalPosition(const Alignments &allGlobals, const DetId &id)
Definition: DetectorGlobalPosition.cc:10
AlignmentProducerBase::doMuon_
const bool doMuon_
Definition: AlignmentProducerBase.h:119
AlignmentProducerBase::storeAlignmentsToDB
void storeAlignmentsToDB()
Writes Alignments (i.e. Records) to database-file.
Definition: AlignmentProducerBase.cc:776
edm::IOVSyncValue::endOfTime
static const IOVSyncValue & endOfTime()
Definition: IOVSyncValue.cc:82
AlignmentProducerBase::createCalibrations
void createCalibrations()
Creates the calibrations.
Definition: AlignmentProducerBase.cc:280
AlignmentProducerBase::getTkFittedLasBeamCollection
virtual bool getTkFittedLasBeamCollection(const edm::Run &, edm::Handle< TkFittedLasBeamCollection > &)=0
beam_dqm_sourceclient-live_cfg.monitor
monitor
Definition: beam_dqm_sourceclient-live_cfg.py:242
Alignable::id
align::ID id() const
Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit).
Definition: Alignable.h:180
cond::runnumber
Definition: Time.h:19
RigidBodyAlignmentParameters::dgamma
Definition: RigidBodyAlignmentParameters.h:24
AlignmentProducerBase::muonGEMGeometry_
edm::ESHandle< GEMGeometry > muonGEMGeometry_
Definition: AlignmentProducerBase.h:118
edm::Service< cond::service::PoolDBOutputService >
AlignmentProducerBase::buildParameterStore
void buildParameterStore()
Creates the @alignmentParameterStore_, which manages all Alignables.
Definition: AlignmentProducerBase.cc:491
RigidBodyAlignmentParameters::dy
Definition: RigidBodyAlignmentParameters.h:24
AlignmentProducerBase::readInSurveyRcds
void readInSurveyRcds(const edm::EventSetup &)
Reads in survey records.
Definition: AlignmentProducerBase.cc:666
AlignmentProducerBase::enableAlignableUpdates_
const bool enableAlignableUpdates_
Definition: AlignmentProducerBase.h:241
AlignmentSurfaceDeformations
Definition: AlignmentSurfaceDeformations.h:20
edm::InputTag::encode
std::string encode() const
Definition: InputTag.cc:159
AlignmentProducerBase::applyAlignmentsToGeometry
void applyAlignmentsToGeometry()
Definition: AlignmentProducerBase.cc:624
AlignmentProducerBase::runAtPCL_
bool runAtPCL_
Definition: AlignmentProducerBase.h:229
AlignmentProducerBase::watchTrackerSurDeRcd_
edm::ESWatcher< TrackerSurfaceDeformationRcd > watchTrackerSurDeRcd_
Definition: AlignmentProducerBase.h:250
AlignmentProducerBase::setupChanged
bool setupChanged(const edm::EventSetup &)
Checks if one of the EventSetup-Records has changed.
Definition: AlignmentProducerBase.cc:289
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
AlignmentProducerBase::monitors_
AlignmentMonitors monitors_
Definition: AlignmentProducerBase.h:216
DTSurveyRcd
Definition: DTSurveyRcd.h:15
get
#define get
AlignmentProducerBase::tkLasBeamTag_
const edm::InputTag tkLasBeamTag_
LAS beams in edm::Run (ignore if empty)
Definition: AlignmentProducerBase.h:128
align::EulerAngles
AlgebraicVector EulerAngles
Definition: Definitions.h:34
AlignmentErrorsExtended
Definition: AlignmentErrorsExtended.h:10
AlignmentProducerBase::getTsosVectorCollection
virtual bool getTsosVectorCollection(const edm::Run &, edm::Handle< TsosVectorCollection > &)=0
alignCSCRings.r
r
Definition: alignCSCRings.py:93
reco::BeamSpot::dydz
double dydz() const
dydz slope
Definition: BeamSpot.h:80
AlignmentProducerBase::useExtras_
const bool useExtras_
Definition: AlignmentProducerBase.h:119
dumpTauVariables_cfi.eventInfo
eventInfo
add run, event number and lumi section
Definition: dumpTauVariables_cfi.py:12
reco::BeamSpot::x0
double x0() const
x coordinate
Definition: BeamSpot.h:61
AlignmentProducerBase::watchCSCAlErrExtRcd_
edm::ESWatcher< CSCAlignmentErrorExtendedRcd > watchCSCAlErrExtRcd_
Definition: AlignmentProducerBase.h:255
GeometryAligner::attachSurfaceDeformations
void attachSurfaceDeformations(const C *geometry, const AlignmentSurfaceDeformations *surfaceDeformations)
Definition: GeometryAligner.h:120
AlignmentProducerBase::surveyErrors_
const SurveyErrors * surveyErrors_
Definition: AlignmentProducerBase.h:268
AlignmentProducerBase::initBeamSpot
void initBeamSpot(const edm::Event &)
Initializes Beamspot @beamSpot_ of Alignables @alignableExtras_.
Definition: AlignmentProducerBase.cc:399
writedatasetfile.run
run
Definition: writedatasetfile.py:27
edm::shift
static unsigned const int shift
Definition: LuminosityBlockID.cc:7
AlignableSurface
Definition: AlignableSurface.h:20
DTSurveyErrorExtendedRcd
Definition: DTSurveyErrorExtendedRcd.h:15
AlignableSurface::width
align::Scalar width() const
Definition: AlignableSurface.h:30
CSCSurveyErrorExtendedRcd
Definition: CSCSurveyErrorExtendedRcd.h:15
edm::ValueMap
Definition: ValueMap.h:107
Exception
Definition: hltDiff.cc:245
cond::service::PoolDBOutputService::writeOne
Hash writeOne(const T *payload, Time_t time, const std::string &recordName)
Definition: PoolDBOutputService.h:63
edm::AssociationMap::begin
const_iterator begin() const
first iterator over the map (read only)
Definition: AssociationMap.h:169
ConstTrajTrackPair
std::pair< const Trajectory *, const reco::Track * > ConstTrajTrackPair
Definition: AlignmentAlgorithmBase.h:51
AlignmentProducerBase::applyAlignmentsToDB
void applyAlignmentsToDB(const edm::EventSetup &)
Definition: AlignmentProducerBase.cc:433
AlignmentProducerBase::clusterValueMapTag_
const edm::InputTag clusterValueMapTag_
ValueMap containing associtaion cluster-flag.
Definition: AlignmentProducerBase.h:131
makeMuonMisalignmentScenario.rot
rot
Definition: makeMuonMisalignmentScenario.py:322
AlignmentProducerBase::watchGlobalPositionRcd_
edm::ESWatcher< GlobalPositionRcd > watchGlobalPositionRcd_
Definition: AlignmentProducerBase.h:246
edm::IOVSyncValue::beginOfTime
static const IOVSyncValue & beginOfTime()
Definition: IOVSyncValue.cc:88
align::makeUniqueRunRanges
RunRanges makeUniqueRunRanges(const edm::VParameterSet &runRanges, const RunNumber &defaultRun)
Definition: Utilities.cc:241
RigidBodyAlignmentParameters::dz
Definition: RigidBodyAlignmentParameters.h:24
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
AlignmentProducerBase::alignmentParameterStore_
std::unique_ptr< AlignmentParameterStore > alignmentParameterStore_
Definition: AlignmentProducerBase.h:218
align::toMatrix
RotationType toMatrix(const EulerAngles &)
Convert rotation angles about x-, y-, z-axes to matrix.
Definition: Utilities.cc:34
AlignmentProducerBase::createAlignmentAlgorithm
void createAlignmentAlgorithm()
Creates the choosen alignment algorithm.
Definition: AlignmentProducerBase.cc:259
SurveyError
Definition: SurveyError.h:23
AlignmentProducerBase::globalPositions_
std::unique_ptr< const Alignments > globalPositions_
GlobalPositions that might be read from DB, nullptr otherwise.
Definition: AlignmentProducerBase.h:225
edm::ParameterSet::getParameterSetVector
VParameterSet const & getParameterSetVector(std::string const &name) const
Definition: ParameterSet.cc:2160
TrackerGeomBuilderFromGeometricDet
Definition: TrackerGeomBuilderFromGeometricDet.h:17
Alignments::m_align
std::vector< AlignTransform > m_align
Definition: Alignments.h:19
DetId::Muon
Definition: DetId.h:26
DTRecHitClients_cfi.local
local
Definition: DTRecHitClients_cfi.py:10
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
RigidBodyAlignmentParameters::dalpha
Definition: RigidBodyAlignmentParameters.h:24
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
AlignmentProducerBase::stRandomRotation_
const double stRandomRotation_
Definition: AlignmentProducerBase.h:236
AlignmentProducerBase::stRandomShift_
const double stRandomShift_
Definition: AlignmentProducerBase.h:236
AlignmentProducerBase::startProcessing
void startProcessing()
Start processing of events.
Definition: AlignmentProducerBase.cc:83
event
Definition: event.py:1
reco::BeamSpot::y0
double y0() const
y coordinate
Definition: BeamSpot.h:63
SurveyErrors::m_surveyErrors
std::vector< SurveyError > m_surveyErrors
Definition: SurveyErrors.h:22
AlignmentProducerBase::saveDeformationsToDB_
const bool saveDeformationsToDB_
Definition: AlignmentProducerBase.h:239
Alignable::components
virtual const Alignables & components() const =0
Return vector of all direct components.
TrackerSurveyErrorExtendedRcd
Definition: TrackerSurveyErrorExtendedRcd.h:15
Alignments
Definition: Alignments.h:10
AlignmentProducer_cff.monitorConfig
monitorConfig
Definition: AlignmentProducer_cff.py:61
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
edm::InputTag
Definition: InputTag.h:15
AlignTransform::transform
Transform transform() const
Definition: AlignTransform.h:44
AlignmentParameterSelector
Definition: AlignmentParameterSelector.h:26
AlignmentProducerBase::config_
edm::ParameterSet config_
Definition: AlignmentProducerBase.h:233
MuonScenarioBuilder
Builds a scenario from configuration and applies it to the alignable Muon.
Definition: MuonScenarioBuilder.h:19
IdealGeometryRecord
Definition: IdealGeometryRecord.h:25
edm::ParameterSet::getParameterSet
ParameterSet const & getParameterSet(std::string const &) const
Definition: ParameterSet.cc:2128
AlignmentProducerBase::saveToDB_
const bool saveToDB_
Definition: AlignmentProducerBase.h:239
AlignmentProducerBase::firstRun_
cond::Time_t firstRun_
Definition: AlignmentProducerBase.h:275
AlignmentProducerBase::getAliClusterValueMap
virtual bool getAliClusterValueMap(const edm::Event &, edm::Handle< AliClusterValueMap > &)=0
AlignmentProducerBase::writeDB
void writeDB(Alignments *, const std::string &, AlignmentErrorsExtended *, const std::string &, const AlignTransform *, cond::Time_t) const
Definition: AlignmentProducerBase.cc:863
update
#define update(a, b)
Definition: TrackClassifier.cc:10
GeometryAligner
Class to update a given geometry with a set of alignments.
Definition: GeometryAligner.h:33
AlignmentProducerBase::watchTkSurveyRcd_
edm::ESWatcher< TrackerSurveyRcd > watchTkSurveyRcd_
Definition: AlignmentProducerBase.h:257
AlignmentAlgorithmBase::EventInfo
define event information passed to algorithms
Definition: AlignmentAlgorithmBase.h:72