From be6101d3dd20b73a253cb6262eb2d502c22904ea Mon Sep 17 00:00:00 2001 From: Baptiste LENIAU <baptiste.leniau@subatech.in2p3.fr> Date: Thu, 29 Jan 2015 11:46:50 +0000 Subject: [PATCH] Add SetSpectrumType function. The aims is to change the isotopic branching ratio (for isomer production by reaction) according the type of neutron spectrum git-svn-id: svn+ssh://svn.in2p3.fr/class@489 0e7d625b-0364-4367-a6be-d5be4a48d228 --- source/trunk/src/IrradiationModel.cxx | 74 ++++++++++++++++++++------- 1 file changed, 56 insertions(+), 18 deletions(-) diff --git a/source/trunk/src/IrradiationModel.cxx b/source/trunk/src/IrradiationModel.cxx index 677c43594..096b3efe4 100644 --- a/source/trunk/src/IrradiationModel.cxx +++ b/source/trunk/src/IrradiationModel.cxx @@ -29,7 +29,8 @@ IrradiationModel::IrradiationModel():CLASSObject() { fShorstestHalflife = 3600.*24*2.; fZAIThreshold = 90; - + fSpectrumType ="thermal"; + fDataDirectoryName = getenv("CLASS_PATH"); fDataDirectoryName += "/data/"; @@ -41,7 +42,7 @@ IrradiationModel::IrradiationModel(CLASSLogger* log):CLASSObject(log) { fShorstestHalflife = 3600.*24*2.; fZAIThreshold = 90; - + fSpectrumType ="thermal"; fDataDirectoryName = getenv("CLASS_PATH"); fDataDirectoryName += "/data/"; @@ -443,54 +444,79 @@ void IrradiationModel::BuildReactionFiliation() { DBGL + //Isomeric Branching ratios : + + double BR_AM_242M = 0; + double BR_HO_166M = 0; + double BR_PM_148M = 0; + double BR_AG_110M = 0; + double BR_AG_108M = 0; + double BR_NP_236M = 0; + if(GetSpectrumType()=="thermal") + { + BR_AM_242M = 0.1267; + BR_HO_166M = 0.0510; + BR_PM_148M = 0.4670; + BR_AG_110M = 0.0492; + BR_AG_108M = 0.0105; + BR_NP_236M = 0.8; + } + if(GetSpectrumType()=="fast") + { + BR_AM_242M = 0.15; + BR_HO_166M = 0.0519; + BR_PM_148M = 0.4670; + BR_AG_110M = 0.0466; + BR_AG_108M = 0.0135; + BR_NP_236M = 0.8; + } // (n,Gamma) Special Reaction..... { // 241Am(n,Gamma) { - fCaptureReaction.Add( ZAI(95,241,0), ZAI(96,242,0) * 0.8733*0.827 ); //directly cut the Am242 as in MURE - fCaptureReaction.Add( ZAI(95,241,0), ZAI(94,242,0) * 0.8733*0.173 ); //directly cut the Am242 as in MURE - fCaptureReaction.Add( ZAI(95,241,0), ZAI(95,242,1) * 0.1267 ); + fCaptureReaction.Add( ZAI(95,241,0), ZAI(96,242,0) * (1-BR_AM_242M)*0.827 ); //directly cut the Am242 as in MURE + fCaptureReaction.Add( ZAI(95,241,0), ZAI(94,242,0) * (1-BR_AM_242M)*0.173 ); //directly cut the Am242 as in MURE + fCaptureReaction.Add( ZAI(95,241,0), ZAI(95,242,1) * BR_AM_242M ); } if(fReactionYieldFile!="") {// 165Ho(n,Gamma) { - fCaptureReaction.Add( ZAI(67,165,0), ZAI(68,166,0) * 0.9490 ); // - fCaptureReaction.Add( ZAI(67,165,0), ZAI(67,166,1) * 0.0510 ); // + fCaptureReaction.Add( ZAI(67,165,0), ZAI(68,166,0) * (1-BR_HO_166M) ); // + fCaptureReaction.Add( ZAI(67,165,0), ZAI(67,166,1) * BR_HO_166M ); // } // 147Pm(n,Gamma) { - fCaptureReaction.Add( ZAI(61,147,0), ZAI(61,148,0) * 0.5330 ); - fCaptureReaction.Add( ZAI(61,147,0), ZAI(61,148,1) * 0.4670 ); + fCaptureReaction.Add( ZAI(61,147,0), ZAI(61,148,0) * (1-BR_PM_148M) ); + fCaptureReaction.Add( ZAI(61,147,0), ZAI(61,148,1) * BR_PM_148M ); } // 109Ag(n, Gamma) { - fCaptureReaction.Add( ZAI(47,109,0), ZAI(48,110,0) * 0.9970*0.9508); - fCaptureReaction.Add( ZAI(47,109,0), ZAI(46,110,0) * 0.0030*0.9508); - fCaptureReaction.Add( ZAI(47,109,0), ZAI(47,110,1) *0.0492); + fCaptureReaction.Add( ZAI(47,109,0), ZAI(48,110,0) * 0.9970*(1-BR_AG_110M)); + fCaptureReaction.Add( ZAI(47,109,0), ZAI(46,110,0) * 0.0030*(1-BR_AG_110M)); + fCaptureReaction.Add( ZAI(47,109,0), ZAI(47,110,1) *BR_AG_110M); } // 107Ag(n, Gamma) { - fCaptureReaction.Add( ZAI(47,107,0), ZAI(48,108,0) * 0.9715*0.9895 ); - fCaptureReaction.Add( ZAI(47,107,0), ZAI(46,108,0) * 0.0285*0.9895 ); - fCaptureReaction.Add( ZAI(47,107,0), ZAI(47,108,1) *0.0105 ); + fCaptureReaction.Add( ZAI(47,107,0), ZAI(48,108,0) * 0.9715*(1-BR_AG_108M) ); + fCaptureReaction.Add( ZAI(47,107,0), ZAI(46,108,0) * 0.0285*(1-BR_AG_108M) ); + fCaptureReaction.Add( ZAI(47,107,0), ZAI(47,108,1) *BR_AG_108M); } } } - // (n,2n) Special Reaction..... { // 237Np(n,2n) { - fn2nReaction.Add(ZAI(93,237,0), ZAI(93,236,0) * 0.2 ); - fn2nReaction.Add(ZAI(93,237,0), ZAI(93,236,1) * 0.8 ); + fn2nReaction.Add(ZAI(93,237,0), ZAI(93,236,0) * (1-BR_NP_236M) ); + fn2nReaction.Add(ZAI(93,237,0), ZAI(93,236,1) * BR_NP_236M); } } @@ -635,4 +661,16 @@ TMatrixT<double> IrradiationModel::Getn2nXsMatrix(EvolutionData EvolutionDataSte DBGL return n2nMatrix; } +//________________________________________________________________________ +void IrradiationModel::SetSpectrumType(string type) +{ + if(type !="fast" && type != "thermal") + { + ERROR<<type<<" is not a valid spectrum type"<<endl; + ERROR<<"\tSpectrum type must be either fast or thermal"<<endl; + exit(0); + } + else + fSpectrumType=type; +} -- GitLab