File indexing completed on 2023-10-25 10:04:55
0001 #ifndef SimMuon_IRPCDigitizer_h
0002 #define SimMuon_IRPCDigitizer_h
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "DataFormats/Common/interface/DetSetVector.h"
0012 #include "SimDataFormats/TrackerDigiSimLink/interface/StripDigiSimLink.h"
0013 #include "SimDataFormats/RPCDigiSimLink/interface/RPCDigiSimLink.h"
0014 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0015 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h"
0016 #include "Geometry/RPCGeometry/interface/RPCGeometry.h"
0017 #include "SimDataFormats/CrossingFrame/interface/MixCollection.h"
0018 #include <string>
0019 #include "CLHEP/Random/RandomEngine.h"
0020
0021 namespace edm {
0022 class ParameterSet;
0023 }
0024
0025 class RPCRoll;
0026 class RPCSim;
0027 class RPCSimSetUp;
0028
0029 namespace CLHEP {
0030 class HepRandomEngine;
0031 }
0032
0033 class IRPCDigitizer {
0034 public:
0035 typedef edm::DetSetVector<RPCDigiSimLink> RPCDigiSimLinks;
0036 IRPCDigitizer(const edm::ParameterSet& config);
0037 ~IRPCDigitizer();
0038
0039
0040 void doAction(MixCollection<PSimHit>& simHits,
0041 RPCDigiCollection& rpcDigis,
0042 RPCDigiSimLinks& rpcDigiSimLink,
0043 CLHEP::HepRandomEngine*);
0044
0045
0046 void setGeometry(const RPCGeometry* geom) { theGeometry = geom; }
0047
0048 void setRPCSimSetUp(RPCSimSetUp* simsetup) { theSimSetUp = simsetup; }
0049
0050 RPCSimSetUp* getRPCSimSetUp() { return theSimSetUp; }
0051
0052
0053 const RPCRoll* findDet(int detId) const;
0054
0055 private:
0056 const RPCGeometry* theGeometry;
0057 std::unique_ptr<RPCSim> theRPCSim;
0058 RPCSimSetUp* theSimSetUp;
0059 std::string theName;
0060 bool theNoise;
0061 };
0062
0063 #endif