CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
AlignmentProducer Class Reference

#include <AlignmentProducer.h>

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

Public Member Functions

 AlignmentProducer (const edm::ParameterSet &)
 Constructor. More...
 
virtual void beginLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &) override
 Called at lumi block start, calling algorithm's beginLuminosityBlock. More...
 
virtual void beginOfJob (const edm::EventSetup &) override
 Called at beginning of job. More...
 
virtual void beginRun (const edm::Run &, const edm::EventSetup &) override
 Called at run start and calling algorithms beginRun. More...
 
virtual Status duringLoop (const edm::Event &, const edm::EventSetup &) override
 Called at each event. More...
 
virtual void endLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &) override
 Called at lumi block end, calling algorithm's endLuminosityBlock. More...
 
virtual void endOfJob () override
 Called at end of job. More...
 
virtual Status endOfLoop (const edm::EventSetup &, unsigned int iLoop) override
 Called at end of loop. More...
 
virtual void endRun (const edm::Run &, const edm::EventSetup &) override
 Called at run end - currently reading TkFittedLasBeam if an InpuTag is given for that. More...
 
virtual std::shared_ptr< CSCGeometryproduceCSC (const MuonGeometryRecord &)
 Produce the muon CSC geometry. More...
 
virtual std::shared_ptr< DTGeometryproduceDT (const MuonGeometryRecord &)
 Produce the muon DT geometry. More...
 
virtual std::shared_ptr< TrackerGeometryproduceTracker (const TrackerDigiGeometryRecord &)
 Produce the tracker geometry. More...
 
virtual void startingNewLoop (unsigned int iLoop) override
 Called at beginning of loop. More...
 
 ~AlignmentProducer ()=default
 Destructor. More...
 
- Public Member Functions inherited from edm::ESProducerLooper
 ESProducerLooper ()
 
virtual std::set< eventsetup::EventSetupRecordKeymodifyingRecords () const
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
virtual ~ESProducer ()(false)
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
virtual void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval)
 overrides DataProxyProvider method More...
 
virtual ~ESProxyFactoryProducer () noexcept(false)
 
- 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 () noexcept(false)
 
- Public Member Functions inherited from edm::EventSetupRecordIntervalFinder
const eventsetup::ComponentDescriptiondescriptionForFinder () const
 
 EventSetupRecordIntervalFinder ()
 
std::set< eventsetup::EventSetupRecordKeyfindingForRecords () const
 
const ValidityIntervalfindIntervalFor (const eventsetup::EventSetupRecordKey &, const IOVSyncValue &)
 
void setDescriptionForFinder (const eventsetup::ComponentDescription &iDescription)
 
virtual ~EventSetupRecordIntervalFinder () noexcept(false)
 
- Public Member Functions inherited from edm::EDLooper
 EDLooper ()
 
 EDLooper (EDLooper const &)=delete
 
EDLooperoperator= (EDLooper const &)=delete
 
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 (EventSetup const &)
 
virtual void beginOfJob ()
 
void copyInfo (ScheduleInfo const &)
 
void doBeginLuminosityBlock (LuminosityBlockPrincipal &, EventSetup const &, ProcessContext *)
 
void doBeginRun (RunPrincipal &, EventSetup const &, ProcessContext *)
 
Status doDuringLoop (EventPrincipal &eventPrincipal, EventSetup const &es, ProcessingController &, StreamContext *)
 
void doEndLuminosityBlock (LuminosityBlockPrincipal &, EventSetup const &, ProcessContext *)
 
Status doEndOfLoop (EventSetup const &es)
 
void doEndRun (RunPrincipal &, EventSetup const &, ProcessContext *)
 
void doStartingNewLoop ()
 
 EDLooperBase ()
 
 EDLooperBase (EDLooperBase const &)=delete
 
EDLooperBaseoperator= (EDLooperBase const &)=delete
 
void prepareForNextLoop (eventsetup::EventSetupProvider *esp)
 
void setActionTable (ExceptionToActionTable const *actionTable)
 
void setModuleChanger (ModuleChanger *)
 
virtual ~EDLooperBase () noexcept(false)
 

Private Member Functions

virtual bool getAliClusterValueMap (const edm::Event &, edm::Handle< AliClusterValueMap > &) override
 
virtual bool getBeamSpot (const edm::Event &, edm::Handle< reco::BeamSpot > &) override
 
