CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/SimMuon/Neutron/interface/SubsystemNeutronReader.h

Go to the documentation of this file.
00001 #ifndef SimMuon_Neutron_SubsystemNeutronReader_h
00002 #define SimMuon_Neutron_SubsystemNeutronReader_h
00003 
00008 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
00009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00010 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
00011 #include "CLHEP/Random/RandomEngine.h"
00012 #include "CLHEP/Random/RandFlat.h"
00013 #include "CLHEP/Random/RandPoissonQ.h"
00014 #include<vector>
00015 class NeutronReader;
00016 
00017 class SubsystemNeutronReader 
00018 {
00019 public:  
00023   SubsystemNeutronReader(const edm::ParameterSet & pset);
00024   virtual ~SubsystemNeutronReader();
00025 
00026   void setRandomEngine(CLHEP::HepRandomEngine & engine);
00027 
00030   void generateChamberNoise(int chamberType, int chamberIndex, edm::PSimHitContainer & result);
00031 
00032   void clear() {theChambersDone.clear();}
00033 
00034 protected:
00037   virtual int detId(int chamberIndex, int localDetId ) = 0;
00038   
00039 
00040 private:
00041 
00042   NeutronReader * theHitReader;
00043 
00044   CLHEP::RandFlat * theRandFlat;
00045   CLHEP::RandPoissonQ * theRandPoisson;
00046 
00048   std::vector<int> theChambersDone;
00049 
00050  
00052   float theLuminosity;
00053   float theStartTime;
00054   float theEndTime;
00056   float theEventsInWindow;
00057 
00058   std::vector<double> theEventOccupancy; // Placed here so ctor init list order OK
00059 
00060 };
00061 
00062 #endif
00063