File indexing completed on 2024-04-06 11:59:26
0001 #ifndef AlcaBeamSpotManager_H
0002 #define AlcaBeamSpotManager_H
0003
0004
0005
0006
0007
0008
0009
0010 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0011 #include "FWCore/Framework/interface/ConsumesCollector.h"
0012 #include "FWCore/Framework/interface/LuminosityBlock.h"
0013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0014 #include <map>
0015 #include <string>
0016 #include <utility>
0017
0018 class AlcaBeamSpotManager {
0019 public:
0020 AlcaBeamSpotManager(void);
0021 AlcaBeamSpotManager(const edm::ParameterSet &, edm::ConsumesCollector &&);
0022 virtual ~AlcaBeamSpotManager(void);
0023
0024 void reset(void);
0025 void readLumi(const edm::LuminosityBlock &);
0026 void createWeightedPayloads(void);
0027 const std::map<edm::LuminosityBlockNumber_t, std::pair<edm::Timestamp, reco::BeamSpot>> &getPayloads(void) {
0028 return beamSpotMap_;
0029 }
0030
0031 typedef std::map<edm::LuminosityBlockNumber_t, std::pair<edm::Timestamp, reco::BeamSpot>>::iterator bsMap_iterator;
0032
0033 private:
0034 reco::BeamSpot weight(const bsMap_iterator &begin, const bsMap_iterator &end);
0035 void weight(double &mean, double &meanError, const double &val, const double &valError);
0036 std::pair<float, float> delta(const float &x, const float &xError, const float &nextX, const float &nextXError);
0037 float deltaSig(const float &num, const float &den);
0038 std::map<edm::LuminosityBlockNumber_t, std::pair<edm::Timestamp, reco::BeamSpot>> beamSpotMap_;
0039
0040 std::string beamSpotOutputBase_;
0041 std::string beamSpotModuleName_;
0042 std::string beamSpotLabel_;
0043 double sigmaZCut_;
0044 edm::InputTag beamSpotTag_;
0045 edm::EDGetTokenT<reco::BeamSpot> beamSpotToken_;
0046 };
0047
0048 #endif