CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/L1Trigger/RPCTechnicalTrigger/interface/RBCProcessRPCSimDigis.h

Go to the documentation of this file.
00001 // $Id: RBCProcessRPCSimDigis.h,v 1.2 2009/12/25 07:05:21 elmer Exp $
00002 #ifndef INTERFACE_RBCPROCESSRPCSIMDIGIS_H 
00003 #define INTERFACE_RBCPROCESSRPCSIMDIGIS_H 1
00004 
00005 // Include files
00006 #include "FWCore/Framework/interface/Frameworkfwd.h"
00007 #include "FWCore/Framework/interface/ESHandle.h"
00008 
00009 #include "Geometry/RPCGeometry/interface/RPCRoll.h"
00010 #include "Geometry/RPCGeometry/interface/RPCGeometry.h"
00011 #include "Geometry/Records/interface/MuonGeometryRecord.h"
00012 #include "Geometry/RPCGeometry/interface/RPCGeometry.h"
00013 
00014 #include "DataFormats/MuonDetId/interface/RPCDetId.h"
00015 
00016 #include "DataFormats/Common/interface/DetSetVector.h"
00017 #include "SimDataFormats/RPCDigiSimLink/interface/RPCDigiSimLink.h"
00018 
00019 // From project
00020 #include "L1Trigger/RPCTechnicalTrigger/interface/RBCInput.h" 
00021 #include "L1Trigger/RPCTechnicalTrigger/interface/RPCInputSignal.h"
00022 #include "L1Trigger/RPCTechnicalTrigger/interface/RPCData.h"
00023 #include "L1Trigger/RPCTechnicalTrigger/interface/ProcessInputSignal.h"
00024 
00025 #include <stdlib.h>
00026 #include <iostream>
00027 #include <fstream>
00028 #include <ios>
00029 #include <cmath>
00030 #include <map>
00031 #include <vector>
00032 
00040 class RBCProcessRPCSimDigis : public ProcessInputSignal {
00041 public: 
00043   RBCProcessRPCSimDigis(); 
00044   
00045   RBCProcessRPCSimDigis( const edm::ESHandle<RPCGeometry> &, 
00046                          const edm::Handle<edm::DetSetVector<RPCDigiSimLink> > & );
00047   
00048   int  next();
00049   
00050   void reset();
00051   
00052   void configure();
00053   
00054   void initialize( std::vector<RPCData*> & );
00055   
00056   void builddata();
00057   
00058   void print_output();
00059   
00060   RPCInputSignal * retrievedata() {
00061     return  m_lbin;
00062   };
00063   
00064   void rewind() {};
00065   void showfirst() {};
00066   
00067   virtual ~RBCProcessRPCSimDigis( ); 
00068   
00069 protected:
00070   
00071 private:
00072   
00073   int getBarrelLayer(const int &, const int &);
00074   
00075   void setDigiAt( int , int  );
00076   
00077   void setInputBit( std::bitset<15> & , int );
00078   
00079   const edm::ESHandle<RPCGeometry> * m_ptr_rpcGeom;
00080   const edm::Handle<edm::DetSetVector<RPCDigiSimLink> > * m_ptr_digiSimLink;
00081   
00082   edm::DetSetVector<RPCDigiSimLink>::const_iterator m_linkItr;
00083   edm::DetSet<RPCDigiSimLink>::const_iterator m_digiItr;
00084     
00085   RPCData  * m_block;
00086   
00087   RPCInputSignal * m_lbin;
00088   
00089   std::map<int, int> m_layermap;
00090   
00091   std::map<int, RBCInput*> m_data;
00092   
00093   std::map<int, std::vector<RPCData*> > m_vecDataperBx;
00094   
00095   bool m_debug;
00096   int m_maxBxWindow;
00097   
00098   std::vector<int> m_wheelid;
00099   std::vector<int> m_sec1id;
00100   std::vector<int> m_sec2id;
00101 
00102   
00103 };
00104 #endif // INTERFACE_RBCPROCESSRPCSIMDIGIS_H