00001 #ifndef ANALYZER_VIS_EVENT_SETUP_H 00002 # define ANALYZER_VIS_EVENT_SETUP_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "FWCore/Framework/interface/EDAnalyzer.h" 00007 # include "FWCore/Framework/interface/ESHandle.h" 00008 # include "FWCore/Framework/interface/ESWatcher.h" 00009 # include "DataFormats/DetId/interface/DetId.h" 00010 # include "DataFormats/HcalDetId/interface/HcalSubdetector.h" 00011 # include <string> 00012 00013 //<<<<<< PUBLIC DEFINES >>>>>> 00014 //<<<<<< PUBLIC CONSTANTS >>>>>> 00015 //<<<<<< PUBLIC TYPES >>>>>> 00016 00017 class GeomDet; 00018 class SbVec3f; 00019 class GlobalTrackingGeometry; 00020 class TrackerGeometry; 00021 class CaloGeometry; 00022 class CSCGeometry; 00023 class DTGeometry; 00024 class RPCGeometry; 00025 class MagneticField; 00026 class IgDataStorage; 00027 class IgCollectionItem; 00028 class GlobalTrackingGeometryRecord; 00029 class TrackerDigiGeometryRecord; 00030 class CaloGeometryRecord; 00031 class MuonGeometryRecord; 00032 class IdealMagneticFieldRecord; 00033 00034 //<<<<<< PUBLIC VARIABLES >>>>>> 00035 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00036 //<<<<<< CLASS DECLARATIONS >>>>>> 00037 00038 class VisEventSetup : public edm::EDAnalyzer 00039 { 00040 public: 00041 explicit VisEventSetup (const edm::ParameterSet&); 00042 // implicit copy constructor 00043 // implicit assignment operator 00044 // implicit destructor 00045 virtual ~VisEventSetup() {} 00046 00047 virtual void analyze( const edm::Event&, const edm::EventSetup& ); 00048 00049 private: 00050 void buildTracker (IgDataStorage *); 00051 void buildDriftTubes (IgDataStorage *); 00052 void buildCalo (IgDataStorage *); 00053 void buildCSC (IgDataStorage *); 00054 void buildRPC (IgDataStorage *); 00055 void buildMagneticField (IgDataStorage *); 00056 void build (IgDataStorage *, std::string, DetId::Detector, int); 00057 void addCorners (IgCollectionItem&, const GeomDet *); 00058 00059 const std::string subDetName (HcalSubdetector key); 00060 const std::string otherSubDetName (HcalOtherSubdetector key); 00061 00062 bool globalTrackingGeomCanged_; 00063 bool trackerGeomCanged_; 00064 bool caloGeomCanged_; 00065 bool muonGeomCanged_; 00066 bool fieldGeomCanged_; 00067 00068 edm::ESHandle<GlobalTrackingGeometry> globalTrackingGeom_; 00069 edm::ESHandle<TrackerGeometry> trackerGeom_; 00070 edm::ESHandle<CaloGeometry> caloGeom_; 00071 edm::ESHandle<CSCGeometry> cscGeom_; 00072 edm::ESHandle<DTGeometry> dtGeom_; 00073 edm::ESHandle<RPCGeometry> rpcGeom_; 00074 edm::ESHandle<MagneticField> field_; 00075 00076 edm::ESWatcher<GlobalTrackingGeometryRecord> watch_globalTrackingGeom_; 00077 edm::ESWatcher<TrackerDigiGeometryRecord> watch_trackerGeom_; 00078 edm::ESWatcher<CaloGeometryRecord> watch_caloGeom_; 00079 edm::ESWatcher<MuonGeometryRecord> watch_muonGeom_; 00080 edm::ESWatcher<IdealMagneticFieldRecord> watch_field_; 00081 }; 00082 00083 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00084 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00085 00086 #endif // ANALYZER_VIS_EVENT_SETUP_H