CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
PrintTrackNumberAction Class Reference

#include <PrintTrackNumberAction.h>

Inheritance diagram for PrintTrackNumberAction:
SimWatcher Observer< const EndOfEvent * > Observer< const EndOfTrack * >

Public Member Functions

 PrintTrackNumberAction (edm::ParameterSet const &p)
 
void update (const EndOfTrack *trk) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const EndOfEvent *trk) override
 This routine will be called when the appropriate signal arrives. More...
 
 ~PrintTrackNumberAction () override
 
- Public Member Functions inherited from SimWatcher
 SimWatcher ()
 
virtual ~SimWatcher ()
 
- Public Member Functions inherited from Observer< const EndOfEvent * >
 Observer ()
 
void slotForUpdate (const EndOfEvent * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const EndOfTrack * >
 Observer ()
 
void slotForUpdate (const EndOfTrack * iT)
 
virtual ~Observer ()
 

Private Attributes

bool bNoUserLimits
 
int theNoTracks
 
int theNoTracksNoUL
 
int theNoTracksThisEvent
 
int theNoTracksThisEventNoUL
 
int theNoTracksToPrint
 

Additional Inherited Members

Detailed Description

Definition at line 11 of file PrintTrackNumberAction.h.

Constructor & Destructor Documentation

PrintTrackNumberAction::PrintTrackNumberAction ( edm::ParameterSet const &  p)

Definition at line 10 of file PrintTrackNumberAction.cc.

References bNoUserLimits, gather_cfg::cout, edm::ParameterSet::getUntrackedParameter(), and theNoTracksToPrint.

12  theNoTracksToPrint = p.getUntrackedParameter<int>("EachNTrack", -1);
13  // do not count tracks killed by user limits (MinEkineCut for the moment only)
14  bNoUserLimits = p.getUntrackedParameter<bool>("NoUserLimits", true);
15  std::cout << " PrintTrackNumberAction::bNoUserLimits " << bNoUserLimits << std::endl;
16 }
PrintTrackNumberAction::~PrintTrackNumberAction ( )
override

Definition at line 18 of file PrintTrackNumberAction.cc.

18 {}

Member Function Documentation

void PrintTrackNumberAction::update ( const EndOfTrack )
overridevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const EndOfTrack * >.

Definition at line 20 of file PrintTrackNumberAction.cc.

References bNoUserLimits, gather_cfg::cout, theNoTracks, theNoTracksNoUL, theNoTracksThisEvent, theNoTracksThisEventNoUL, and theNoTracksToPrint.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

20  {
21  const G4Track *aTrack = (*trk)();
22 
23  theNoTracks++;
25 
26  if (bNoUserLimits) {
27  bool countTrk = true;
28  // tracks that have been killed before first step (by MinEkineCut).
29  // In fact the track makes the first step, MinEkineCut process determines
30  // that the energy is too low, set it to 0, and then at the next step
31  // the 0-energy particle dies
32  if (aTrack->GetCurrentStepNumber() == 2) {
33  const G4VProcess *proccur = aTrack->GetStep()->GetPostStepPoint()->GetProcessDefinedStep();
34  if (proccur != nullptr) {
35  if (proccur->GetProcessName() == "MinEkineCut") {
36  countTrk = false;
37  } else {
38  // for e+, last step is annihil, while previous is MinEkineCut
39  const G4VProcess *procprev = aTrack->GetStep()->GetPreStepPoint()->GetProcessDefinedStep();
40  if (procprev != nullptr) {
41  if (procprev->GetProcessName() == "MinEkineCut") {
42  countTrk = false;
43  }
44  }
45  }
46  }
47  }
48  if (countTrk) {
51  if (theNoTracksToPrint > 0) {
53  std::cout << "PTNA: Simulating Track Number = " << theNoTracksThisEventNoUL << std::endl;
54  }
55  }
56  }
57  } else {
58  if (theNoTracksToPrint > 0) {
60  std::cout << "PTNA: Simulating Track Number = " << theNoTracksThisEvent << std::endl;
61  }
62  }
63  }
64 }
void PrintTrackNumberAction::update ( const EndOfEvent )
overridevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const EndOfEvent * >.

Definition at line 66 of file PrintTrackNumberAction.cc.

References bNoUserLimits, gather_cfg::cout, theNoTracks, theNoTracksNoUL, theNoTracksThisEvent, and theNoTracksThisEventNoUL.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

66  {
67  const G4Event *g4e = (*e)();
68  std::cout << "PTNA: Event simulated= " << g4e->GetEventID() << " #tracks= ";
69  if (bNoUserLimits) {
70  std::cout << theNoTracksThisEventNoUL << " Total #tracks in run= " << theNoTracksNoUL
71  << " counting killed by UL= " << theNoTracks << std::endl;
73  } else {
74  std::cout << theNoTracksThisEvent << " Total #tracks in run= " << theNoTracks << std::endl;
76  }
77 }

Member Data Documentation

bool PrintTrackNumberAction::bNoUserLimits
private

Definition at line 26 of file PrintTrackNumberAction.h.

Referenced by PrintTrackNumberAction(), and update().

int PrintTrackNumberAction::theNoTracks
private

Definition at line 21 of file PrintTrackNumberAction.h.

Referenced by update().

int PrintTrackNumberAction::theNoTracksNoUL
private

Definition at line 23 of file PrintTrackNumberAction.h.

Referenced by update().

int PrintTrackNumberAction::theNoTracksThisEvent
private

Definition at line 22 of file PrintTrackNumberAction.h.

Referenced by update().

int PrintTrackNumberAction::theNoTracksThisEventNoUL
private

Definition at line 24 of file PrintTrackNumberAction.h.

Referenced by update().

int PrintTrackNumberAction::theNoTracksToPrint
private

Definition at line 25 of file PrintTrackNumberAction.h.

Referenced by PrintTrackNumberAction(), and update().