Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef RPCSimSetUp_h
0002 #define RPCSimSetUp_h
0003 
0004 #include "FWCore/Framework/interface/Event.h"
0005 #include "FWCore/Framework/interface/EventSetup.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0008 #include "CondFormats/RPCObjects/interface/RPCStripNoises.h"
0009 #include "CondFormats/DataRecord/interface/RPCStripNoisesRcd.h"
0010 #include "CondFormats/RPCObjects/interface/RPCClusterSize.h"
0011 #include "CondFormats/DataRecord/interface/RPCClusterSizeRcd.h"
0012 
0013 #include <map>
0014 #include <vector>
0015 #include <fstream>
0016 #include <sstream>
0017 #include <iostream>
0018 #include <cstring>
0019 #include <string>
0020 #include <cstdlib>
0021 #include <utility>
0022 
0023 class RPCDigitizer;
0024 class RPCGeometry;
0025 class RPCDetId;
0026 
0027 class RPCSimSetUp {
0028 public:
0029   explicit RPCSimSetUp(const edm::ParameterSet& ps);
0030   virtual ~RPCSimSetUp();
0031 
0032   void setRPCSetUp(const std::vector<RPCStripNoises::NoiseItem>& vnoise, const std::vector<float>& vcls);
0033 
0034   void setRPCSetUp(const std::vector<RPCStripNoises::NoiseItem>& vnoise,
0035                    const std::vector<RPCClusterSize::ClusterSizeItem>& vClusterSize);
0036 
0037   const std::vector<float>& getNoise(uint32_t id);
0038   const std::vector<float>& getEff(uint32_t id);
0039   float getTime(uint32_t id);
0040   const std::map<int, std::vector<double> >& getClsMap();
0041   //  const std::map<int, std::vector<double> >& getClsMap(uint32_t id);
0042   const std::vector<double>& getCls(uint32_t id);
0043   const std::vector<double>& getAsymmetricClsDistribution(uint32_t id, uint32_t slice);
0044   const std::vector<double>& getAsymmetryForCls(uint32_t id, uint32_t slice, uint32_t cls);
0045   /// sets geometry
0046   void setGeometry(const RPCGeometry* geom) { theGeometry = geom; }
0047 
0048   const RPCGeometry* getGeometry() { return theGeometry; }
0049 
0050   const RPCGeometry* theGeometry;
0051 
0052   std::map<uint32_t, std::vector<float> > _mapDetIdNoise;
0053   std::map<uint32_t, std::vector<float> > _mapDetIdEff;
0054   std::map<RPCDetId, float> _bxmap;
0055   std::map<int, std::vector<double> > _clsMap;
0056   std::map<uint32_t, std::vector<double> > _mapDetClsMap;
0057   std::map<uint32_t, std::vector<double> > _mapDetClsMapLegacy;  //allowing old formad to by used by old digitizers
0058   std::vector<double> _DetClsAsymmetric;
0059   std::vector<double> _DetAsymmetryForCls;
0060 
0061 private:
0062 };
0063 
0064 #endif