virtual bool getTkFittedLasBeamCollection (const edm::Run &, edm::Handle< TkFittedLasBeamCollection > &) override
 
virtual bool getTrajTrackAssociationCollection (const edm::Event &, edm::Handle< TrajTrackAssociationCollection > &) override
 
virtual bool getTsosVectorCollection (const edm::Run &, edm::Handle< TsosVectorCollection > &) override
 

Private Attributes

const unsigned int maxLoops_
 

Additional Inherited Members

- Public Types inherited from edm::eventsetup::DataProxyProvider
typedef std::vector< std::pair< DataKey, edm::propagate_const< std::shared_ptr< DataProxy > > > > KeyedProxies
 
typedef std::vector< EventSetupRecordKeyKeys
 
typedef std::map< EventSetupRecordKey, KeyedProxiesRecordProxies
 
- Public Types inherited from edm::EDLooperBase
enum  Status { kContinue, kStop }
 
- Static Public Member Functions inherited from edm::eventsetup::DataProxyProvider
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from AlignmentProducerBase
 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 ()
 
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 *=0)
 Terminate processing of events. More...
 
virtual ~AlignmentProducerBase ()(false)
 
- Protected Member Functions inherited from edm::ESProducerLooper
virtual void registerFactoryWithKey (const eventsetup::EventSetupRecordKey &iRecord, std::unique_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::unique_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
ModuleChangermoduleChanger ()
 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...
 
- Protected Attributes inherited from AlignmentProducerBase
const edm::InputTag beamSpotTag_
 BeamSpot. More...
 
const edm::InputTag clusterValueMapTag_
 ValueMap containing associtaion cluster-flag. More...
 
const bool doMuon_
 
const bool doTracker_
 
std::shared_ptr< CSCGeometrymuonCSCGeometry_
 
std::shared_ptr< DTGeometrymuonDTGeometry_
 
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_
 

Detailed Description

Package : Alignment/CommonAlignmentProducer Description : calls alignment algorithms

Author
: Frederic Ronga

Definition at line 17 of file AlignmentProducer.h.

Constructor & Destructor Documentation

AlignmentProducer::AlignmentProducer ( const edm::ParameterSet config)

Constructor.

Definition at line 15 of file AlignmentProducer.cc.

References AlignmentProducerBase::doMuon_, AlignmentProducerBase::doTracker_, maxLoops_, produceCSC(), produceDT(), produceTracker(), and edm::ESProducer::setWhatProduced().

15  :
16  AlignmentProducerBase{config},
17  maxLoops_{config.getUntrackedParameter<unsigned int>("maxLoops")}
18 {
19  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::AlignmentProducer";
20 
21  // Tell the framework what data is being produced
22  if (doTracker_) {
24  }
25  if (doMuon_) {
28  }
29 }
T getUntrackedParameter(std::string const &, T const &) const
const unsigned int maxLoops_
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
virtual std::shared_ptr< TrackerGeometry > produceTracker(const TrackerDigiGeometryRecord &)
Produce the tracker geometry.
virtual std::shared_ptr< DTGeometry > produceDT(const MuonGeometryRecord &)
Produce the muon DT geometry.
virtual std::shared_ptr< CSCGeometry > produceCSC(const MuonGeometryRecord &)
Produce the muon CSC geometry.
AlignmentProducer::~AlignmentProducer ( )
default

Destructor.

Member Function Documentation

void AlignmentProducer::beginLuminosityBlock ( const edm::LuminosityBlock lumiBlock,
const edm::EventSetup setup 
)
overridevirtual

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

Definition at line 142 of file AlignmentProducer.cc.

References AlignmentProducerBase::beginLuminosityBlockImpl().

144 {
145  beginLuminosityBlockImpl(lumiBlock, setup);
146 }
void beginLuminosityBlockImpl(const edm::LuminosityBlock &, const edm::EventSetup &)
begin lumi block
void AlignmentProducer::beginOfJob ( const edm::EventSetup iSetup)
overridevirtual

Called at beginning of job.

Definition at line 60 of file AlignmentProducer.cc.

References AlignmentProducerBase::initAlignmentAlgorithm().

61 {
62  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::beginOfJob";
63  initAlignmentAlgorithm(iSetup);
64 }
void initAlignmentAlgorithm(const edm::EventSetup &, bool update=false)
void AlignmentProducer::beginRun ( const edm::Run run,
const edm::EventSetup setup 
)
overridevirtual

Called at run start and calling algorithms beginRun.

Definition at line 128 of file AlignmentProducer.cc.

References AlignmentProducerBase::beginRunImpl().

129 {
130  beginRunImpl(run, setup);
131 }
void beginRunImpl(const edm::Run &, const edm::EventSetup &)
begin run
edm::EDLooper::Status AlignmentProducer::duringLoop ( const edm::Event event,
const edm::EventSetup setup 
)
overridevirtual

Called at each event.

Implements edm::EDLooper.

Definition at line 119 of file AlignmentProducer.cc.

References edm::EDLooperBase::kContinue, edm::EDLooperBase::kStop, and AlignmentProducerBase::processEvent().

121 {
122  if (processEvent(event, setup)) return kContinue;
123  else return kStop;
124 }
bool processEvent(const edm::Event &, const edm::EventSetup &)
Process event.
void AlignmentProducer::endLuminosityBlock ( const edm::LuminosityBlock lumiBlock,
const edm::EventSetup setup 
)
overridevirtual

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

Definition at line 150 of file AlignmentProducer.cc.

References DEFINE_FWK_LOOPER, and AlignmentProducerBase::endLuminosityBlockImpl().

152 {
153  endLuminosityBlockImpl(lumiBlock, setup);
154 }
void endLuminosityBlockImpl(const edm::LuminosityBlock &, const edm::EventSetup &)
end lumi block
void AlignmentProducer::endOfJob ( )
overridevirtual

Called at end of job.

Reimplemented from edm::EDLooperBase.

Definition at line 68 of file AlignmentProducer.cc.

References AlignmentProducerBase::finish().

69 {
70  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::endOfJob";
71 
72  if (!finish()) {
73  edm::LogError("Alignment")
74  << "@SUB=AlignmentProducer::endOfJob"
75  << "Did not process any events in last loop, do not dare to store to DB.";
76  }
77 }
edm::EDLooper::Status AlignmentProducer::endOfLoop ( const edm::EventSetup iSetup,
unsigned int  iLoop 
)
overridevirtual

Called at end of loop.

Definition at line 91 of file AlignmentProducer.cc.

References edm::EDLooperBase::kContinue, edm::EDLooperBase::kStop, maxLoops_, AlignmentProducerBase::nEvent(), and AlignmentProducerBase::terminateProcessing().

92 {
93 
94  if (0 == nEvent()) {
95  // beginOfJob is usually called by the framework in the first event of the first loop
96  // (a hack: beginOfJob needs the EventSetup that is not well defined without an event)
97  // and the algorithms rely on the initialisations done in beginOfJob. We cannot call
98  // this->beginOfJob(iSetup); here either since that will access the EventSetup to get
99  // some geometry information that is not defined either without having seen an event.
100  edm::LogError("Alignment")
101  << "@SUB=AlignmentProducer::endOfLoop"
102  << "Did not process any events in loop " << iLoop
103  << ", stop processing without terminating algorithm.";
104  return kStop;
105  }
106 
107  edm::LogInfo("Alignment")
108  << "@SUB=AlignmentProducer::endOfLoop"
109  << "Ending loop " << iLoop << ", terminating algorithm.";
110  terminateProcessing(&iSetup);
111 
112  if ( iLoop == maxLoops_-1 || iLoop >= maxLoops_ ) return kStop;
113  else return kContinue;
114 }
void terminateProcessing(const edm::EventSetup *=0)
Terminate processing of events.
const unsigned int maxLoops_
void AlignmentProducer::endRun ( const edm::Run run,
const edm::EventSetup setup 
)
overridevirtual

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

Definition at line 135 of file AlignmentProducer.cc.

References AlignmentProducerBase::endRunImpl().

136 {
137  endRunImpl(run, setup);
138 }
void endRunImpl(const edm::Run &, const edm::EventSetup &)
end run
bool AlignmentProducer::getAliClusterValueMap ( const edm::Event event,
edm::Handle< AliClusterValueMap > &  result 
)
inlineoverrideprivatevirtual

Implements AlignmentProducerBase.

Definition at line 121 of file AlignmentProducer.h.

References AlignmentProducerBase::clusterValueMapTag_.

122  {
123  return event.getByLabel(clusterValueMapTag_, result);
124 }
const edm::InputTag clusterValueMapTag_
ValueMap containing associtaion cluster-flag.
bool AlignmentProducer::getBeamSpot ( const edm::Event event,
edm::Handle< reco::BeamSpot > &  result 
)
inlineoverrideprivatevirtual

Implements AlignmentProducerBase.

Definition at line 94 of file AlignmentProducer.h.

References AlignmentProducerBase::beamSpotTag_.

95  {
96  return event.getByLabel(beamSpotTag_, result);
97 }
const edm::InputTag beamSpotTag_
BeamSpot.
bool AlignmentProducer::getTkFittedLasBeamCollection ( const edm::Run run,
edm::Handle< TkFittedLasBeamCollection > &  result 
)
inlineoverrideprivatevirtual

Implements AlignmentProducerBase.

Definition at line 103 of file AlignmentProducer.h.

References edm::Run::getByLabel(), and AlignmentProducerBase::tkLasBeamTag_.

104  {
105  return run.getByLabel(tkLasBeamTag_, result);
106 }
bool getByLabel(std::string const &label, Handle< PROD > &result) const
Definition: Run.h:201
const edm::InputTag tkLasBeamTag_
LAS beams in edm::Run (ignore if empty)
bool AlignmentProducer::getTrajTrackAssociationCollection ( const edm::Event event,
edm::Handle< TrajTrackAssociationCollection > &  result 
)
inlineoverrideprivatevirtual

Implements AlignmentProducerBase.

Definition at line 85 of file AlignmentProducer.h.

References AlignmentProducerBase::tjTkAssociationMapTag_.

86  {
87  return event.getByLabel(tjTkAssociationMapTag_, result);
88 }
const edm::InputTag tjTkAssociationMapTag_
Map with tracks/trajectories.
bool AlignmentProducer::getTsosVectorCollection ( const edm::Run run,
edm::Handle< TsosVectorCollection > &  result 
)
inlineoverrideprivatevirtual

Implements AlignmentProducerBase.

Definition at line 112 of file AlignmentProducer.h.

References edm::Run::getByLabel(), and AlignmentProducerBase::tkLasBeamTag_.

113  {
114  return run.getByLabel(tkLasBeamTag_, result);
115 }
bool getByLabel(std::string const &label, Handle< PROD > &result) const
Definition: Run.h:201
const edm::InputTag tkLasBeamTag_
LAS beams in edm::Run (ignore if empty)
std::shared_ptr< CSCGeometry > AlignmentProducer::produceCSC ( const MuonGeometryRecord )
virtual

Produce the muon CSC geometry.

Definition at line 52 of file AlignmentProducer.cc.

References AlignmentProducerBase::muonCSCGeometry_.

Referenced by AlignmentProducer().

53 {
54  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::produceCSC";
55  return muonCSCGeometry_;
56 }
std::shared_ptr< CSCGeometry > muonCSCGeometry_
std::shared_ptr< DTGeometry > AlignmentProducer::produceDT ( const MuonGeometryRecord )
virtual

Produce the muon DT geometry.

Definition at line 43 of file AlignmentProducer.cc.

References AlignmentProducerBase::muonDTGeometry_.

Referenced by AlignmentProducer().

44 {
45  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::produceDT";
46  return muonDTGeometry_;
47 }
std::shared_ptr< DTGeometry > muonDTGeometry_
std::shared_ptr< TrackerGeometry > AlignmentProducer::produceTracker ( const TrackerDigiGeometryRecord )
virtual

Produce the tracker geometry.

Definition at line 34 of file AlignmentProducer.cc.

References AlignmentProducerBase::trackerGeometry_.

Referenced by AlignmentProducer().

35 {
36  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::produceTracker";
37  return trackerGeometry_;
38 }
std::shared_ptr< TrackerGeometry > trackerGeometry_
void AlignmentProducer::startingNewLoop ( unsigned int  iLoop)
overridevirtual

Called at beginning of loop.

Implements edm::EDLooperBase.

Definition at line 81 of file AlignmentProducer.cc.

References AlignmentProducerBase::startProcessing().

82 {
83  edm::LogInfo("Alignment") << "@SUB=AlignmentProducer::startingNewLoop"
84  << "Starting loop number " << iLoop;
86 }
void startProcessing()
Start processing of events.

Member Data Documentation

const unsigned int AlignmentProducer::maxLoops_
private

Definition at line 77 of file AlignmentProducer.h.

Referenced by AlignmentProducer(), and endOfLoop().