G4TrajectoryChargeFilter Class Reference

#include <G4TrajectoryChargeFilter.hh>

Inheritance diagram for G4TrajectoryChargeFilter:

G4SmartFilter< G4VTrajectory > G4VFilter< G4VTrajectory >

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)

Detailed Description

Definition at line 40 of file G4TrajectoryChargeFilter.hh.


Constructor & Destructor Documentation

G4TrajectoryChargeFilter::G4TrajectoryChargeFilter ( const G4String name = "Unspecified"  ) 

Definition at line 36 of file G4TrajectoryChargeFilter.cc.

00037   :G4SmartFilter<G4VTrajectory>(name)
00038 {}

G4TrajectoryChargeFilter::~G4TrajectoryChargeFilter (  )  [virtual]

Definition at line 40 of file G4TrajectoryChargeFilter.cc.

00040 {}


Member Function Documentation

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.

00100 {
00101   // Clear registered charge vector
00102   fCharges.clear();
00103 }

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 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:33 2013 for Geant4 by  doxygen 1.4.7