00001 #ifndef VIS_MAGNETIC_FIELD_VIS_CMSMAG_FIELD_TWIG_H 00002 # define VIS_MAGNETIC_FIELD_VIS_CMSMAG_FIELD_TWIG_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "Iguana/Framework/interface/IgTwig.h" 00007 # include "FWCore/Framework/interface/Event.h" 00008 # include "FWCore/Framework/interface/EventSetup.h" 00009 # include "FWCore/Framework/interface/ESHandle.h" 00010 # include "MagneticField/VolumeBasedEngine/interface/VolumeBasedMagneticField.h" 00011 00012 //<<<<<< PUBLIC DEFINES >>>>>> 00013 //<<<<<< PUBLIC CONSTANTS >>>>>> 00014 //<<<<<< PUBLIC TYPES >>>>>> 00015 00016 class IgSbField; 00017 class VisCMSMagField; 00018 class IgSoFieldPlane; 00019 class SbBox3f; 00020 class IgState; 00021 00022 //<<<<<< PUBLIC VARIABLES >>>>>> 00023 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00024 //<<<<<< CLASS DECLARATIONS >>>>>> 00025 00026 class VisCMSMagFieldTwig : public IgSimpleTwig 00027 { 00028 public: 00029 VisCMSMagFieldTwig (IgTwig *parent, IgState *state); 00030 // implicit copy constructor 00031 // implicit assignment operator 00032 // implicit destructor 00033 00034 void onNewEvent (const edm::Event &event, 00035 const edm::EventSetup &eventSetup); 00036 00037 IgSoFieldPlane* getFieldPlane (); 00038 bool fieldProxy (IgSbField *&field, SbBox3f &worldbox); 00039 00040 private: 00041 edm::ESHandle<VolumeBasedMagneticField> m_pSetup; 00042 VisCMSMagField *m_fieldProxy; 00043 IgSoFieldPlane *m_fieldPlane; 00044 bool m_done; 00045 bool m_fieldDone; 00046 }; 00047 00048 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00049 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00050 00051 #endif // VIS_MAGNETIC_FIELD_VIS_CMSMAG_FIELD_TWIG_H