LBNEStackingAction.hh
Go to the documentation of this file.
1 //
2 // LBNEStackingAction.hh
3 //
4 #ifndef LBNEStackingAction_H
5 #define LBNEStackingAction_H 1
6 
7 #include <fstream>
8 #include "globals.hh"
9 #include "G4UserStackingAction.hh"
10 //#include "G4ThreeVector.hh"
11 
12 class G4Track;
13 class LBNERunManager;
14 
15 class LBNEStackingAction : public G4UserStackingAction
16 {
17  public:
19  virtual ~LBNEStackingAction();
20 
21  virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack);
22  virtual void NewStage();
23  virtual void PrepareNewEvent();
24 
25 
26  void KillEMParticles(G4ClassificationOfNewTrack& classification,
27  const G4Track* aTrack);
28  void KillltZeroPzParticles(G4ClassificationOfNewTrack& classification,
29  const G4Track * aTrack);
30  void KillThresholdParticles(G4ClassificationOfNewTrack& classification,
31  const G4Track * aTrack);
32 // void KillOutOfWorldParticles(G4ClassificationOfNewTrack& classification,
33 // const G4Track * aTrack);
34  void KillUnimportantParticles(G4ClassificationOfNewTrack& classification,
35  const G4Track * aTrack);
36  void UnKillMuonAlcoveParticles(G4ClassificationOfNewTrack& classification,
37  const G4Track * aTrack);
38 
39 
40  private:
42  mutable double fStackingKillingThreshold;
43  //
44  // Debugging where the big deficit in pion production with respect to Fluka
45  //
46  mutable std::ofstream fOutHadronAtVectex; // close by defaults..
47  mutable std::ofstream fOutHadronAtVectexCl; // close by defaults.. Classified... Suspect bug!...
48  mutable bool doImportanceWeightSelection; // True by default, as decided by g4numi
49  public:
50  void OpenHadronAtVertex() const;
51  inline void SetDoImportanceWeightSelection( bool t) const { doImportanceWeightSelection = t; } // Pseudo Const..
53  inline void SetStackingKillingThreshold(double v) const { fStackingKillingThreshold = v;} //Pseudo const
54  inline double GetStackingKillingThreshold() const { return fStackingKillingThreshold;}
55 
56 };
57 
58 #endif
void UnKillMuonAlcoveParticles(G4ClassificationOfNewTrack &classification, const G4Track *aTrack)
bool GetDoImportanceWeightSelection() const
std::ofstream fOutHadronAtVectexCl
void OpenHadronAtVertex() const
LBNERunManager * pRunManager
virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track *aTrack)
void KillUnimportantParticles(G4ClassificationOfNewTrack &classification, const G4Track *aTrack)
void SetDoImportanceWeightSelection(bool t) const
virtual void PrepareNewEvent()
std::ofstream fOutHadronAtVectex
double GetStackingKillingThreshold() const
void KillEMParticles(G4ClassificationOfNewTrack &classification, const G4Track *aTrack)
void KillThresholdParticles(G4ClassificationOfNewTrack &classification, const G4Track *aTrack)
void SetStackingKillingThreshold(double v) const
void KillltZeroPzParticles(G4ClassificationOfNewTrack &classification, const G4Track *aTrack)