CMS 3D CMS Logo

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

#include <AlignmentProducer.h>

Inheritance diagram for AlignmentProducer:
edm::ESProducerLooper edm::ESProducer edm::EventSetupRecordIntervalFinder edm::EDLooper edm::ESProxyFactoryProducer edm::EDLooperBase edm::eventsetup::DataProxyProvider

Public Types

typedef std::vector< Alignable * > Alignables
 
typedef std::pair< const
Trajectory *, const
reco::Track * > 
ConstTrajTrackPair
 
typedef std::vector
< ConstTrajTrackPair
ConstTrajTrackPairCollection
 
typedef
AlignmentAlgorithmBase::RunNumber 
RunNumber
 
typedef
AlignmentAlgorithmBase::RunRange 
RunRange
 
typedef std::vector< RunRangeRunRanges
 
- Public Types inherited from edm::eventsetup::DataProxyProvider
typedef std::vector< std::pair
< DataKey, boost::shared_ptr
< DataProxy > > > 
KeyedProxies
 
typedef std::vector
< EventSetupRecordKey
Keys
 
typedef std::map
< EventSetupRecordKey,
KeyedProxies
RecordProxies
 
- Public Types inherited from edm::EDLooperBase
enum  Status { kContinue, kStop }
 

Public Member Functions

 AlignmentProducer (const edm::ParameterSet &iConfig)
 Constructor. More...
 
virtual void beginLuminosityBlock (const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &setup)
 Called at lumi block start, calling algorithm's beginLuminosityBlock. More...
 
virtual void beginOfJob (const edm::EventSetup &)
 Called at beginning of job. More...
 
virtual void beginRun (const edm::Run &run, const edm::EventSetup &setup)
 Called at run start and calling algorithms beginRun. More...
 
virtual Status duringLoop (const edm::Event &event, const edm::EventSetup &setup)
 Called at each event. More...
 
virtual void endLuminosityBlock (const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &setup)
 Called at lumi block end, calling algorithm's endLuminosityBlock. More...
 
virtual void endOfJob ()
 Called at end of job. More...
 
virtual Status endOfLoop (const edm::EventSetup &, unsigned int iLoop)
 Called at end of loop. More...
 
virtual void endRun (const edm::Run &run, const edm::EventSetup &setup)
 Called at run end - currently reading TkFittedLasBeam if an InpuTag is given for that. More...
 
virtual boost::shared_ptr
< CSCGeometry
produceCSC (const MuonGeometryRecord &iRecord)
 Produce the muon CSC geometry. More...
 
virtual boost::shared_ptr
< DTGeometry
produceDT (const MuonGeometryRecord &iRecord)
 Produce the muon DT geometry. More...
 
virtual boost::shared_ptr
< TrackerGeometry
produceTracker (const TrackerDigiGeometryRecord &iRecord)
 Produce the tracker geometry. More...
 
virtual void startingNewLoop (unsigned int iLoop)
 Called at beginning of loop. More...
 
 ~AlignmentProducer ()
 Destructor. More...
 
- Public Member Functions inherited from edm::ESProducerLooper
 ESProducerLooper ()
 
virtual std::set
< eventsetup::EventSetupRecordKey
modifyingRecords () const
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
virtual ~ESProducer ()
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
virtual void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval)
 overrides DataProxyProvider method More...
 
virtual ~ESProxyFactoryProducer ()
 
- Public Member Functions inherited from edm::eventsetup::DataProxyProvider
 DataProxyProvider ()
 
const ComponentDescriptiondescription () const
 
bool isUsingRecord (const EventSetupRecordKey &) const
 
const KeyedProxieskeyedProxies (const EventSetupRecordKey &iRecordKey) const
 
void resetProxies (const EventSetupRecordKey &iRecordType)
 
void resetProxiesIfTransient (const EventSetupRecordKey &iRecordType)
 
void setAppendToDataLabel (const edm::ParameterSet &)
 
void setDescription (const ComponentDescription &iDescription)
 
std::set< EventSetupRecordKeyusingRecords () const
 
virtual ~DataProxyProvider ()
 
- Public Member Functions inherited from edm::EventSetupRecordIntervalFinder
const
eventsetup::ComponentDescription
descriptionForFinder () const
 
 EventSetupRecordIntervalFinder ()
 
std::set
< eventsetup::EventSetupRecordKey
findingForRecords () const
 
const ValidityIntervalfindIntervalFor (const eventsetup::EventSetupRecordKey &, const IOVSyncValue &)
 
void setDescriptionForFinder (const eventsetup::ComponentDescription &iDescription)
 
virtual ~EventSetupRecordIntervalFinder ()
 
- Public Member Functions inherited from edm::EDLooper
 EDLooper ()
 
virtual ~EDLooper ()
 
- Public Member Functions inherited from edm::EDLooperBase
virtual void attachTo (ActivityRegistry &)
 Override this method if you need to monitor the state of the processing. More...
 
virtual void beginOfJob ()
 
void copyInfo (ScheduleInfo const &)
 
void doBeginLuminosityBlock (LuminosityBlockPrincipal &, EventSetup const &)
 
void doBeginRun (RunPrincipal &, EventSetup const &)
 
Status doDuringLoop (EventPrincipal &eventPrincipal, EventSetup const &es, ProcessingController &)
 
void doEndLuminosityBlock (LuminosityBlockPrincipal &, EventSetup const &)
 
Status doEndOfLoop (EventSetup const &es)
 
void doEndRun (RunPrincipal &, EventSetup const &)
 
void doStartingNewLoop ()
 
 EDLooperBase ()
 
void prepareForNextLoop (eventsetup::EventSetupProvider *esp)
 
void setActionTable (ActionTable const *actionTable)
 
void setModuleChanger (ModuleChanger const *)
 
virtual ~EDLooperBase ()
 

Private Member Functions

void addSurveyInfo_ (Alignable *)
 Add survey info to an alignable. More...
 
template<class G , class Rcd , class ErrRcd >
void applyDB (G *geometry, const edm::EventSetup &iSetup, const AlignTransform &globalPosition) const
 
template<class G , class DeformationRcd >
void applyDB (G *geometry, const edm::EventSetup &iSetup) const
 Apply DB constants for surface deformations. More...
 
void createGeometries_ (const edm::EventSetup &)
 Create tracker and muon geometries. More...
 
RunRanges makeNonOverlappingRunRanges (const edm::VParameterSet &RunRangeSelectionVPSet)
 
void readInSurveyRcds (const edm::EventSetup &)
 read in survey records More...
 
void simpleMisalignment_ (const Alignables &alivec, const std::string &selection, float shift, float rot, bool local)
 Apply random shifts and rotations to selected alignables, according to configuration. More...
 
void writeDB (Alignments *alignments, const std::string &alignRcd, AlignmentErrors *alignmentErrors, const std::string &errRcd, const AlignTransform *globalCoordinates, cond::Time_t time=cond::timeTypeSpecs[cond::runnumber].beginValue) const
 
void writeDB (AlignmentSurfaceDeformations *alignmentSurfaceDeformations, const std::string &surfaceDeformationRcd) const
 

Private Attributes

const bool applyDbAlignment_
 
const edm::InputTag beamSpotTag_
 
const edm::InputTag clusterValueMapTag_
 
const bool doMisalignmentScenario_
 
const bool doMuon_
 
const bool doTracker_
 
const AlignmentsglobalPositions_
 GlobalPositions that might be read from DB, NULL otherwise. More...
 
int nevent_
 
const bool saveApeToDB_
 
const bool saveDeformationsToDB_
 
const bool saveToDB_
 
const int stNFixAlignables_
 
const double stRandomRotation_
 
const double stRandomShift_
 
AlignableExtrastheAlignableExtras
 
AlignableMuontheAlignableMuon
 
AlignableTrackertheAlignableTracker
 
AlignmentAlgorithmBasetheAlignmentAlgo
 
AlignmentParameterStoretheAlignmentParameterStore
 
const unsigned int theMaxLoops
 
std::vector
< AlignmentMonitorBase * > 
theMonitors
 
boost::shared_ptr< CSCGeometrytheMuonCSC
 
boost::shared_ptr< DTGeometrytheMuonDT
 
edm::ParameterSet theParameterSet
 
const SurveyErrorstheSurveyErrors
 
unsigned int theSurveyIndex
 
const AlignmentstheSurveyValues
 
boost::shared_ptr
< TrackerGeometry
theTracker
 
const edm::InputTag tjTkAssociationMapTag_
 
const edm::InputTag tkLasBeamTag_
 
const bool useExtras_
 
const bool useSurvey_
 
edm::ESWatcher< CSCSurveyErrorRcdwatchCSCSurveyErrRcd_
 
edm::ESWatcher< CSCSurveyRcdwatchCSCSurveyRcd_
 
edm::ESWatcher< DTSurveyErrorRcdwatchDTSurveyErrRcd_
 
edm::ESWatcher< DTSurveyRcdwatchDTSurveyRcd_
 
edm::ESWatcher
< TrackerSurveyErrorRcd
watchTkSurveyErrRcd_
 
edm::ESWatcher< TrackerSurveyRcdwatchTkSurveyRcd_
 

Additional Inherited Members

- Protected Member Functions inherited from edm::ESProducerLooper
virtual void registerFactoryWithKey (const eventsetup::EventSetupRecordKey &iRecord, std::auto_ptr< eventsetup::ProxyFactoryBase > &iFactory, const std::string &iLabel=std::string())
 
