Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:19:02

0001 #ifndef FlatRandomPtAndDxyGunProducer_H
0002 #define FlatRandomPtAndDxyGunProducer_H
0003 
0004 /** \class FlatRandomPtAndDxyGunProducer
0005  *
0006  * Generates single particle gun in HepMC format
0007  * The d0 is taken by convention equal to dxy
0008  * v1: first version of displaced Muon Gun
0009  * flat in dxy(0, 50), flat in lz(-50, 50)
0010  * v2: bugfixed, unit in HepMC is mm, rather than cm
0011  * v3: check pz*vz>0, make sure muon is not flying 
0012  * back to beamspot, Lz is generated by Gauss distribution
0013  * v4: dxy is produced with sign, (-500, 500) [mm]
0014  * v5: check vx*px+vy*py>0, and muons inside beamline-symmetric 
0015  * cone is vetoed by lxy^2/c^2<=(vz-d) ^2 && vz-d>0
0016 
0017  * Contact Sven Dildick, Tao Huang
0018  ***************************************/
0019 
0020 #include "IOMC/ParticleGuns/interface/BaseFlatGunProducer.h"
0021 
0022 namespace edm {
0023 
0024   class FlatRandomPtAndDxyGunProducer : public BaseFlatGunProducer {
0025   public:
0026     FlatRandomPtAndDxyGunProducer(const ParameterSet& pset);
0027     ~FlatRandomPtAndDxyGunProducer() override;
0028 
0029     void produce(Event& e, const EventSetup& es) override;
0030 
0031   private:
0032     // data members
0033 
0034     double fMinPt;
0035     double fMaxPt;
0036     double dxyMin_;
0037     double dxyMax_;
0038     double lxyMax_;
0039     double lzMax_;
0040     double ConeRadius_;
0041     double ConeH_;
0042     double DistanceToAPEX_;
0043   };
0044 }  // namespace edm
0045 
0046 #endif