Index: trunk/src/TableGeneratorSettings.cpp =================================================================== --- trunk/src/TableGeneratorSettings.cpp (revision 387) +++ trunk/src/TableGeneratorSettings.cpp (revision 388) @@ -1,210 +1,206 @@ //============================================================================== // TableGeneratorSettings.cpp // // Copyright (C) 2010-2019 Tobias Toll and Thomas Ullrich // // This file is part of Sartre. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation. // This program is distributed in the hope that it will be useful, // but without any warranty; without even the implied warranty of // merchantability or fitness for a particular purpose. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Author: Tobias Toll // Last update: // $Date$ // $Author$ //============================================================================== #include "Settings.h" #include "TableGeneratorSettings.h" #include "Constants.h" #include #include #include #include using namespace std; TableGeneratorSettings* TableGeneratorSettings::mInstance = 0; // initialize static TableGeneratorSettings* TableGeneratorSettings::instance() { if (mInstance == 0) mInstance = new TableGeneratorSettings; return mInstance; } TableGeneratorSettings::TableGeneratorSettings() { // // Register all the parameters that can be defined // via a runcard. // Arguments for registerParameter(): // 1. pointer to data memeber // 2. text string to be used in the runcard // 3. default parameter set // registerParameter(&mBSatLookupPath, "bSatLookupPath", string("./")); registerParameter(&mTmin, "tmin", -2.); registerParameter(&mTmax, "tmax", 0.); registerParameter(&mXmin, "xmin", 1e-9); //UPC registerParameter(&mXmax, "xmax", 3e-2); //UPC registerParameter(&mQ2bins, "Q2bins", static_cast(1)); registerParameter(&mW2bins, "W2bins", static_cast(1)); registerParameter(&mTbins, "tbins", static_cast(1)); registerParameter(&mXbins, "xbins", static_cast(1)); //UPC registerParameter(&mNumberOfConfigurations, "numberOfConfigurations", static_cast(1000)); vector vec; registerParameter(&mDipoleModelCustomParameters, "dipoleModelCustomParameters", vec); registerParameter(&mUseBackupFile, "useBackupFile", false); registerParameter(&mStartingBinFromBackup, "startingBinFromBackup", 0); registerParameter(&mStartBin, "startBin", -1); registerParameter(&mEndBin, "endBin", -1); registerParameter(&mModesToCalculate, "modesToCalculate", 0); registerParameter(&mPriority, "priority", 0); } void TableGeneratorSettings::consolidateSettings() // called after runcard is read { // // Kinematic limits // if (mQ2min>=mQ2max && !mUPC) { cout << "TableGeneratorSettings::consolidateSettings(): Error, Q2min >= Q2max. Stopping" << endl; exit(1); } if (mWmin>=mWmax && !mUPC) { cout << "TableGeneratorSettings::consolidateSettings(): Error, Wmin >= Wmax. Stopping" << endl; exit(1); } if (mTmin>=mTmax) { cout << "TableGeneratorSettings::consolidateSettings(): Error, tmin >= tmax. Stopping" << endl; exit(1); } if (mTmin>0. || mTmax >0.) { cout << "TableGeneratorSettings::consolidateSettings(): Error, t must be negative, please change t-limits. Stopping" << endl; exit(1); } if (mXmin>=mXmax && mUPC) { cout << "TableGeneratorSettings::consolidateSettings(): Error, xmin >= xmax. Stopping" << endl; exit(1); } if ((mXmin>=1 || mXmin<=0 || mXmax>=1 || mXmax<=0) and mUPC) { cout << "TableGeneratorSettings::consolidateSettings(): Error, xmin or xmax out of range. Stopping" << endl; exit(1); } if (mXmax>0.01 && mUPC){ cout << "TableGeneratorSettings::consolidateSettings(): Warning, xmax>1e-2, model may be unreliable." << endl; } if (mA==1) mNumberOfConfigurations = 1; if (!mUseBackupFile) mStartingBinFromBackup = 0; if (!mUPC) mXbins=1; else { mQ2bins=1; mW2bins=1; } if (mStartBin >= 0 && mEndBin >= 0 && mStartBin>mEndBin) { cout << "TableGeneratorSettings::consolidateSettings(): Error, endBin < startBin : " << mEndBin << " <= " << mStartBin << "! Stopping." << endl; exit(1); } if ( mStartBin < 0 ) mStartBin=0; if ( mStartBin >= signed(mQ2bins*mW2bins*mTbins*mXbins) ) { cout << "TableGeneratorSettings::consolidateSettings(): Error, starting bin >= table! Stopping." << endl; exit(1); } if ( mEndBin > signed(mQ2bins*mW2bins*mTbins*mXbins) || mEndBin < 0) { cout << "TableGeneratorSettings::consolidateSettings(): endBin is set to table size=" << mQ2bins*mW2bins*mTbins << endl; mEndBin=mQ2bins*mW2bins*mTbins*mXbins; } if ( mModesToCalculate < 0 || mModesToCalculate > 2 ) { cout << "TableGeneratorSettings::consolidateSettings(): Error, modesToCalculate can only take values 0, 1, or 2; not " << mModesToCalculate << endl; exit(1); } - if ( (mModesToCalculate == 1) && (mA == 1) ) { - cout << "TableGeneratorSettings::consolidateSettings(): Error, modesToCalculate and A cannot both be 1 simultaneously. This setting will produce NO tables." << endl; - exit(1); - } // // Make sure the W range is allowed // double VMMass=lookupPDG(mVectorMesonId)->Mass(); double W2min=VMMass*VMMass+protonMass2; double Wmin=sqrt(W2min); if(mWmin