diff --git a/src/external/TFitPofB-lib/classes/TFitPofBStartupHandler.cpp b/src/external/TFitPofB-lib/classes/TFitPofBStartupHandler.cpp index 6529a2d3..72436df3 100644 --- a/src/external/TFitPofB-lib/classes/TFitPofBStartupHandler.cpp +++ b/src/external/TFitPofB-lib/classes/TFitPofBStartupHandler.cpp @@ -37,6 +37,8 @@ #include using namespace std; +#include + #include "TFitPofBStartupHandler.h" ClassImpQ(TFitPofBStartupHandler) @@ -61,6 +63,8 @@ TFitPofBStartupHandler::~TFitPofBStartupHandler() { // clean up fEnergyList.clear(); + fEnergyLabelList.clear(); + fEnergies.clear(); } //-------------------------------------------------------------------------- @@ -315,7 +319,7 @@ void TFitPofBStartupHandler::CheckLists() cout << endl << "TFitPofBStartupHandler::CheckLists: check data path ..." << endl; if (!fDataPath.size()) { cout << "TFitPofBStartupHandler::CheckLists: This is not going to work, you have to set a valid data path where to find the rge-files in the xml-file!" << endl; - exit(-1); + assert(fDataPath.size()); } else { if(fDebug) cout << fDataPath << endl; @@ -325,7 +329,9 @@ void TFitPofBStartupHandler::CheckLists() if(fDebug) cout << endl << "TFitPofBStartupHandler::CheckLists: check energy list ..." << endl; if (fEnergyList.size() != fEnergyLabelList.size()) { - cout << "TFitPofBStartupHandler::CheckLists: The number of energies and energy labels are different! Please fix it!" << endl; + cout << "TFitPofBStartupHandler::CheckLists: The number of energies and energy labels are different! Please fix it!" << endl \ + << "TFitPofBStartupHandler::CheckLists: The program will be terminated now!" << endl; + assert(fEnergyList.size() == fEnergyLabelList.size()); } if (fEnergyList.empty()) { cout << "TFitPofBStartupHandler::CheckLists: Energy list empty!" << endl \ @@ -344,15 +350,20 @@ void TFitPofBStartupHandler::CheckLists() fEnergyLabelList.push_back(string(eChar)); } } + + // fill the energies and labels in the pair-vector + fEnergies.clear(); + pair p; + for(unsigned int i(0); i < fEnergyList.size(); i++) { + p.first = fEnergyList[i]; + p.second = fEnergyLabelList[i]; + fEnergies.push_back(p); + } + if(fDebug) { - cout << "Energies: "; - for (unsigned int i (0); i < fEnergyList.size(); i++) - cout << fEnergyList[i] << " "; - cout << endl; - cout << "Energy Labels: "; - for (unsigned int i (0); i < fEnergyLabelList.size(); i++) - cout << fEnergyLabelList[i] << " "; - cout << endl; + cout << "Energies and Labels:"; + for (unsigned int i (0); i < fEnergies.size(); i++) + cout << fEnergies[i].first << " " << fEnergies[i].second << endl; } // check if any number of steps for the theory function is specified diff --git a/src/external/TFitPofB-lib/classes/TLondon1D.cpp b/src/external/TFitPofB-lib/classes/TLondon1D.cpp index fa209cd3..88eefa7e 100644 --- a/src/external/TFitPofB-lib/classes/TLondon1D.cpp +++ b/src/external/TFitPofB-lib/classes/TLondon1D.cpp @@ -193,8 +193,7 @@ TLondon1DHS::TLondon1DHS() : fCalcNeeded(true), fFirstCall(true) { fNSteps = startupHandler->GetNSteps(); fWisdom = startupHandler->GetWisdomFile(); string rge_path(startupHandler->GetDataPath()); - vector energy_label_vec(startupHandler->GetEnergyLabelList()); - vector energy_vec(startupHandler->GetEnergyList()); + vector< pair > energy_vec(startupHandler->GetEnergies()); fParForPofT.push_back(0.0); // phase fParForPofT.push_back(startupHandler->GetDeltat()); @@ -207,7 +206,7 @@ TLondon1DHS::TLondon1DHS() : fCalcNeeded(true), fFirstCall(true) { fParForPofB.push_back(0.005); // Bkg-width fParForPofB.push_back(0.0); // Bkg-weight - TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec); + TTrimSPData *x = new TTrimSPData(rge_path, energy_vec); fImpProfile = x; x = 0; @@ -355,8 +354,7 @@ TLondon1D1L::TLondon1D1L() : fCalcNeeded(true), fFirstCall(true), fCallCounter(0 fNSteps = startupHandler->GetNSteps(); fWisdom = startupHandler->GetWisdomFile(); string rge_path(startupHandler->GetDataPath()); - vector energy_label_vec(startupHandler->GetEnergyLabelList()); - vector energy_vec(startupHandler->GetEnergyList()); + vector< pair > energy_vec(startupHandler->GetEnergies()); fParForPofT.push_back(0.0); fParForPofT.push_back(startupHandler->GetDeltat()); @@ -366,7 +364,7 @@ TLondon1D1L::TLondon1D1L() : fCalcNeeded(true), fFirstCall(true), fCallCounter(0 fParForPofB.push_back(startupHandler->GetDeltaB()); fParForPofB.push_back(0.0); - TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec); + TTrimSPData *x = new TTrimSPData(rge_path, energy_vec); fImpProfile = x; x = 0; @@ -507,8 +505,7 @@ TLondon1D2L::TLondon1D2L() : fCalcNeeded(true), fFirstCall(true), fLastTwoChange fNSteps = startupHandler->GetNSteps(); fWisdom = startupHandler->GetWisdomFile(); string rge_path(startupHandler->GetDataPath()); - vector energy_label_vec(startupHandler->GetEnergyLabelList()); - vector energy_vec(startupHandler->GetEnergyList()); + vector< pair > energy_vec(startupHandler->GetEnergies()); fParForPofT.push_back(0.0); fParForPofT.push_back(startupHandler->GetDeltat()); @@ -518,7 +515,7 @@ TLondon1D2L::TLondon1D2L() : fCalcNeeded(true), fFirstCall(true), fLastTwoChange fParForPofB.push_back(startupHandler->GetDeltaB()); fParForPofB.push_back(0.0); - TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec); + TTrimSPData *x = new TTrimSPData(rge_path, energy_vec); fImpProfile = x; x = 0; @@ -662,8 +659,7 @@ TProximity1D1LHS::TProximity1D1LHS() : fCalcNeeded(true), fFirstCall(true) { fNSteps = startupHandler->GetNSteps(); fWisdom = startupHandler->GetWisdomFile(); string rge_path(startupHandler->GetDataPath()); - vector energy_label_vec(startupHandler->GetEnergyLabelList()); - vector energy_vec(startupHandler->GetEnergyList()); + vector< pair > energy_vec(startupHandler->GetEnergies()); fParForPofT.push_back(0.0); fParForPofT.push_back(startupHandler->GetDeltat()); @@ -676,7 +672,7 @@ TProximity1D1LHS::TProximity1D1LHS() : fCalcNeeded(true), fFirstCall(true) { fParForPofB.push_back(0.01); // Bkg-width fParForPofB.push_back(0.0); // Bkg-weight - TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec); + TTrimSPData *x = new TTrimSPData(rge_path, energy_vec); fImpProfile = x; x = 0; @@ -829,8 +825,7 @@ TProximity1D1LHSGss::TProximity1D1LHSGss() : fCalcNeeded(true), fFirstCall(true) fNSteps = startupHandler->GetNSteps(); fWisdom = startupHandler->GetWisdomFile(); string rge_path(startupHandler->GetDataPath()); - vector energy_label_vec(startupHandler->GetEnergyLabelList()); - vector energy_vec(startupHandler->GetEnergyList()); + vector< pair > energy_vec(startupHandler->GetEnergies()); fParForPofT.push_back(0.0); fParForPofT.push_back(startupHandler->GetDeltat()); @@ -841,7 +836,7 @@ TProximity1D1LHSGss::TProximity1D1LHSGss() : fCalcNeeded(true), fFirstCall(true) fParForPofB.push_back(0.0); // fParForPofB.push_back(0.0); - TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec); + TTrimSPData *x = new TTrimSPData(rge_path, energy_vec); fImpProfile = x; x = 0; @@ -968,8 +963,7 @@ TLondon1D3L::TLondon1D3L() : fCalcNeeded(true), fFirstCall(true), fLastThreeChan fNSteps = startupHandler->GetNSteps(); fWisdom = startupHandler->GetWisdomFile(); string rge_path(startupHandler->GetDataPath()); - vector energy_label_vec(startupHandler->GetEnergyLabelList()); - vector energy_vec(startupHandler->GetEnergyList()); + vector< pair > energy_vec(startupHandler->GetEnergies()); fParForPofT.push_back(0.0); fParForPofT.push_back(startupHandler->GetDeltat()); @@ -979,7 +973,7 @@ TLondon1D3L::TLondon1D3L() : fCalcNeeded(true), fFirstCall(true), fLastThreeChan fParForPofB.push_back(startupHandler->GetDeltaB()); fParForPofB.push_back(0.0); - TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec); + TTrimSPData *x = new TTrimSPData(rge_path, energy_vec); fImpProfile = x; x = 0; @@ -1137,8 +1131,7 @@ TLondon1D3LS::TLondon1D3LS() : fCalcNeeded(true), fFirstCall(true), fLastThreeCh fNSteps = startupHandler->GetNSteps(); fWisdom = startupHandler->GetWisdomFile(); string rge_path(startupHandler->GetDataPath()); - vector energy_label_vec(startupHandler->GetEnergyLabelList()); - vector energy_vec(startupHandler->GetEnergyList()); + vector< pair > energy_vec(startupHandler->GetEnergies()); fParForPofT.push_back(0.0); fParForPofT.push_back(startupHandler->GetDeltat()); @@ -1148,7 +1141,7 @@ TLondon1D3LS::TLondon1D3LS() : fCalcNeeded(true), fFirstCall(true), fLastThreeCh fParForPofB.push_back(startupHandler->GetDeltaB()); fParForPofB.push_back(0.0); - TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec); + TTrimSPData *x = new TTrimSPData(rge_path, energy_vec); fImpProfile = x; x = 0; @@ -1289,8 +1282,8 @@ double TLondon1D3LS::operator()(double t, const vector &par) const { // // fNSteps = startupHandler->GetNSteps(); // fWisdom = startupHandler->GetWisdomFile(); +// vector< pair > energy_vec(startupHandler->GetEnergies()); // string rge_path(startupHandler->GetDataPath()); -// vector energy_vec(startupHandler->GetEnergyList()); // // fParForPofT.push_back(0.0); // fParForPofT.push_back(startupHandler->GetDeltat()); @@ -1458,8 +1451,7 @@ TLondon1D3LSub::TLondon1D3LSub() : fCalcNeeded(true), fFirstCall(true), fWeights fNSteps = startupHandler->GetNSteps(); fWisdom = startupHandler->GetWisdomFile(); string rge_path(startupHandler->GetDataPath()); - vector energy_label_vec(startupHandler->GetEnergyLabelList()); - vector energy_vec(startupHandler->GetEnergyList()); + vector< pair > energy_vec(startupHandler->GetEnergies()); fParForPofT.push_back(0.0); fParForPofT.push_back(startupHandler->GetDeltat()); @@ -1469,7 +1461,7 @@ TLondon1D3LSub::TLondon1D3LSub() : fCalcNeeded(true), fFirstCall(true), fWeights fParForPofB.push_back(startupHandler->GetDeltaB()); fParForPofB.push_back(0.0); - TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec); + TTrimSPData *x = new TTrimSPData(rge_path, energy_vec); fImpProfile = x; x = 0; diff --git a/src/external/TFitPofB-lib/classes/TTrimSPDataHandler.cpp b/src/external/TFitPofB-lib/classes/TTrimSPDataHandler.cpp index c74beed1..ecb56045 100644 --- a/src/external/TFitPofB-lib/classes/TTrimSPDataHandler.cpp +++ b/src/external/TFitPofB-lib/classes/TTrimSPDataHandler.cpp @@ -58,25 +58,18 @@ using namespace std; // Also always use the same format within one energyVec - otherwise sorting of the vector will not work properly! //-------------------- -TTrimSPData::TTrimSPData(const string &path, const vector &energyLabelVec, const vector &energyVec) { +TTrimSPData::TTrimSPData(const string &path, vector< pair > &energies) { - // sort the energies in ascending orders - this might be useful for later applications (energy-interpolations etc.) - // Do not do it at the moment until I find a suitable way to sort energy and energy-labels at once. - // sort(energyVec.begin(), energyVec.end()); - - if (energyLabelVec.size() != energyVec.size()) { - cout << "TTrimSPData::TTrimSPData: The number of energies and labels have to be the same!" << endl; - cout << "TTrimSPData::TTrimSPData: Please fix this problem! The programme will be terminated now!" << endl; - assert(false); - } + // sort the energies in ascending order - this might be useful for later applications (energy-interpolations etc.) + sort(energies.begin(), energies.end()); double zz(0.0), nzz(0.0); vector vzz, vnzz; string word, energyStr; - for(unsigned int i(0); i &energyLabelVe delete rgeFile; rgeFile = 0; } else { - fEnergy.push_back(energyVec[i]); + fEnergy.push_back(energies[i].first); while(*rgeFile >> word) if(word == "PARTICLES") break; diff --git a/src/external/TFitPofB-lib/include/TFitPofBStartupHandler.h b/src/external/TFitPofB-lib/include/TFitPofBStartupHandler.h index 8a92e3ea..cd4c7187 100644 --- a/src/external/TFitPofB-lib/include/TFitPofBStartupHandler.h +++ b/src/external/TFitPofB-lib/include/TFitPofBStartupHandler.h @@ -60,8 +60,7 @@ class TFitPofBStartupHandler : public TQObject { virtual void CheckLists(); virtual const string GetDataPath() const { return fDataPath; } - virtual vector GetEnergyLabelList() const { return fEnergyLabelList; } - virtual vector GetEnergyList() const { return fEnergyList; } + virtual vector< pair > GetEnergies() const { return fEnergies; } virtual const double GetDeltat() const { return fDeltat; } virtual const double GetDeltaB() const { return fDeltaB; } virtual const string GetWisdomFile() const { return fWisdomFile; } @@ -80,6 +79,7 @@ class TFitPofBStartupHandler : public TQObject { string fDataPath; vector fEnergyLabelList; vector fEnergyList; + vector< pair > fEnergies; double fDeltat; double fDeltaB; string fWisdomFile; diff --git a/src/external/TFitPofB-lib/include/TTrimSPDataHandler.h b/src/external/TFitPofB-lib/include/TTrimSPDataHandler.h index 1d5227bd..d538a357 100644 --- a/src/external/TFitPofB-lib/include/TTrimSPDataHandler.h +++ b/src/external/TFitPofB-lib/include/TTrimSPDataHandler.h @@ -40,7 +40,7 @@ class TTrimSPData { public: - TTrimSPData(const string&, const vector&, const vector&); + TTrimSPData(const string&, vector< pair >&); ~TTrimSPData() { fDataZ.clear();