#include <G4TrajectoryChargeFilter.hh>
Inheritance diagram for G4TrajectoryChargeFilter:
Public Member Functions | |
G4TrajectoryChargeFilter (const G4String &name="Unspecified") | |
virtual | ~G4TrajectoryChargeFilter () |
virtual bool | Evaluate (const G4VTrajectory &) const |
virtual void | Print (std::ostream &ostr) const |
virtual void | Clear () |
void | Add (const G4String &particle) |
Definition at line 40 of file G4TrajectoryChargeFilter.hh.
G4TrajectoryChargeFilter::G4TrajectoryChargeFilter | ( | const G4String & | name = "Unspecified" |
) |
Definition at line 36 of file G4TrajectoryChargeFilter.cc.
00037 :G4SmartFilter<G4VTrajectory>(name) 00038 {}
G4TrajectoryChargeFilter::~G4TrajectoryChargeFilter | ( | ) | [virtual] |
void G4TrajectoryChargeFilter::Add | ( | const G4String & | particle | ) |
Definition at line 64 of file G4TrajectoryChargeFilter.cc.
References G4Exception(), and JustWarning.
00065 { 00066 MyCharge myCharge; 00067 00068 if (!ConvertToCharge(charge, myCharge)) { 00069 G4ExceptionDescription ed; 00070 ed << "Invalid charge "<<charge; 00071 G4Exception 00072 ("G4TrajectoryChargeFilter::Add(const G4String& charge)", 00073 "modeling0115", JustWarning, ed); 00074 return; 00075 } 00076 00077 return Add(myCharge); 00078 }
void G4TrajectoryChargeFilter::Clear | ( | ) | [virtual] |
Implements G4SmartFilter< G4VTrajectory >.
Definition at line 99 of file G4TrajectoryChargeFilter.cc.
bool G4TrajectoryChargeFilter::Evaluate | ( | const G4VTrajectory & | ) | const [virtual] |
Implements G4SmartFilter< G4VTrajectory >.
Definition at line 43 of file G4TrajectoryChargeFilter.cc.
References G4cout, G4endl, G4VTrajectory::GetCharge(), and G4SmartFilter< G4VTrajectory >::GetVerbose().
00044 { 00045 G4double charge = traj.GetCharge(); 00046 00047 if (GetVerbose()) G4cout<<"G4TrajectoryChargeFilter processing trajectory with charge: "<<charge<<G4endl; 00048 00049 MyCharge myCharge; 00050 00051 if(charge>0.) myCharge = Positive; 00052 else if(charge<0.) myCharge = Negative; 00053 else myCharge = Neutral; 00054 00055 std::vector<MyCharge>::const_iterator iter = std::find(fCharges.begin(), fCharges.end(), myCharge); 00056 00057 // Fail if charge not registered 00058 if (iter == fCharges.end()) return false; 00059 00060 return true; 00061 }
void G4TrajectoryChargeFilter::Print | ( | std::ostream & | ostr | ) | const [virtual] |
Implements G4SmartFilter< G4VTrajectory >.
Definition at line 87 of file G4TrajectoryChargeFilter.cc.
References G4endl.
00088 { 00089 ostr<<"Charges registered: "<<G4endl; 00090 std::vector<MyCharge>::const_iterator iter = fCharges.begin(); 00091 00092 while (iter != fCharges.end()) { 00093 ostr<<*iter<<G4endl; 00094 iter++; 00095 } 00096 }