1 #ifndef CosmicMuonGenerator_h 2 #define CosmicMuonGenerator_h 10 #include <CLHEP/Random/RandomEngine.h> 11 #include <CLHEP/Random/JamesRandom.h> 14 class HepRandomEngine;
72 NotInitialized =
true;
87 std::cout <<
"*********************************************************" << std::endl;
88 std::cout <<
"*********************************************************" << std::endl;
90 std::cout <<
"*** C O S M I C M U O N G E N E R A T O R (vC++) ***" << std::endl;
92 std::cout <<
"*********************************************************" << std::endl;
93 std::cout <<
"*********************************************************" << std::endl;
230 bool goodOrientation();
237 void setNumberOfEvents(
unsigned int N);
238 void setRanSeed(
int N);
239 void setMinP(
double P);
240 void setMinP_CMS(
double P);
241 void setMaxP(
double P);
242 void setMinTheta(
double Theta);
243 void setMaxTheta(
double Theta);
244 void setMinPhi(
double Phi);
245 void setMaxPhi(
double Phi);
246 void setMinT0(
double T0);
247 void setMaxT0(
double T0);
248 void setElossScaleFactor(
double ElossScaleFact);
249 void setRadiusOfTarget(
double R);
250 void setZDistOfTarget(
double Z);
251 void setZCentrOfTarget(
double Z);
253 void setMultiMuon(
bool MultiMu);
254 void setMultiMuonFileName(
std::string MultiMuonFileName);
255 void setMultiMuonFileFirstEvent(
int MultiMuFile1stEvt);
256 void setMultiMuonNmin(
int MultiMuNmin);
257 void setTIFOnly_constant(
bool TIF);
258 void setTIFOnly_linear(
bool TIF);
259 void setMTCCHalf(
bool MTCC);
260 void setPlugVx(
double PlugVtx);
261 void setPlugVz(
double PlugVtz);
262 void setRhoAir(
double VarRhoAir);
263 void setRhoWall(
double VarRhoSWall);
264 void setRhoRock(
double VarRhoRock);
265 void setRhoClay(
double VarRhoClay);
266 void setRhoPlug(
double VarRhoPlug);
267 void setClayWidth(
double ClayLaeyrWidth);
269 void setMinEnu(
double MinEn);
270 void setMaxEnu(
double MaxEn);
271 void setNuProdAlt(
double NuPrdAlt);
272 void setAcptAllMu(
bool AllMu);
275 void setRandomEngine(CLHEP::HepRandomEngine*
v);
276 void initialize(CLHEP::HepRandomEngine* rng =
nullptr);
286 bool nextMultiEvent();
static AlgebraicMatrix initialize()
std::vector< double > Theta_mu
const double PlugOnShaftVz
std::vector< double > Px_ug
std::vector< double > Py_mu
std::vector< double > Py_sf
std::vector< double > E_sf
std::vector< double > Pz_mu
std::vector< double > E_ug
std::string MultiMuonFileName
std::vector< double > Vz_ug
const double PlugOnShaftVx
std::vector< double > Vz_sf
std::vector< double > Vz_mu
std::vector< double > Vx_sf
int NcloseMultiMuonEvents
std::vector< double > Vy_sf
CLHEP::HepRandomEngine * RanGen
std::vector< double > Vx_mu
SingleParticleEvent OneMuoEvt
std::vector< double > Vy_mu
MaxP
negative means MinP_CMS = MinP.
std::vector< double > T0_sf
std::vector< double > Px_mu
int MultiMuonFileFirstEvent
std::vector< double > Px_sf
std::vector< double > Vy_ug
std::pair< OmniClusterRef, TrackingParticleRef > P
std::vector< double > Pz_ug
int NskippedMultiMuonEvents
unsigned int NumberOfEvents
std::vector< double > Vx_ug
std::vector< double > P_mu
std::vector< double > Py_ug
std::vector< double > T0_ug
std::vector< double > Pz_sf