Page MenuHomeHEPForge

ScannerSMain.cpp
No OneTemporary

ScannerSMain.cpp

#include "ScannerSModelclasses.h"
#include "ScannerSTools.h"
#include "ScannerSUser.h"
#include "ScannerSInterface.h"
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc,char **argv){
CheckHelpNeeded(argc,argv);
ifstream instream;
ofstream outstream, logstream,errstream;
string inputfile, outputfile,logfile,errfile;
streambuf *outbuff,*logbuff,*errbuff;
RedirectOstream(cout,outstream,outbuff,argc,argv,outputfile,"-o");
RedirectInfostream(clog,logstream,logbuff,argc,argv,logfile,"--log");
RedirectInfostream(cerr,errstream,errbuff,argc,argv,errfile,"--err");
OpenInputFile(instream,argc,argv,inputfile,"-i");
unsigned int seed = atoi(ReturnOption(argc,argv,"--seed").c_str());
string snscan=ReturnOption(argc,argv,"--nscan");
unsigned int nscan=1;
if(snscan.size()!=0)
nscan=atoi(snscan.c_str());
RandGen r1(seed);
Potential V(r1),Vaux(r1);
instream>>V;
instream.close();
instream.clear();
instream.open(inputfile.c_str());
instream>> Vaux;
instream.close();
instream.clear();
PhiRef Phi(V);
LambdaRef L(V);
MassRef Mass(V);
MmixingRef Mixing(V);
unsigned int sizenscan=log10(nscan)+1;
//V.BoundTreeUni(); //Optional re-scalling of the quartic coupling ranges so that each individual quartic vertex is within tree level unitarity bounds
V.PrintHeader();
clog<< "Generating points in parameter space... "<< endl;
for(unsigned int i=0; i!=nscan;){
if(
V.generate() // Generate a parameter space point with all Vevs, Mixings, Couplings and Masses consistently determined.
&& V.CheckTreeUni() //Optional check if the combination of quartic couplings that has been chosen is consistent with tree levek unitarity
&& V.CheckBounds() //Check that the point generated is in the hypercubic region allowed by the user.
&& CheckStability(L) // Check if the potential is bounded from below (user defined in this version)
&& CheckGlobal(Phi,L,Vaux) // Check for other minimae (user defined in this version)
&& UserAnalysis(Phi,L,Mass,Mixing) // User defined tests and analysis if all previous conditions are fulfilled
){
#ifndef VERBOSE
clog << string(18+sizenscan+int(log10(i+1e-10)),'\b');
#endif
++i;
clog << i << " of "<<nscan<<" points done!"<< flush;
}
}
clog << endl;
}

File Metadata

Mime Type
text/x-c
Expires
Sat, Dec 21, 1:38 PM (19 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4022986
Default Alt Text
ScannerSMain.cpp (2 KB)

Event Timeline