Go to the documentation of this file.00001 #ifndef SimG4Core_HelpfulWatchers_MonopoleSteppingAction_H
00002 #define SimG4Core_HelpfulWatchers_MonopoleSteppingAction_H
00003
00004 #include "SimG4Core/Watcher/interface/SimWatcher.h"
00005 #include "SimG4Core/Notification/interface/Observer.h"
00006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00007
00008 #include "G4Step.hh"
00009 #include <vector>
00010
00011 class BeginOfJob;
00012 class BeginOfRun;
00013 class BeginOfTrack;
00014
00015 class MonopoleSteppingAction : public SimWatcher,
00016 public Observer<const BeginOfJob *>,
00017 public Observer<const BeginOfRun *>,
00018 public Observer<const BeginOfTrack *>,
00019 public Observer<const G4Step *> {
00020 public:
00021 MonopoleSteppingAction(edm::ParameterSet const & p);
00022 ~MonopoleSteppingAction();
00023 void update(const BeginOfJob*);
00024 void update(const BeginOfRun*);
00025 void update(const BeginOfTrack*);
00026 void update(const G4Step*);
00027
00028 private:
00029 bool mode, actOnTrack;
00030 std::vector<int> pdgCode;
00031 double eStart, pxStart, pyStart, pzStart;
00032 double dirxStart, diryStart, dirzStart;
00033 double cMevToJ, cMeVToKgMByS, cInMByS, magCharge, bZ;
00034 };
00035
00036 #endif