Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:43

0001 #ifndef MU_END_WIRE_HIT_SIM_H
0002 #define MU_END_WIRE_HIT_SIM_H
0003 
0004 /** \class CSCWireHitSim
0005  * Class used to simulate hit on wire in Endcap Muon CSC. <BR>
0006  * \author Rick Wilkinson
0007  * \author Tim Cox
0008  */
0009 
0010 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0013 #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
0014 #include "SimMuon/CSCDigitizer/src/CSCDetectorHit.h"
0015 #include <vector>
0016 
0017 class CSCDriftSim;
0018 class CSCLayer;
0019 class CSCG3Hit;
0020 class CSCGasCollisions;
0021 class CSCLayerGeometry;
0022 
0023 namespace CLHEP {
0024   class HepRandomEngine;
0025 }
0026 
0027 class CSCWireHitSim {
0028 public:
0029   explicit CSCWireHitSim(CSCDriftSim *driftSim, const edm::ParameterSet &p);
0030   ~CSCWireHitSim();
0031 
0032   // makes wire hits from the given g3hits
0033   std::vector<CSCDetectorHit> &simulate(const CSCLayer *layer,
0034                                         const edm::PSimHitContainer &simHits,
0035                                         CLHEP::HepRandomEngine *);
0036 
0037   void setParticleDataTable(const ParticleDataTable *pdt);
0038 
0039 private:
0040   // Helper functions
0041   std::vector<Local3DPoint> getIonizationClusters(const PSimHit &hit, const CSCLayer *, CLHEP::HepRandomEngine *);
0042   CSCDetectorHit driftElectronsToWire();
0043 
0044   // member data
0045   CSCDriftSim *theDriftSim;
0046   CSCGasCollisions *theGasIonizer;
0047   std::vector<CSCDetectorHit> theNewWireHits;
0048 };
0049 
0050 #endif