void setIntervalFor (const eventsetup::EventSetupRecordKey &iKey, const IOVSyncValue &iTime, ValidityInterval &oInterval)
 
- Protected Member Functions inherited from edm::ESProducer
template<typename T >
void setWhatProduced (T *iThis, const es::Label &iLabel=es::Label())
 
template<typename T >
void setWhatProduced (T *iThis, const char *iLabel)
 
template<typename T >
void setWhatProduced (T *iThis, const std::string &iLabel)
 
template<typename T , typename TDecorator >
void setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord , typename TArg >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel=es::Label())
 
- Protected Member Functions inherited from edm::ESProxyFactoryProducer
template<class TFactory >
void registerFactory (std::auto_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
virtual void registerProxies (const eventsetup::EventSetupRecordKey &iRecord, KeyedProxies &aProxyList)
 override DataProxyProvider method More...
 
- Protected Member Functions inherited from edm::eventsetup::DataProxyProvider
void eraseAll (const EventSetupRecordKey &iRecordKey)
 deletes all the Proxies in aStream More...
 
void invalidateProxies (const EventSetupRecordKey &iRecordKey)
 
template<class T >
void usingRecord ()
 
void usingRecordWithKey (const EventSetupRecordKey &)
 
- Protected Member Functions inherited from edm::EventSetupRecordIntervalFinder
template<class T >
void findingRecord ()
 
void findingRecordWithKey (const eventsetup::EventSetupRecordKey &)
 
- Protected Member Functions inherited from edm::EDLooperBase
ModuleChanger const * moduleChanger () const
 This only returns a non-zero value during the call to endOfLoop. More...
 
ScheduleInfo const * scheduleInfo () const
 This returns a non-zero value after the constructor has been called. More...
 

Detailed Description

Package : Alignment/CommonAlignmentProducer Description : calls alignment algorithms

Author
: Frederic Ronga Revision :
Revision:
1.20

last update:

Date:
2011/02/16 12:45:59

by :

Author:
mussgill

Definition at line 55 of file AlignmentProducer.h.

Member Typedef Documentation

Definition at line 59 of file AlignmentProducer.h.

Definition at line 60 of file AlignmentProducer.h.

Definition at line 61 of file AlignmentProducer.h.

Definition at line 63 of file AlignmentProducer.h.

Definition at line 64 of file AlignmentProducer.h.

typedef std::vector<RunRange> AlignmentProducer::RunRanges

Definition at line 65 of file AlignmentProducer.h.

Constructor & Destructor Documentation

AlignmentProducer::AlignmentProducer ( const edm::ParameterSet iConfig)

Constructor.

Definition at line 75 of file AlignmentProducer.cc.

References edm::ParameterSet::addUntrackedParameter(), doMuon_, doTracker_, edm::hlt::Exception, reco::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), produceCSC(), produceDT(), produceTracker(), edm::ESProducer::setWhatProduced(), theAlignmentAlgo, and theMonitors.

