diff --git a/gui/CLASSPlotElement.cxx b/gui/CLASSPlotElement.cxx index 704d1fc9e2027a106bf8d72a1c587354015694ff..9028932cc72a21e3c87caaa6e21600e49d297933 100644 --- a/gui/CLASSPlotElement.cxx +++ b/gui/CLASSPlotElement.cxx @@ -5,24 +5,24 @@ using namespace std; // for gcc3.2.3 only -CLASSPlotElement::CLASSPlotElement(int treeId, int facilityId, int facylitynumber, int IVNumber, ZAI zai) +CLASSPlotElement::CLASSPlotElement(int treeId, int facilityId, int facilitynumber, int IVNumber, ZAI zai) { fTreeId = treeId; fFacilityId = facilityId; - fFacylityNumber = facylitynumber; + fFacilityNumber = facilitynumber; fIVNumber = IVNumber; fZAI = zai; } -CLASSPlotElement::CLASSPlotElement(int treeId, int facilityId, int facylitynumber, int IVNumber, int Z, int A, int I) +CLASSPlotElement::CLASSPlotElement(int treeId, int facilityId, int facilitynumber, int IVNumber, int Z, int A, int I) { fTreeId = treeId; fFacilityId = facilityId; - fFacylityNumber = facylitynumber; + fFacilityNumber = facilitynumber; fIVNumber = IVNumber; fZAI = ZAI(Z,A,I); diff --git a/gui/CLASSPlotElement.hxx b/gui/CLASSPlotElement.hxx index 2d05c8ba5b5e1b1ed6ed09b746621eedab1b64c7..7b019651fb96a6b2e11909d0b4381ff6968bf59c 100644 --- a/gui/CLASSPlotElement.hxx +++ b/gui/CLASSPlotElement.hxx @@ -32,11 +32,12 @@ class CLASSPlotElement // 4 FabricationPlant int fIVNumber; // Id of IsotopicVector - // 0 Incycle + // 0 Inventory // 1 CumulativeIN // 2 CulumativeOUT + // 3 Ratio of mass of selected ZAI(s) over Total Mass of Actinides - int fFacylityNumber; // Id of Facility + int fFacilityNumber; // Id of Facility // For General : // 0 TOTAL // 1 INCYCLE diff --git a/gui/CLASSRead.cxx b/gui/CLASSRead.cxx index aab2e7f95f5fd839497331e58ed80d4f5373986b..9f4fb4ef1342ddd05b7763165caeb91a2b570c0b 100644 --- a/gui/CLASSRead.cxx +++ b/gui/CLASSRead.cxx @@ -299,10 +299,16 @@ void CLASSRead::PlotInv(vector<CLASSPlotElement> toplot, bool DecayChain, int St Ymax = -1.e36; bool SumOfSelected = false; - - if(toplot[0].fTreeId == -1 ) + bool SumOfSelectedOnly = false; + if(toplot[0].fTreeId == -1) + { + SumOfSelected = true; + toplot.erase(toplot.begin()); + } + else if(toplot[0].fTreeId == -10) { SumOfSelected = true; + SumOfSelectedOnly = true; toplot.erase(toplot.begin()); } @@ -369,6 +375,9 @@ void CLASSRead::PlotInv(vector<CLASSPlotElement> toplot, bool DecayChain, int St TH1F* fhr = fCNucleiInv->DrawFrame(Xmin,Ymin*0.95,Xmax,Ymax*1.05); string Xtitle = "Time [year]"; string Ytitle = "Mass [kg]"; + if(toplot[0].fIVNumber==3){//Only mass ratio are ploted + Ytitle = "Mass ratio"; + } fhr->SetXTitle(Xtitle.c_str()); fhr->SetYTitle(Ytitle.c_str()); fhr->GetXaxis()->CenterTitle(); @@ -405,35 +414,35 @@ void CLASSRead::PlotInv(vector<CLASSPlotElement> toplot, bool DecayChain, int St } - - for (int i = 0; i < (int)fGraphInv.size(); i++) - { - if( i != 0 || SumOfSelected) out += " same"; - - fGraphInv[i]->SetName(GetTittleOutName(toplot[i]).c_str()); - fGraphInv[i]->SetTitle(GetTittleOutName(toplot[i]).c_str()); - fGraphInv[i]->SetLineColor(CurveColor(i)); - fGraphInv[i]->SetMarkerColor(CurveColor(i)); - fGraphInv[i]->SetMarkerStyle(10); - fGraphInv[i]->Draw(out.c_str()); - fGraphInv[i]->SetLineColor(CurveColor(i)); - fGraphInv[i]->SetMarkerColor(CurveColor(i)); - - double x; - double y; - double x_0; - double y_0; - fGraphInv[i]->GetPoint(1, x_0, y_0); + if(!SumOfSelectedOnly){ + for (int i = 0; i < (int)fGraphInv.size(); i++) + { + if( i != 0 || SumOfSelected) out += " same"; + + fGraphInv[i]->SetName(GetTittleOutName(toplot[i]).c_str()); + fGraphInv[i]->SetTitle(GetTittleOutName(toplot[i]).c_str()); + fGraphInv[i]->SetLineColor(CurveColor(i)); + fGraphInv[i]->SetMarkerColor(CurveColor(i)); + fGraphInv[i]->SetMarkerStyle(10); + fGraphInv[i]->Draw(out.c_str()); + fGraphInv[i]->SetLineColor(CurveColor(i)); + fGraphInv[i]->SetMarkerColor(CurveColor(i)); + + double x; + double y; + double x_0; + double y_0; + fGraphInv[i]->GetPoint(1, x_0, y_0); - fGraphInv[i]->GetPoint(fGraphInv[i]->GetN()-1, x, y); + fGraphInv[i]->GetPoint(fGraphInv[i]->GetN()-1, x, y); - fLegendInv[i] = new TLatex(x_0+0.6*(x-x_0),y_0+1.05*(y-y_0),GetLegendOutName(toplot[i]).c_str()); - fLegendInv[i]->SetTextSize(0.05); - fLegendInv[i]->SetTextFont(132); - fLegendInv[i]->SetTextColor(CurveColor(i)); - fLegendInv[i]->Draw(); + fLegendInv[i] = new TLatex(x_0+0.6*(x-x_0),y_0+1.05*(y-y_0),GetLegendOutName(toplot[i]).c_str()); + fLegendInv[i]->SetTextSize(0.05); + fLegendInv[i]->SetTextFont(132); + fLegendInv[i]->SetTextColor(CurveColor(i)); + fLegendInv[i]->Draw(); + } } - fCNucleiInv->Update(); @@ -483,12 +492,18 @@ void CLASSRead::PlotTox(vector<CLASSPlotElement> toplot, bool DecayChain, int St Ymax = -1.e36; bool SumOfSelected = false; - - if(toplot[0].fTreeId == -1 ) + bool SumOfSelectedOnly = false; + if(toplot[0].fTreeId == -1) { SumOfSelected = true; toplot.erase(toplot.begin()); } + else if(toplot[0].fTreeId == -10) + { + SumOfSelected = true; + SumOfSelectedOnly = true; + toplot.erase(toplot.begin()); + } for (int i = 0; i < (int)toplot.size(); i++) { @@ -587,35 +602,36 @@ void CLASSRead::PlotTox(vector<CLASSPlotElement> toplot, bool DecayChain, int St } - - for (int i = 0; i < (int)fGraphTox.size(); i++) - { - if( i != 0 || SumOfSelected) out += " same"; + if(!SumOfSelectedOnly){ + for (int i = 0; i < (int)fGraphTox.size(); i++) + { + if( i != 0 || SumOfSelected) out += " same"; - fGraphTox[i]->SetName(GetTittleOutName(toplot[i]).c_str()); - fGraphTox[i]->SetTitle(GetTittleOutName(toplot[i]).c_str()); - fGraphTox[i]->SetLineColor(CurveColor(i)); - fGraphTox[i]->SetMarkerColor(CurveColor(i)); - fGraphTox[i]->SetMarkerStyle(10); - fGraphTox[i]->Draw(out.c_str()); - fGraphTox[i]->SetLineColor(CurveColor(i)); - fGraphTox[i]->SetMarkerColor(CurveColor(i)); + fGraphTox[i]->SetName(GetTittleOutName(toplot[i]).c_str()); + fGraphTox[i]->SetTitle(GetTittleOutName(toplot[i]).c_str()); + fGraphTox[i]->SetLineColor(CurveColor(i)); + fGraphTox[i]->SetMarkerColor(CurveColor(i)); + fGraphTox[i]->SetMarkerStyle(10); + fGraphTox[i]->Draw(out.c_str()); + fGraphTox[i]->SetLineColor(CurveColor(i)); + fGraphTox[i]->SetMarkerColor(CurveColor(i)); - double x; - double y; - double x_0; - double y_0; - fGraphTox[i]->GetPoint(1, x_0, y_0); + double x; + double y; + double x_0; + double y_0; + fGraphTox[i]->GetPoint(1, x_0, y_0); - fGraphTox[i]->GetPoint(fGraphTox[i]->GetN()-1, x, y); + fGraphTox[i]->GetPoint(fGraphTox[i]->GetN()-1, x, y); - fLegendTox[i] = new TLatex(x_0+0.6*(x-x_0),y_0+1.05*(y-y_0),GetLegendOutName(toplot[i]).c_str()); - fLegendTox[i]->SetTextSize(0.05); - fLegendTox[i]->SetTextFont(132); - fLegendTox[i]->SetTextColor(CurveColor(i)); - fLegendTox[i]->Draw(); + fLegendTox[i] = new TLatex(x_0+0.6*(x-x_0),y_0+1.05*(y-y_0),GetLegendOutName(toplot[i]).c_str()); + fLegendTox[i]->SetTextSize(0.05); + fLegendTox[i]->SetTextFont(132); + fLegendTox[i]->SetTextColor(CurveColor(i)); + fLegendTox[i]->Draw(); + } } - + fCNucleiTox->Update(); @@ -666,10 +682,16 @@ void CLASSRead::PlotHeat(vector<CLASSPlotElement> toplot, bool DecayChain, int S Ymax = -1.e36; bool SumOfSelected = false; - - if(toplot[0].fTreeId == -1 ) + bool SumOfSelectedOnly = false; + if(toplot[0].fTreeId == -1) + { + SumOfSelected = true; + toplot.erase(toplot.begin()); + } + else if(toplot[0].fTreeId == -10) { SumOfSelected = true; + SumOfSelectedOnly = true; toplot.erase(toplot.begin()); } @@ -768,35 +790,36 @@ void CLASSRead::PlotHeat(vector<CLASSPlotElement> toplot, bool DecayChain, int S } - - for (int i = 0; i < (int)fGraphHeat.size(); i++) - { - if( i != 0 || SumOfSelected) out += " same"; + if(!SumOfSelectedOnly){ + for (int i = 0; i < (int)fGraphHeat.size(); i++) + { + if( i != 0 || SumOfSelected) out += " same"; - fGraphHeat[i]->SetName(GetTittleOutName(toplot[i]).c_str()); - fGraphHeat[i]->SetTitle(GetTittleOutName(toplot[i]).c_str()); - fGraphHeat[i]->SetLineColor(CurveColor(i)); - fGraphHeat[i]->SetMarkerColor(CurveColor(i)); - fGraphHeat[i]->SetMarkerStyle(10); - fGraphHeat[i]->Draw(out.c_str()); - fGraphHeat[i]->SetLineColor(CurveColor(i)); - fGraphHeat[i]->SetMarkerColor(CurveColor(i)); + fGraphHeat[i]->SetName(GetTittleOutName(toplot[i]).c_str()); + fGraphHeat[i]->SetTitle(GetTittleOutName(toplot[i]).c_str()); + fGraphHeat[i]->SetLineColor(CurveColor(i)); + fGraphHeat[i]->SetMarkerColor(CurveColor(i)); + fGraphHeat[i]->SetMarkerStyle(10); + fGraphHeat[i]->Draw(out.c_str()); + fGraphHeat[i]->SetLineColor(CurveColor(i)); + fGraphHeat[i]->SetMarkerColor(CurveColor(i)); - double x; - double y; - double x_0; - double y_0; - fGraphHeat[i]->GetPoint(1, x_0, y_0); + double x; + double y; + double x_0; + double y_0; + fGraphHeat[i]->GetPoint(1, x_0, y_0); - fGraphHeat[i]->GetPoint(fGraphHeat[i]->GetN()-1, x, y); + fGraphHeat[i]->GetPoint(fGraphHeat[i]->GetN()-1, x, y); - fLegendHeat[i] = new TLatex(x_0+0.6*(x-x_0),y_0+1.05*(y-y_0),GetLegendOutName(toplot[i]).c_str()); - fLegendHeat[i]->SetTextSize(0.05); - fLegendHeat[i]->SetTextFont(132); - fLegendHeat[i]->SetTextColor(CurveColor(i)); - fLegendHeat[i]->Draw(); + fLegendHeat[i] = new TLatex(x_0+0.6*(x-x_0),y_0+1.05*(y-y_0),GetLegendOutName(toplot[i]).c_str()); + fLegendHeat[i]->SetTextSize(0.05); + fLegendHeat[i]->SetTextFont(132); + fLegendHeat[i]->SetTextColor(CurveColor(i)); + fLegendHeat[i]->Draw(); + } } - + fCNucleiHeat->Update(); @@ -858,15 +881,15 @@ void CLASSRead::BuildTGraph(vector<CLASSPlotElement> toplot, int PlotId, string fData[toplot[0].fTreeId]->SetBranchStatus(ActiveInBranchName.c_str(),1); if(toplot[i].fFacilityId == 0) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &IV[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &IV[toplot[i].fFacilityNumber]); else if(toplot[i].fFacilityId == 1) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &reactor[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &reactor[toplot[i].fFacilityNumber]); else if(toplot[i].fFacilityId == 2) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &stock[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &stock[toplot[i].fFacilityNumber]); else if(toplot[i].fFacilityId == 3) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &pool[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &pool[toplot[i].fFacilityNumber]); else if(toplot[i].fFacilityId == 4) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &fabricationplant[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &fabricationplant[toplot[i].fFacilityNumber]); } @@ -881,189 +904,129 @@ void CLASSRead::BuildTGraph(vector<CLASSPlotElement> toplot, int PlotId, string for (int i = 0; i < (int)toplot.size(); i++) { + int Z = toplot[i].fZAI.Z(); + int A = toplot[i].fZAI.A(); + int I = toplot[i].fZAI.I(); + double ZAIQuantity = 0; - if(toplot[i].fFacilityId == 0) + if(toplot[i].fFacilityId == 0)// 0 General { - int Z = toplot[i].fZAI.Z(); - int A = toplot[i].fZAI.A(); - int I = toplot[i].fZAI.I(); - double ZAIQuantity = IV[toplot[i].fFacylityNumber]->GetZAIIsotopicQuantity(Z,A,I); - - if(PlotId == 0) - ZAIQuantity *= cZAIMass.GetMass(Z,A)/AVOGADRO*1e-3; - else if(PlotId == 1) - ZAIQuantity *= cZAITox.GetRadioTox(Z,A,I); - else if(PlotId == 2) - ZAIQuantity *= cZAIHeat.GetHeat(Z,A,I); + if( toplot[i].fIVNumber == 0 ) + ZAIQuantity = IV[toplot[i].fFacilityNumber]->GetZAIIsotopicQuantity(Z,A,I); + else if( toplot[i].fIVNumber == 3 ) + { + if(IV[toplot[i].fFacilityNumber]->GetActinidesComposition().GetTotalMass()!=0) + ZAIQuantity = 1e-3*IV[toplot[i].fFacilityNumber]->GetZAIIsotopicQuantity(Z,A,I)/IV[toplot[i].fFacilityNumber]->GetActinidesComposition().GetTotalMass(); + } + else if ( toplot[i].fIVNumber < 3 ) + { + cout << "WARNING Cumulative IVs undefined for general quantities" << endl; + } else { - cout << "Bad PlotId" << endl; + cout << "Bad IVNumber" << endl; return; } - - vQuantity[i].push_back(ZAIQuantity); - - - - if(Ymin>ZAIQuantity) Ymin = ZAIQuantity; - if(Ymax<ZAIQuantity) Ymax = ZAIQuantity; - } - else if(toplot[i].fFacilityId == 1) + else if(toplot[i].fFacilityId == 1)// 1 reactor { - int Z = toplot[i].fZAI.Z(); - int A = toplot[i].fZAI.A(); - int I = toplot[i].fZAI.I(); - - double ZAIQuantity = 0; - if( toplot[i].fIVNumber == 0 ) - ZAIQuantity = reactor[toplot[i].fFacylityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I); + ZAIQuantity = reactor[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I); else if( toplot[i].fIVNumber == 1 ) - ZAIQuantity = reactor[toplot[i].fFacylityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I); + ZAIQuantity = reactor[toplot[i].fFacilityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I); else if( toplot[i].fIVNumber == 2 ) - ZAIQuantity = reactor[toplot[i].fFacylityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I); - else + ZAIQuantity = reactor[toplot[i].fFacilityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I); + else if( toplot[i].fIVNumber == 3 ) { - cout << "Bad IVNumber" << endl; - return; + if(reactor[toplot[i].fFacilityNumber]->GetInsideIV().GetActinidesComposition().GetTotalMass()!=0) + ZAIQuantity = 1e-3*reactor[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I)/reactor[toplot[i].fFacilityNumber]->GetInsideIV().GetActinidesComposition().GetTotalMass(); } - - if(PlotId == 0) - ZAIQuantity *= cZAIMass.GetMass(Z,A)/AVOGADRO*1e-3; - else if(PlotId == 1) - ZAIQuantity *= cZAITox.GetRadioTox(Z,A,I); - else if(PlotId == 2) - ZAIQuantity *= cZAIHeat.GetHeat(Z,A,I); else { - cout << "Bad PlotId" << endl; + cout << "Bad IVNumber" << endl; return; } - - vQuantity[i].push_back(ZAIQuantity); - - if(Ymin>ZAIQuantity) Ymin = ZAIQuantity; - if(Ymax<ZAIQuantity) Ymax = ZAIQuantity; - } - else if(toplot[i].fFacilityId == 2) + else if(toplot[i].fFacilityId == 2)// 2 Stock { - int Z = toplot[i].fZAI.Z(); - int A = toplot[i].fZAI.A(); - int I = toplot[i].fZAI.I(); - - double ZAIQuantity = 0; - if( toplot[i].fIVNumber == 0 ) - ZAIQuantity = stock[toplot[i].fFacylityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I); + ZAIQuantity = stock[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I); else if( toplot[i].fIVNumber == 1 ) - ZAIQuantity = stock[toplot[i].fFacylityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I); + ZAIQuantity = stock[toplot[i].fFacilityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I); else if( toplot[i].fIVNumber == 2 ) - ZAIQuantity = stock[toplot[i].fFacylityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I); - else + ZAIQuantity = stock[toplot[i].fFacilityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I); + else if( toplot[i].fIVNumber == 3 ) { - cout << "Bad IVNumber" << endl; - return; + if(stock[toplot[i].fFacilityNumber]->GetInsideIV().GetActinidesComposition().GetTotalMass()!=0) + ZAIQuantity = 1e-3*stock[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I)/stock[toplot[i].fFacilityNumber]->GetInsideIV().GetActinidesComposition().GetTotalMass(); } - - if(PlotId == 0) - ZAIQuantity *= cZAIMass.GetMass(Z,A)/AVOGADRO*1e-3; - else if(PlotId == 1) - ZAIQuantity *= cZAITox.GetRadioTox(Z,A,I); - else if(PlotId == 2) - ZAIQuantity *= cZAIHeat.GetHeat(Z,A,I); else { - cout << "Bad PlotId" << endl; + cout << "Bad IVNumber" << endl; return; } - - vQuantity[i].push_back(ZAIQuantity); - - - if(Ymin>ZAIQuantity) Ymin = ZAIQuantity; - if(Ymax<ZAIQuantity) Ymax = ZAIQuantity; - } - else if(toplot[i].fFacilityId == 3) + else if(toplot[i].fFacilityId == 3)// 3 Pool { - int Z = toplot[i].fZAI.Z(); - int A = toplot[i].fZAI.A(); - int I = toplot[i].fZAI.I(); - - double ZAIQuantity = 0; - if( toplot[i].fIVNumber == 0 ) - ZAIQuantity = pool[toplot[i].fFacylityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I); + ZAIQuantity = pool[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I); else if( toplot[i].fIVNumber == 1 ) - ZAIQuantity = pool[toplot[i].fFacylityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I); + ZAIQuantity = pool[toplot[i].fFacilityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I); else if( toplot[i].fIVNumber == 2 ) - ZAIQuantity = pool[toplot[i].fFacylityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I); - else + ZAIQuantity = pool[toplot[i].fFacilityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I); + else if( toplot[i].fIVNumber == 3 ) { - cout << "Bad IVNumber" << endl; - return; + if(pool[toplot[i].fFacilityNumber]->GetInsideIV().GetActinidesComposition().GetTotalMass()!=0) + ZAIQuantity = 1e-3*pool[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I)/pool[toplot[i].fFacilityNumber]->GetInsideIV().GetActinidesComposition().GetTotalMass(); } - - if(PlotId == 0) - ZAIQuantity *= cZAIMass.GetMass(Z,A)/AVOGADRO*1e-3; - else if(PlotId == 1) - ZAIQuantity *= cZAITox.GetRadioTox(Z,A,I); - else if(PlotId == 2) - ZAIQuantity *= cZAIHeat.GetHeat(Z,A,I); else { - cout << "Bad PlotId" << endl; + cout << "Bad IVNumber" << endl; return; } - - vQuantity[i].push_back(ZAIQuantity); - - - if(Ymin>ZAIQuantity) Ymin = ZAIQuantity; - if(Ymax<ZAIQuantity) Ymax = ZAIQuantity; - } - else if(toplot[i].fFacilityId == 4) + else if(toplot[i].fFacilityId == 4)// 4 FabricationPlant { - int Z = toplot[i].fZAI.Z(); - int A = toplot[i].fZAI.A(); - int I = toplot[i].fZAI.I(); - - double ZAIQuantity = 0; - if( toplot[i].fIVNumber == 0 ) - ZAIQuantity = fabricationplant[toplot[i].fFacylityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I); + ZAIQuantity = fabricationplant[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I); else if( toplot[i].fIVNumber == 1 ) - ZAIQuantity = fabricationplant[toplot[i].fFacylityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I); + ZAIQuantity = fabricationplant[toplot[i].fFacilityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I); else if( toplot[i].fIVNumber == 2 ) - ZAIQuantity = fabricationplant[toplot[i].fFacylityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I); - else + ZAIQuantity = fabricationplant[toplot[i].fFacilityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I); + else if( toplot[i].fIVNumber == 3 ) { - cout << "Bad IVNumber" << endl; - return; + if(fabricationplant[toplot[i].fFacilityNumber]->GetInsideIV().GetActinidesComposition().GetTotalMass()!=0) + ZAIQuantity = 1e-3*fabricationplant[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I)/fabricationplant[toplot[i].fFacilityNumber]->GetInsideIV().GetActinidesComposition().GetTotalMass(); } - - if(PlotId == 0) - ZAIQuantity *= cZAIMass.GetMass(Z,A)/AVOGADRO*1e-3; - else if(PlotId == 1) - ZAIQuantity *= cZAITox.GetRadioTox(Z,A,I); - else if(PlotId == 2) - ZAIQuantity *= cZAIHeat.GetHeat(Z,A,I); else { - cout << "Bad PlotId" << endl; + cout << "Bad IVNumber" << endl; return; } + } + else + { + cout << "Bad FacilityId" << endl; + return; + } - vQuantity[i].push_back(ZAIQuantity); - - if(Ymin>ZAIQuantity) Ymin = ZAIQuantity; - if(Ymax<ZAIQuantity) Ymax = ZAIQuantity; - + if(PlotId == 0 ) + ZAIQuantity *= cZAIMass.GetMass(Z,A)/AVOGADRO*1e-3; + else if(PlotId == 1) + ZAIQuantity *= cZAITox.GetRadioTox(Z,A,I); + else if(PlotId == 2) + ZAIQuantity *= cZAIHeat.GetHeat(Z,A,I); + else + { + cout << "Bad PlotId" << endl; + return; } + + vQuantity[i].push_back(ZAIQuantity); + + if(Ymin>ZAIQuantity) Ymin = ZAIQuantity; + if(Ymax<ZAIQuantity) Ymax = ZAIQuantity; } @@ -1157,15 +1120,15 @@ void CLASSRead::BuildTGraphUsingDecayChain(vector<CLASSPlotElement> toplot, int fData[toplot[0].fTreeId]->SetBranchStatus(ActiveInBranchName.c_str(),1); if(toplot[i].fFacilityId == 0) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &IV[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &IV[toplot[i].fFacilityNumber]); else if(toplot[i].fFacilityId == 1) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &reactor[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &reactor[toplot[i].fFacilityNumber]); else if(toplot[i].fFacilityId == 2) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &stock[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &stock[toplot[i].fFacilityNumber]); else if(toplot[i].fFacilityId == 3) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &pool[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &pool[toplot[i].fFacilityNumber]); else if(toplot[i].fFacilityId == 4) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &fabricationplant[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &fabricationplant[toplot[i].fFacilityNumber]); } @@ -1187,7 +1150,7 @@ void CLASSRead::BuildTGraphUsingDecayChain(vector<CLASSPlotElement> toplot, int int Z = toplot[i].fZAI.Z(); int A = toplot[i].fZAI.A(); int I = toplot[i].fZAI.I(); - IsotopicVector ZAIQuantity = IV[toplot[i].fFacylityNumber]->GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + IsotopicVector ZAIQuantity = IV[toplot[i].fFacilityNumber]->GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); vIV[i].push_back(ZAIQuantity); @@ -1201,11 +1164,11 @@ void CLASSRead::BuildTGraphUsingDecayChain(vector<CLASSPlotElement> toplot, int IsotopicVector ZAIQuantity; if( toplot[i].fIVNumber == 0 ) - ZAIQuantity = reactor[toplot[i].fFacylityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + ZAIQuantity = reactor[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); else if( toplot[i].fIVNumber == 1 ) - ZAIQuantity = reactor[toplot[i].fFacylityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + ZAIQuantity = reactor[toplot[i].fFacilityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); else if( toplot[i].fIVNumber == 2 ) - ZAIQuantity = reactor[toplot[i].fFacylityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + ZAIQuantity = reactor[toplot[i].fFacilityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); else { cout << "Bad IVNumber" << endl; @@ -1224,11 +1187,11 @@ void CLASSRead::BuildTGraphUsingDecayChain(vector<CLASSPlotElement> toplot, int IsotopicVector ZAIQuantity; if( toplot[i].fIVNumber == 0 ) - ZAIQuantity = stock[toplot[i].fFacylityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + ZAIQuantity = stock[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); else if( toplot[i].fIVNumber == 1 ) - ZAIQuantity = stock[toplot[i].fFacylityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + ZAIQuantity = stock[toplot[i].fFacilityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); else if( toplot[i].fIVNumber == 2 ) - ZAIQuantity = stock[toplot[i].fFacylityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + ZAIQuantity = stock[toplot[i].fFacilityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); else { cout << "Bad IVNumber" << endl; @@ -1247,11 +1210,11 @@ void CLASSRead::BuildTGraphUsingDecayChain(vector<CLASSPlotElement> toplot, int IsotopicVector ZAIQuantity; if( toplot[i].fIVNumber == 0 ) - ZAIQuantity = pool[toplot[i].fFacylityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + ZAIQuantity = pool[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); else if( toplot[i].fIVNumber == 1 ) - ZAIQuantity = pool[toplot[i].fFacylityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + ZAIQuantity = pool[toplot[i].fFacilityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); else if( toplot[i].fIVNumber == 2 ) - ZAIQuantity = pool[toplot[i].fFacylityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + ZAIQuantity = pool[toplot[i].fFacilityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); else { cout << "Bad IVNumber" << endl; @@ -1270,11 +1233,11 @@ void CLASSRead::BuildTGraphUsingDecayChain(vector<CLASSPlotElement> toplot, int IsotopicVector ZAIQuantity; if( toplot[i].fIVNumber == 0 ) - ZAIQuantity = fabricationplant[toplot[i].fFacylityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + ZAIQuantity = fabricationplant[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); else if( toplot[i].fIVNumber == 1 ) - ZAIQuantity = fabricationplant[toplot[i].fFacylityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + ZAIQuantity = fabricationplant[toplot[i].fFacilityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); else if( toplot[i].fIVNumber == 2 ) - ZAIQuantity = fabricationplant[toplot[i].fFacylityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); + ZAIQuantity = fabricationplant[toplot[i].fFacilityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I) * ZAI(Z,A,I); else { cout << "Bad IVNumber" << endl; @@ -1720,15 +1683,15 @@ void CLASSRead::ConvertxmlTTreeMass(vector<CLASSPlotElement> toplot, string file fData[toplot[0].fTreeId]->SetBranchStatus(ActiveInBranchName.c_str(),1); if(toplot[i].fFacilityId == 0) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &IV[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &IV[toplot[i].fFacilityNumber]); else if(toplot[i].fFacilityId == 1) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &reactor[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &reactor[toplot[i].fFacilityNumber]); else if(toplot[i].fFacilityId == 2) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &stock[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &stock[toplot[i].fFacilityNumber]); else if(toplot[i].fFacilityId == 3) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &pool[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &pool[toplot[i].fFacilityNumber]); else if(toplot[i].fFacilityId == 4) - fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &fabricationplant[toplot[i].fFacylityNumber]); + fData[toplot[i].fTreeId]->SetBranchAddress(InBranchName.c_str(), &fabricationplant[toplot[i].fFacilityNumber]); } @@ -1749,7 +1712,7 @@ void CLASSRead::ConvertxmlTTreeMass(vector<CLASSPlotElement> toplot, string file int Z = toplot[i].fZAI.Z(); int A = toplot[i].fZAI.A(); int I = toplot[i].fZAI.I(); - double ZAIQuantity = IV[toplot[i].fFacylityNumber]->GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + double ZAIQuantity = IV[toplot[i].fFacilityNumber]->GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; vQuantity[i].push_back(ZAIQuantity); @@ -1768,11 +1731,11 @@ void CLASSRead::ConvertxmlTTreeMass(vector<CLASSPlotElement> toplot, string file double ZAIQuantity = 0; if( toplot[i].fIVNumber == 0 ) - ZAIQuantity = reactor[toplot[i].fFacylityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + ZAIQuantity = reactor[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; else if( toplot[i].fIVNumber == 1 ) - ZAIQuantity = reactor[toplot[i].fFacylityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + ZAIQuantity = reactor[toplot[i].fFacilityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; else if( toplot[i].fIVNumber == 2 ) - ZAIQuantity = reactor[toplot[i].fFacylityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + ZAIQuantity = reactor[toplot[i].fFacilityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; else { cout << "Bad IVNumber" << endl; @@ -1794,11 +1757,11 @@ void CLASSRead::ConvertxmlTTreeMass(vector<CLASSPlotElement> toplot, string file double ZAIQuantity = 0; if( toplot[i].fIVNumber == 0 ) - ZAIQuantity = stock[toplot[i].fFacylityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + ZAIQuantity = stock[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; else if( toplot[i].fIVNumber == 1 ) - ZAIQuantity = stock[toplot[i].fFacylityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + ZAIQuantity = stock[toplot[i].fFacilityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; else if( toplot[i].fIVNumber == 2 ) - ZAIQuantity = stock[toplot[i].fFacylityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + ZAIQuantity = stock[toplot[i].fFacilityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; else { cout << "Bad IVNumber" << endl; @@ -1821,11 +1784,11 @@ void CLASSRead::ConvertxmlTTreeMass(vector<CLASSPlotElement> toplot, string file double ZAIQuantity = 0; if( toplot[i].fIVNumber == 0 ) - ZAIQuantity = pool[toplot[i].fFacylityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + ZAIQuantity = pool[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; else if( toplot[i].fIVNumber == 1 ) - ZAIQuantity = pool[toplot[i].fFacylityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + ZAIQuantity = pool[toplot[i].fFacilityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; else if( toplot[i].fIVNumber == 2 ) - ZAIQuantity = pool[toplot[i].fFacylityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + ZAIQuantity = pool[toplot[i].fFacilityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; else { cout << "Bad IVNumber" << endl; @@ -1848,11 +1811,11 @@ void CLASSRead::ConvertxmlTTreeMass(vector<CLASSPlotElement> toplot, string file double ZAIQuantity = 0; if( toplot[i].fIVNumber == 0 ) - ZAIQuantity = fabricationplant[toplot[i].fFacylityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + ZAIQuantity = fabricationplant[toplot[i].fFacilityNumber]->GetInsideIV().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; else if( toplot[i].fIVNumber == 1 ) - ZAIQuantity = fabricationplant[toplot[i].fFacylityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + ZAIQuantity = fabricationplant[toplot[i].fFacilityNumber]->GetCumulativeIVIn().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; else if( toplot[i].fIVNumber == 2 ) - ZAIQuantity = fabricationplant[toplot[i].fFacylityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; + ZAIQuantity = fabricationplant[toplot[i].fFacilityNumber]->GetCumulativeIVOut().GetZAIIsotopicQuantity(Z,A,I)*A/6.02e23*1e-3; else { cout << "Bad IVNumber" << endl; @@ -1924,7 +1887,7 @@ void CLASSRead::ConvertxmlTTreeMass(vector<CLASSPlotElement> toplot, string file switch (toplot[j].fFacilityId) { case 0: - switch (toplot[j].fFacylityNumber) + switch (toplot[j].fFacilityNumber) { case 0: name = "TOTAL."; @@ -1985,21 +1948,21 @@ void CLASSRead::ConvertxmlTTreeMass(vector<CLASSPlotElement> toplot, string file break; case 1: - name = "Reactor" + itoa(toplot[j].fFacylityNumber) + "."; + name = "Reactor" + itoa(toplot[j].fFacilityNumber) + "."; break; case 2: - name = "Storage" + itoa(toplot[j].fFacylityNumber) + "."; + name = "Storage" + itoa(toplot[j].fFacilityNumber) + "."; break; case 3: - name = "Pool" + itoa(toplot[j].fFacylityNumber) + "."; + name = "Pool" + itoa(toplot[j].fFacilityNumber) + "."; @@ -2007,7 +1970,7 @@ void CLASSRead::ConvertxmlTTreeMass(vector<CLASSPlotElement> toplot, string file break; case 4: - name = "FabricationPlant" + itoa(toplot[j].fFacylityNumber) + "."; + name = "FabricationPlant" + itoa(toplot[j].fFacilityNumber) + "."; @@ -2089,7 +2052,7 @@ string CLASSRead::GetBranchInName(CLASSPlotElement toplot) switch (toplot.fFacilityId) { case 0: - switch (toplot.fFacylityNumber) + switch (toplot.fFacilityNumber) { case 0: name = "TOTAL."; @@ -2138,23 +2101,23 @@ string CLASSRead::GetBranchInName(CLASSPlotElement toplot) break; case 1: - name = "R_" + fReactorName[toplot.fTreeId][toplot.fFacylityNumber]; + name = "R_" + fReactorName[toplot.fTreeId][toplot.fFacilityNumber]; return name; break; case 2: - name = "S_" + fStockName[toplot.fTreeId][toplot.fFacylityNumber]; + name = "S_" + fStockName[toplot.fTreeId][toplot.fFacilityNumber]; return name; break; case 3: - name = "P_" + fPoolName[toplot.fTreeId][toplot.fFacylityNumber]; + name = "P_" + fPoolName[toplot.fTreeId][toplot.fFacilityNumber]; return name; break; case 4: - name = "F_" + fFabricationName[toplot.fTreeId][toplot.fFacylityNumber]; + name = "F_" + fFabricationName[toplot.fTreeId][toplot.fFacilityNumber]; return name; break; @@ -2179,7 +2142,7 @@ string CLASSRead::GetLegendOutName(CLASSPlotElement toplot) break; case 0: - switch (toplot.fFacylityNumber) + switch (toplot.fFacilityNumber) { @@ -2235,23 +2198,23 @@ string CLASSRead::GetLegendOutName(CLASSPlotElement toplot) break; case 1: - name = "P_{" + itoa(toplot.fTreeId) + "} " + fReactorName[toplot.fTreeId][toplot.fFacylityNumber] + " ^{" + itoa(toplot.fZAI.A()) + "}" + ReadNucleusName[toplot.fZAI.Z()]; + name = "P_{" + itoa(toplot.fTreeId) + "} " + fReactorName[toplot.fTreeId][toplot.fFacilityNumber] + " ^{" + itoa(toplot.fZAI.A()) + "}" + ReadNucleusName[toplot.fZAI.Z()]; for (int i = 0; i < toplot.fZAI.I(); i++) name+= "*"; break; case 2: - name = "P_{" + itoa(toplot.fTreeId) + "} " + fStockName[toplot.fTreeId][toplot.fFacylityNumber] + " ^{" + itoa(toplot.fZAI.A()) + "}" + ReadNucleusName[toplot.fZAI.Z()]; + name = "P_{" + itoa(toplot.fTreeId) + "} " + fStockName[toplot.fTreeId][toplot.fFacilityNumber] + " ^{" + itoa(toplot.fZAI.A()) + "}" + ReadNucleusName[toplot.fZAI.Z()]; for (int i = 0; i < toplot.fZAI.I(); i++) name+= "*"; break; case 3: - name = "P_{" + itoa(toplot.fTreeId) + "} " + fPoolName[toplot.fTreeId][toplot.fFacylityNumber] + " ^{" + itoa(toplot.fZAI.A()) + "}" + ReadNucleusName[toplot.fZAI.Z()]; + name = "P_{" + itoa(toplot.fTreeId) + "} " + fPoolName[toplot.fTreeId][toplot.fFacilityNumber] + " ^{" + itoa(toplot.fZAI.A()) + "}" + ReadNucleusName[toplot.fZAI.Z()]; for (int i = 0; i < toplot.fZAI.I(); i++) name+= "*"; break; case 4: - name = "P_{" + itoa(toplot.fTreeId) + "} " + fFabricationName[toplot.fTreeId][toplot.fFacylityNumber] + " ^{" + itoa(toplot.fZAI.A()) + "}" + ReadNucleusName[toplot.fZAI.Z()]; + name = "P_{" + itoa(toplot.fTreeId) + "} " + fFabricationName[toplot.fTreeId][toplot.fFacilityNumber] + " ^{" + itoa(toplot.fZAI.A()) + "}" + ReadNucleusName[toplot.fZAI.Z()]; for (int i = 0; i < toplot.fZAI.I(); i++) name+= "*"; break; @@ -2296,7 +2259,7 @@ string CLASSRead::GetTittleOutName(CLASSPlotElement toplot) switch (toplot.fFacilityId) { case 0: - switch (toplot.fFacylityNumber) + switch (toplot.fFacilityNumber) { case 0: name = "PARC "+ itoa(toplot.fTreeId) + " TOTAL " + itoa(toplot.fZAI.Z()) + " " + itoa(toplot.fZAI.A()) + " " + itoa(toplot.fZAI.I()); @@ -2345,23 +2308,23 @@ string CLASSRead::GetTittleOutName(CLASSPlotElement toplot) break; case 1: - name = "PARC "+ itoa(toplot.fTreeId) + " " + fReactorName[toplot.fTreeId][toplot.fFacylityNumber] + " " + itoa(toplot.fZAI.Z()) + " " + itoa(toplot.fZAI.A()) + " " + itoa(toplot.fZAI.I()); + name = "PARC "+ itoa(toplot.fTreeId) + " " + fReactorName[toplot.fTreeId][toplot.fFacilityNumber] + " " + itoa(toplot.fZAI.Z()) + " " + itoa(toplot.fZAI.A()) + " " + itoa(toplot.fZAI.I()); return name; break; case 2: - name = "PARC "+ itoa(toplot.fTreeId) + " " + fStockName[toplot.fTreeId][toplot.fFacylityNumber] + " " + itoa(toplot.fZAI.Z()) + " " + itoa(toplot.fZAI.A()) + " " + itoa(toplot.fZAI.I()); + name = "PARC "+ itoa(toplot.fTreeId) + " " + fStockName[toplot.fTreeId][toplot.fFacilityNumber] + " " + itoa(toplot.fZAI.Z()) + " " + itoa(toplot.fZAI.A()) + " " + itoa(toplot.fZAI.I()); return name; break; case 3: - name = "PARC "+ itoa(toplot.fTreeId) + " " + fPoolName[toplot.fTreeId][toplot.fFacylityNumber] + " " + itoa(toplot.fZAI.Z()) + " " + itoa(toplot.fZAI.A()) + " " + itoa(toplot.fZAI.I()); + name = "PARC "+ itoa(toplot.fTreeId) + " " + fPoolName[toplot.fTreeId][toplot.fFacilityNumber] + " " + itoa(toplot.fZAI.Z()) + " " + itoa(toplot.fZAI.A()) + " " + itoa(toplot.fZAI.I()); return name; break; case 4: - name = "PARC "+ itoa(toplot.fTreeId) + " " + fFabricationName[toplot.fTreeId][toplot.fFacylityNumber] + " " + itoa(toplot.fZAI.Z()) + " " + itoa(toplot.fZAI.A()) + " " + itoa(toplot.fZAI.I()); + name = "PARC "+ itoa(toplot.fTreeId) + " " + fFabricationName[toplot.fTreeId][toplot.fFacilityNumber] + " " + itoa(toplot.fZAI.Z()) + " " + itoa(toplot.fZAI.A()) + " " + itoa(toplot.fZAI.I()); return name; break; diff --git a/gui/CLASSWin.cxx b/gui/CLASSWin.cxx index e00d8bf2183a5845383f585d9ce47be4fe939bd0..157713c2ea18351d5f1395809eeaec64b05d8991 100644 --- a/gui/CLASSWin.cxx +++ b/gui/CLASSWin.cxx @@ -259,8 +259,8 @@ void MainWin::Start(vector<string> VFileName) fInventoryFrame = new TGGroupFrame(fPlotConfigFoil[0],"", kHorizontalFrame ); fPlotConfigFoil[0]->AddFrame(fInventoryFrame,fL5555); - fCheckIVPlot = new TGCheckButton*[3]; - fCheckIVPlot[0] = new TGCheckButton(fInventoryFrame,"Inside",M_CHECK_INSIDE); + fCheckIVPlot = new TGCheckButton*[4]; + fCheckIVPlot[0] = new TGCheckButton(fInventoryFrame,"Inventory",M_CHECK_INSIDE); fCheckIVPlot[0]->SetFont(fLabelFontS); fInventoryFrame->AddFrame(fCheckIVPlot[0],fL2222); fCheckIVPlot[0]->Associate(this); @@ -275,10 +275,15 @@ void MainWin::Start(vector<string> VFileName) fCheckIVPlot[2]->SetFont(fLabelFontS); fInventoryFrame->AddFrame(fCheckIVPlot[2],fL2222); fCheckIVPlot[2]->Associate(this); + + fCheckIVPlot[3] = new TGCheckButton(fInventoryFrame,"Mass Fraction in HM",M_CHECK_RATIO); + fCheckIVPlot[3]->SetFont(fLabelFontS); + fInventoryFrame->AddFrame(fCheckIVPlot[3],fL2222); + fCheckIVPlot[3]->Associate(this); //Radio/Heat frame //Radio Or Decay subframe - fDecayOrRadioFrame = new TGGroupFrame(fPlotConfigFoil[1],"Radio-toxicity / decay heat" ); + fDecayOrRadioFrame = new TGGroupFrame(fPlotConfigFoil[1],"" ); fPlotConfigFoil[1]->AddFrame(fDecayOrRadioFrame,fL5555); fButtonHeat = new TGRadioButton(fDecayOrRadioFrame,"Decay Heat",M_RADIO_DECAY_HEAT); @@ -380,20 +385,29 @@ void MainWin::Start(vector<string> VFileName) //misc check buttons fCheckAMNuc = new TGCheckButton(fMiscHzFrame,"MA",M_CHECK_AM_NUC); fCheckFPNuc = new TGCheckButton(fMiscHzFrame,"FP",M_CHECK_FP_NUC); - fCheckSumOfSelected = new TGCheckButton(fMiscHzFrame,"Sum of Selected"); + fCheckALLNuc = new TGCheckButton(fMiscHzFrame,"All",M_CHECK_ALL_NUC); + + fCBSelected=new TGComboBox(fMiscHzFrame,M_CB_TOX_SELECTED); + fCBSelected->AddEntry("Selected",0); + fCBSelected->AddEntry("Selected & Sum of selected",1); + fCBSelected->AddEntry("Sum of selected only",2); + fCBSelected->Select(0); + fCBSelected->Resize(200,17); + fCheckFPNuc->SetFont(fLabelFontS); fCheckAMNuc->SetFont(fLabelFontS); - fCheckSumOfSelected->SetFont(fLabelFontS); + fCheckALLNuc->SetFont(fLabelFontS); fMiscHzFrame->AddFrame(fCheckAMNuc,fL2222); fMiscHzFrame->AddFrame(fCheckFPNuc,fL2222); - fMiscHzFrame->AddFrame(fCheckSumOfSelected,fL2222); + fMiscHzFrame->AddFrame(fCheckALLNuc,fL2222); + fMiscHzFrame->AddFrame(fCBSelected,fL2222); fCheckFPNuc->Associate(this); fCheckAMNuc->Associate(this); - fCheckSumOfSelected->Associate(this); - + fCheckALLNuc->Associate(this); + fCBSelected->Associate(this); //1 jeu de NucleusTab pour tous // @@ -499,16 +513,26 @@ bool MainWin::ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2) case M_CHECK_INSIDE: fButtonHeat->SetState(kButtonUp); fButtonRadiotox->SetState(kButtonUp); + fCheckIVPlot[3]->SetState(kButtonUp); break; case M_CHECK_CUMIN: fButtonHeat->SetState(kButtonUp); fButtonRadiotox->SetState(kButtonUp); + fCheckIVPlot[3]->SetState(kButtonUp); break; case M_CHECK_CUMOUT: fButtonHeat->SetState(kButtonUp); fButtonRadiotox->SetState(kButtonUp); + fCheckIVPlot[3]->SetState(kButtonUp); + break; + + case M_CHECK_RATIO: + fButtonHeat->SetState(kButtonUp); + fButtonRadiotox->SetState(kButtonUp); + for(int i = 0 ; i<3 ; i++ ) + fCheckIVPlot[i]->SetState(kButtonUp); break; case M_CHECK_BY_MOTHER: @@ -562,6 +586,21 @@ bool MainWin::ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2) } } break; + case M_CHECK_ALL_NUC: + if(fCheckALLNuc->GetState() == kButtonDown) + { for( int l = 0; l < (int)fDATA->GetZAIvector().size(); l++ ) + { + fCheckArrayNuc[l]->SetState(kButtonDown); + } + } + else + { + for( int l = 0; l < (int)fDATA->GetZAIvector().size(); l++ ) + { + fCheckArrayNuc[l]->SetState(kButtonUp); + } + } + break; } case kCM_RADIOBUTTON: switch (parm1) @@ -569,14 +608,14 @@ bool MainWin::ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2) case M_RADIO_DECAY_HEAT: fButtonHeat->SetState(kButtonDown); fButtonRadiotox->SetState(kButtonUp); - for(int i = 0 ; i<3 ; i++ ) + for(int i = 0 ; i<4 ; i++ ) fCheckIVPlot[i]->SetState(kButtonUp); break; case M_RADIO_RADIOTOX: fButtonHeat->SetState(kButtonUp); fButtonRadiotox->SetState(kButtonDown); - for(int i = 0 ; i<3 ; i++ ) + for(int i = 0 ; i<4 ; i++ ) fCheckIVPlot[i]->SetState(kButtonUp); break; @@ -639,10 +678,14 @@ void MainWin::Plot() vector<CLASSPlotElement> toplot; vector<CLASSPlotElement> toplotPower; - if(fCheckSumOfSelected->GetState() == kButtonDown) + if(fCBSelected->GetSelected()==1) { toplot.push_back( CLASSPlotElement(-1, -1, -1, -1,-1,-1,-1) ); } + else if(fCBSelected->GetSelected()==2) + { + toplot.push_back( CLASSPlotElement(-10, -10, -10, -10,-10,-10,-10) ); + } //Power for(int i = 0; i < fNumberOfParc; i++) { @@ -661,11 +704,26 @@ void MainWin::Plot() for(int j = 0; j < fNumberOfTOT-1; j++) //fNumberOfTOT -1 ?? ->All except power { if(fCheckArrayTotal[i][j]->GetState() == kButtonDown) - for(int k = 0; k < Nnucleus; k++) + { + if(fButtonRadiotox->GetState() == kButtonDown || fButtonHeat->GetState() == kButtonDown) { - if(fCheckArrayNuc[k]->GetState() == kButtonDown) - toplot.push_back( CLASSPlotElement(i, 0, j,0, fDATA->GetZAIvector()[k])); + for(int k = 0; k < Nnucleus; k++) + { + if(fCheckArrayNuc[k]->GetState() == kButtonDown) + toplot.push_back( CLASSPlotElement(i,0,j,0, fDATA->GetZAIvector()[k])); + } } + else + { + for(int l = 0;l<4;l++) + if (fCheckIVPlot[l]->GetState() == kButtonDown) + for(int k = 0; k < Nnucleus; k++) + { + if(fCheckArrayNuc[k]->GetState() == kButtonDown) + toplot.push_back( CLASSPlotElement(i,0,j,l, fDATA->GetZAIvector()[k])); + } + } + } } for(int j = 0; j < fNumberOfReactor[i]; j++) @@ -682,7 +740,7 @@ void MainWin::Plot() } else { - for(int l = 0;l<3;l++) + for(int l = 0;l<4;l++) if (fCheckIVPlot[l]->GetState() == kButtonDown) for(int k = 0; k < Nnucleus; k++) { @@ -707,7 +765,7 @@ void MainWin::Plot() } else { - for(int l = 0;l<3;l++) + for(int l = 0;l<4;l++) if (fCheckIVPlot[l]->GetState() == kButtonDown) for(int k = 0; k < Nnucleus; k++) { @@ -732,7 +790,7 @@ void MainWin::Plot() } else { - for(int l = 0;l<3;l++) + for(int l = 0;l<4;l++) if (fCheckIVPlot[l]->GetState() == kButtonDown) for(int k = 0; k < Nnucleus; k++) { @@ -757,7 +815,7 @@ void MainWin::Plot() } else { - for(int l = 0;l<3;l++) + for(int l = 0;l<4;l++) if (fCheckIVPlot[l]->GetState() == kButtonDown) for(int k = 0; k < Nnucleus; k++) { @@ -785,7 +843,7 @@ void MainWin::Plot() if(toplot.size() != 0) { - for(int i = 0 ; i<3 ; i++ ) + for(int i = 0 ; i<4 ; i++ ) { if(fCheckIVPlot[i]->GetState() == kButtonDown) { fDATA->PlotInv(toplot,fIsByMother,StartingStep,FinalTime,NStep,IsLinear); @@ -827,7 +885,7 @@ void MainWin::Conversionxml() { if(fCheckArrayReactor[i][j]->GetState() == kButtonDown) { - for(int l = 0;l<3;l++) + for(int l = 0;l<4;l++) if (fCheckIVPlot[l]->GetState() == kButtonDown) for(int k = 0; k < Nnucleus; k++) { @@ -840,7 +898,7 @@ void MainWin::Conversionxml() for(int j = 0; j < fNumberOfStock[i]; j++) { if(fCheckArrayStock[i][j]->GetState() == kButtonDown) - for(int l = 0;l<3;l++) + for(int l = 0;l<4;l++) if (fCheckIVPlot[l]->GetState() == kButtonDown) for(int k = 0; k < Nnucleus; k++) { @@ -852,7 +910,7 @@ void MainWin::Conversionxml() for(int j = 0; j < fNumberOfPool[i]; j++) { if(fCheckArrayPool[i][j]->GetState() == kButtonDown) - for(int l = 0;l<3;l++) + for(int l = 0;l<4;l++) if (fCheckIVPlot[l]->GetState() == kButtonDown) for(int k = 0; k < Nnucleus; k++) { @@ -864,7 +922,7 @@ void MainWin::Conversionxml() for(int j = 0; j < fNumberOfFab[i]; j++) { if(fCheckArrayFab[i][j]->GetState() == kButtonDown) - for(int l = 0;l<3;l++) + for(int l = 0;l<4;l++) if (fCheckIVPlot[l]->GetState() == kButtonDown) for(int k = 0; k < Nnucleus; k++) { diff --git a/gui/CLASSWin.hxx b/gui/CLASSWin.hxx index 999cbf2c6d3482ff0fbd2ad541b67596ed87b1c4..4a77ca81e2913885cc766c47d350f63798613818 100644 --- a/gui/CLASSWin.hxx +++ b/gui/CLASSWin.hxx @@ -66,16 +66,19 @@ enum CommandId{ M_RADIO_DECAY_HEAT, M_RADIO_RADIOTOX, M_CB_SCENAR_Time, + M_CB_TOX_SELECTED, M_CHECK_LINEAR_Tox, M_TE_toxfirst, M_TE_toxlast, M_TE_toxnstep, M_CHECK_AM_NUC, M_CHECK_FP_NUC, + M_CHECK_ALL_NUC, M_CHECK_BY_MOTHER, M_CHECK_INSIDE, M_CHECK_CUMIN, M_CHECK_CUMOUT, + M_CHECK_RATIO, M_BUTTON_MOTHER_MORE}; @@ -173,8 +176,9 @@ private: //misc frame TGCompositeFrame *fMiscFrame,*fMiscHzFrame; - TGCheckButton *fCheckAMNuc,*fCheckFPNuc,*fCheckSumOfSelected; - + TGCheckButton *fCheckAMNuc,*fCheckFPNuc,*fCheckALLNuc; + TGComboBox *fCBSelected; + //Factories Arrays TGCheckButton *** fCheckArrayTotal; TGCheckButton *** fCheckArrayReactor;