Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-07-30 22:15:24

0001 #ifndef IOMC_ParticleGun_CloseByParticleGunProducer_H
0002 #define IOMC_ParticleGun_CloseByParticleGunProducer_H
0003 
0004 #include "IOMC/ParticleGuns/interface/BaseFlatGunProducer.h"
0005 
0006 #include "MagneticField/Engine/interface/MagneticField.h"
0007 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0008 
0009 #include "FWCore/Framework/interface/ESHandle.h"
0010 #include "FWCore/Framework/interface/EventSetup.h"
0011 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0012 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0013 
0014 namespace edm {
0015 
0016   class CloseByParticleGunProducer : public BaseFlatGunProducer {
0017   public:
0018     CloseByParticleGunProducer(const ParameterSet&);
0019     ~CloseByParticleGunProducer() override;
0020 
0021     static void fillDescriptions(ConfigurationDescriptions& descriptions);
0022 
0023   private:
0024     void produce(Event& e, const EventSetup& es) override;
0025 
0026   protected:
0027     // data members
0028     bool fControlledByEta, fControlledByREta;
0029     double fVarMin, fVarMax, fEtaMin, fEtaMax, fRMin, fRMax, fZMin, fZMax, fDelta, fPhiMin, fPhiMax, fTMin, fTMax,
0030         fOffsetFirst;
0031     double log_fVarMin = 0., log_fVarMax = 0.;
0032     int fNParticles;
0033     bool fLogSpacedVar = false;
0034     bool fMaxVarSpread = false;
0035     bool fFlatPtGeneration = false;
0036     bool fPointing = false;
0037     bool fOverlapping = false;
0038     bool fRandomShoot = false;
0039     bool fUseDeltaT = false;
0040     std::vector<int> fPartIDs;
0041 
0042     const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> m_fieldToken;
0043   };
0044 }  // namespace edm
0045 
0046 #endif