File indexing completed on 2024-04-06 12:31:08
0001 #ifndef OPTICALFUNCTION_TRANSPORT
0002 #define OPTICALFUNCTION_TRANSPORT
0003 #include "CondFormats/BeamSpotObjects/interface/SimBeamSpotObjects.h"
0004 #include "CondFormats/DataRecord/interface/SimBeamSpotObjectsRcd.h"
0005 #include "CondFormats/DataRecord/interface/CTPPSBeamParametersRcd.h"
0006 #include "CondFormats/PPSObjects/interface/CTPPSBeamParameters.h"
0007 #include "CondFormats/DataRecord/interface/CTPPSInterpolatedOpticsRcd.h"
0008 #include "CondFormats/PPSObjects/interface/LHCInterpolatedOpticalFunctionsSetCollection.h"
0009 #include "CondFormats/DataRecord/interface/LHCInfoRcd.h"
0010 #include "CondFormats/RunInfo/interface/LHCInfo.h"
0011 #include "FWCore/Framework/interface/ConsumesCollector.h"
0012 #include "FWCore/Framework/interface/Event.h"
0013 #include "FWCore/Framework/interface/EventSetup.h"
0014 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0015 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0016 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
0017 #include "SimTransport/PPSProtonTransport/interface/BaseProtonTransport.h"
0018
0019 class OpticalFunctionsTransport : public BaseProtonTransport {
0020 public:
0021 OpticalFunctionsTransport(const edm::ParameterSet& ps, edm::ConsumesCollector iC);
0022 ~OpticalFunctionsTransport() override;
0023
0024 void process(const HepMC::GenEvent* ev, const edm::EventSetup& es, CLHEP::HepRandomEngine* engine) override;
0025
0026 private:
0027 bool transportProton(const HepMC::GenParticle*);
0028
0029 edm::ESGetToken<LHCInfo, LHCInfoRcd> lhcInfoToken_;
0030 edm::ESGetToken<CTPPSBeamParameters, CTPPSBeamParametersRcd> beamParametersToken_;
0031 edm::ESGetToken<LHCInterpolatedOpticalFunctionsSetCollection, CTPPSInterpolatedOpticsRcd> opticsToken_;
0032 edm::ESGetToken<SimBeamSpotObjects, SimBeamSpotObjectsRcd> beamspotToken_;
0033
0034 const LHCInfo* lhcInfo_{nullptr};
0035 const CTPPSBeamParameters* beamParameters_{nullptr};
0036 const LHCInterpolatedOpticalFunctionsSetCollection* opticalFunctions_{nullptr};
0037 const SimBeamSpotObjects* beamspot_{nullptr};
0038
0039 unsigned int optFunctionId45_{0};
0040 unsigned int optFunctionId56_{0};
0041
0042 bool useEmpiricalApertures_;
0043 double empiricalAperture45_xi0_int_, empiricalAperture45_xi0_slp_, empiricalAperture45_a_int_,
0044 empiricalAperture45_a_slp_;
0045 double empiricalAperture56_xi0_int_, empiricalAperture56_xi0_slp_, empiricalAperture56_a_int_,
0046 empiricalAperture56_a_slp_;
0047 };
0048 #endif