//Renata Kopecna #ifndef PARSEOPTS_HH #define PARSEOPTS_HH //TODO: toys //TODO: this should probably be a class instead of a struct //parameters //b Bin #b //d Dataset; 0 :data, 1 MC, ... //g FoldinG //e number of Events //i,j general purpose indices //l get likelihood profiles of final fit? //p Use P' instead of S //r Run: 0/1/2/12/21/22 //n number of toys //o feLdmanCousins //u Number of bins //v Verbosity //y Year: 2011, 2012, 2015, 2016, 2017, 2018 //z Used for testing stuff in case one needs an extra parameter to tune or so struct basic_params{ int bin; int dataset; int folding; int index; int jobID; bool likelyhood; bool FeldCous; bool usePprime; bool reference; int Run; int year; int nEvents; int nBins; int verbosity; int testInt; int polarity; basic_params(){ bin = -1; dataset = -1; folding = -1; index = -1; jobID = -1; Run = -1; year = -1; nEvents = -1; nBins = -1; likelyhood = false; FeldCous = false; usePprime = false; reference = false; verbosity = 2; testInt = -1; polarity = 0; } }; //Actions //a angular resolution //c angular Correction //f fit: //0: bkg only (0 signals :) (only ang fit!) //1: Full fit (2D+4D) //2: 2D mass fit //3: MoM //4: 4D MC fit (B mass+angles in bins of q2) //5: GenLvlFit //h Get help //k convert Events //m pulls from MC //s systematics //t pulls from toys struct basic_actions{ bool angRes; bool angCorr; //Use generic index i to set whether it is a scan or not bool angCorrScan; bool convert; int fitType; bool getHelp; int systematics; bool genToys; bool pullsToys; bool pullsMC; bool script; basic_actions(){ fitType = -1; systematics = -1; angCorrScan = false; angRes = false; angCorr = false; convert = false; getHelp = false; genToys = false; pullsToys = false; pullsMC = false; script = false; } }; int parseOpts(int argc, char *argv[], basic_params &par, basic_actions &act, int nMCEvents); int checkOpts(basic_params &par, basic_actions &act); #endif // PARSEOPTS_HH