Changed the format of the xml-startup file according to wishes of AS
This commit is contained in:
parent
246e763d71
commit
1381cd1fe2
@ -533,12 +533,11 @@ void TBulkTriVortexAGLFieldCalc::CalculateGrid() const {
|
||||
}
|
||||
|
||||
double latConstTr(sqrt(2.0*fluxQuantum/(field*sqrt3)));
|
||||
double b(field/Hc2);
|
||||
double xisq_scaled(8.0/3.0*pow(xi*PI/latConstTr,2.0)*(1.0+pow(b,4.0))*(1.0-2.0*b*pow(1.0-b,2.0)));
|
||||
double b(field/Hc2), fInf(1.0-pow(b,4.0)), xiV(xi*(sqrt(2.0)-0.75*xi/lambda)*sqrt((1.0+pow(b,4.0))*(1.0-2.0*b*pow(1.0-b,2.0))));
|
||||
double lambdasq_scaled(4.0/3.0*pow(lambda*PI/latConstTr,2.0));
|
||||
|
||||
// ... now fill in the Fourier components if everything was okay above
|
||||
double Gsq, sqrtXiSqScGsq, ll;
|
||||
double Gsq, sqrtfInfSqPlusLsqGsq, ll;
|
||||
int k, l, lNFFT_2;
|
||||
|
||||
for (l = 0; l < NFFT_2; l += 2) {
|
||||
@ -546,16 +545,17 @@ void TBulkTriVortexAGLFieldCalc::CalculateGrid() const {
|
||||
ll = 3.0*static_cast<double>(l*l);
|
||||
for (k = 0; k < NFFT_2; k += 2) {
|
||||
Gsq = static_cast<double>(k*k) + ll;
|
||||
sqrtXiSqScGsq = ((k || l) ? sqrt(xisq_scaled*Gsq) : 1.0E-9);
|
||||
fFFTin[lNFFT_2 + k][0] = sqrtXiSqScGsq*TMath::BesselK1(sqrtXiSqScGsq)/(lambdasq_scaled*Gsq);
|
||||
sqrtfInfSqPlusLsqGsq = sqrt(fInf*fInf + lambdasq_scaled*Gsq);
|
||||
fFFTin[lNFFT_2 + k][0] = ((!k && !l) ? 1.0 : \
|
||||
fInf*TMath::BesselK1(xiV/lambda*sqrtfInfSqPlusLsqGsq)/(sqrtfInfSqPlusLsqGsq*TMath::BesselK1(xiV/lambda*fInf)));
|
||||
fFFTin[lNFFT_2 + k][1] = 0.0;
|
||||
fFFTin[lNFFT_2 + k + 1][0] = 0.0;
|
||||
fFFTin[lNFFT_2 + k + 1][1] = 0.0;
|
||||
}
|
||||
k = NFFT_2;
|
||||
Gsq = static_cast<double>(k*k) + ll;
|
||||
sqrtXiSqScGsq = sqrt(xisq_scaled*Gsq);
|
||||
fFFTin[lNFFT_2 + k][0] = sqrtXiSqScGsq*TMath::BesselK1(sqrtXiSqScGsq)/(lambdasq_scaled*Gsq);
|
||||
sqrtfInfSqPlusLsqGsq = sqrt(fInf*fInf + lambdasq_scaled*Gsq);
|
||||
fFFTin[lNFFT_2 + k][0] = fInf*TMath::BesselK1(xiV/lambda*sqrtfInfSqPlusLsqGsq)/(sqrtfInfSqPlusLsqGsq*TMath::BesselK1(xiV/lambda*fInf));
|
||||
fFFTin[lNFFT_2 + k][1] = 0.0;
|
||||
}
|
||||
|
||||
@ -565,16 +565,16 @@ void TBulkTriVortexAGLFieldCalc::CalculateGrid() const {
|
||||
ll = 3.0*static_cast<double>((NFFT-l)*(NFFT-l));
|
||||
for (k = 0; k < NFFT_2; k += 2) {
|
||||
Gsq = static_cast<double>(k*k) + ll;
|
||||
sqrtXiSqScGsq = sqrt(xisq_scaled*Gsq);
|
||||
fFFTin[lNFFT_2 + k][0] = sqrtXiSqScGsq*TMath::BesselK1(sqrtXiSqScGsq)/(lambdasq_scaled*Gsq);
|
||||
sqrtfInfSqPlusLsqGsq = sqrt(fInf*fInf + lambdasq_scaled*Gsq);
|
||||
fFFTin[lNFFT_2 + k][0] = fInf*TMath::BesselK1(xiV/lambda*sqrtfInfSqPlusLsqGsq)/(sqrtfInfSqPlusLsqGsq*TMath::BesselK1(xiV/lambda*fInf));
|
||||
fFFTin[lNFFT_2 + k][1] = 0.0;
|
||||
fFFTin[lNFFT_2 + k + 1][0] = 0.0;
|
||||
fFFTin[lNFFT_2 + k + 1][1] = 0.0;
|
||||
}
|
||||
k = NFFT_2;
|
||||
Gsq = static_cast<double>(k*k) + ll;
|
||||
sqrtXiSqScGsq = sqrt(xisq_scaled*Gsq);
|
||||
fFFTin[lNFFT_2 + k][0] = sqrtXiSqScGsq*TMath::BesselK1(sqrtXiSqScGsq)/(lambdasq_scaled*Gsq);
|
||||
sqrtfInfSqPlusLsqGsq = sqrt(fInf*fInf + lambdasq_scaled*Gsq);
|
||||
fFFTin[lNFFT_2 + k][0] = fInf*TMath::BesselK1(xiV/lambda*sqrtfInfSqPlusLsqGsq)/(sqrtfInfSqPlusLsqGsq*TMath::BesselK1(xiV/lambda*fInf));
|
||||
fFFTin[lNFFT_2 + k][1] = 0.0;
|
||||
}
|
||||
|
||||
@ -585,10 +585,10 @@ void TBulkTriVortexAGLFieldCalc::CalculateGrid() const {
|
||||
ll = 3.0*static_cast<double>(l*l);
|
||||
for (k = 0; k < NFFT_2; k += 2) {
|
||||
Gsq = static_cast<double>((k + 1)*(k + 1)) + ll;
|
||||
sqrtXiSqScGsq = sqrt(xisq_scaled*Gsq);
|
||||
sqrtfInfSqPlusLsqGsq = sqrt(fInf*fInf + lambdasq_scaled*Gsq);
|
||||
fFFTin[lNFFT_2 + k][0] = 0.0;
|
||||
fFFTin[lNFFT_2 + k][1] = 0.0;
|
||||
fFFTin[lNFFT_2 + k + 1][0] = sqrtXiSqScGsq*TMath::BesselK1(sqrtXiSqScGsq)/(lambdasq_scaled*Gsq);
|
||||
fFFTin[lNFFT_2 + k + 1][0] = fInf*TMath::BesselK1(xiV/lambda*sqrtfInfSqPlusLsqGsq)/(sqrtfInfSqPlusLsqGsq*TMath::BesselK1(xiV/lambda*fInf));
|
||||
fFFTin[lNFFT_2 + k + 1][1] = 0.0;
|
||||
}
|
||||
k = NFFT_2;
|
||||
@ -601,10 +601,10 @@ void TBulkTriVortexAGLFieldCalc::CalculateGrid() const {
|
||||
ll = 3.0*static_cast<double>((NFFT-l)*(NFFT-l));
|
||||
for (k = 0; k < NFFT_2; k += 2) {
|
||||
Gsq = static_cast<double>((k+1)*(k+1)) + ll;
|
||||
sqrtXiSqScGsq = sqrt(xisq_scaled*Gsq);
|
||||
sqrtfInfSqPlusLsqGsq = sqrt(fInf*fInf + lambdasq_scaled*Gsq);
|
||||
fFFTin[lNFFT_2 + k][0] = 0.0;
|
||||
fFFTin[lNFFT_2 + k][1] = 0.0;
|
||||
fFFTin[lNFFT_2 + k + 1][0] = sqrtXiSqScGsq*TMath::BesselK1(sqrtXiSqScGsq)/(lambdasq_scaled*Gsq);
|
||||
fFFTin[lNFFT_2 + k + 1][0] = fInf*TMath::BesselK1(xiV/lambda*sqrtfInfSqPlusLsqGsq)/(sqrtfInfSqPlusLsqGsq*TMath::BesselK1(xiV/lambda*fInf));
|
||||
fFFTin[lNFFT_2 + k + 1][1] = 0.0;
|
||||
}
|
||||
k = NFFT_2;
|
||||
@ -619,7 +619,7 @@ void TBulkTriVortexAGLFieldCalc::CalculateGrid() const {
|
||||
// Multiply by the applied field
|
||||
#pragma omp parallel for default(shared) private(l) schedule(dynamic)
|
||||
for (l = 0; l < NFFTsq; l++) {
|
||||
fFFTout[l] *= field*(1.0-pow(b,4.0));
|
||||
fFFTout[l] *= field;
|
||||
}
|
||||
|
||||
// Set the flag which shows that the calculation has been done
|
||||
|
@ -105,6 +105,8 @@ void TFitPofBStartupHandler::OnStartElement(const char *str, const TList *attrib
|
||||
fKey = eVortex;
|
||||
} else if (!strcmp(str, "data_path")) {
|
||||
fKey = eDataPath;
|
||||
} else if (!strcmp(str, "energy_label")) {
|
||||
fKey = eEnergyLabel;
|
||||
} else if (!strcmp(str, "energy")) {
|
||||
fKey = eEnergy;
|
||||
} else if (!strcmp(str, "delta_t")) {
|
||||
@ -160,9 +162,13 @@ void TFitPofBStartupHandler::OnCharacters(const char *str)
|
||||
// set the data path to the given path
|
||||
fDataPath = str;
|
||||
break;
|
||||
case eEnergyLabel:
|
||||
// add str to the energy label list
|
||||
fEnergyLabelList.push_back(str);
|
||||
break;
|
||||
case eEnergy:
|
||||
// add str to the energy list
|
||||
fEnergyList.push_back(str);
|
||||
fEnergyList.push_back(atof(str));
|
||||
break;
|
||||
case eDeltat:
|
||||
// convert str to double and assign it to the deltat-member
|
||||
@ -318,22 +324,36 @@ void TFitPofBStartupHandler::CheckLists()
|
||||
// check if any energies are given
|
||||
if(fDebug)
|
||||
cout << endl << "TFitPofBStartupHandler::CheckLists: check energy list ..." << endl;
|
||||
if (!fEnergyList.size()) {
|
||||
cout << "TFitPofBStartupHandler::CheckLists: Energy list empty! Setting the default list ( 0.0:0.1:32.9 keV)." << endl;
|
||||
if (fEnergyList.size() != fEnergyLabelList.size()) {
|
||||
cout << "TFitPofBStartupHandler::CheckLists: The number of energies and energy labels are different! Please fix it!" << endl;
|
||||
}
|
||||
if (fEnergyList.empty()) {
|
||||
cout << "TFitPofBStartupHandler::CheckLists: Energy list empty!" << endl \
|
||||
<< "TFitPofBStartupHandler::CheckLists: Trying to use the standard energies: 0.0 to 35.0 keV in 0.1 keV steps" << endl;
|
||||
for (double x(0.0); x<= 35.0; x+=0.1) {
|
||||
fEnergyList.push_back(x);
|
||||
}
|
||||
}
|
||||
if (fEnergyLabelList.empty()) {
|
||||
cout << "TFitPofBStartupHandler::CheckLists: Energy label list empty!" << endl \
|
||||
<< "TFitPofBStartupHandler::CheckLists: Trying to use the specified energies as labels in the format %02.1f..." << endl \
|
||||
<< "TFitPofBStartupHandler::CheckLists: Most probably this will go wrong and should therefore be fixed in the xml-file!" << endl;
|
||||
char eChar[5];
|
||||
for(unsigned int i(0); i<33; i++) {
|
||||
for(unsigned int j(0); j<10; j++) {
|
||||
sprintf(eChar, "%02u_%u", i, j);
|
||||
fEnergyList.push_back(string(eChar));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(fDebug) {
|
||||
for (unsigned int i (0); i < fEnergyList.size(); i++)
|
||||
cout << fEnergyList[i] << " ";
|
||||
cout << endl;
|
||||
for(unsigned int i(0); i<fEnergyList.size(); i++) {
|
||||
sprintf(eChar, "%02.1f", fEnergyList[i]);
|
||||
fEnergyLabelList.push_back(string(eChar));
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
// check if any number of steps for the theory function is specified
|
||||
if(fDebug)
|
||||
|
40
src/external/TFitPofB-lib/classes/TLondon1D.cpp
vendored
40
src/external/TFitPofB-lib/classes/TLondon1D.cpp
vendored
@ -193,7 +193,8 @@ TLondon1DHS::TLondon1DHS() : fCalcNeeded(true), fFirstCall(true) {
|
||||
fNSteps = startupHandler->GetNSteps();
|
||||
fWisdom = startupHandler->GetWisdomFile();
|
||||
string rge_path(startupHandler->GetDataPath());
|
||||
vector<string> energy_vec(startupHandler->GetEnergyList());
|
||||
vector<string> energy_label_vec(startupHandler->GetEnergyLabelList());
|
||||
vector<double> energy_vec(startupHandler->GetEnergyList());
|
||||
|
||||
fParForPofT.push_back(0.0); // phase
|
||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
||||
@ -206,7 +207,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_vec);
|
||||
TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec);
|
||||
fImpProfile = x;
|
||||
x = 0;
|
||||
|
||||
@ -354,7 +355,8 @@ TLondon1D1L::TLondon1D1L() : fCalcNeeded(true), fFirstCall(true), fCallCounter(0
|
||||
fNSteps = startupHandler->GetNSteps();
|
||||
fWisdom = startupHandler->GetWisdomFile();
|
||||
string rge_path(startupHandler->GetDataPath());
|
||||
vector<string> energy_vec(startupHandler->GetEnergyList());
|
||||
vector<string> energy_label_vec(startupHandler->GetEnergyLabelList());
|
||||
vector<double> energy_vec(startupHandler->GetEnergyList());
|
||||
|
||||
fParForPofT.push_back(0.0);
|
||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
||||
@ -364,7 +366,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_vec);
|
||||
TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec);
|
||||
fImpProfile = x;
|
||||
x = 0;
|
||||
|
||||
@ -505,7 +507,8 @@ TLondon1D2L::TLondon1D2L() : fCalcNeeded(true), fFirstCall(true), fLastTwoChange
|
||||
fNSteps = startupHandler->GetNSteps();
|
||||
fWisdom = startupHandler->GetWisdomFile();
|
||||
string rge_path(startupHandler->GetDataPath());
|
||||
vector<string> energy_vec(startupHandler->GetEnergyList());
|
||||
vector<string> energy_label_vec(startupHandler->GetEnergyLabelList());
|
||||
vector<double> energy_vec(startupHandler->GetEnergyList());
|
||||
|
||||
fParForPofT.push_back(0.0);
|
||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
||||
@ -515,7 +518,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_vec);
|
||||
TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec);
|
||||
fImpProfile = x;
|
||||
x = 0;
|
||||
|
||||
@ -659,7 +662,8 @@ TProximity1D1LHS::TProximity1D1LHS() : fCalcNeeded(true), fFirstCall(true) {
|
||||
fNSteps = startupHandler->GetNSteps();
|
||||
fWisdom = startupHandler->GetWisdomFile();
|
||||
string rge_path(startupHandler->GetDataPath());
|
||||
vector<string> energy_vec(startupHandler->GetEnergyList());
|
||||
vector<string> energy_label_vec(startupHandler->GetEnergyLabelList());
|
||||
vector<double> energy_vec(startupHandler->GetEnergyList());
|
||||
|
||||
fParForPofT.push_back(0.0);
|
||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
||||
@ -672,7 +676,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_vec);
|
||||
TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec);
|
||||
fImpProfile = x;
|
||||
x = 0;
|
||||
|
||||
@ -825,7 +829,8 @@ TProximity1D1LHSGss::TProximity1D1LHSGss() : fCalcNeeded(true), fFirstCall(true)
|
||||
fNSteps = startupHandler->GetNSteps();
|
||||
fWisdom = startupHandler->GetWisdomFile();
|
||||
string rge_path(startupHandler->GetDataPath());
|
||||
vector<string> energy_vec(startupHandler->GetEnergyList());
|
||||
vector<string> energy_label_vec(startupHandler->GetEnergyLabelList());
|
||||
vector<double> energy_vec(startupHandler->GetEnergyList());
|
||||
|
||||
fParForPofT.push_back(0.0);
|
||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
||||
@ -836,7 +841,7 @@ TProximity1D1LHSGss::TProximity1D1LHSGss() : fCalcNeeded(true), fFirstCall(true)
|
||||
fParForPofB.push_back(0.0);
|
||||
// fParForPofB.push_back(0.0);
|
||||
|
||||
TTrimSPData *x = new TTrimSPData(rge_path, energy_vec);
|
||||
TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec);
|
||||
fImpProfile = x;
|
||||
x = 0;
|
||||
|
||||
@ -963,7 +968,8 @@ TLondon1D3L::TLondon1D3L() : fCalcNeeded(true), fFirstCall(true), fLastThreeChan
|
||||
fNSteps = startupHandler->GetNSteps();
|
||||
fWisdom = startupHandler->GetWisdomFile();
|
||||
string rge_path(startupHandler->GetDataPath());
|
||||
vector<string> energy_vec(startupHandler->GetEnergyList());
|
||||
vector<string> energy_label_vec(startupHandler->GetEnergyLabelList());
|
||||
vector<double> energy_vec(startupHandler->GetEnergyList());
|
||||
|
||||
fParForPofT.push_back(0.0);
|
||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
||||
@ -973,7 +979,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_vec);
|
||||
TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec);
|
||||
fImpProfile = x;
|
||||
x = 0;
|
||||
|
||||
@ -1131,7 +1137,8 @@ TLondon1D3LS::TLondon1D3LS() : fCalcNeeded(true), fFirstCall(true), fLastThreeCh
|
||||
fNSteps = startupHandler->GetNSteps();
|
||||
fWisdom = startupHandler->GetWisdomFile();
|
||||
string rge_path(startupHandler->GetDataPath());
|
||||
vector<string> energy_vec(startupHandler->GetEnergyList());
|
||||
vector<string> energy_label_vec(startupHandler->GetEnergyLabelList());
|
||||
vector<double> energy_vec(startupHandler->GetEnergyList());
|
||||
|
||||
fParForPofT.push_back(0.0);
|
||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
||||
@ -1141,7 +1148,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_vec);
|
||||
TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec);
|
||||
fImpProfile = x;
|
||||
x = 0;
|
||||
|
||||
@ -1451,7 +1458,8 @@ TLondon1D3LSub::TLondon1D3LSub() : fCalcNeeded(true), fFirstCall(true), fWeights
|
||||
fNSteps = startupHandler->GetNSteps();
|
||||
fWisdom = startupHandler->GetWisdomFile();
|
||||
string rge_path(startupHandler->GetDataPath());
|
||||
vector<string> energy_vec(startupHandler->GetEnergyList());
|
||||
vector<string> energy_label_vec(startupHandler->GetEnergyLabelList());
|
||||
vector<double> energy_vec(startupHandler->GetEnergyList());
|
||||
|
||||
fParForPofT.push_back(0.0);
|
||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
||||
@ -1461,7 +1469,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_vec);
|
||||
TTrimSPData *x = new TTrimSPData(rge_path, energy_label_vec, energy_vec);
|
||||
fImpProfile = x;
|
||||
x = 0;
|
||||
|
||||
|
@ -58,39 +58,33 @@ 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, vector<string> &energyVec) {
|
||||
TTrimSPData::TTrimSPData(const string &path, const vector<string> &energyLabelVec, const vector<double> &energyVec) {
|
||||
|
||||
// sort the energies in ascending orders - this might be useful for later applications (energy-interpolations etc.)
|
||||
sort(energyVec.begin(), energyVec.end());
|
||||
// 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);
|
||||
}
|
||||
|
||||
double zz(0.0), nzz(0.0);
|
||||
vector<double> vzz, vnzz;
|
||||
string word, energyStr;
|
||||
|
||||
for(unsigned int i(0); i<energyVec.size(); i++){
|
||||
for(unsigned int i(0); i<energyVec.size(); i++) {
|
||||
|
||||
energyStr = path + energyVec[i] + ".rge";
|
||||
energyStr = path + energyLabelVec[i] + ".rge";
|
||||
|
||||
ifstream *rgeFile = new ifstream(energyStr.c_str());
|
||||
if(! *rgeFile) {
|
||||
cout << "TTrimSPData::TTrimSPData: rge-file not found! Try next energy..." << endl;
|
||||
cout << "TTrimSPData::TTrimSPData: file " << energyStr << " not found! Try next energy..." << endl;
|
||||
delete rgeFile;
|
||||
rgeFile = 0;
|
||||
} else {
|
||||
if (energyVec[i].length() == 4)
|
||||
fEnergy.push_back(atof(energyVec[i].replace(2,1,".").c_str()));
|
||||
else if (energyVec[i].length() == 3) {
|
||||
energyVec[i].insert(energyVec[i].end()-1, 1, '.');
|
||||
fEnergy.push_back(atof(energyVec[i].c_str()));
|
||||
} else {
|
||||
cout << "TTrimSPData::TTrimSPData: The energy cannot be correctly extracted from the rge-file name!" << endl;
|
||||
cout << "TTrimSPData::TTrimSPData: Please use file names in one of the following formats, e.g. for E=2.1keV use:" << endl;
|
||||
cout << "TTrimSPData::TTrimSPData: <some_path>02_1.rge" << endl;
|
||||
cout << "TTrimSPData::TTrimSPData: <some_path>02-1.rge" << endl;
|
||||
cout << "TTrimSPData::TTrimSPData: <some_path>02.1.rge" << endl;
|
||||
cout << "TTrimSPData::TTrimSPData: <some_path>021.rge" << endl;
|
||||
assert(false);
|
||||
}
|
||||
fEnergy.push_back(energyVec[i]);
|
||||
|
||||
while(*rgeFile >> word)
|
||||
if(word == "PARTICLES") break;
|
||||
|
@ -60,7 +60,8 @@ class TFitPofBStartupHandler : public TQObject {
|
||||
virtual void CheckLists();
|
||||
|
||||
virtual const string GetDataPath() const { return fDataPath; }
|
||||
virtual vector<string> GetEnergyList() const { return fEnergyList; }
|
||||
virtual vector<string> GetEnergyLabelList() const { return fEnergyLabelList; }
|
||||
virtual vector<double> GetEnergyList() const { return fEnergyList; }
|
||||
virtual const double GetDeltat() const { return fDeltat; }
|
||||
virtual const double GetDeltaB() const { return fDeltaB; }
|
||||
virtual const string GetWisdomFile() const { return fWisdomFile; }
|
||||
@ -68,7 +69,8 @@ class TFitPofBStartupHandler : public TQObject {
|
||||
virtual const unsigned int GetGridSteps() const { return fGridSteps; }
|
||||
|
||||
private:
|
||||
enum EKeyWords {eEmpty, eComment, eDebug, eLEM, eVortex, eDataPath, eEnergy, eEnergyList, eDeltat, eDeltaB, eWisdomFile, eNSteps, eGridSteps};
|
||||
enum EKeyWords {eEmpty, eComment, eDebug, eLEM, eVortex, eDataPath, eEnergyLabel, \
|
||||
eEnergy, eEnergyList, eDeltat, eDeltaB, eWisdomFile, eNSteps, eGridSteps};
|
||||
|
||||
EKeyWords fKey;
|
||||
|
||||
@ -76,7 +78,8 @@ class TFitPofBStartupHandler : public TQObject {
|
||||
bool fLEM;
|
||||
bool fVortex;
|
||||
string fDataPath;
|
||||
vector<string> fEnergyList;
|
||||
vector<string> fEnergyLabelList;
|
||||
vector<double> fEnergyList;
|
||||
double fDeltat;
|
||||
double fDeltaB;
|
||||
string fWisdomFile;
|
||||
|
@ -40,7 +40,7 @@ class TTrimSPData {
|
||||
|
||||
public:
|
||||
|
||||
TTrimSPData(const string&, vector<string>&);
|
||||
TTrimSPData(const string&, const vector<string>&, const vector<double>&);
|
||||
|
||||
~TTrimSPData() {
|
||||
fDataZ.clear();
|
||||
|
@ -6,7 +6,7 @@
|
||||
There are different sections:
|
||||
* Common parameters which are used for any kind of function
|
||||
* Parameters for low energy uSR data analysis with given B(z)
|
||||
* Parameters for bulk uSR data analysis (currently only one model to calculate field distributions for a triangular vortex lattice)
|
||||
* Parameters for bulk uSR data analysis (currently only four model to calculate field distributions for a triangular vortex lattice)
|
||||
|
||||
Common parameters:
|
||||
- debug : set it to 1 in order to obtain some information what is read from the xml-file
|
||||
@ -15,7 +15,8 @@
|
||||
- delta_B : field resolution of P(B) in Gauss
|
||||
|
||||
LEM parameters (if the LEM tag is present it is expected that the data_path tag contains a valid path):
|
||||
- data_path, energy_list : Defines path/prefix and energies (keV, format: %02u_%1u) of TrimSP-rge-files,
|
||||
- data_path, energy_list : Defines path/prefix, energy-labels and energies (keV) of TrimSP-rge-files
|
||||
The expected file-names are then: data_path + energy_label + .rge
|
||||
- N_theory : determines the number of points in "real space" where the theory function B(z) will be calculated (if necessary)
|
||||
|
||||
bulk parameters:
|
||||
@ -32,26 +33,46 @@
|
||||
<data_path>/home/l_wojek/TrimSP/YBCOxtal/YBCOxtal-500000-</data_path>
|
||||
<N_theory>5000</N_theory>
|
||||
<energy_list>
|
||||
<energy>03_0</energy>
|
||||
<energy>03_6</energy>
|
||||
<energy>05_0</energy>
|
||||
<energy>05_3</energy>
|
||||
<energy>07_0</energy>
|
||||
<energy>07_7</energy>
|
||||
<energy>08_0</energy>
|
||||
<energy>09_0</energy>
|
||||
<energy>10_0</energy>
|
||||
<energy>10_2</energy>
|
||||
<energy>12_0</energy>
|
||||
<energy>14_1</energy>
|
||||
<energy>16_0</energy>
|
||||
<energy>16_4</energy>
|
||||
<energy>18_0</energy>
|
||||
<energy>19_7</energy>
|
||||
<energy>20_0</energy>
|
||||
<energy>22_0</energy>
|
||||
<energy>24_0</energy>
|
||||
<energy>24_6</energy>
|
||||
<energy_label>03_0</energy_label>
|
||||
<energy>3.0</energy>
|
||||
<energy_label>03_6</energy_label>
|
||||
<energy>3.6</energy>
|
||||
<energy_label>05_0</energy_label>
|
||||
<energy>5.0</energy>
|
||||
<energy_label>05_3</energy_label>
|
||||
<energy>5.3</energy>
|
||||
<energy_label>07_0</energy_label>
|
||||
<energy>7.0</energy>
|
||||
<energy_label>07_7</energy_label>
|
||||
<energy>7.7</energy>
|
||||
<energy_label>08_0</energy_label>
|
||||
<energy>8.0</energy>
|
||||
<energy_label>09_0</energy_label>
|
||||
<energy>9.0</energy>
|
||||
<energy_label>10_0</energy_label>
|
||||
<energy>10.0</energy>
|
||||
<energy_label>10_2</energy_label>
|
||||
<energy>10.2</energy>
|
||||
<energy_label>12_0</energy_label>
|
||||
<energy>12.0</energy>
|
||||
<energy_label>14_1</energy_label>
|
||||
<energy>14.1</energy>
|
||||
<energy_label>16_0</energy_label>
|
||||
<energy>16.0</energy>
|
||||
<energy_label>16_4</energy_label>
|
||||
<energy>16.4</energy>
|
||||
<energy_label>18_0</energy_label>
|
||||
<energy>18.0</energy>
|
||||
<energy_label>19_7</energy_label>
|
||||
<energy>19.7</energy>
|
||||
<energy_label>20_0</energy_label>
|
||||
<energy>20.0</energy>
|
||||
<energy_label>22_0</energy_label>
|
||||
<energy>22.0</energy>
|
||||
<energy_label>24_0</energy_label>
|
||||
<energy>24.0</energy>
|
||||
<energy_label>24_6</energy_label>
|
||||
<energy>24.6</energy>
|
||||
</energy_list>
|
||||
</LEM>
|
||||
</TFitPofB>
|
||||
|
Loading…
x
Reference in New Issue
Block a user