File indexing completed on 2024-04-06 12:13:27
0001 #ifndef CosMuoGenProducer_h
0002 #define CosMuoGenProducer_h
0003
0004
0005
0006 #include "HepMC/GenEvent.h"
0007
0008 #include "FWCore/Framework/interface/one/EDProducer.h"
0009 #include "FWCore/Framework/interface/EventSetup.h"
0010 #include "FWCore/Framework/interface/Event.h"
0011 #include "FWCore/Framework/interface/LuminosityBlock.h"
0012 #include "FWCore/Framework/interface/Run.h"
0013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0014 #include "FWCore/Utilities/interface/Exception.h"
0015
0016 #include "GeneratorInterface/CosmicMuonGenerator/interface/CosmicMuonGenerator.h"
0017
0018 #include <memory>
0019
0020 namespace edm {
0021 class CosMuoGenProducer : public one::EDProducer<EndRunProducer, one::WatchLuminosityBlocks> {
0022 public:
0023 CosMuoGenProducer(const ParameterSet&);
0024 ~CosMuoGenProducer() override;
0025
0026 private:
0027 void beginLuminosityBlock(LuminosityBlock const&, EventSetup const&) override;
0028 void endLuminosityBlock(LuminosityBlock const&, EventSetup const&) override {}
0029
0030 void produce(Event& e, const EventSetup& es) override;
0031
0032 void endRunProduce(Run& r, const EventSetup& es) override;
0033
0034 void clear();
0035
0036 int32_t RanS;
0037 double MinP;
0038 double MinP_CMS;
0039 double MaxP;
0040 double MinT;
0041 double MaxT;
0042 double MinPh;
0043 double MaxPh;
0044 double MinS;
0045 double MaxS;
0046 double ELSF;
0047 double RTarget;
0048 double ZTarget;
0049 double
0050 ZCTarget;
0051 bool TrackerOnly;
0052 bool MultiMuon;
0053 std::string MultiMuonFileName;
0054 int32_t MultiMuonFileFirstEvent;
0055 int32_t MultiMuonNmin;
0056 bool TIFOnly_constant;
0057 bool TIFOnly_linear;
0058 bool MTCCHalf;
0059
0060
0061
0062 double PlugVtx;
0063 double PlugVtz;
0064
0065
0066 double VarRhoAir;
0067 double VarRhoWall;
0068 double VarRhoRock;
0069 double VarRhoClay;
0070 double VarRhoPlug;
0071 double ClayLayerWidth;
0072
0073
0074 double MinEn;
0075 double MaxEn;
0076 double NuPrdAlt;
0077
0078 bool AllMu;
0079
0080
0081 double extCrossSect;
0082 double extFilterEff;
0083
0084 std::unique_ptr<CosmicMuonGenerator> CosMuoGen;
0085
0086 bool cmVerbosity_;
0087
0088 bool isInitialized_;
0089 };
0090 }
0091
0092 #endif