Index: trunk/examples/createBSatBDependenceTable.cpp =================================================================== --- trunk/examples/createBSatBDependenceTable.cpp (revision 384) +++ trunk/examples/createBSatBDependenceTable.cpp (revision 385) @@ -1,134 +1,133 @@ //============================================================================== // createBSatBDependenceTable.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: Thomas Ullrich // Last update: // $Date$ // $Author$ //============================================================================== // // Main program to create impact parameter lookup table. // [Developer only] //============================================================================== #include #include #include #include #include #include "TableGeneratorNucleus.h" #include "TableGeneratorSettings.h" #include "TFile.h" #include "TH2F.h" #include "TVector3.h" #include "Constants.h" #include "DipoleModelParameters.h" #define PR(x) cout << #x << " = " << (x) << endl; using namespace std; double overlapFunctionT(double); void createLookUpTableOnFile(unsigned int, unsigned int); DipoleModelParameters *gParameters; int main(int argc, const char* argv[]) { if (argc != 3) { cout << "Usage: " << argv[0] << " A numberOfConfigurations" << endl; return 2; } gParameters = new DipoleModelParameters(bSat, KMW); //To explicitly delete all new histograms myself: TH1::AddDirectory(false); unsigned int A=atoi(argv[1]); unsigned int numConf=atoi(argv[2]); cout<<"Create table for A="<BG(); // GeV^-2 double arg = (b*b/hbarc2) / (2*BG); return 1/(2*M_PI*BG) * exp(-arg); } void createLookUpTableOnFile(unsigned int A, unsigned int numberOfConfigurations) { // // A function to create a lookup table of nucleon configurations and save them on a file // This function is supposed to be independent from the rest of the code // and be called in the Main program with the nucleus number as an argument. // TableGeneratorNucleus myNucleus(A); // myNucleus.init(A); TableGeneratorSettings::instance()->setSeed(42); // sets also seed for ROOT vector hConfigurations(numberOfConfigurations); int numBbins=1e3, numAngleBins=1e3; double bRange=upperIntegrationLimit*myNucleus.radius()*1.1, angleRange=2*M_PI; ostringstream histoName; for(unsigned int iNuclei=0; iNucleiGetXaxis()->GetBinCenter(ib); for(int iphi=1; iphi <= numAngleBins; iphi++) { double phi=hConfigurations[iNuclei]->GetYaxis()->GetBinCenter(iphi); TVector3 bvector=TVector3(b*cos(phi), b*sin(phi), 0.); double sumOfT=0.; for(unsigned int iA=0; iA < A; iA++){ sumOfT+=overlapFunctionT((bvector-myNucleus.configuration.at(iA).position()).Perp()); } //for iA hConfigurations[iNuclei]->SetBinContent(ib, iphi, sumOfT); }//for iphi } //for ib - if ((numberOfConfigurations/10) && iNuclei % (numberOfConfigurations/10) == 0) { cout<Write(); delete hConfigurations[i]; hConfigurations[i] = 0; } lufile->Close(); cout<<" done, bye!"<