File indexing completed on 2024-04-06 11:56:14
0001 #ifndef Alignment_CommonAlignmentAlgorithm_TrackerAlignmentProducer_h
0002 #define Alignment_CommonAlignmentAlgorithm_TrackerAlignmentProducer_h
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "Alignment/CommonAlignmentProducer/interface/AlignmentProducerBase.h"
0012 #include "FWCore/Framework/interface/ESProducerLooper.h"
0013 #include "FWCore/Framework/interface/Run.h"
0014
0015 class AlignmentProducer : public edm::ESProducerLooper, public AlignmentProducerBase {
0016 public:
0017
0018 AlignmentProducer(const edm::ParameterSet&);
0019
0020
0021 ~AlignmentProducer() override = default;
0022
0023
0024 virtual std::shared_ptr<TrackerGeometry> produceTracker(const TrackerDigiGeometryRecord&);
0025
0026
0027 void beginOfJob(const edm::EventSetup&) override;
0028
0029
0030 void endOfJob() override;
0031
0032
0033 void startingNewLoop(unsigned int iLoop) override;
0034
0035
0036 Status endOfLoop(const edm::EventSetup&, unsigned int iLoop) override;
0037
0038
0039 void beginRun(const edm::Run&, const edm::EventSetup&) override;
0040
0041
0042 void endRun(const edm::Run&, const edm::EventSetup&) override;
0043
0044
0045 void beginLuminosityBlock(const edm::LuminosityBlock&, const edm::EventSetup&) override;
0046
0047
0048 void endLuminosityBlock(const edm::LuminosityBlock&, const edm::EventSetup&) override;
0049
0050
0051 Status duringLoop(const edm::Event&, const edm::EventSetup&) override;
0052
0053 private:
0054 bool getTrajTrackAssociationCollection(const edm::Event&, edm::Handle<TrajTrackAssociationCollection>&) override;
0055 bool getBeamSpot(const edm::Event&, edm::Handle<reco::BeamSpot>&) override;
0056 bool getTkFittedLasBeamCollection(const edm::Run&, edm::Handle<TkFittedLasBeamCollection>&) override;
0057 bool getTsosVectorCollection(const edm::Run&, edm::Handle<TsosVectorCollection>&) override;
0058 bool getAliClusterValueMap(const edm::Event&, edm::Handle<AliClusterValueMap>&) override;
0059
0060 const unsigned int maxLoops_;
0061
0062 edm::EDGetTokenT<TrajTrackAssociationCollection> trajTrackAssociationCollectionToken_;
0063 edm::EDGetTokenT<reco::BeamSpot> bsToken_;
0064 edm::EDGetTokenT<TkFittedLasBeamCollection> tkFittedLasBeamCollectionToken_;
0065 edm::EDGetTokenT<TsosVectorCollection> tsosVectorCollectionToken_;
0066 edm::EDGetTokenT<AliClusterValueMap> aliClusterValueMapToken_;
0067 };
0068
0069
0070 inline bool AlignmentProducer::getTrajTrackAssociationCollection(const edm::Event& event,
0071 edm::Handle<TrajTrackAssociationCollection>& result) {
0072 return event.getByToken(trajTrackAssociationCollectionToken_, result);
0073 }
0074
0075
0076 inline bool AlignmentProducer::getBeamSpot(const edm::Event& event, edm::Handle<reco::BeamSpot>& result) {
0077 return event.getByToken(bsToken_, result);
0078 }
0079
0080
0081 inline bool AlignmentProducer::getTkFittedLasBeamCollection(const edm::Run& run,
0082 edm::Handle<TkFittedLasBeamCollection>& result) {
0083 return run.getByToken(tkFittedLasBeamCollectionToken_, result);
0084 }
0085
0086
0087 inline bool AlignmentProducer::getTsosVectorCollection(const edm::Run& run, edm::Handle<TsosVectorCollection>& result) {
0088 return run.getByToken(tsosVectorCollectionToken_, result);
0089 }
0090
0091
0092 inline bool AlignmentProducer::getAliClusterValueMap(const edm::Event& event, edm::Handle<AliClusterValueMap>& result) {
0093 return event.getByToken(aliClusterValueMapToken_, result);
0094 }
0095
0096 #endif