diff --git a/src/tests/MuTransition/PSimulateMuTransition.cpp b/src/tests/MuTransition/PSimulateMuTransition.cpp index e5b00c347..d84dfe5d8 100644 --- a/src/tests/MuTransition/PSimulateMuTransition.cpp +++ b/src/tests/MuTransition/PSimulateMuTransition.cpp @@ -114,8 +114,10 @@ PSimulateMuTransition::PSimulateMuTransition(UInt_t seed) fMuonDecayTime = 0.; fAsymmetry = 0.27; fMuFraction = 0.; - fMuFractionState12 = 0.; - fMuFractionState23 = 0.; + fMuFractionState12 = 0.25; + fMuFractionState34 = 0.25; + fMuFractionState23 = 0.25; + fMuFractionState14 = 0.25; fDebugFlag = kFALSE; } @@ -159,7 +161,9 @@ void PSimulateMuTransition::PrintSettings() const cout << endl << "Decay asymmetry = " << fAsymmetry; cout << endl << "Muonium fraction = " << fMuFraction; cout << endl << "Muonium fraction state12 = " << fMuFractionState12; + cout << endl << "Muonium fraction state34 = " << fMuFractionState34; cout << endl << "Muonium fraction state23 = " << fMuFractionState23; + cout << endl << "Muonium fraction state14 = " << fMuFractionState14; cout << endl << "Number of particles to simulate = " << fNmuons; cout << endl << "Initial muon spin phase (degree) = " << fInitialPhase; cout << endl << "Debug flag = " << fDebugFlag; @@ -287,13 +291,11 @@ TComplex PSimulateMuTransition::GTFunction(const Double_t &time, const TString c complexPol = TComplex::Exp(-TComplex::I()*twoPi*fMuonPrecFreq*time); else{ complexPol = - 0.5 * fMuFractionState12 * - (TComplex::Exp(TComplex::I()*twoPi*fMuPrecFreq12*time) + - TComplex::Exp(-TComplex::I()*twoPi*fMuPrecFreq34*time)) + (fMuFractionState12 * TComplex::Exp(TComplex::I()*twoPi*fMuPrecFreq12*time) + + fMuFractionState34 * TComplex::Exp(-TComplex::I()*twoPi*fMuPrecFreq34*time)) + - 0.5 * fMuFractionState23 * - (TComplex::Exp(TComplex::I()*twoPi*fMuPrecFreq23*time) + - TComplex::Exp(TComplex::I()*twoPi*fMuPrecFreq14*time)); + (fMuFractionState23 * TComplex::Exp(TComplex::I()*twoPi*fMuPrecFreq23*time) + + fMuFractionState14 * TComplex::Exp(TComplex::I()*twoPi*fMuPrecFreq14*time)); } return complexPol; diff --git a/src/tests/MuTransition/PSimulateMuTransition.h b/src/tests/MuTransition/PSimulateMuTransition.h index a5a44f4fc..552ff132e 100644 --- a/src/tests/MuTransition/PSimulateMuTransition.h +++ b/src/tests/MuTransition/PSimulateMuTransition.h @@ -60,7 +60,9 @@ class PSimulateMuTransition : public TObject virtual void SetDecayAsymmetry(Double_t value){ fAsymmetry = value; } //!< muon decay asymmetry virtual void SetMuFraction(Double_t value){ fMuFraction = value; } //!< Muonium fraction virtual void SetMuFractionState12(Double_t value){ fMuFractionState12 = value; } + virtual void SetMuFractionState34(Double_t value){ fMuFractionState34 = value; } virtual void SetMuFractionState23(Double_t value){ fMuFractionState23 = value; } + virtual void SetMuFractionState14(Double_t value){ fMuFractionState14 = value; } virtual Bool_t IsValid() { return fValid; } virtual void SetSeed(UInt_t seed); @@ -88,8 +90,10 @@ class PSimulateMuTransition : public TObject Double_t fMuonPhase; //!< phase of muon spin Double_t fAsymmetry; //!< muon decay asymmetry Double_t fMuFraction; //!< total Mu fraction [0,1] - Double_t fMuFractionState12; //!< fraction of Mu in state 12, 34 - Double_t fMuFractionState23; //!< fraction of Mu in state 23, 14 + Double_t fMuFractionState12; //!< fraction of Mu in state 12 + Double_t fMuFractionState34; //!< fraction of Mu in state 34 + Double_t fMuFractionState23; //!< fraction of Mu in state 23 + Double_t fMuFractionState14; //!< fraction of Mu in state 14 Int_t fNmuons; //!< number of muons to simulate Bool_t fDebugFlag; //!< debug flag diff --git a/src/tests/MuTransition/runMuSimulation.C b/src/tests/MuTransition/runMuSimulation.C index c88074b02..80e0e5891 100644 --- a/src/tests/MuTransition/runMuSimulation.C +++ b/src/tests/MuTransition/runMuSimulation.C @@ -65,8 +65,10 @@ void runMuSimulation() Double_t Freq23 = 256.245; //Mu freq of the 23 transition Double_t Freq14 = 356.245; //Mu freq of the 14 transition Double_t MuFrac = 1.0; //total Mu fraction - Double_t MuFrac12 = 2*0.487; //Mu in states 12 and 34 - Double_t MuFrac23 = 2*0.013; //Mu in states 23 and 14 + Double_t MuFrac12 = 0.487; //weight of transition 12 + Double_t MuFrac34 = 0.487; //weight of transition 34 + Double_t MuFrac23 = 0.013; //weight of transition 23 + Double_t MuFrac14 = 0.013; //weight of transition 14 Int_t Nmuons = 5e6; //number of muons Double_t Asym = 0.27; //muon decay asymmetry Int_t debugFlag = 0; //print debug information on screen @@ -90,8 +92,10 @@ void runMuSimulation() simulateMuTransition->SetMuPrecFreq23(Freq23); // MHz simulateMuTransition->SetMuPrecFreq14(Freq14); // MHz simulateMuTransition->SetMuFraction(MuFrac); // initial Mu fraction - simulateMuTransition->SetMuFractionState12(MuFrac12); // Mu in states 12, 34 - simulateMuTransition->SetMuFractionState23(MuFrac23); // Mu in states 23, 14 + simulateMuTransition->SetMuFractionState12(MuFrac12); + simulateMuTransition->SetMuFractionState34(MuFrac34); + simulateMuTransition->SetMuFractionState23(MuFrac23); + simulateMuTransition->SetMuFractionState14(MuFrac14); simulateMuTransition->SetBfield(B/10000.); // Tesla simulateMuTransition->SetCaptureRate(capRate); // MHz simulateMuTransition->SetIonizationRate(ionRate); // MHz @@ -169,7 +173,9 @@ void runMuSimulation() header->Set("Simulation/Mu0 Precession frequency 14", Freq14); header->Set("Simulation/Mu0 Fraction", MuFrac); header->Set("Simulation/Mu0 Fraction 12", MuFrac12); + header->Set("Simulation/Mu0 Fraction 34", MuFrac34); header->Set("Simulation/Mu0 Fraction 23", MuFrac23); + header->Set("Simulation/Mu0 Fraction 14", MuFrac14); header->Set("Simulation/muon Capture Rate", capRate); header->Set("Simulation/Mu0 Ionization Rate", ionRate); header->Set("Simulation/Mu0 Spin Flip Rate", spinFlipRate);