63 theAlignmentParameterStore(0),
64 theTrackerAlignables(0),
66 theExtraAlignables(0),
70 theParameterSet(config),
71 stNFixAlignables_ (config.getParameter<
int> (
"nFixAlignables")),
72 stRandomShift_ (config.getParameter<double> (
"randomShift")),
73 stRandomRotation_ (config.getParameter<double> (
"randomRotation")),
74 applyDbAlignment_ (config.getUntrackedParameter<bool>(
"applyDbAlignment")),
75 checkDbAlignmentValidity_(config.getUntrackedParameter<bool>(
"checkDbAlignmentValidity")),
76 doMisalignmentScenario_ (config.getParameter<bool> (
"doMisalignmentScenario")),
77 saveToDB_ (config.getParameter<bool> (
"saveToDB")),
78 saveApeToDB_ (config.getParameter<bool> (
"saveApeToDB")),
79 saveDeformationsToDB_ (config.getParameter<bool> (
"saveDeformationsToDB")),
80 doTracker_ (config.getUntrackedParameter<bool>(
"doTracker") ),
81 doMuon_ (config.getUntrackedParameter<bool>(
"doMuon") ),
82 useExtras_ (config.getUntrackedParameter<bool>(
"useExtras")),
83 useSurvey_ (config.getParameter<bool> (
"useSurvey")),
84 enableAlignableUpdates_ (config.getParameter<bool> (
"enableAlignableUpdates")),
87 tjTkAssociationMapTag_ (config.getParameter<
edm::InputTag>(
"tjTkAssociationMapTag")),
88 beamSpotTag_ (config.getParameter<
edm::InputTag>(
"beamSpotTag")),
89 tkLasBeamTag_ (config.getParameter<
edm::InputTag>(
"tkLasBeamTag")),
90 clusterValueMapTag_ (config.getParameter<
edm::InputTag>(
"hitPrescaleMapTag")),
94 tjTkAssociationMapToken = consumes<TrajTrackAssociationCollection>(tjTkAssociationMapTag_);
95 beamSpotToken = consumes<reco::BeamSpot>(beamSpotTag_);
96 tkLasBeamToken = consumes<TkFittedLasBeamCollection>(tkLasBeamTag_);
97 tsosVectorToken = consumes<TsosVectorCollection>(tkLasBeamTag_);
98 clusterValueMapToken = consumes<AliClusterValueMap>(clusterValueMapTag_);
101 createAlignmentAlgorithm(config);
102 createCalibrations (config);
103 createMonitors (config);
110 delete theAlignmentAlgo;
112 for (
auto iCal = theCalibrations.begin();
113 iCal != theCalibrations.end();
120 delete theAlignmentParameterStore;
121 delete theTrackerAlignables;
122 delete theMuonAlignables;
123 delete theExtraAlignables;
124 delete globalPositions_;
139 for (
auto iCal = theCalibrations.begin();
140 iCal != theCalibrations.end();
142 (*iCal)->beginOfJob(theTrackerAlignables,
147 for (
auto monitor = theMonitors.begin();
148 monitor != theMonitors.end();
150 (*monitor)->beginOfJob(theTrackerAlignables,
152 theAlignmentParameterStore);
162 for (
auto monitor = theMonitors.begin();
163 monitor != theMonitors.end();
165 (*monitor)->endOfJob();
168 for (
auto iCal = theCalibrations.begin();
169 iCal != theCalibrations.end();
179 const bool changed{setupChanged(setup)};
181 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::beginRun" 182 <<
"EventSetup-Record changed.";
183 initAlignmentAlgorithm(setup);
186 theAlignmentAlgo->beginRun(run, setup, changed);
188 if (setupChanged(setup)) {
189 initAlignmentAlgorithm(setup);
207 if (tkLasBeamTag_.encode().size()) {
213 theAlignmentAlgo->endRun(
EndRunInfo(run.
id(), &(*lasBeams),
216 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::endRun" 217 <<
"No Tk LAS beams to forward to algorithm.";
218 theAlignmentAlgo->endRun(
EndRunInfo(run.
id(), 0, 0), setup);
228 theAlignmentAlgo->beginLuminosityBlock(setup);
237 theAlignmentAlgo->endLuminosityBlock(setup);
244 if (!theAlignmentAlgo->processesEvents()) {
246 <<
"Skipping event. The current configuration " 247 <<
"of the alignment algorithm does not need " 248 <<
"to process any events.";
252 if (setupChanged(setup)) {
253 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::analyze" 254 <<
"EventSetup-Record changed.";
255 initAlignmentAlgorithm(setup);
258 if (nevent_== 0 && theExtraAlignables) {
265 readInSurveyRcds(setup);
271 if (event.
getByToken(tjTkAssociationMapToken, handleTrajTracksCollection)) {
274 for (
auto iter = handleTrajTracksCollection->
begin();
275 iter != handleTrajTracksCollection->
end();
282 if (clusterValueMapTag_.encode().size()) {
284 event.getByToken(clusterValueMapToken, clusterValueMap);
285 clusterValueMapPtr = &(*clusterValueMap);
296 for (
auto monitor = theMonitors.begin();
297 monitor != theMonitors.end();
299 (*monitor)->duringLoop(event, setup, trajTracks);
303 edm::LogError(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::analyze" 304 <<
"No track collection found: skipping event";
328 enableAlignableUpdates_);
333 if (!theAlignmentAlgo) {
335 <<
"Couldn't find the called alignment algorithm: " <<
algoName;
346 for (
auto miter = monitors.begin();
347 miter != monitors.end();
354 throw cms::Exception(
"BadConfig") <<
"Couldn't find monitor named " 358 theMonitors.push_back(newMonitor);
368 for (
auto iCalib = calibrations.begin();
369 iCalib != calibrations.end();
371 theCalibrations.push_back(
373 iCalib->getParameter<
std::string>(
"calibrationName"), *iCalib
380 if (!theCalibrations.empty()) {
381 if (theAlignmentAlgo->supportsCalibrations()) {
382 theAlignmentAlgo->addCalibrations(theCalibrations);
386 <<
"[TrackerAlignmentProducerForPCL::init]\n" 387 <<
"Configured " << theCalibrations.size() <<
" calibration(s) " 388 <<
"for algorithm not supporting it.";
402 bool changed =
false;
404 if (watchIdealGeometryRcd.check(setup)) {
408 if (watchGlobalPositionRcd.check(setup)) {
413 if (watchTrackerAlRcd.check(setup)) {
417 if (watchTrackerAlErrorExtRcd.check(setup)) {
421 if (watchTrackerSurDeRcd.check(setup)) {
427 if (watchDTAlRcd.check(setup)) {
431 if (watchDTAlErrExtRcd.check(setup)) {
435 if (watchCSCAlRcd.check(setup)) {
439 if (watchCSCAlErrExtRcd.check(setup)) {
463 createGeometries(setup, tTopo);
465 applyAlignmentsToDB(setup);
466 createAlignables(tTopo);
467 buildParameterStore();
472 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::initAlignmentAlgorithm" 473 <<
"Initializing alignment algorithm.";
474 theAlignmentAlgo->initialize(setup,
475 theTrackerAlignables,
478 theAlignmentParameterStore);
480 applyAlignmentsToGeometry();
487 event.getByToken(beamSpotToken, theBeamSpot);
489 if (theExtraAlignables) {
490 edm::LogInfo(
"Alignment") <<
"@SUB=TrackerAlignmentProducerForPCL::initBeamSpot" 491 <<
"Initializing AlignableBeamSpot";
493 theExtraAlignables->initializeBeamSpot(theBeamSpot->x0(),
497 theBeamSpot->dydz());
514 theTrackerGeometry = std::shared_ptr<TrackerGeometry>(
515 trackerBuilder.
build(&(*geometricDet), *ptp, tTopo )
526 theMuonDTGeometry = std::make_shared<DTGeometry>();
527 theMuonCSCGeometry = std::make_shared<CSCGeometry>();
531 DTGeometryBuilder.
build (theMuonDTGeometry, &(*cpv), *mdc);
532 CSCGeometryBuilder.
build(theMuonCSCGeometry, &(*cpv), *mdc);
541 if (applyDbAlignment_) {
547 globalPositions_ =
new Alignments(*globalAlignments);
553 &(*theTrackerGeometry),
558 applyDB<TrackerGeometry,
560 &(*theTrackerGeometry),
569 &(*theMuonDTGeometry),
577 &(*theMuonCSCGeometry),
594 theMuonAlignables =
new AlignableMuon(&(*theMuonDTGeometry), &(*theMuonCSCGeometry));
607 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::buildParameterStore" 608 <<
"Creating AlignmentParameterBuilder";
619 if (stNFixAlignables_ > 0) {
620 alignmentParameterBuilder.fixAlignables(stNFixAlignables_);
624 Alignables theAlignables = alignmentParameterBuilder.alignables();
625 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::buildParameterStore" 626 <<
"got " << theAlignables.size() <<
" alignables";
630 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::buildParameterStore" 631 <<
"AlignmentParameterStore created!";
641 if (doMisalignmentScenario_ && (doTracker_ || doMuon_)) {
642 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::beginOfJob" 643 <<
"Applying misalignment scenario to " 644 << (doTracker_ ?
"tracker" :
"")
645 << (doMuon_ ? (doTracker_ ?
" and muon" :
"muon") :
".");
658 edm::LogInfo(
"Alignment") <<
"@SUB=TrackerAlignmentProducerForPCL::beginOfJob" 659 <<
"NOT applying misalignment scenario!";
665 simpleMisalignment(theAlignmentParameterStore->alignables(), sParSel, stRandomShift_, stRandomRotation_,
true);
673 std::ostringstream
output;
675 if (shift > 0. || rot > 0.) {
676 output <<
"Adding random flat shift of max size " << shift
677 <<
" and adding random flat rotation of max size " << rot <<
" to ";
679 std::vector<bool> commSel(0);
680 if (selection !=
"-1") {
686 <<
"[PCLTrackerAlProducer::simpleMisalignment_]\n" 687 <<
"Expect selection string '" << selection <<
"' to be at least of length " 689 <<
"(Most probably you have to adjust the parameter 'parameterSelectorSimple'.)";
692 for (
auto cIter = cSel.begin();
695 commSel.push_back(*cIter ==
'0' ?
false :
true);
697 output <<
"parameters defined by (" << selection
698 <<
"), representing (x,y,z,alpha,beta,gamma),";
701 output <<
"the active parameters of each alignable,";
703 output <<
" in " << (local ?
"local" :
"global") <<
" frame.";
705 for (
auto it = alivec.begin();
712 double s0 = 0., s1 = 0.,
s2 = 0.;
739 output <<
"No simple misalignment added!";
742 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::simpleMisalignment_" << output.str();
749 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::startingNewLoop" 750 <<
"Now physically apply alignments to geometry...";
756 std::auto_ptr<Alignments> alignments( theTrackerAlignables->alignments());
757 std::auto_ptr<AlignmentErrorsExtended> alignmentErrExt(theTrackerAlignables->alignmentErrors());
758 std::auto_ptr<AlignmentSurfaceDeformations> aliDeforms( theTrackerAlignables->surfaceDeformations());
761 &(*theTrackerGeometry),
768 &(*theTrackerGeometry),
774 std::auto_ptr<Alignments> dtAlignments( theMuonAlignables->dtAlignments());
775 std::auto_ptr<Alignments> cscAlignments(theMuonAlignables->cscAlignments());
777 std::auto_ptr<AlignmentErrorsExtended> dtAlignmentErrExt(
778 theMuonAlignables->dtAlignmentErrorsExtended()
780 std::auto_ptr<AlignmentErrorsExtended> cscAlignmentErrExt(
781 theMuonAlignables->cscAlignmentErrorsExtended()
785 &(*theMuonDTGeometry),
787 &(*dtAlignmentErrExt),
792 &(*theMuonCSCGeometry),
794 &(*cscAlignmentErrExt),
801 template<
class G,
class Rcd,
class ErrRcd>
812 if (checkDbAlignmentValidity_) {
820 <<
"@SUB=PCLTrackerAlProducer::applyDB" 821 <<
"\nTrying to apply " << record.key().name()
822 <<
" with multiple IOVs in tag.\nValidity range is " 828 record.get(alignments);
831 setup.
get<ErrRcd>().
get(alignmentErrExt);
839 template<
class G,
class DeformationRcd>
846 const DeformationRcd &
record = setup.
get<DeformationRcd>();
847 if (checkDbAlignmentValidity_) {
855 <<
"@SUB=PCLTrackerAlProducer::applyDB" 856 <<
"\nTrying to apply " << record.key().name()
857 <<
" with multiple IOVs in tag.\nValidity range is " 862 record.get(surfaceDeformations);
874 if (doTracker_ && useSurvey_) {
875 bool tkSurveyBool = watchTkSurveyRcd.check(setup);
876 bool tkSurveyErrBool = watchTkSurveyErrExtRcd.check(setup);
878 if (tkSurveyBool || tkSurveyErrBool) {
885 theSurveyValues = &(*surveys);
886 theSurveyErrors = &(*surveyErrors);
888 addSurveyInfo(theTrackerAlignables);
892 if (doMuon_ && useSurvey_) {
893 bool DTSurveyBool = watchTkSurveyRcd.check(setup);
894 bool DTSurveyErrBool = watchTkSurveyErrExtRcd.check(setup);
895 bool CSCSurveyBool = watchTkSurveyRcd.check(setup);
896 bool CSCSurveyErrBool = watchTkSurveyErrExtRcd.check(setup);
898 if (DTSurveyBool || DTSurveyErrBool || CSCSurveyBool || CSCSurveyErrBool) {
909 theSurveyValues = &(*dtSurveys);
910 theSurveyErrors = &(*dtSurveyErrors);
912 Alignables barrels = theMuonAlignables->DTBarrel();
913 for (
auto iter = barrels.begin();
914 iter != barrels.end();
916 addSurveyInfo(*iter);
920 theSurveyValues = &(*cscSurveys);
921 theSurveyErrors = &(*cscSurveyErrors);
923 Alignables endcaps = theMuonAlignables->CSCEndcaps();
924 for (
auto iter = endcaps.begin();
925 iter != endcaps.end();
927 addSurveyInfo(*iter);
938 edm::LogInfo(
"Alignment") <<
"ADDING THE SURVEY INFORMATION";
941 for (
size_t i = 0;
i < comp.size(); ++
i) {
942 addSurveyInfo(comp[
i]);
947 if (alignable->
id() != error.
rawId() ||
950 <<
"Error reading survey info from DB. Mismatched id!";
953 const CLHEP::Hep3Vector&
pos = theSurveyValues->m_align[theSurveyIndex].translation();
954 const CLHEP::HepRotation&
rot = theSurveyValues->m_align[theSurveyIndex].rotation();
958 rot.yx(), rot.yy(), rot.yz(),
959 rot.zx(), rot.zy(), rot.zz()));
977 if (theAlignmentAlgo->processesEvents() && nevent_ == 0) {
978 edm::LogError(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::finish" 979 <<
"Did not process any events, stop " 980 <<
"without terminating algorithm.";
984 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::finish" 985 <<
"Terminating algorithm.";
986 theAlignmentAlgo->terminate();
988 if (saveToDB_ || saveApeToDB_ || saveDeformationsToDB_) {
991 if (theAlignmentAlgo->storeAlignments()) {
992 storeAlignmentsToDB();
995 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::finish" 996 <<
"no payload to be stored!";
1005 if (theAlignmentAlgo->processesEvents() && nevent_ == 0) {
1007 edm::LogError(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::endOfJob" 1008 <<
"Did not process any events in last loop, " 1009 <<
"do not dare to store to DB.";
1012 const auto runRangeSelectionVPSet =
1017 std::vector<AlgebraicVector> beamSpotParameters;
1019 for (
auto iRunRange = uniqueRunRanges.begin();
1020 iRunRange != uniqueRunRanges.end();
1023 theAlignmentAlgo->setParametersForRunRange(*iRunRange);
1026 if (saveToDB_ || saveApeToDB_ || saveDeformationsToDB_) {
1027 writeForRunRange((*iRunRange).first);
1031 if (theExtraAlignables) {
1032 Alignables &alis = theExtraAlignables->beamSpot();
1033 if (!alis.empty()) {
1035 beamSpotParameters.push_back(beamSpotAliPars->
parameters());
1040 if (theExtraAlignables) {
1041 std::ostringstream bsOutput;
1043 auto itPar = beamSpotParameters.begin();
1044 for (
auto iRunRange = uniqueRunRanges.begin();
1045 iRunRange != uniqueRunRanges.end();
1046 ++iRunRange, ++itPar) {
1047 bsOutput <<
"Run range: " << (*iRunRange).first <<
" - " << (*iRunRange).second <<
"\n";
1048 bsOutput <<
" Displacement: x=" << (*itPar)[0] <<
", y=" << (*itPar)[1] <<
"\n";
1049 bsOutput <<
" Slope: dx/dz=" << (*itPar)[2] <<
", dy/dz=" << (*itPar)[3] <<
"\n";
1052 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::endOfJob" 1053 <<
"Parameters for alignable beamspot:\n" 1066 if (globalPositions_) {
1072 Alignments* alignments = theTrackerAlignables->alignments();
1075 writeDB(alignments,
"TrackerAlignmentRcd",
1076 alignmentErrExt,
"TrackerAlignmentErrorExtendedRcd",
1082 if (doTracker_ && saveDeformationsToDB_) {
1084 writeDB(alignmentSurfaceDeformations,
"TrackerSurfaceDeformationRcd", time);
1090 if (globalPositions_) {
1096 Alignments* alignments = theMuonAlignables->dtAlignments();
1099 writeDB(alignments,
"DTAlignmentRcd",
1100 alignmentErrExt,
"DTAlignmentErrorExtendedRcd",
1105 alignments = theMuonAlignables->cscAlignments();
1106 alignmentErrExt = theMuonAlignables->cscAlignmentErrorsExtended();
1108 writeDB(alignments,
"CSCAlignmentRcd",
1109 alignmentErrExt,
"CSCAlignmentErrorExtendedRcd",
1128 delete tempAlignments;
1129 delete tempAlignmentErrExt;
1131 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
1134 if (globalCoordinates &&
1135 globalCoordinates->
transform() != AlignTransform::Transform::Identity) {
1143 tempAlignments, tempAlignmentErrExt);
1146 delete alignmentErrExt;
1148 edm::LogInfo(
"Alignment") <<
"@SUB=PCLTrackerAlProducer::writeDB" 1149 <<
"globalCoordinates removed from alignments (" 1150 << alignRcd <<
") and errors (" << alignRcd <<
").";
1154 edm::LogInfo(
"Alignment") <<
"Writing Alignments for run " << time
1155 <<
" to " << alignRcd <<
".";
1160 delete tempAlignments;
1164 edm::LogInfo(
"Alignment") <<
"Writing AlignmentErrorsExtended for run " 1165 << time <<
" to " << errRcd <<
".";
1170 delete tempAlignmentErrExt;
1183 delete alignmentSurfaceDeformations;
1184 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
1187 if (saveDeformationsToDB_) {
1188 edm::LogInfo(
"Alignment") <<
"Writing AlignmentSurfaceDeformations for run " 1189 << time <<
" to " << surfaceDeformationRcd <<
".";
1191 surfaceDeformationRcd);
1195 delete alignmentSurfaceDeformations;
const TimeTypeSpecs timeTypeSpecs[]
align::Scalar width() const
T getParameter(std::string const &) const
align::ID id() const
Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit).
T getUntrackedParameter(std::string const &, T const &) const
void buildParameterStore()
Creates the , which manages all Alignables.
virtual void rotateInLocalFrame(const RotationType &rotation)
Rotation intepreted in the local reference frame.
void createCalibrations(const edm::ParameterSet &)
Creates the calibrations (specified in config-file)
Builds a scenario from configuration and applies it to the alignable Muon.
std::vector< Alignable * > Alignables
def create(alignables, pedeDump, additionalData, outputFile, config)
const EventID & eventID() const
const_iterator end() const
last iterator over the map (read only)
Class to update a given geometry with a set of alignments.
void applyMisalignment()
Applies misalignment scenario to .
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
std::vector< ParameterSet > VParameterSet
ErrorMatrix matrix() const
void writeDB(Alignments *, const std::string &, AlignmentErrorsExtended *, const std::string &, const AlignTransform *, cond::Time_t) const
std::vector< RunRange > RunRanges
void storeAlignmentsToDB()
Writes Alignments (i.e. Records) to database-file.
Tracker-AlignmentProducer for Prompt Calibration Loop (PCL)
static const IOVSyncValue & endOfTime()
def setup(process, global_tag, zero_tesla=False)
TrackerGeometry * build(const GeometricDet *gd, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
virtual void move(const GlobalVector &displacement)=0
Movement with respect to the global reference frame.
virtual void analyze(const edm::Event &, const edm::EventSetup &) override
const std::vector< bool > & selector(void) const
Get alignment parameter selector vector.
void setWidth(align::Scalar width)
virtual void endLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &) override
void applyAlignmentsToDB(const edm::EventSetup &)
uint8_t structureType() const
void applyDB(G *, const edm::EventSetup &, const AlignTransform &) const
virtual ~PCLTrackerAlProducer()
Destructor.
AlignmentParameters * alignmentParameters() const
Get the AlignmentParameters.
define event information passed to algorithms
const IOVSyncValue & last() const
void setLength(align::Scalar length)
const AlgebraicVector & parameters(void) const
Get alignment parameters.
void createMonitors(const edm::ParameterSet &)
Creates the monitors (specified in config-file)
std::vector< ConstTrajTrackPair > ConstTrajTrackPairs
unsigned long long Time_t
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
static const IOVSyncValue & beginOfTime()
virtual Alignables components() const =0
Return vector of all direct components.
virtual void beginRun(const edm::Run &, const edm::EventSetup &) override
virtual void endJob() override
bool getByToken(EDGetToken token, Handle< PROD > &result) const
RunRanges makeUniqueRunRanges(const edm::VParameterSet &runRanges, const RunNumber &defaultRun)
void attachSurfaceDeformations(C *geometry, const AlignmentSurfaceDeformations *surfaceDeformations)
void simpleMisalignment(const Alignables &, const std::string &, float, float, bool)
Applies misalignment scenario to .
void removeGlobalTransform(const Alignments *alignments, const AlignmentErrorsExtended *alignmentErrors, const AlignTransform &globalCoordinates, Alignments *newAlignments, AlignmentErrorsExtended *newAlignmentErrorsExtended)
Abs< T >::type abs(const T &t)
void writeOne(T *payload, Time_t time, const std::string &recordName, bool withlogging=false)
AlignmentAlgorithmBase::EndRunInfo EndRunInfo
void applyScenario(const edm::ParameterSet &scenario)
Apply misalignment scenario to the tracker.
void readInSurveyRcds(const edm::EventSetup &)
Reads in survey records.
bool setupChanged(const edm::EventSetup &)
Checks if one of the EventSetup-Records has changed.
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
std::pair< const Trajectory *, const reco::Track * > ConstTrajTrackPair
virtual void beginJob() override
void createGeometries(const edm::EventSetup &, const TrackerTopology *)
Creates ideal geometry from IdealGeometryRecord.
void applyAlignments(C *geometry, const Alignments *alignments, const AlignmentErrorsExtended *alignmentErrors, const AlignTransform &globalCoordinates)
void applyAlignmentsToGeometry()
AlgebraicVector EulerAngles
align::Scalar length() const
virtual void endRun(const edm::Run &, const edm::EventSetup &) override
virtual void rotateInGlobalFrame(const RotationType &rotation)=0
void addUntrackedParameter(std::string const &name, T const &value)
void setSurvey(const SurveyDet *)
Set survey info.
void build(std::shared_ptr< CSCGeometry > geom, const DDCompactView *fv, const MuonDDDConstants &muonConstants)
Build the geometry.
ESHandle< TrackerGeometry > geometry
void writeForRunRange(cond::Time_t)
void build(std::shared_ptr< CSCGeometry > theGeometry, const RecoIdealGeometry &rig, const CSCRecoDigiParameters &cscpars)
Build the geometry.
align::GlobalPoints toGlobal(const align::LocalPoints &) const
Return in global coord given a set of local points.
RotationType toMatrix(const EulerAngles &)
Convert rotation angles about x-, y-, z-axes to matrix.
void addSurveyInfo(Alignable *)
Adds survey info to an Alignable.
std::vector< char > convertParamSel(const std::string &selString) const
Converting std::string into std::vector<char>
virtual void beginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &) override
void initBeamSpot(const edm::Event &)
Initializes Beamspot of Alignables .
static unsigned int const shift
void createAlignmentAlgorithm(const edm::ParameterSet &)
Creates the choosen alignment algorithm (specified in config-file)
const AlignTransform & DetectorGlobalPosition(const Alignments &allGlobals, const DetId &id)
const_iterator begin() const
first iterator over the map (read only)
eventInfo
add run, event number and lumi section
const IOVSyncValue & first() const
Builds a scenario from configuration and applies it to the alignable tracker.
void createAlignables(const TrackerTopology *const)
T const * product() const
void applyScenario(const edm::ParameterSet &scenario)
Apply misalignment scenario to the Muon.
T get(const Candidate &c)
PCLTrackerAlProducer(const edm::ParameterSet &)
Constructor.
cond::RealTimeType< cond::runnumber >::type RunNumber
void initAlignmentAlgorithm(const edm::EventSetup &)