File indexing completed on 2023-03-17 11:10:12
0001 #ifndef IOMC_BaseEvtVtxGenerator_H
0002 #define IOMC_BaseEvtVtxGenerator_H
0003
0004
0005
0006 #include "FWCore/Framework/interface/stream/EDProducer.h"
0007 #include "FWCore/Utilities/interface/EDGetToken.h"
0008
0009 #include "TMatrixD.h"
0010
0011 namespace HepMC {
0012 class FourVector;
0013 }
0014
0015 namespace CLHEP {
0016 class HepRandomEngine;
0017 }
0018
0019 namespace edm {
0020 class HepMCProduct;
0021 }
0022
0023 class BaseEvtVtxGenerator : public edm::stream::EDProducer<> {
0024 public:
0025
0026 explicit BaseEvtVtxGenerator(const edm::ParameterSet&);
0027 ~BaseEvtVtxGenerator() override;
0028
0029 void produce(edm::Event&, const edm::EventSetup&) override;
0030
0031 virtual HepMC::FourVector newVertex(CLHEP::HepRandomEngine*) const = 0;
0032
0033
0034
0035
0036
0037
0038 virtual TMatrixD const* GetInvLorentzBoost() const = 0;
0039
0040 private:
0041 edm::EDGetTokenT<edm::HepMCProduct> sourceToken;
0042 };
0043
0044 #endif