Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-01-04 23:06:20

0001 #ifndef OPTICALFUNCTION_TRANSPORT
0002 #define OPTICALFUNCTION_TRANSPORT
0003 #include "CondFormats/BeamSpotObjects/interface/BeamSpotObjects.h"
0004 #include "CondFormats/DataRecord/interface/BeamSpotObjectsRcd.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<BeamSpotObjects, BeamSpotObjectsRcd> beamspotToken_;
0033 
0034   const LHCInfo* lhcInfo_{nullptr};
0035   const CTPPSBeamParameters* beamParameters_{nullptr};
0036   const LHCInterpolatedOpticalFunctionsSetCollection* opticalFunctions_{nullptr};
0037   const BeamSpotObjects* 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