Changed the format of the xml-startup file according to wishes of AS
This commit is contained in:
@ -533,12 +533,11 @@ void TBulkTriVortexAGLFieldCalc::CalculateGrid() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
double latConstTr(sqrt(2.0*fluxQuantum/(field*sqrt3)));
|
double latConstTr(sqrt(2.0*fluxQuantum/(field*sqrt3)));
|
||||||
double b(field/Hc2);
|
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 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 lambdasq_scaled(4.0/3.0*pow(lambda*PI/latConstTr,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
|
// ... now fill in the Fourier components if everything was okay above
|
||||||
double Gsq, sqrtXiSqScGsq, ll;
|
double Gsq, sqrtfInfSqPlusLsqGsq, ll;
|
||||||
int k, l, lNFFT_2;
|
int k, l, lNFFT_2;
|
||||||
|
|
||||||
for (l = 0; l < NFFT_2; l += 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);
|
ll = 3.0*static_cast<double>(l*l);
|
||||||
for (k = 0; k < NFFT_2; k += 2) {
|
for (k = 0; k < NFFT_2; k += 2) {
|
||||||
Gsq = static_cast<double>(k*k) + ll;
|
Gsq = static_cast<double>(k*k) + ll;
|
||||||
sqrtXiSqScGsq = ((k || l) ? sqrt(xisq_scaled*Gsq) : 1.0E-9);
|
sqrtfInfSqPlusLsqGsq = sqrt(fInf*fInf + lambdasq_scaled*Gsq);
|
||||||
fFFTin[lNFFT_2 + k][0] = sqrtXiSqScGsq*TMath::BesselK1(sqrtXiSqScGsq)/(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;
|
||||||
fFFTin[lNFFT_2 + k + 1][0] = 0.0;
|
fFFTin[lNFFT_2 + k + 1][0] = 0.0;
|
||||||
fFFTin[lNFFT_2 + k + 1][1] = 0.0;
|
fFFTin[lNFFT_2 + k + 1][1] = 0.0;
|
||||||
}
|
}
|
||||||
k = NFFT_2;
|
k = NFFT_2;
|
||||||
Gsq = static_cast<double>(k*k) + ll;
|
Gsq = static_cast<double>(k*k) + ll;
|
||||||
sqrtXiSqScGsq = sqrt(xisq_scaled*Gsq);
|
sqrtfInfSqPlusLsqGsq = sqrt(fInf*fInf + lambdasq_scaled*Gsq);
|
||||||
fFFTin[lNFFT_2 + k][0] = sqrtXiSqScGsq*TMath::BesselK1(sqrtXiSqScGsq)/(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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -565,16 +565,16 @@ void TBulkTriVortexAGLFieldCalc::CalculateGrid() const {
|
|||||||
ll = 3.0*static_cast<double>((NFFT-l)*(NFFT-l));
|
ll = 3.0*static_cast<double>((NFFT-l)*(NFFT-l));
|
||||||
for (k = 0; k < NFFT_2; k += 2) {
|
for (k = 0; k < NFFT_2; k += 2) {
|
||||||
Gsq = static_cast<double>(k*k) + ll;
|
Gsq = static_cast<double>(k*k) + ll;
|
||||||
sqrtXiSqScGsq = sqrt(xisq_scaled*Gsq);
|
sqrtfInfSqPlusLsqGsq = sqrt(fInf*fInf + lambdasq_scaled*Gsq);
|
||||||
fFFTin[lNFFT_2 + k][0] = sqrtXiSqScGsq*TMath::BesselK1(sqrtXiSqScGsq)/(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;
|
||||||
fFFTin[lNFFT_2 + k + 1][0] = 0.0;
|
fFFTin[lNFFT_2 + k + 1][0] = 0.0;
|
||||||
fFFTin[lNFFT_2 + k + 1][1] = 0.0;
|
fFFTin[lNFFT_2 + k + 1][1] = 0.0;
|
||||||
}
|
}
|
||||||
k = NFFT_2;
|
k = NFFT_2;
|
||||||
Gsq = static_cast<double>(k*k) + ll;
|
Gsq = static_cast<double>(k*k) + ll;
|
||||||
sqrtXiSqScGsq = sqrt(xisq_scaled*Gsq);
|
sqrtfInfSqPlusLsqGsq = sqrt(fInf*fInf + lambdasq_scaled*Gsq);
|
||||||
fFFTin[lNFFT_2 + k][0] = sqrtXiSqScGsq*TMath::BesselK1(sqrtXiSqScGsq)/(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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -585,10 +585,10 @@ void TBulkTriVortexAGLFieldCalc::CalculateGrid() const {
|
|||||||
ll = 3.0*static_cast<double>(l*l);
|
ll = 3.0*static_cast<double>(l*l);
|
||||||
for (k = 0; k < NFFT_2; k += 2) {
|
for (k = 0; k < NFFT_2; k += 2) {
|
||||||
Gsq = static_cast<double>((k + 1)*(k + 1)) + ll;
|
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][0] = 0.0;
|
||||||
fFFTin[lNFFT_2 + k][1] = 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;
|
fFFTin[lNFFT_2 + k + 1][1] = 0.0;
|
||||||
}
|
}
|
||||||
k = NFFT_2;
|
k = NFFT_2;
|
||||||
@ -601,10 +601,10 @@ void TBulkTriVortexAGLFieldCalc::CalculateGrid() const {
|
|||||||
ll = 3.0*static_cast<double>((NFFT-l)*(NFFT-l));
|
ll = 3.0*static_cast<double>((NFFT-l)*(NFFT-l));
|
||||||
for (k = 0; k < NFFT_2; k += 2) {
|
for (k = 0; k < NFFT_2; k += 2) {
|
||||||
Gsq = static_cast<double>((k+1)*(k+1)) + ll;
|
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][0] = 0.0;
|
||||||
fFFTin[lNFFT_2 + k][1] = 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;
|
fFFTin[lNFFT_2 + k + 1][1] = 0.0;
|
||||||
}
|
}
|
||||||
k = NFFT_2;
|
k = NFFT_2;
|
||||||
@ -619,7 +619,7 @@ void TBulkTriVortexAGLFieldCalc::CalculateGrid() const {
|
|||||||
// Multiply by the applied field
|
// Multiply by the applied field
|
||||||
#pragma omp parallel for default(shared) private(l) schedule(dynamic)
|
#pragma omp parallel for default(shared) private(l) schedule(dynamic)
|
||||||
for (l = 0; l < NFFTsq; l++) {
|
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
|
// 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;
|
fKey = eVortex;
|
||||||
} else if (!strcmp(str, "data_path")) {
|
} else if (!strcmp(str, "data_path")) {
|
||||||
fKey = eDataPath;
|
fKey = eDataPath;
|
||||||
|
} else if (!strcmp(str, "energy_label")) {
|
||||||
|
fKey = eEnergyLabel;
|
||||||
} else if (!strcmp(str, "energy")) {
|
} else if (!strcmp(str, "energy")) {
|
||||||
fKey = eEnergy;
|
fKey = eEnergy;
|
||||||
} else if (!strcmp(str, "delta_t")) {
|
} else if (!strcmp(str, "delta_t")) {
|
||||||
@ -160,9 +162,13 @@ void TFitPofBStartupHandler::OnCharacters(const char *str)
|
|||||||
// set the data path to the given path
|
// set the data path to the given path
|
||||||
fDataPath = str;
|
fDataPath = str;
|
||||||
break;
|
break;
|
||||||
|
case eEnergyLabel:
|
||||||
|
// add str to the energy label list
|
||||||
|
fEnergyLabelList.push_back(str);
|
||||||
|
break;
|
||||||
case eEnergy:
|
case eEnergy:
|
||||||
// add str to the energy list
|
// add str to the energy list
|
||||||
fEnergyList.push_back(str);
|
fEnergyList.push_back(atof(str));
|
||||||
break;
|
break;
|
||||||
case eDeltat:
|
case eDeltat:
|
||||||
// convert str to double and assign it to the deltat-member
|
// convert str to double and assign it to the deltat-member
|
||||||
@ -318,22 +324,36 @@ void TFitPofBStartupHandler::CheckLists()
|
|||||||
// check if any energies are given
|
// check if any energies are given
|
||||||
if(fDebug)
|
if(fDebug)
|
||||||
cout << endl << "TFitPofBStartupHandler::CheckLists: check energy list ..." << endl;
|
cout << endl << "TFitPofBStartupHandler::CheckLists: check energy list ..." << endl;
|
||||||
if (!fEnergyList.size()) {
|
if (fEnergyList.size() != fEnergyLabelList.size()) {
|
||||||
cout << "TFitPofBStartupHandler::CheckLists: Energy list empty! Setting the default list ( 0.0:0.1:32.9 keV)." << endl;
|
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];
|
char eChar[5];
|
||||||
for(unsigned int i(0); i<33; i++) {
|
for(unsigned int i(0); i<fEnergyList.size(); i++) {
|
||||||
for(unsigned int j(0); j<10; j++) {
|
sprintf(eChar, "%02.1f", fEnergyList[i]);
|
||||||
sprintf(eChar, "%02u_%u", i, j);
|
fEnergyLabelList.push_back(string(eChar));
|
||||||
fEnergyList.push_back(string(eChar));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if(fDebug) {
|
|
||||||
for (unsigned int i (0); i < fEnergyList.size(); i++)
|
|
||||||
cout << fEnergyList[i] << " ";
|
|
||||||
cout << endl;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
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
|
// check if any number of steps for the theory function is specified
|
||||||
if(fDebug)
|
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();
|
fNSteps = startupHandler->GetNSteps();
|
||||||
fWisdom = startupHandler->GetWisdomFile();
|
fWisdom = startupHandler->GetWisdomFile();
|
||||||
string rge_path(startupHandler->GetDataPath());
|
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(0.0); // phase
|
||||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
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.005); // Bkg-width
|
||||||
fParForPofB.push_back(0.0); // Bkg-weight
|
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;
|
fImpProfile = x;
|
||||||
x = 0;
|
x = 0;
|
||||||
|
|
||||||
@ -354,7 +355,8 @@ TLondon1D1L::TLondon1D1L() : fCalcNeeded(true), fFirstCall(true), fCallCounter(0
|
|||||||
fNSteps = startupHandler->GetNSteps();
|
fNSteps = startupHandler->GetNSteps();
|
||||||
fWisdom = startupHandler->GetWisdomFile();
|
fWisdom = startupHandler->GetWisdomFile();
|
||||||
string rge_path(startupHandler->GetDataPath());
|
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(0.0);
|
||||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
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(startupHandler->GetDeltaB());
|
||||||
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;
|
fImpProfile = x;
|
||||||
x = 0;
|
x = 0;
|
||||||
|
|
||||||
@ -505,7 +507,8 @@ TLondon1D2L::TLondon1D2L() : fCalcNeeded(true), fFirstCall(true), fLastTwoChange
|
|||||||
fNSteps = startupHandler->GetNSteps();
|
fNSteps = startupHandler->GetNSteps();
|
||||||
fWisdom = startupHandler->GetWisdomFile();
|
fWisdom = startupHandler->GetWisdomFile();
|
||||||
string rge_path(startupHandler->GetDataPath());
|
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(0.0);
|
||||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
fParForPofT.push_back(startupHandler->GetDeltat());
|
||||||
@ -515,7 +518,7 @@ TLondon1D2L::TLondon1D2L() : fCalcNeeded(true), fFirstCall(true), fLastTwoChange
|
|||||||
fParForPofB.push_back(startupHandler->GetDeltaB());
|
fParForPofB.push_back(startupHandler->GetDeltaB());
|
||||||
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;
|
fImpProfile = x;
|
||||||
x = 0;
|
x = 0;
|
||||||
|
|
||||||
@ -659,7 +662,8 @@ TProximity1D1LHS::TProximity1D1LHS() : fCalcNeeded(true), fFirstCall(true) {
|
|||||||
fNSteps = startupHandler->GetNSteps();
|
fNSteps = startupHandler->GetNSteps();
|
||||||
fWisdom = startupHandler->GetWisdomFile();
|
fWisdom = startupHandler->GetWisdomFile();
|
||||||
string rge_path(startupHandler->GetDataPath());
|
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(0.0);
|
||||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
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.01); // Bkg-width
|
||||||
fParForPofB.push_back(0.0); // Bkg-weight
|
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;
|
fImpProfile = x;
|
||||||
x = 0;
|
x = 0;
|
||||||
|
|
||||||
@ -825,7 +829,8 @@ TProximity1D1LHSGss::TProximity1D1LHSGss() : fCalcNeeded(true), fFirstCall(true)
|
|||||||
fNSteps = startupHandler->GetNSteps();
|
fNSteps = startupHandler->GetNSteps();
|
||||||
fWisdom = startupHandler->GetWisdomFile();
|
fWisdom = startupHandler->GetWisdomFile();
|
||||||
string rge_path(startupHandler->GetDataPath());
|
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(0.0);
|
||||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
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);
|
||||||
// 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;
|
fImpProfile = x;
|
||||||
x = 0;
|
x = 0;
|
||||||
|
|
||||||
@ -963,7 +968,8 @@ TLondon1D3L::TLondon1D3L() : fCalcNeeded(true), fFirstCall(true), fLastThreeChan
|
|||||||
fNSteps = startupHandler->GetNSteps();
|
fNSteps = startupHandler->GetNSteps();
|
||||||
fWisdom = startupHandler->GetWisdomFile();
|
fWisdom = startupHandler->GetWisdomFile();
|
||||||
string rge_path(startupHandler->GetDataPath());
|
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(0.0);
|
||||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
fParForPofT.push_back(startupHandler->GetDeltat());
|
||||||
@ -973,7 +979,7 @@ TLondon1D3L::TLondon1D3L() : fCalcNeeded(true), fFirstCall(true), fLastThreeChan
|
|||||||
fParForPofB.push_back(startupHandler->GetDeltaB());
|
fParForPofB.push_back(startupHandler->GetDeltaB());
|
||||||
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;
|
fImpProfile = x;
|
||||||
x = 0;
|
x = 0;
|
||||||
|
|
||||||
@ -1131,7 +1137,8 @@ TLondon1D3LS::TLondon1D3LS() : fCalcNeeded(true), fFirstCall(true), fLastThreeCh
|
|||||||
fNSteps = startupHandler->GetNSteps();
|
fNSteps = startupHandler->GetNSteps();
|
||||||
fWisdom = startupHandler->GetWisdomFile();
|
fWisdom = startupHandler->GetWisdomFile();
|
||||||
string rge_path(startupHandler->GetDataPath());
|
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(0.0);
|
||||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
fParForPofT.push_back(startupHandler->GetDeltat());
|
||||||
@ -1141,7 +1148,7 @@ TLondon1D3LS::TLondon1D3LS() : fCalcNeeded(true), fFirstCall(true), fLastThreeCh
|
|||||||
fParForPofB.push_back(startupHandler->GetDeltaB());
|
fParForPofB.push_back(startupHandler->GetDeltaB());
|
||||||
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;
|
fImpProfile = x;
|
||||||
x = 0;
|
x = 0;
|
||||||
|
|
||||||
@ -1451,7 +1458,8 @@ TLondon1D3LSub::TLondon1D3LSub() : fCalcNeeded(true), fFirstCall(true), fWeights
|
|||||||
fNSteps = startupHandler->GetNSteps();
|
fNSteps = startupHandler->GetNSteps();
|
||||||
fWisdom = startupHandler->GetWisdomFile();
|
fWisdom = startupHandler->GetWisdomFile();
|
||||||
string rge_path(startupHandler->GetDataPath());
|
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(0.0);
|
||||||
fParForPofT.push_back(startupHandler->GetDeltat());
|
fParForPofT.push_back(startupHandler->GetDeltat());
|
||||||
@ -1461,7 +1469,7 @@ TLondon1D3LSub::TLondon1D3LSub() : fCalcNeeded(true), fFirstCall(true), fWeights
|
|||||||
fParForPofB.push_back(startupHandler->GetDeltaB());
|
fParForPofB.push_back(startupHandler->GetDeltaB());
|
||||||
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;
|
fImpProfile = x;
|
||||||
x = 0;
|
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!
|
// 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 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);
|
double zz(0.0), nzz(0.0);
|
||||||
vector<double> vzz, vnzz;
|
vector<double> vzz, vnzz;
|
||||||
string word, energyStr;
|
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());
|
ifstream *rgeFile = new ifstream(energyStr.c_str());
|
||||||
if(! *rgeFile) {
|
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;
|
delete rgeFile;
|
||||||
rgeFile = 0;
|
rgeFile = 0;
|
||||||
} else {
|
} else {
|
||||||
if (energyVec[i].length() == 4)
|
fEnergy.push_back(energyVec[i]);
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
while(*rgeFile >> word)
|
while(*rgeFile >> word)
|
||||||
if(word == "PARTICLES") break;
|
if(word == "PARTICLES") break;
|
||||||
|
@ -60,7 +60,8 @@ class TFitPofBStartupHandler : public TQObject {
|
|||||||
virtual void CheckLists();
|
virtual void CheckLists();
|
||||||
|
|
||||||
virtual const string GetDataPath() const { return fDataPath; }
|
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 GetDeltat() const { return fDeltat; }
|
||||||
virtual const double GetDeltaB() const { return fDeltaB; }
|
virtual const double GetDeltaB() const { return fDeltaB; }
|
||||||
virtual const string GetWisdomFile() const { return fWisdomFile; }
|
virtual const string GetWisdomFile() const { return fWisdomFile; }
|
||||||
@ -68,7 +69,8 @@ class TFitPofBStartupHandler : public TQObject {
|
|||||||
virtual const unsigned int GetGridSteps() const { return fGridSteps; }
|
virtual const unsigned int GetGridSteps() const { return fGridSteps; }
|
||||||
|
|
||||||
private:
|
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;
|
EKeyWords fKey;
|
||||||
|
|
||||||
@ -76,7 +78,8 @@ class TFitPofBStartupHandler : public TQObject {
|
|||||||
bool fLEM;
|
bool fLEM;
|
||||||
bool fVortex;
|
bool fVortex;
|
||||||
string fDataPath;
|
string fDataPath;
|
||||||
vector<string> fEnergyList;
|
vector<string> fEnergyLabelList;
|
||||||
|
vector<double> fEnergyList;
|
||||||
double fDeltat;
|
double fDeltat;
|
||||||
double fDeltaB;
|
double fDeltaB;
|
||||||
string fWisdomFile;
|
string fWisdomFile;
|
||||||
|
@ -40,7 +40,7 @@ class TTrimSPData {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
TTrimSPData(const string&, vector<string>&);
|
TTrimSPData(const string&, const vector<string>&, const vector<double>&);
|
||||||
|
|
||||||
~TTrimSPData() {
|
~TTrimSPData() {
|
||||||
fDataZ.clear();
|
fDataZ.clear();
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
There are different sections:
|
There are different sections:
|
||||||
* Common parameters which are used for any kind of function
|
* Common parameters which are used for any kind of function
|
||||||
* Parameters for low energy uSR data analysis with given B(z)
|
* 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:
|
Common parameters:
|
||||||
- debug : set it to 1 in order to obtain some information what is read from the xml-file
|
- 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
|
- 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):
|
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)
|
- N_theory : determines the number of points in "real space" where the theory function B(z) will be calculated (if necessary)
|
||||||
|
|
||||||
bulk parameters:
|
bulk parameters:
|
||||||
@ -32,26 +33,46 @@
|
|||||||
<data_path>/home/l_wojek/TrimSP/YBCOxtal/YBCOxtal-500000-</data_path>
|
<data_path>/home/l_wojek/TrimSP/YBCOxtal/YBCOxtal-500000-</data_path>
|
||||||
<N_theory>5000</N_theory>
|
<N_theory>5000</N_theory>
|
||||||
<energy_list>
|
<energy_list>
|
||||||
<energy>03_0</energy>
|
<energy_label>03_0</energy_label>
|
||||||
<energy>03_6</energy>
|
<energy>3.0</energy>
|
||||||
<energy>05_0</energy>
|
<energy_label>03_6</energy_label>
|
||||||
<energy>05_3</energy>
|
<energy>3.6</energy>
|
||||||
<energy>07_0</energy>
|
<energy_label>05_0</energy_label>
|
||||||
<energy>07_7</energy>
|
<energy>5.0</energy>
|
||||||
<energy>08_0</energy>
|
<energy_label>05_3</energy_label>
|
||||||
<energy>09_0</energy>
|
<energy>5.3</energy>
|
||||||
<energy>10_0</energy>
|
<energy_label>07_0</energy_label>
|
||||||
<energy>10_2</energy>
|
<energy>7.0</energy>
|
||||||
<energy>12_0</energy>
|
<energy_label>07_7</energy_label>
|
||||||
<energy>14_1</energy>
|
<energy>7.7</energy>
|
||||||
<energy>16_0</energy>
|
<energy_label>08_0</energy_label>
|
||||||
<energy>16_4</energy>
|
<energy>8.0</energy>
|
||||||
<energy>18_0</energy>
|
<energy_label>09_0</energy_label>
|
||||||
<energy>19_7</energy>
|
<energy>9.0</energy>
|
||||||
<energy>20_0</energy>
|
<energy_label>10_0</energy_label>
|
||||||
<energy>22_0</energy>
|
<energy>10.0</energy>
|
||||||
<energy>24_0</energy>
|
<energy_label>10_2</energy_label>
|
||||||
<energy>24_6</energy>
|
<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>
|
</energy_list>
|
||||||
</LEM>
|
</LEM>
|
||||||
</TFitPofB>
|
</TFitPofB>
|
||||||
|
Reference in New Issue
Block a user