75  :
79  nevent_(0), theParameterSet(iConfig),
80  theMaxLoops( iConfig.getUntrackedParameter<unsigned int>("maxLoops") ),
81  stNFixAlignables_(iConfig.getParameter<int>("nFixAlignables") ),
82  stRandomShift_(iConfig.getParameter<double>("randomShift")),
83  stRandomRotation_(iConfig.getParameter<double>("randomRotation")),
84  applyDbAlignment_( iConfig.getUntrackedParameter<bool>("applyDbAlignment")),
85  doMisalignmentScenario_(iConfig.getParameter<bool>("doMisalignmentScenario")),
86  saveToDB_(iConfig.getParameter<bool>("saveToDB")),
87  saveApeToDB_(iConfig.getParameter<bool>("saveApeToDB")),
88  saveDeformationsToDB_(iConfig.getParameter<bool>("saveDeformationsToDB")),
89  doTracker_( iConfig.getUntrackedParameter<bool>("doTracker") ),
90  doMuon_( iConfig.getUntrackedParameter<bool>("doMuon") ),
91  useExtras_( iConfig.getUntrackedParameter<bool>("useExtras") ),
92  useSurvey_( iConfig.getParameter<bool>("useSurvey") ),
93  tjTkAssociationMapTag_(iConfig.getParameter<edm::InputTag>("tjTkAssociationMapTag")),
94  beamSpotTag_(iConfig.getParameter<edm::InputTag>("beamSpotTag")),
95  tkLasBeamTag_(iConfig.getParameter<edm::InputTag>("tkLasBeamTag")),
96  clusterValueMapTag_(iConfig.getParameter<edm::InputTag>("hitPrescaleMapTag"))
97 {
98  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::AlignmentProducer";
99 
100  // Tell the framework what data is being produced
101  if (doTracker_) {
103  }
104  if (doMuon_) {
107  }
108 
109  // Create the alignment algorithm
110  edm::ParameterSet algoConfig = iConfig.getParameter<edm::ParameterSet>( "algoConfig" );
111  edm::VParameterSet iovSelection = iConfig.getParameter<edm::VParameterSet>( "RunRangeSelection" );
112  algoConfig.addUntrackedParameter<edm::VParameterSet>( "RunRangeSelection", iovSelection );
113  std::string algoName = algoConfig.getParameter<std::string>( "algoName" );
114  theAlignmentAlgo = AlignmentAlgorithmPluginFactory::get( )->create( algoName, algoConfig );
115 
116  // Check if found
117  if ( !theAlignmentAlgo )
118  throw cms::Exception("BadConfig") << "Couldn't find algorithm called " << algoName;
119 
120  edm::ParameterSet monitorConfig = iConfig.getParameter<edm::ParameterSet>( "monitorConfig" );
121  std::vector<std::string> monitors = monitorConfig.getUntrackedParameter<std::vector<std::string> >( "monitors" );
122 
123  for (std::vector<std::string>::const_iterator miter = monitors.begin(); miter != monitors.end(); ++miter) {
124  AlignmentMonitorBase* newMonitor = AlignmentMonitorPluginFactory::get()->create(*miter, monitorConfig.getUntrackedParameter<edm::ParameterSet>(*miter));
125 
126  if (!newMonitor) throw cms::Exception("BadConfig") << "Couldn't find monitor named " << *miter;
127 
128  theMonitors.push_back(newMonitor);
129  }
130 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const bool doMisalignmentScenario_
AlignmentAlgorithmBase * theAlignmentAlgo
virtual boost::shared_ptr< TrackerGeometry > produceTracker(const TrackerDigiGeometryRecord &iRecord)
Produce the tracker geometry.
std::vector< ParameterSet > VParameterSet
Definition: ParameterSet.h:30
virtual boost::shared_ptr< DTGeometry > produceDT(const MuonGeometryRecord &iRecord)
Produce the muon DT geometry.
edm::ParameterSet theParameterSet
const edm::InputTag tkLasBeamTag_
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
const bool applyDbAlignment_
const unsigned int theMaxLoops
AlignableExtras * theAlignableExtras
const edm::InputTag clusterValueMapTag_
std::vector< AlignmentMonitorBase * > theMonitors
AlignmentParameterStore * theAlignmentParameterStore
const edm::InputTag beamSpotTag_
const edm::InputTag tjTkAssociationMapTag_
AlignableMuon * theAlignableMuon
const bool saveDeformationsToDB_
const double stRandomShift_
void addUntrackedParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:203
virtual boost::shared_ptr< CSCGeometry > produceCSC(const MuonGeometryRecord &iRecord)
Produce the muon CSC geometry.
AlignableTracker * theAlignableTracker
const Alignments * globalPositions_
GlobalPositions that might be read from DB, NULL otherwise.
T get(const Candidate &c)
Definition: component.h:56
const double stRandomRotation_
AlignmentProducer::~AlignmentProducer ( )

Destructor.

Definition at line 135 of file AlignmentProducer.cc.

References globalPositions_, theAlignableExtras, theAlignableMuon, theAlignableTracker, and theAlignmentParameterStore.

136 {
138  delete theAlignableExtras;
139  delete theAlignableTracker;
140  delete theAlignableMuon;
141 
142  delete globalPositions_;
143 }
AlignableExtras * theAlignableExtras
AlignmentParameterStore * theAlignmentParameterStore
AlignableMuon * theAlignableMuon
AlignableTracker * theAlignableTracker
const Alignments * globalPositions_
GlobalPositions that might be read from DB, NULL otherwise.

Member Function Documentation

void AlignmentProducer::addSurveyInfo_ ( Alignable ali)
private

Add survey info to an alignable.

Definition at line 625 of file AlignmentProducer.cc.

References Alignable::alignableObjectId(), Alignable::components(), error, edm::hlt::Exception, i, Alignable::id(), AlignableSurface::length(), Alignments::m_align, SurveyErrors::m_surveyErrors, SurveyError::matrix(), pos, SurveyError::rawId(), AlignableSurface::setLength(), Alignable::setSurvey(), AlignableSurface::setWidth(), SurveyError::structureType(), Alignable::surface(), theSurveyErrors, theSurveyIndex, theSurveyValues, and AlignableSurface::width().

Referenced by readInSurveyRcds().

626 {
627  const std::vector<Alignable*>& comp = ali->components();
628 
629  unsigned int nComp = comp.size();
630 
631  for (unsigned int i = 0; i < nComp; ++i) addSurveyInfo_(comp[i]);
632 
634 
635  if ( ali->id() != error.rawId() ||
636  ali->alignableObjectId() != error.structureType() )
637  {
638  throw cms::Exception("DatabaseError")
639  << "Error reading survey info from DB. Mismatched id!";
640  }
641 
642  const CLHEP::Hep3Vector& pos = theSurveyValues->m_align[theSurveyIndex].translation();
643  const CLHEP::HepRotation& rot = theSurveyValues->m_align[theSurveyIndex].rotation();
644 
645  AlignableSurface surf( align::PositionType( pos.x(), pos.y(), pos.z() ),
646  align::RotationType( rot.xx(), rot.xy(), rot.xz(),
647  rot.yx(), rot.yy(), rot.yz(),
648  rot.zx(), rot.zy(), rot.zz() ) );
649 
650  surf.setWidth( ali->surface().width() );
651  surf.setLength( ali->surface().length() );
652 
653  ali->setSurvey( new SurveyDet( surf, error.matrix() ) );
654 
655  ++theSurveyIndex;
656 }
align::Scalar width() const
align::ID id() const
Return the ID of Alignable, i.e. DetId of &#39;first&#39; component GeomDet(Unit).
Definition: Alignable.h:180
int i
Definition: DBlmapReader.cc:9
ErrorMatrix matrix() const
Definition: SurveyError.h:72
const Alignments * theSurveyValues
void addSurveyInfo_(Alignable *)
Add survey info to an alignable.
uint8_t structureType() const
Definition: SurveyError.h:62
virtual Alignables components() const =0
Return vector of all direct components.
std::vector< AlignTransform > m_align
Definition: Alignments.h:14
unsigned int theSurveyIndex
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
align::ID rawId() const
Definition: SurveyError.h:67
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
Definition: Alignable.h:126
const SurveyErrors * theSurveyErrors
align::Scalar length() const
void setSurvey(const SurveyDet *)
Set survey info.
Definition: Alignable.cc:243
std::vector< SurveyError > m_surveyErrors
Definition: SurveyErrors.h:21
template<class G , class Rcd , class ErrRcd >
void AlignmentProducer::applyDB ( G *  geometry,
const edm::EventSetup iSetup,
const AlignTransform globalPosition 
) const
private

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

Definition at line 724 of file AlignmentProducer.cc.

References GeometryAligner::applyAlignments(), geometry, and edm::EventSetup::get().

726 {
727  // 'G' is the geometry class for that DB should be applied,
728  // 'Rcd' is the record class for its Alignments
729  // 'ErrRcd' is the record class for its AlignmentErrors
730  // 'globalCoordinates' are global transformation for this geometry
731  edm::ESHandle<Alignments> alignments;
732  iSetup.get<Rcd>().get(alignments);
733 
734  edm::ESHandle<AlignmentErrors> alignmentErrors;
735  iSetup.get<ErrRcd>().get(alignmentErrors);
736 
737  GeometryAligner aligner;
738  aligner.applyAlignments<G>(geometry, &(*alignments), &(*alignmentErrors),
739  globalCoordinates);
740 }
Class to update a given geometry with a set of alignments.
void applyAlignments(C *geometry, const Alignments *alignments, const AlignmentErrors *alignmentErrors, const AlignTransform &globalCoordinates)
const T & get() const
Definition: EventSetup.h:55
ESHandle< TrackerGeometry > geometry
template<class G , class DeformationRcd >
void AlignmentProducer::applyDB ( G *  geometry,
const edm::EventSetup iSetup 
) const
private

Apply DB constants for surface deformations.

Definition at line 747 of file AlignmentProducer.cc.

References GeometryAligner::attachSurfaceDeformations(), geometry, and edm::EventSetup::get().

748 {
749  // 'G' is the geometry class for that DB should be applied,
750  // 'DeformationRcd' is the record class for its surface deformations
752  iSetup.get<DeformationRcd>().get(surfaceDeformations);
753 
754  GeometryAligner aligner;
755  aligner.attachSurfaceDeformations<G>(geometry, &(*surfaceDeformations));
756 }
Class to update a given geometry with a set of alignments.
void attachSurfaceDeformations(C *geometry, const AlignmentSurfaceDeformations *surfaceDeformations)
const T & get() const
Definition: EventSetup.h:55
ESHandle< TrackerGeometry > geometry
void AlignmentProducer::beginLuminosityBlock ( const edm::LuminosityBlock lumiBlock,
const edm::EventSetup setup 
)
virtual

Called at lumi block start, calling algorithm's beginLuminosityBlock.

Reimplemented from edm::EDLooperBase.

Definition at line 517 of file AlignmentProducer.cc.

References AlignmentAlgorithmBase::beginLuminosityBlock(), and theAlignmentAlgo.

519 {
520  theAlignmentAlgo->beginLuminosityBlock(setup); // do not forward edm::LuminosityBlock
521 }
virtual void beginLuminosityBlock(const edm::EventSetup &setup)
called at begin of luminosity block (no lumi block info passed yet)
AlignmentAlgorithmBase * theAlignmentAlgo
void AlignmentProducer::beginOfJob ( const edm::EventSetup iSetup)
virtual

Called at beginning of job.

Reimplemented from edm::EDLooperBase.

Definition at line 176 of file AlignmentProducer.cc.

References align::AlignableMuon, AlignmentParameterStore_cfi::AlignmentParameterStore, applyDbAlignment_, MuonScenarioBuilder::applyScenario(), TrackerScenarioBuilder::applyScenario(), createGeometries_(), align::DetectorGlobalPosition(), doMisalignmentScenario_, doMuon_, doTracker_, edm::EventSetup::get(), edm::ParameterSet::getParameter(), globalPositions_, AlignmentAlgorithmBase::initialize(), DetId::Muon, simpleMisalignment_(), stNFixAlignables_, stRandomRotation_, stRandomShift_, theAlignableExtras, theAlignableMuon, theAlignableTracker, theAlignmentAlgo, theAlignmentParameterStore, theMonitors, theMuonCSC, theMuonDT, theParameterSet, theTracker, DetId::Tracker, and useExtras_.

177 {
178  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::beginOfJob";
179 
180  // Create the geometries from the ideal geometries (first time only)
181  this->createGeometries_( iSetup );
182 
183  // Retrieve and apply alignments, if requested (requires DB setup)
184  if ( applyDbAlignment_ ) {
185  // we need GlobalPositionRcd - and have to keep track for later removal
186  // before writing again to DB...
187  edm::ESHandle<Alignments> globalPositionRcd;
188  iSetup.get<GlobalPositionRcd>().get(globalPositionRcd);
189  globalPositions_ = new Alignments(*globalPositionRcd);
190 
191  if ( doTracker_ ) { // apply to tracker
192  this->applyDB<TrackerGeometry,TrackerAlignmentRcd,TrackerAlignmentErrorRcd>
193  (&(*theTracker), iSetup,
195  this->applyDB<TrackerGeometry,TrackerSurfaceDeformationRcd>(&(*theTracker), iSetup);
196  }
197 
198  if ( doMuon_ ) { // apply to tracker
199  this->applyDB<DTGeometry,DTAlignmentRcd,DTAlignmentErrorRcd>
200  (&(*theMuonDT), iSetup,
202  this->applyDB<CSCGeometry,CSCAlignmentRcd,CSCAlignmentErrorRcd>
203  (&(*theMuonCSC), iSetup,
205  }
206  }
207 
208  // Create alignable tracker and muon
209  if (doTracker_) {
210  theAlignableTracker = new AlignableTracker( &(*theTracker) );
211  }
212 
213  if (doMuon_) {
214  theAlignableMuon = new AlignableMuon( &(*theMuonDT), &(*theMuonCSC) );
215  }
216 
217  if (useExtras_) {
219  }
220 
221  // Create alignment parameter builder
222  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::beginOfJob"
223  << "Creating AlignmentParameterBuilder";
224  edm::ParameterSet aliParamBuildCfg =
225  theParameterSet.getParameter<edm::ParameterSet>("ParameterBuilder");
226  AlignmentParameterBuilder alignmentParameterBuilder(theAlignableTracker,
229  aliParamBuildCfg );
230  // Fix alignables if requested
231  if (stNFixAlignables_>0) alignmentParameterBuilder.fixAlignables(stNFixAlignables_);
232 
233  // Get list of alignables
234  Alignables theAlignables = alignmentParameterBuilder.alignables();
235  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::beginOfJob"
236  << "got " << theAlignables.size() << " alignables";
237 
238  // Create AlignmentParameterStore
239  edm::ParameterSet aliParamStoreCfg =
241  theAlignmentParameterStore = new AlignmentParameterStore(theAlignables, aliParamStoreCfg);
242  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::beginOfJob"
243  << "AlignmentParameterStore created!";
244 
245  // Apply misalignment scenario to alignable tracker and muon if requested
246  // WARNING: this assumes scenarioConfig can be passed to both muon and tracker
248  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::beginOfJob"
249  << "Applying misalignment scenario to "
250  << (doTracker_ ? "tracker" : "")
251  << (doMuon_ ? (doTracker_ ? " and muon" : "muon") : ".");
252  edm::ParameterSet scenarioConfig
253  = theParameterSet.getParameter<edm::ParameterSet>( "MisalignmentScenario" );
254  if (doTracker_) {
255  TrackerScenarioBuilder scenarioBuilder( theAlignableTracker );
256  scenarioBuilder.applyScenario( scenarioConfig );
257  }
258  if (doMuon_) {
259  MuonScenarioBuilder muonScenarioBuilder( theAlignableMuon );
260  muonScenarioBuilder.applyScenario( scenarioConfig );
261  }
262  } else {
263  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::beginOfJob"
264  << "NOT applying misalignment scenario!";
265  }
266 
267  // Apply simple misalignment
268  const std::string sParSel(theParameterSet.getParameter<std::string>("parameterSelectorSimple"));
269  this->simpleMisalignment_(theAlignables, sParSel, stRandomShift_, stRandomRotation_, true);
270 
271  // Initialize alignment algorithm
272  theAlignmentAlgo->initialize( iSetup,
274  theAlignmentParameterStore );
275 
276  for (std::vector<AlignmentMonitorBase*>::const_iterator monitor = theMonitors.begin();
277  monitor != theMonitors.end(); ++monitor) {
278  (*monitor)->beginOfJob(theAlignableTracker, theAlignableMuon, theAlignmentParameterStore);
279  }
280 }
std::vector< Alignable * > Alignables
T getParameter(std::string const &) const
const bool doMisalignmentScenario_
Builds a scenario from configuration and applies it to the alignable Muon.
AlignmentAlgorithmBase * theAlignmentAlgo
void simpleMisalignment_(const Alignables &alivec, const std::string &selection, float shift, float rot, bool local)
Apply random shifts and rotations to selected alignables, according to configuration.
edm::ParameterSet theParameterSet
void createGeometries_(const edm::EventSetup &)
Create tracker and muon geometries.
const bool applyDbAlignment_
AlignableExtras * theAlignableExtras
boost::shared_ptr< CSCGeometry > theMuonCSC
std::vector< AlignmentMonitorBase * > theMonitors
AlignmentParameterStore * theAlignmentParameterStore
virtual void initialize(const edm::EventSetup &setup, AlignableTracker *tracker, AlignableMuon *muon, AlignableExtras *extras, AlignmentParameterStore *store)=0
Call at beginning of job (must be implemented in derived class)
Definition: DetId.h:20
AlignableMuon * theAlignableMuon
const double stRandomShift_
const T & get() const
Definition: EventSetup.h:55
AlignableTracker * theAlignableTracker
const AlignTransform & DetectorGlobalPosition(const Alignments &allGlobals, const DetId &id)
Builds a scenario from configuration and applies it to the alignable tracker.
const Alignments * globalPositions_
GlobalPositions that might be read from DB, NULL otherwise.
const double stRandomRotation_
void AlignmentProducer::beginRun ( const edm::Run run,
const edm::EventSetup setup 
)
virtual

Called at run start and calling algorithms beginRun.

Reimplemented from edm::EDLooperBase.

Definition at line 492 of file AlignmentProducer.cc.

References AlignmentAlgorithmBase::beginRun(), and theAlignmentAlgo.

493 {
494  theAlignmentAlgo->beginRun(setup); // do not forward edm::Run...
495 }
virtual void beginRun(const edm::EventSetup &setup)
called at begin of run
AlignmentAlgorithmBase * theAlignmentAlgo
void AlignmentProducer::createGeometries_ ( const edm::EventSetup iSetup)
private

Create tracker and muon geometries.

Definition at line 601 of file AlignmentProducer.cc.

References TrackerGeomBuilderFromGeometricDet::build(), CSCGeometryBuilderFromDDD::build(), DTGeometryBuilderFromDDD::build(), doMuon_, doTracker_, edm::EventSetup::get(), theMuonCSC, theMuonDT, and theTracker.

Referenced by beginOfJob().

602 {
604  iSetup.get<IdealGeometryRecord>().get( cpv );
605 
606  if (doTracker_) {
607  edm::ESHandle<GeometricDet> geometricDet;
608  iSetup.get<IdealGeometryRecord>().get( geometricDet );
609  TrackerGeomBuilderFromGeometricDet trackerBuilder;
610  theTracker = boost::shared_ptr<TrackerGeometry>( trackerBuilder.build(&(*geometricDet)) );
611  }
612 
613  if (doMuon_) {
615  iSetup.get<MuonNumberingRecord>().get(mdc);
616  DTGeometryBuilderFromDDD DTGeometryBuilder;
618  theMuonDT = boost::shared_ptr<DTGeometry>(new DTGeometry );
619  DTGeometryBuilder.build( theMuonDT, &(*cpv), *mdc);
620  theMuonCSC = boost::shared_ptr<CSCGeometry>( new CSCGeometry );
621  CSCGeometryBuilder.build( theMuonCSC, &(*cpv), *mdc );
622  }
623 }
boost::shared_ptr< TrackerGeometry > theTracker
void build(boost::shared_ptr< CSCGeometry > geom, const DDCompactView *fv, const MuonDDDConstants &muonConstants)
Build the geometry.
boost::shared_ptr< CSCGeometry > theMuonCSC
boost::shared_ptr< DTGeometry > theMuonDT
void build(boost::shared_ptr< DTGeometry > theGeometry, const DDCompactView *cview, const MuonDDDConstants &muonConstants)
const T & get() const
Definition: EventSetup.h:55
TrackerGeometry * build(const GeometricDet *gd)
edm::EDLooper::Status AlignmentProducer::duringLoop ( const edm::Event event,
const edm::EventSetup setup 
)
virtual

Called at each event.

Implements edm::EDLooper.

Definition at line 430 of file AlignmentProducer.cc.

References beamSpotTag_, clusterValueMapTag_, edm::InputTag::encode(), ZMuMuCategoriesSequences_cff::eventInfo, edm::Event::getByLabel(), i, edm::EventBase::id(), AlignableExtras::initializeBeamSpot(), edm::EDLooperBase::kContinue, nevent_, readInSurveyRcds(), AlignmentAlgorithmBase::run(), theAlignableExtras, theAlignmentAlgo, theMonitors, and tjTkAssociationMapTag_.

432 {
433  ++nevent_;
434 
435  // reading in survey records
436  this->readInSurveyRcds(setup);
437 
438  // Printout event number
439  for ( int i=10; i<10000000; i*=10 )
440  if ( nevent_<10*i && (nevent_%i)==0 )
441  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::duringLoop"
442  << "Events processed: " << nevent_;
443 
444  // Retrieve trajectories and tracks from the event
445  // -> merely skip if collection is empty
447  if (event.getByLabel(tjTkAssociationMapTag_, m_TrajTracksMap)) {
448 
449  // Form pairs of trajectories and tracks
450  ConstTrajTrackPairCollection trajTracks;
451  for ( TrajTrackAssociationCollection::const_iterator iPair = m_TrajTracksMap->begin();
452  iPair != m_TrajTracksMap->end(); ++iPair) {
453  trajTracks.push_back( ConstTrajTrackPair( &(*(*iPair).key), &(*(*iPair).val) ) );
454  }
456  event.getByLabel(beamSpotTag_, beamSpot);
457 
458  if (nevent_==1 && theAlignableExtras) {
459  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::duringLoop"
460  << "initializing AlignableBeamSpot" << std::endl;
461  theAlignableExtras->initializeBeamSpot(beamSpot->x0(), beamSpot->y0(), beamSpot->z0(),
462  beamSpot->dxdz(), beamSpot->dydz());
463  }
464 
465  // Run the alignment algorithm with its input
466  const AliClusterValueMap *clusterValueMapPtr = 0;
467  if(clusterValueMapTag_.encode().size()){//check that the input tag is not empty
468  edm::Handle<AliClusterValueMap> clusterValueMap;
469  event.getByLabel(clusterValueMapTag_, clusterValueMap);
470  clusterValueMapPtr = &(*clusterValueMap);
471  }
472 
473  const AlignmentAlgorithmBase::EventInfo eventInfo(event.id(), trajTracks, *beamSpot,
474  clusterValueMapPtr);
475  theAlignmentAlgo->run(setup, eventInfo);
476 
477 
478  for (std::vector<AlignmentMonitorBase*>::const_iterator monitor = theMonitors.begin();
479  monitor != theMonitors.end(); ++monitor) {
480  (*monitor)->duringLoop(event, setup, trajTracks); // forward eventInfo?
481  }
482  } else {
483  edm::LogError("Alignment") << "@SUB=AlignmentProducer::duringLoop"
484  << "No track collection found: skipping event";
485  }
486 
487 
488  return kContinue;
489 }
int i
Definition: DBlmapReader.cc:9
virtual void run(const edm::EventSetup &setup, const EventInfo &eventInfo)=0
Run the algorithm (must be implemented in derived class)
AlignmentAlgorithmBase * theAlignmentAlgo
void readInSurveyRcds(const edm::EventSetup &)
read in survey records
std::string encode() const
Definition: InputTag.cc:72
AlignableExtras * theAlignableExtras
const edm::InputTag clusterValueMapTag_
std::vector< AlignmentMonitorBase * > theMonitors
void initializeBeamSpot(double x, double y, double z, double dxdz, double dydz)
Initialize the alignable beam spot with the given parameters.
const edm::InputTag beamSpotTag_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
const edm::InputTag tjTkAssociationMapTag_
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection
edm::EventID id() const
Definition: EventBase.h:56
std::pair< const Trajectory *, const reco::Track * > ConstTrajTrackPair
define event information passed to algorithms
void AlignmentProducer::endLuminosityBlock ( const edm::LuminosityBlock lumiBlock,
const edm::EventSetup setup 
)
virtual

Called at lumi block end, calling algorithm's endLuminosityBlock.

Reimplemented from edm::EDLooperBase.

Definition at line 524 of file AlignmentProducer.cc.

References AlignmentAlgorithmBase::endLuminosityBlock(), and theAlignmentAlgo.

526 {
527  theAlignmentAlgo->endLuminosityBlock(setup); // do not forward edm::LuminosityBlock
528 }
AlignmentAlgorithmBase * theAlignmentAlgo
virtual void endLuminosityBlock(const edm::EventSetup &setup)
called at end of luminosity block (no lumi block info passed yet)
void AlignmentProducer::endOfJob ( )
virtual

Called at end of job.

Reimplemented from edm::EDLooperBase.

Definition at line 284 of file AlignmentProducer.cc.

References AlignableTracker::alignmentErrors(), AlignableTracker::alignments(), AlignableMuon::cscAlignmentErrors(), AlignableMuon::cscAlignments(), align::DetectorGlobalPosition(), doMuon_, doTracker_, AlignableMuon::dtAlignmentErrors(), AlignableMuon::dtAlignments(), AlignableExtras::dump(), edm::ParameterSet::getParameter(), globalPositions_, makeNonOverlappingRunRanges(), DetId::Muon, nevent_, saveApeToDB_, saveDeformationsToDB_, saveToDB_, AlignmentAlgorithmBase::setParametersForRunRange(), Alignable::surfaceDeformations(), theAlignableExtras, theAlignableMuon, theAlignableTracker, theAlignmentAlgo, theMonitors, theParameterSet, DetId::Tracker, and writeDB().

285 {
286  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::endOfJob";
287 
288  for (std::vector<AlignmentMonitorBase*>::const_iterator monitor = theMonitors.begin(); monitor != theMonitors.end(); ++monitor) {
289  (*monitor)->endOfJob();
290  }
291 
292  if (0 == nevent_) {
293  edm::LogError("Alignment") << "@SUB=AlignmentProducer::endOfJob" << "Did not process any "
294  << "events in last loop, do not dare to store to DB.";
295  } else {
296 
297  // Save alignments to database
298  if (saveToDB_ || saveApeToDB_) {
299 
300  // Expand run ranges and make them unique
301  edm::VParameterSet RunRangeSelectionVPSet = theParameterSet.getParameter<edm::VParameterSet>( "RunRangeSelection" );
302  RunRanges uniqueRunRanges = makeNonOverlappingRunRanges(RunRangeSelectionVPSet);
303 
304  if ( doTracker_ ) { // first tracker
305  const AlignTransform *trackerGlobal = 0; // will be 'removed' from constants
306  if (globalPositions_) { // i.e. applied before in applyDB
309  }
310  // Get alignments+errors - ownership taken over by writeDB(..), so no delete
311 
312  for (std::vector<RunRange>::const_iterator iRunRange = uniqueRunRanges.begin();
313  iRunRange != uniqueRunRanges.end();
314  ++iRunRange) {
316  Alignments *alignments = theAlignableTracker->alignments();
318  this->writeDB(alignments, "TrackerAlignmentRcd",
319  alignmentErrors, "TrackerAlignmentErrorRcd", trackerGlobal,
320  (*iRunRange).first);
321  }
322  }
323 
324  if ( doMuon_ ) { // now muon
325  const AlignTransform *muonGlobal = 0; // will be 'removed' from constants
326  if (globalPositions_) { // i.e. applied before in applyDB
328  DetId(DetId::Muon));
329  }
330  // Get alignments+errors, first DT - ownership taken over by writeDB(..), so no delete
331  Alignments *alignments = theAlignableMuon->dtAlignments();
332  AlignmentErrors *alignmentErrors = theAlignableMuon->dtAlignmentErrors();
333  this->writeDB(alignments, "DTAlignmentRcd",
334  alignmentErrors, "DTAlignmentErrorRcd", muonGlobal);
335 
336  // Get alignments+errors, now CSC - ownership taken over by writeDB(..), so no delete
337  alignments = theAlignableMuon->cscAlignments();
338  alignmentErrors = theAlignableMuon->cscAlignmentErrors();
339  this->writeDB(alignments, "CSCAlignmentRcd",
340  alignmentErrors, "CSCAlignmentErrorRcd", muonGlobal);
341  }
342 
343  // Save surface deformations to database
345  AlignmentSurfaceDeformations *alignmentSurfaceDeformations = theAlignableTracker->surfaceDeformations();
346  this->writeDB(alignmentSurfaceDeformations, "TrackerSurfaceDeformationRcd");
347  }
348 
349  }
350  }
351 
353 }
T getParameter(std::string const &) const
AlignmentErrors * dtAlignmentErrors()
AlignmentAlgorithmBase * theAlignmentAlgo
std::vector< ParameterSet > VParameterSet
Definition: ParameterSet.h:30
edm::ParameterSet theParameterSet
AlignableExtras * theAlignableExtras
Alignments * dtAlignments()
AlignmentErrors * alignmentErrors() const
Return alignment errors, sorted by DetId.
AlignmentErrors * cscAlignmentErrors()
std::vector< AlignmentMonitorBase * > theMonitors
RunRanges makeNonOverlappingRunRanges(const edm::VParameterSet &RunRangeSelectionVPSet)
virtual void setParametersForRunRange(const RunRange &rr)
AlignmentSurfaceDeformations * surfaceDeformations() const
Return surface deformations, sorted by DetId.
Definition: Alignable.cc:214
Definition: DetId.h:20
AlignableMuon * theAlignableMuon
const bool saveDeformationsToDB_
Alignments * cscAlignments()
void dump(void) const
AlignableTracker * theAlignableTracker
void writeDB(Alignments *alignments, const std::string &alignRcd, AlignmentErrors *alignmentErrors, const std::string &errRcd, const AlignTransform *globalCoordinates, cond::Time_t time=cond::timeTypeSpecs[cond::runnumber].beginValue) const
const AlignTransform & DetectorGlobalPosition(const Alignments &allGlobals, const DetId &id)
Alignments * alignments() const
Return alignments, sorted by DetId.
const Alignments * globalPositions_
GlobalPositions that might be read from DB, NULL otherwise.
std::vector< RunRange > RunRanges
edm::EDLooper::Status AlignmentProducer::endOfLoop ( const edm::EventSetup iSetup,
unsigned int  iLoop 
)
virtual

Called at end of loop.

Implements edm::EDLooperBase.

Definition at line 399 of file AlignmentProducer.cc.

References edm::EDLooperBase::kContinue, edm::EDLooperBase::kStop, nevent_, AlignmentAlgorithmBase::terminate(), theAlignmentAlgo, theMaxLoops, and theMonitors.

400 {
401 
402  if (0 == nevent_) {
403  // beginOfJob is usually called by the framework in the first event of the first loop
404  // (a hack: beginOfJob needs the EventSetup that is not well defined without an event)
405  // and the algorithms rely on the initialisations done in beginOfJob. We cannot call
406  // this->beginOfJob(iSetup); here either since that will access the EventSetup to get
407  // some geometry information that is not defined either without having seen an event.
408  edm::LogError("Alignment") << "@SUB=AlignmentProducer::endOfLoop"
409  << "Did not process any events in loop " << iLoop
410  << ", stop processing without terminating algorithm.";
411  return kStop;
412  }
413 
414  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::endOfLoop"
415  << "Ending loop " << iLoop << ", terminating algorithm.";
416 
418 
419  for (std::vector<AlignmentMonitorBase*>::const_iterator monitor = theMonitors.begin(); monitor != theMonitors.end(); ++monitor) {
420  (*monitor)->endOfLoop(iSetup);
421  }
422 
423  if ( iLoop == theMaxLoops-1 || iLoop >= theMaxLoops ) return kStop;
424  else return kContinue;
425 }
virtual void terminate()=0
Call at end of job (must be implemented in derived class)
AlignmentAlgorithmBase * theAlignmentAlgo
const unsigned int theMaxLoops
std::vector< AlignmentMonitorBase * > theMonitors
void AlignmentProducer::endRun ( const edm::Run run,
const edm::EventSetup setup 
)
virtual

Called at run end - currently reading TkFittedLasBeam if an InpuTag is given for that.

Reimplemented from edm::EDLooperBase.

Definition at line 498 of file AlignmentProducer.cc.

References edm::InputTag::encode(), AlignmentAlgorithmBase::endRun(), edm::Run::getByLabel(), edm::RunBase::id(), theAlignmentAlgo, and tkLasBeamTag_.

499 {
500  // call with or without las beam info...
501  typedef AlignmentAlgorithmBase::EndRunInfo EndRunInfo;
502  if (tkLasBeamTag_.encode().size()) { // non-empty InputTag
505  run.getByLabel(tkLasBeamTag_, lasBeams);
506  run.getByLabel(tkLasBeamTag_, tsoses);
507 
508  theAlignmentAlgo->endRun(EndRunInfo(run.id(), &(*lasBeams), &(*tsoses)), setup);
509  } else {
510  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::endRun"
511  << "No Tk LAS beams to forward to algorithm.";
512  theAlignmentAlgo->endRun(EndRunInfo(run.id(), 0, 0), setup);
513  }
514 }
bool getByLabel(std::string const &label, Handle< PROD > &result) const
Definition: Run.h:175
RunID const & id() const
Definition: RunBase.h:43
AlignmentAlgorithmBase * theAlignmentAlgo
const edm::InputTag tkLasBeamTag_
std::string encode() const
Definition: InputTag.cc:72
virtual void endRun(const EndRunInfo &runInfo, const edm::EventSetup &setup)
called at end of run - order of arguments like in EDProducer etc.
define run information passed to algorithms (in endRun)
AlignmentProducer::RunRanges AlignmentProducer::makeNonOverlappingRunRanges ( const edm::VParameterSet RunRangeSelectionVPSet)
private

Definition at line 835 of file AlignmentProducer.cc.

References cond::TimeTypeSpecs::beginValue, cond::TimeTypeSpecs::endValue, first, prof2calltree::last, cond::runnumber, cond::rpcobtemp::temp, cond::timeTypeSpecs, edm::tokenize(), and EcalElecEmulTccFlatFileProducerFromTPG_cfg::tokens.

Referenced by endOfJob().

836 {
839 
840  RunRanges uniqueRunRanges;
841  std::map<RunNumber,RunNumber> uniqueFirstRunNumbers;
842  std::map<RunNumber,RunNumber> uniqueLastRunNumbers;
843  if (RunRangeSelectionVPSet.size()==0) {
844  uniqueFirstRunNumbers[beginValue] = beginValue;
845  uniqueLastRunNumbers[endValue] = endValue;
846  } else {
847  for (std::vector<edm::ParameterSet>::const_iterator ipset = RunRangeSelectionVPSet.begin();
848  ipset != RunRangeSelectionVPSet.end();
849  ++ipset) {
850  const std::vector<std::string> RunRangeStrings = (*ipset).getParameter<std::vector<std::string> >("RunRanges");
851  for (std::vector<std::string>::const_iterator irange = RunRangeStrings.begin();
852  irange != RunRangeStrings.end();
853  ++irange) {
854  std::vector<std::string> tokens = edm::tokenize(*irange, ":");
855  long int temp;
856 
857  RunNumber first = beginValue;
858  temp = strtol(tokens[0].c_str(), 0, 0);
859  if (temp!=-1) first = temp;
860  uniqueFirstRunNumbers[first] = first;
861 
862  RunNumber last = endValue;
863  temp = strtol(tokens[1].c_str(), 0, 0);
864  if (temp!=-1) last = temp;
865  uniqueLastRunNumbers[last] = last;
866  }
867  }
868  }
869 
870  for (std::map<RunNumber,RunNumber>::iterator iFirst = uniqueFirstRunNumbers.begin();
871  iFirst!=uniqueFirstRunNumbers.end();
872  ++iFirst) {
873  for (std::map<RunNumber,RunNumber>::iterator iLast = uniqueLastRunNumbers.begin();
874  iLast!=uniqueLastRunNumbers.end();
875  ++iLast) {
876  if ((*iLast).first>(*iFirst).first) {
877  uniqueRunRanges.push_back(std::pair<RunNumber,RunNumber>((*iFirst).first, (*iLast).first));
878  break;
879  }
880  }
881  }
882 
883  return uniqueRunRanges;
884 }
const TimeTypeSpecs timeTypeSpecs[]
Definition: Time.cc:22
Time_t beginValue
Definition: Time.h:45
AlignmentAlgorithmBase::RunNumber RunNumber
bool first
Definition: L1TdeRCT.cc:79
std::vector< std::string > tokenize(std::string const &input, std::string const &separator)
breaks the input string into tokens, delimited by the separator
Definition: Parse.cc:57
Time_t endValue
Definition: Time.h:46
std::vector< RunRange > RunRanges
boost::shared_ptr< CSCGeometry > AlignmentProducer::produceCSC ( const MuonGeometryRecord iRecord)
virtual

Produce the muon CSC geometry.

Definition at line 167 of file AlignmentProducer.cc.

References theMuonCSC.

Referenced by AlignmentProducer().

168 {
169  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::produceCSC";
170  return theMuonCSC;
171 }
boost::shared_ptr< CSCGeometry > theMuonCSC
boost::shared_ptr< DTGeometry > AlignmentProducer::produceDT ( const MuonGeometryRecord iRecord)
virtual

Produce the muon DT geometry.

Definition at line 158 of file AlignmentProducer.cc.

References theMuonDT.

Referenced by AlignmentProducer().

159 {
160  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::produceDT";
161  return theMuonDT;
162 }
boost::shared_ptr< DTGeometry > theMuonDT
boost::shared_ptr< TrackerGeometry > AlignmentProducer::produceTracker ( const TrackerDigiGeometryRecord iRecord)
virtual

Produce the tracker geometry.

Definition at line 149 of file AlignmentProducer.cc.

References theTracker.

Referenced by AlignmentProducer().

150 {
151  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::produceTracker";
152  return theTracker;
153 }
boost::shared_ptr< TrackerGeometry > theTracker
void AlignmentProducer::readInSurveyRcds ( const edm::EventSetup iSetup)
private

read in survey records

Definition at line 658 of file AlignmentProducer.cc.

References addSurveyInfo_(), edm::ESWatcher< T >::check(), AlignableMuon::CSCEndcaps(), doMuon_, doTracker_, AlignableMuon::DTBarrel(), edm::EventSetup::get(), theAlignableMuon, theAlignableTracker, theSurveyErrors, theSurveyIndex, theSurveyValues, useSurvey_, watchTkSurveyErrRcd_, and watchTkSurveyRcd_.

Referenced by duringLoop().

658  {
659 
660  // Get Survey Rcds and add Survey Info
661  if ( doTracker_ && useSurvey_ ){
662  bool tkSurveyBool = watchTkSurveyRcd_.check(iSetup);
663  bool tkSurveyErrBool = watchTkSurveyErrRcd_.check(iSetup);
664  edm::LogInfo("Alignment") << "watcher tksurveyrcd: " << tkSurveyBool;
665  edm::LogInfo("Alignment") << "watcher tksurveyerrrcd: " << tkSurveyErrBool;
666  if ( tkSurveyBool || tkSurveyErrBool){
667 
668  edm::LogInfo("Alignment") << "ADDING THE SURVEY INFORMATION";
670  edm::ESHandle<SurveyErrors> surveyErrors;
671 
672  iSetup.get<TrackerSurveyRcd>().get(surveys);
673  iSetup.get<TrackerSurveyErrorRcd>().get(surveyErrors);
674 
675  theSurveyIndex = 0;
676  theSurveyValues = &*surveys;
677  theSurveyErrors = &*surveyErrors;
679  }
680  }
681 
682  if ( doMuon_ && useSurvey_) {
683  bool DTSurveyBool = watchTkSurveyRcd_.check(iSetup);
684  bool DTSurveyErrBool = watchTkSurveyErrRcd_.check(iSetup);
685  bool CSCSurveyBool = watchTkSurveyRcd_.check(iSetup);
686  bool CSCSurveyErrBool = watchTkSurveyErrRcd_.check(iSetup);
687 
688  if ( DTSurveyBool || DTSurveyErrBool || CSCSurveyBool || CSCSurveyErrBool ){
689  edm::ESHandle<Alignments> dtSurveys;
690  edm::ESHandle<SurveyErrors> dtSurveyErrors;
691  edm::ESHandle<Alignments> cscSurveys;
692  edm::ESHandle<SurveyErrors> cscSurveyErrors;
693 
694  iSetup.get<DTSurveyRcd>().get(dtSurveys);
695  iSetup.get<DTSurveyErrorRcd>().get(dtSurveyErrors);
696  iSetup.get<CSCSurveyRcd>().get(cscSurveys);
697  iSetup.get<CSCSurveyErrorRcd>().get(cscSurveyErrors);
698 
699  theSurveyIndex = 0;
700  theSurveyValues = &*dtSurveys;
701  theSurveyErrors = &*dtSurveyErrors;
702  std::vector<Alignable*> barrels = theAlignableMuon->DTBarrel();
703  for (std::vector<Alignable*>::const_iterator iter = barrels.begin(); iter != barrels.end(); ++iter) {
704  addSurveyInfo_(*iter);
705  }
706 
707  theSurveyIndex = 0;
708  theSurveyValues = &*cscSurveys;
709  theSurveyErrors = &*cscSurveyErrors;
710  std::vector<Alignable*> endcaps = theAlignableMuon->CSCEndcaps();
711  for (std::vector<Alignable*>::const_iterator iter = endcaps.begin(); iter != endcaps.end(); ++iter) {
712  addSurveyInfo_(*iter);
713  }
714  }
715  }
716 
717 }
const Alignments * theSurveyValues
void addSurveyInfo_(Alignable *)
Add survey info to an alignable.
std::vector< Alignable * > CSCEndcaps()
unsigned int theSurveyIndex
const SurveyErrors * theSurveyErrors
edm::ESWatcher< TrackerSurveyErrorRcd > watchTkSurveyErrRcd_
std::vector< Alignable * > DTBarrel()
AlignableMuon * theAlignableMuon
const T & get() const
Definition: EventSetup.h:55
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:59
edm::ESWatcher< TrackerSurveyRcd > watchTkSurveyRcd_
AlignableTracker * theAlignableTracker
void AlignmentProducer::simpleMisalignment_ ( const Alignables alivec,
const std::string &  selection,
float  shift,
float  rot,
bool  local 
)
private

Apply random shifts and rotations to selected alignables, according to configuration.

Definition at line 532 of file AlignmentProducer.cc.

References abs, Alignable::alignmentParameters(), AlignmentParameterSelector::convertParamSel(), RigidBodyAlignmentParameters::dalpha, RigidBodyAlignmentParameters::dbeta, RigidBodyAlignmentParameters::dgamma, RigidBodyAlignmentParameters::dx, RigidBodyAlignmentParameters::dy, RigidBodyAlignmentParameters::dz, edm::hlt::Exception, Alignable::move(), RigidBodyAlignmentParameters::N_PARAM, convertSQLitetoXML_cfg::output, csvReporter::r, random, Alignable::rotateInGlobalFrame(), Alignable::rotateInLocalFrame(), indexGen::s2, AlignmentParameters::selector(), Alignable::surface(), AlignableSurface::toGlobal(), and align::toMatrix().

Referenced by beginOfJob().

534 {
535 
536  std::ostringstream output; // collecting output
537 
538  if (shift > 0. || rot > 0.) {
539  output << "Adding random flat shift of max size " << shift
540  << " and adding random flat rotation of max size " << rot <<" to ";
541 
542  std::vector<bool> commSel(0);
543  if (selection != "-1") {
544  AlignmentParameterSelector aSelector(0,0); // no alignable needed here...
545  const std::vector<char> cSel(aSelector.convertParamSel(selection));
546  if (cSel.size() < RigidBodyAlignmentParameters::N_PARAM) {
547  throw cms::Exception("BadConfig")
548  << "[AlignmentProducer::simpleMisalignment_]\n"
549  << "Expect selection string '" << selection << "' to be at least of length "
550  << RigidBodyAlignmentParameters::N_PARAM << " or to be '-1'.\n"
551  << "(Most probably you have to adjust the parameter 'parameterSelectorSimple'.)";
552  }
553  for (std::vector<char>::const_iterator cIter = cSel.begin(); cIter != cSel.end(); ++cIter) {
554  commSel.push_back(*cIter == '0' ? false : true);
555  }
556  output << "parameters defined by (" << selection
557  << "), representing (x,y,z,alpha,beta,gamma),";
558  } else {
559  output << "the active parameters of each alignable,";
560  }
561  output << " in " << (local ? "local" : "global") << " frame.";
562 
563  for (std::vector<Alignable*>::const_iterator it = alivec.begin(); it != alivec.end(); ++it) {
564  Alignable* ali=(*it);
565  std::vector<bool> mysel(commSel.empty() ? ali->alignmentParameters()->selector() : commSel);
566 
567  if (std::abs(shift)>0.00001) {
568  double s0 = 0., s1 = 0., s2 = 0.;
569  if (mysel[RigidBodyAlignmentParameters::dx]) s0 = shift * double(random()%1000-500)/500.;
570  if (mysel[RigidBodyAlignmentParameters::dy]) s1 = shift * double(random()%1000-500)/500.;
571  if (mysel[RigidBodyAlignmentParameters::dz]) s2 = shift * double(random()%1000-500)/500.;
572 
573  if (local) ali->move( ali->surface().toGlobal(align::LocalVector(s0,s1,s2)) );
574  else ali->move( align::GlobalVector(s0,s1,s2) );
575 
576  //AlignmentPositionError ape(dx,dy,dz);
577  //ali->addAlignmentPositionError(ape);
578  }
579 
580  if (std::abs(rot)>0.00001) {
582  if (mysel[RigidBodyAlignmentParameters::dalpha]) r(1)=rot*double(random()%1000-500)/500.;
583  if (mysel[RigidBodyAlignmentParameters::dbeta]) r(2)=rot*double(random()%1000-500)/500.;
584  if (mysel[RigidBodyAlignmentParameters::dgamma]) r(3)=rot*double(random()%1000-500)/500.;
585 
586  const align::RotationType mrot = align::toMatrix(r);
587  if (local) ali->rotateInLocalFrame(mrot);
588  else ali->rotateInGlobalFrame(mrot);
589 
590  //ali->addAlignmentPositionErrorFromRotation(mrot);
591  }
592  } // end loop on alignables
593  } else {
594  output << "No simple misalignment added!";
595  }
596  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::simpleMisalignment_" << output.str();
597 }
virtual void rotateInLocalFrame(const RotationType &rotation)
Rotation intepreted in the local reference frame.
Definition: Alignable.cc:89
#define abs(x)
Definition: mlp_lapack.h:159
virtual void move(const GlobalVector &displacement)=0
Movement with respect to the global reference frame.
const std::vector< bool > & selector(void) const
Get alignment parameter selector vector.
TRandom random
Definition: MVATrainer.cc:138
AlignmentParameters * alignmentParameters() const
Get the AlignmentParameters.
Definition: Alignable.h:57
tuple s2
Definition: indexGen.py:106
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
Definition: Alignable.h:126
AlgebraicVector EulerAngles
Definition: Definitions.h:36
virtual void rotateInGlobalFrame(const RotationType &rotation)=0
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.
Definition: Utilities.cc:40
static unsigned int const shift
void AlignmentProducer::startingNewLoop ( unsigned int  iLoop)
virtual

Called at beginning of loop.

Implements edm::EDLooperBase.

Definition at line 357 of file AlignmentProducer.cc.

References AlignableTracker::alignmentErrors(), AlignableTracker::alignments(), GeometryAligner::applyAlignments(), GeometryAligner::attachSurfaceDeformations(), AlignableMuon::cscAlignmentErrors(), AlignableMuon::cscAlignments(), doMuon_, doTracker_, AlignableMuon::dtAlignmentErrors(), AlignableMuon::dtAlignments(), nevent_, AlignmentAlgorithmBase::startNewLoop(), Alignable::surfaceDeformations(), theAlignableMuon, theAlignableTracker, theAlignmentAlgo, and theMonitors.

358 {
359  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::startingNewLoop"
360  << "Starting loop number " << iLoop;
361 
362  nevent_ = 0;
363 
365 
366  for (std::vector<AlignmentMonitorBase*>::const_iterator monitor = theMonitors.begin(); monitor != theMonitors.end(); ++monitor) {
367  (*monitor)->startingNewLoop();
368  }
369 
370  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::startingNewLoop"
371  << "Now physically apply alignments to geometry...";
372 
373 
374  // Propagate changes to reconstruction geometry (from initialisation or iteration)
375  GeometryAligner aligner;
376  if ( doTracker_ ) {
377  std::auto_ptr<Alignments> alignments(theAlignableTracker->alignments());
378  std::auto_ptr<AlignmentErrors> alignmentErrors(theAlignableTracker->alignmentErrors());
379  aligner.applyAlignments<TrackerGeometry>( &(*theTracker),&(*alignments),&(*alignmentErrors), AlignTransform() ); // don't apply global a second time!
380  std::auto_ptr<AlignmentSurfaceDeformations> aliDeforms(theAlignableTracker->surfaceDeformations());
381  aligner.attachSurfaceDeformations<TrackerGeometry>(&(*theTracker), &(*aliDeforms));
382 
383  }
384  if ( doMuon_ ) {
385  std::auto_ptr<Alignments> dtAlignments( theAlignableMuon->dtAlignments());
386  std::auto_ptr<AlignmentErrors> dtAlignmentErrors( theAlignableMuon->dtAlignmentErrors());
387  std::auto_ptr<Alignments> cscAlignments( theAlignableMuon->cscAlignments());
388  std::auto_ptr<AlignmentErrors> cscAlignmentErrors( theAlignableMuon->cscAlignmentErrors());
389 
390  aligner.applyAlignments<DTGeometry>( &(*theMuonDT), &(*dtAlignments), &(*dtAlignmentErrors), AlignTransform() ); // don't apply global a second time!
391  aligner.applyAlignments<CSCGeometry>( &(*theMuonCSC), &(*cscAlignments), &(*cscAlignmentErrors), AlignTransform() ); // nope!
392  }
393 }
AlignmentErrors * dtAlignmentErrors()
AlignmentAlgorithmBase * theAlignmentAlgo
Class to update a given geometry with a set of alignments.
Alignments * dtAlignments()
void attachSurfaceDeformations(C *geometry, const AlignmentSurfaceDeformations *surfaceDeformations)
AlignmentErrors * alignmentErrors() const
Return alignment errors, sorted by DetId.
AlignmentErrors * cscAlignmentErrors()
std::vector< AlignmentMonitorBase * > theMonitors
void applyAlignments(C *geometry, const Alignments *alignments, const AlignmentErrors *alignmentErrors, const AlignTransform &globalCoordinates)
AlignmentSurfaceDeformations * surfaceDeformations() const
Return surface deformations, sorted by DetId.
Definition: Alignable.cc:214
AlignableMuon * theAlignableMuon
Alignments * cscAlignments()
AlignableTracker * theAlignableTracker
Alignments * alignments() const
Return alignments, sorted by DetId.
void AlignmentProducer::writeDB ( Alignments alignments,
const std::string &  alignRcd,
AlignmentErrors alignmentErrors,
const std::string &  errRcd,
const AlignTransform globalCoordinates,
cond::Time_t  time = cond::timeTypeSpecs[cond::runnumber].beginValue 
) const
private

Write alignment and/or errors to DB for record names (removes *globalCoordinates before writing if non-null...). Takes over ownership of alignments and alignmentErrrors.

Definition at line 760 of file AlignmentProducer.cc.

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

Referenced by endOfJob().

766 {
767  Alignments * tempAlignments = alignments;
768  AlignmentErrors * tempAlignmentErrors = alignmentErrors;
769 
770  // Call service
772  if (!poolDb.isAvailable()) { // Die if not available
773  delete tempAlignments; // promised to take over ownership...
774  delete tempAlignmentErrors; // dito
775  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
776  }
777 
778  if (globalCoordinates // happens only if (applyDbAlignment_ == true)
779  && globalCoordinates->transform() != AlignTransform::Transform::Identity) {
780 
781  tempAlignments = new Alignments(); // temporary storage for
782  tempAlignmentErrors = new AlignmentErrors(); // final alignments and errors
783 
784  GeometryAligner aligner;
785  aligner.removeGlobalTransform(alignments, alignmentErrors,
786  *globalCoordinates,
787  tempAlignments, tempAlignmentErrors);
788 
789  delete alignments; // have to delete original alignments
790  delete alignmentErrors; // same thing for the errors
791 
792  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::writeDB"
793  << "globalCoordinates removed from alignments (" << alignRcd
794  << ") and errors (" << alignRcd << ").";
795  }
796 
797  if (saveToDB_) {
798  edm::LogInfo("Alignment") << "Writing Alignments to " << alignRcd << ".";
799  poolDb->writeOne<Alignments>(tempAlignments, 0, time, alignRcd);
800  } else { // poolDb->writeOne(..) takes over 'alignments' ownership,...
801  delete tempAlignments; // ...otherwise we have to delete, as promised!
802  }
803 
804  if (saveApeToDB_) {
805  edm::LogInfo("Alignment") << "Writing AlignmentErrors to " << errRcd << ".";
806  poolDb->writeOne<AlignmentErrors>(tempAlignmentErrors, 0, time, errRcd);
807  } else { // poolDb->writeOne(..) takes over 'alignmentErrors' ownership,...
808  delete tempAlignmentErrors; // ...otherwise we have to delete, as promised!
809  }
810 }
Class to update a given geometry with a set of alignments.
void removeGlobalTransform(const Alignments *alignments, const AlignmentErrors *alignmentErrors, const AlignTransform &globalCoordinates, Alignments *newAlignments, AlignmentErrors *newAlignmentErrors)
bool isAvailable() const
Definition: Service.h:47
void writeOne(T *payload, Time_t time, const std::string &recordName, bool withlogging=false)
Transform transform() const
void AlignmentProducer::writeDB ( AlignmentSurfaceDeformations alignmentSurfaceDeformations,
const std::string &  surfaceDeformationRcd 
) const
private

Write surface deformations (bows & kinks) to DB for given record name Takes over ownership of alignmentsurfaceDeformations.

Definition at line 814 of file AlignmentProducer.cc.

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

816 {
817  // Call service
819  if (!poolDb.isAvailable()) { // Die if not available
820  delete alignmentSurfaceDeformations; // promised to take over ownership...
821  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
822  }
823 
824  if (saveDeformationsToDB_) {
825  edm::LogInfo("Alignment") << "Writing AlignmentSurfaceDeformations to "
826  << surfaceDeformationRcd << ".";
827  poolDb->writeOne<AlignmentSurfaceDeformations>(alignmentSurfaceDeformations, poolDb->beginOfTime(),
828  surfaceDeformationRcd);
829  } else { // poolDb->writeOne(..) takes over 'surfaceDeformation' ownership,...
830  delete alignmentSurfaceDeformations; // ...otherwise we have to delete, as promised!
831  }
832 }
bool isAvailable() const
Definition: Service.h:47
void writeOne(T *payload, Time_t time, const std::string &recordName, bool withlogging=false)
const bool saveDeformationsToDB_

Member Data Documentation

const bool AlignmentProducer::applyDbAlignment_
private

Definition at line 175 of file AlignmentProducer.h.

Referenced by beginOfJob().

const edm::InputTag AlignmentProducer::beamSpotTag_
private

Definition at line 182 of file AlignmentProducer.h.

Referenced by duringLoop().

const edm::InputTag AlignmentProducer::clusterValueMapTag_
private

Definition at line 184 of file AlignmentProducer.h.

Referenced by duringLoop().

const bool AlignmentProducer::doMisalignmentScenario_
private

Definition at line 175 of file AlignmentProducer.h.

Referenced by beginOfJob().

const bool AlignmentProducer::doMuon_
private
const bool AlignmentProducer::doTracker_
private
const Alignments* AlignmentProducer::globalPositions_
private

GlobalPositions that might be read from DB, NULL otherwise.

Definition at line 164 of file AlignmentProducer.h.

Referenced by beginOfJob(), endOfJob(), and ~AlignmentProducer().

int AlignmentProducer::nevent_
private

Definition at line 166 of file AlignmentProducer.h.

Referenced by duringLoop(), endOfJob(), endOfLoop(), and startingNewLoop().

const bool AlignmentProducer::saveApeToDB_
private

Definition at line 176 of file AlignmentProducer.h.

Referenced by endOfJob(), and writeDB().

const bool AlignmentProducer::saveDeformationsToDB_
private

Definition at line 176 of file AlignmentProducer.h.

Referenced by endOfJob(), and writeDB().

const bool AlignmentProducer::saveToDB_
private

Definition at line 176 of file AlignmentProducer.h.

Referenced by endOfJob(), and writeDB().

const int AlignmentProducer::stNFixAlignables_
private

Definition at line 173 of file AlignmentProducer.h.

Referenced by beginOfJob().

const double AlignmentProducer::stRandomRotation_
private

Definition at line 174 of file AlignmentProducer.h.

Referenced by beginOfJob().

const double AlignmentProducer::stRandomShift_
private

Definition at line 174 of file AlignmentProducer.h.

Referenced by beginOfJob().

AlignableExtras* AlignmentProducer::theAlignableExtras
private

Definition at line 156 of file AlignmentProducer.h.

Referenced by beginOfJob(), duringLoop(), endOfJob(), and ~AlignmentProducer().

AlignableMuon* AlignmentProducer::theAlignableMuon
private
AlignableTracker* AlignmentProducer::theAlignableTracker
private
AlignmentAlgorithmBase* AlignmentProducer::theAlignmentAlgo
private
AlignmentParameterStore* AlignmentProducer::theAlignmentParameterStore
private

Definition at line 154 of file AlignmentProducer.h.

Referenced by beginOfJob(), and ~AlignmentProducer().

const unsigned int AlignmentProducer::theMaxLoops
private

Definition at line 171 of file AlignmentProducer.h.

Referenced by endOfLoop().

std::vector<AlignmentMonitorBase*> AlignmentProducer::theMonitors
private
boost::shared_ptr<CSCGeometry> AlignmentProducer::theMuonCSC
private

Definition at line 162 of file AlignmentProducer.h.

Referenced by beginOfJob(), createGeometries_(), and produceCSC().

boost::shared_ptr<DTGeometry> AlignmentProducer::theMuonDT
private

Definition at line 161 of file AlignmentProducer.h.

Referenced by beginOfJob(), createGeometries_(), and produceDT().

edm::ParameterSet AlignmentProducer::theParameterSet
private

Definition at line 167 of file AlignmentProducer.h.

Referenced by beginOfJob(), and endOfJob().

const SurveyErrors* AlignmentProducer::theSurveyErrors
private

Definition at line 150 of file AlignmentProducer.h.

Referenced by addSurveyInfo_(), and readInSurveyRcds().

unsigned int AlignmentProducer::theSurveyIndex
private

Definition at line 148 of file AlignmentProducer.h.

Referenced by addSurveyInfo_(), and readInSurveyRcds().

const Alignments* AlignmentProducer::theSurveyValues
private

Definition at line 149 of file AlignmentProducer.h.

Referenced by addSurveyInfo_(), and readInSurveyRcds().

boost::shared_ptr<TrackerGeometry> AlignmentProducer::theTracker
private

Definition at line 160 of file AlignmentProducer.h.

Referenced by beginOfJob(), createGeometries_(), and produceTracker().

const edm::InputTag AlignmentProducer::tjTkAssociationMapTag_
private

Definition at line 181 of file AlignmentProducer.h.

Referenced by duringLoop().

const edm::InputTag AlignmentProducer::tkLasBeamTag_
private

Definition at line 183 of file AlignmentProducer.h.

Referenced by endRun().

const bool AlignmentProducer::useExtras_
private

Definition at line 177 of file AlignmentProducer.h.

Referenced by beginOfJob().

const bool AlignmentProducer::useSurvey_
private

Definition at line 178 of file AlignmentProducer.h.

Referenced by readInSurveyRcds().

edm::ESWatcher<CSCSurveyErrorRcd> AlignmentProducer::watchCSCSurveyErrRcd_
private

Definition at line 193 of file AlignmentProducer.h.

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

Definition at line 192 of file AlignmentProducer.h.

edm::ESWatcher<DTSurveyErrorRcd> AlignmentProducer::watchDTSurveyErrRcd_
private

Definition at line 191 of file AlignmentProducer.h.

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

Definition at line 190 of file AlignmentProducer.h.

edm::ESWatcher<TrackerSurveyErrorRcd> AlignmentProducer::watchTkSurveyErrRcd_
private

Definition at line 189 of file AlignmentProducer.h.

Referenced by readInSurveyRcds().

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

Definition at line 188 of file AlignmentProducer.h.

Referenced by readInSurveyRcds().