24 G4cout <<
"LBNEPrimaryMessenger Constructor Called." << G4endl;
26 fDirectory =
new G4UIdirectory(
"/LBNE/generator/");
29 new G4UIcmdWithADoubleAndUnit(
"/LBNE/generator/beamOffsetX",
this);
38 new G4UIcmdWithADoubleAndUnit(
"/LBNE/generator/beamOffsetY",
this);
47 new G4UIcmdWithADoubleAndUnit(
"/LBNE/generator/beamSigmaX",
this);
56 new G4UIcmdWithADoubleAndUnit(
"/LBNE/generator/beamSigmaY",
this);
65 new G4UIcmdWithADoubleAndUnit(
"/LBNE/generator/beamMaxValX",
this);
66 fBeamMaxValXCmd->SetGuidance(
"Set the maximum value in Y that a proton can have on target");
74 new G4UIcmdWithADoubleAndUnit(
"/LBNE/generator/beamMaxValY",
this);
75 fBeamMaxValYCmd->SetGuidance(
"Set the maximum value in Y that a proton can have on target");
83 new G4UIcmdWithADoubleAndUnit(
"/LBNE/generator/beamTheta",
this);
84 fBeamThetaCmd->SetGuidance(
"Set the angle (theta) of the proton beam");
89 new G4UIcmdWithADoubleAndUnit(
"/LBNE/generator/beamPhi",
this);
90 fBeamPhiCmd->SetGuidance(
"Set the angle (phi) of the proton beam.");
95 new G4UIcmdWithABool(
"/LBNE/generator/correctForAngle",
this);
101 fProtonMomentum =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/primary/protonMomentum",
this);
102 fProtonMomentum->SetGuidance(
"Primary proton momentum delivered by the Fermilab Main Injector ");
110 new G4UIcmdWithABool(
"/LBNE/generator/beamOnTarget",
this);
115 fBeamBetaFunctionX =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/primary/beamBetaFunctionX",
this);
117 "LBNE beam line X beta function at the the target (MCZERO) delived by the Fermilab Main Injector ");
124 fBeamBetaFunctionY =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/primary/beamBetaFunctionY",
this);
126 "LBNE beam line Y beta function at the the target (MCZERO) delived by the Fermilab Main Injector ");
133 fBeamEmittanceX =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/primary/beamEmittanceX",
this);
135 "LBNE beam line X Emittance, in pi mm mRad, Fermilab units. ");
142 fBeamEmittanceY =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/primary/beamEmittanceY",
this);
144 "LBNE beam line Y Emittance, in pi mm mRad, Fermilab units. ");
151 fRadiusAnnularBeam =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/primary/annularBeamRadius",
this);
153 "LBNF Annular beam option. Setting the radius of the annulus. Width set by XY beam size. ");
161 fUseGeantino =
new G4UIcmdWithoutParameter(
"/LBNE/primary/useGeantino",
this);
162 fUseGeantino->SetGuidance(
"Using a Geantino at the Primary, to study absorption");
165 fUseMuonGeantino =
new G4UIcmdWithoutParameter(
"/LBNE/primary/useMuonGeantino",
this);
166 fUseMuonGeantino->SetGuidance(
"Using a muon at the Primary, to study absorption, with magnetic field effect ");
169 fUseChargedGeantino =
new G4UIcmdWithoutParameter(
"/LBNE/primary/useChargedGeantino",
this);
170 fUseChargedGeantino->SetGuidance(
"Using a particle with charge, but no other physics (I hope) magnetic field effect ");
189 fGeantinoZOrigin =
new G4UIcmdWithADoubleAndUnit(
"/LBNE/primary/geantinoZOrigin",
this);
190 fGeantinoZOrigin->SetGuidance(
"Z origin generating the geantino (or mu geantino) (in mm) ");
198 new G4UIcmdWithADoubleAndUnit(
"/LBNE/primary/geantinoSigmaZOrigin",
this);
199 fGeantinoZOriginSigma->SetGuidance(
"Z origin longitudinal spread generating the geantino (or mu geantino) (in mm) ");
207 new G4UIcmdWith3VectorAndUnit(
"/LBNE/primary/mugeantinoScanZOrigin",
this);
209 fMuGeantinoZOriginScan->SetParameterName(
"mugeantinoScanZOriginInit",
"mugeantinoScanZOriginStep",
"mugeantinoScanZOriginFlag",
true);
216 new G4UIcmdWith3VectorAndUnit(
"/LBNE/primary/mugeantinoScanAngle",
this);
218 fMuGeantinoAngleScan->SetParameterName(
"mugeantinoScanAlngleInit",
"mugeantinoScanAlngleStep",
"mugeantinoScanAlngleFlag",
true);
225 new G4UIcmdWith3VectorAndUnit(
"/LBNE/primary/mugeantinoScanMomentum",
this);
227 fMuGeantinoMomentumScan->SetParameterName(
"mugeantinoScanMomentumInit",
"mugeantinoScanMomentumStep",
"mugeantinoScanMomentumFlag",
true);
234 new G4UIcmdWith3VectorAndUnit(
"/LBNE/primary/mugeantinoScanPt",
this);
236 fMuGeantinoPtScan->SetParameterName(
"mugeantinoScanPtInit",
"mugeantinoScanPtStep",
"mugeantinoScanPtFlag",
true);
243 new G4UIcmdWith3VectorAndUnit(
"/LBNE/primary/mugeantinoScanYOrigin",
this);
245 fMuGeantinoYOriginScan->SetParameterName(
"mugeantinoScanZOriginInit",
"mugeantinoScanZOriginStep",
"mugeantinoScanZOriginFlag",
true);
252 std::string aGuideFluka(
"Set the input fluka ntuple file name. \n");
253 aGuideFluka +=
std::string(
"Proton beam will be off, we will generate hadrons from Fluka file \n");
254 aGuideFluka +=
std::string(
"Note: No checks are done on the consistency of Fluka vs this Geant geometry \n");
G4UIcmdWithADoubleAndUnit * fGeantinoZOrigin
G4UIcmdWithADoubleAndUnit * fProtonMomentum
G4UIcmdWith3VectorAndUnit * fMuGeantinoZOriginScan
G4UIcmdWithoutParameter * fUseGeantino
G4UIcmdWithADoubleAndUnit * fBeamMaxValYCmd
G4UIcmdWithADoubleAndUnit * fBeamBetaFunctionX
G4UIcmdWithADoubleAndUnit * fBeamSigmaXCmd
double GetBeamSigmaX() const
double GetBeamSigmaY() const
LBNEPrimaryGeneratorAction * fPrimaryAction
G4UIcmdWithoutParameter * fUseMuonGeantino
G4UIcmdWith3VectorAndUnit * fMuGeantinoMomentumScan
G4UIcmdWithADoubleAndUnit * fRadiusAnnularBeam
G4UIcmdWith3VectorAndUnit * fMuGeantinoYOriginScan
G4UIcmdWithADoubleAndUnit * fBeamSigmaYCmd
G4UIcmdWithADoubleAndUnit * fGeantinoOpeningAngle
G4UIcmdWith3VectorAndUnit * fMuGeantinoPtScan
G4UIcmdWithADoubleAndUnit * fBeamMaxValXCmd
G4UIcmdWithABool * fCorrectForAngleCmd
double GetBeamMaxValY() const
G4UIcmdWithABool * fBeamOnTargetCmd
G4UIdirectory * fDirectory
G4UIcmdWithADoubleAndUnit * fBeamBetaFunctionY
G4UIcmdWithADoubleAndUnit * fBeamEmittanceX
G4UIcmdWithADoubleAndUnit * fGeantinoZOriginSigma
G4UIcmdWithADoubleAndUnit * fBeamOffsetYCmd
G4UIcmdWithADoubleAndUnit * fBeamEmittanceY
G4UIcmdWithADoubleAndUnit * fBeamPhiCmd
G4UIcmdWith3VectorAndUnit * fMuGeantinoAngleScan
int GetVerboseLevel() const
double GetBeamMaxValX() const
G4UIcmdWithAString * fInputFlukaFileName
G4UIcmdWithoutParameter * fUseChargedGeantino
G4UIcmdWithADoubleAndUnit * fGeantinoOpeningAngleMin
G4UIcmdWithADoubleAndUnit * fBeamThetaCmd
G4UIcmdWithADoubleAndUnit * fBeamOffsetXCmd