#include <LBNEPerfectFocusProcess.hh>
Definition at line 26 of file LBNEPerfectFocusProcess.hh.
LBNEPerfectFocusProcess::LBNEPerfectFocusProcess |
( |
const G4String & |
aName = "pFocus" , |
|
|
G4ProcessType |
aType = fGeneral |
|
) |
| |
Definition at line 17 of file LBNEPerfectFocusProcess.cc.
18 G4VDiscreteProcess(aName, aType)
20 enablePostStepDoIt =
true;
21 const G4RunManager *pRunManager = G4RunManager::GetRunManager();
double GetRCoordOutOfTarget() const
double fRCoordOutOfTargetSq
double GetZCoordForPerfectFocusing() const
double fZCoordForPerfectFocusing
LBNEPerfectFocusParticleChange * fParticleChange
LBNEPerfectFocusProcess::~LBNEPerfectFocusProcess |
( |
| ) |
|
|
virtual |
G4double LBNEPerfectFocusProcess::GetFreePath |
( |
const G4Track & |
track, |
|
|
G4double |
previousStepSize |
|
) |
| |
|
private |
Definition at line 108 of file LBNEPerfectFocusProcess.cc.
115 if (previousStepSize < -999999) std::cerr <<
" LBNEPerfectFocusProcess::GetFreePath, crazy prev step size.. " <<
std::endl;
121 const G4ThreeVector posT = aTrack.GetPosition();
122 const double radSq= posT[0]*posT[0] + posT[1]*posT[1];
128 return 1.0e-5*CLHEP::mm;
double fRCoordOutOfTargetSq
double fZCoordForPerfectFocusing
QTextStream & endl(QTextStream &s)
G4double LBNEPerfectFocusProcess::GetMeanFreePath |
( |
const G4Track & |
aTrack, |
|
|
G4double |
previousStepSize, |
|
|
G4ForceCondition * |
aCond |
|
) |
| |
G4bool LBNEPerfectFocusProcess::IsApplicable |
( |
const G4ParticleDefinition & |
pDef | ) |
|
Definition at line 36 of file LBNEPerfectFocusProcess.cc.
41 const G4DynamicParticle *pDef = aTrack.GetDynamicParticle();
42 const int pId = pDef->GetDefinition()->GetPDGEncoding();
44 const double totalP = pDef->GetTotalMomentum();
46 if (oldTrInfo->
GetPFFlag() == 1)
return 0;
54 G4ThreeVector aNewPos(stepData.GetPostStepPoint()->GetPosition());
58 aNewPos[2] += 1.*CLHEP::mm;
59 const double phi = std::atan2(aNewPos[1], aNewPos[0]);
60 aNewPos[0] += std::cos(phi)*1.*CLHEP::mm;
61 aNewPos[1] += std::sin(phi)*1.*CLHEP::mm;
67 G4ThreeVector aNewP(0., 0., totalP);
68 G4DynamicParticle *aNewPart =
new G4DynamicParticle(pDef->GetDefinition(), aNewP);
69 G4Track *aNewTrack =
new G4Track(aNewPart, aTrack.GetLocalTime(), aNewPos);
LBNEPerfectFocusParticleChange * fParticleChange
G4double LBNEPerfectFocusProcess::PostStepGetPhysicalInteractionLength |
( |
const G4Track & |
track, |
|
|
G4double |
previousStepSize, |
|
|
G4ForceCondition * |
condition |
|
) |
| |
Definition at line 92 of file LBNEPerfectFocusProcess.cc.
96 *condition = NotForced;
double GetFreePath(const G4Track &track, G4double previousStepSize)
void LBNEPerfectFocusProcess::StartTracking |
( |
G4Track * |
aTrack | ) |
|
double LBNEPerfectFocusProcess::fRAtTriggerSq |
|
mutableprivate |
double LBNEPerfectFocusProcess::fRCoordOutOfTargetSq |
|
private |
double LBNEPerfectFocusProcess::fRStartSq |
|
mutableprivate |
double LBNEPerfectFocusProcess::fZAtTrigger |
|
mutableprivate |
double LBNEPerfectFocusProcess::fZCoordForPerfectFocusing |
|
private |
double LBNEPerfectFocusProcess::fZStart |
|
mutableprivate |
The documentation for this class was generated from the following files: