// Class object of Z rapidity distribution // // #include class Zrap{ public: Zrap(); // default constructor ~Zrap(); // default destructor int nbins(); // Number of Y bins double Y_binwd(int), sig_Y_binwd(int); // Y bin width and error double ds_dY(int), sig_ds_dY(int); // Cross section and error of Z->ee as a function of Y. double Nevts(int), sig_Nevts(int); // Number of events per Y bin and error int Nevts_tot(); // total number of events double Nbg(int), sig_Nbg(int); // Total number of background events per Y bin and error double Y(int); // Y of bin center. double eff(int), sig_eff(int); // Total number of background events per Y bin and error double acc(int), sig_acc(int); // Acceptance as a function of Y double lumi(), sig_lumi(); // Provides luminosity value and error double Kfac(), sig_Kfac(); // Methods to get Kfactor and error on Kfactor. // Kfactor = cross section(NLO)/cross section(LO) // Set Methods for data int set_nbins(int); // Number of Y bins int set_ds_dY(double, int), set_sig_ds_dY(double, int); //Set value for cross section and error of Zee per Y bin int set_Y_binwd(double, int), set_sig_Y_binwd(double, int); // Y bin width and error int set_Y(double, int); // Set Y of bin center. int set_Nevts(double, int), set_sig_Nevts(double, int); // Total number of events per Y bin and error int set_Nevts(double, int, double), set_sig_Nevts(double, int, double); // Total number of events per Y bin and error int set_Nbg(double, int), set_sig_Nbg(double, int); // Total number of background events per Y bin and error int set_Nbg(double, int, double), set_sig_Nbg(double, int, double); // Total number of background events per Y bin and error (value, bin index, bin center in Y) int set_eff(double, int), set_sig_eff(double, int); // Set the efficiency and eff error per Y bin int set_eff(double, int, double), set_sig_eff(double, int, double); // Set the efficiency and eff error per Y. Args are (eff, bin, Y) int set_acc(double, int), set_sig_acc(double, int); // Set acceptance and error per Y bin int set_acc(double, int, double), set_sig_acc(double, int, double); // Set acceptance and error per Y bin (acc, bin, Y) int set_lumi(double), set_sig_lumi(double); // Set luminosity value and error int set_Kfac(double), set_sig_Kfac(double); // Methods to set Kfactor and error on Kfactor. // Some methods that do something more than // just access data. double calc_ds_dY(int i); // Calculate dsigma/dY for Z->ee in ith bin. int calc_ds_dY(); // Calculate dsigma/dY for Z->ee in all bins. double calc_sig_ds_dY(int i); // Calculate uncertainty for dsigma/dY in ith bin. int calc_sig_ds_dY(); // Calculate uncertainty for dsigma/dY for all bins. int read_config(); // read in the configuration file int read_eff(); // read in efficiencies int read_acc(); // read in acceptance int read_Nevts(); // read number of events (not bg subtracted) int read_bg(); // read in background int read_binwd(); // read in bin sizes. int make_plots(); // make a bunch of plots int write_latex_output(); // write out results in a latex table. private: static const int _nbins=150; // for internal use only. The array size. int _nbins_used; // number of bins used. This one is to be set by the user. double _ds_dY[_nbins] , _sig_ds_dY[_nbins]; double _Y_binwd[_nbins] , _sig_Y_binwd[_nbins]; double _Y[_nbins]; // Y value of bin center double _Nevts[_nbins] , _sig_Nevts[_nbins], _Nevts_Y[_nbins], _sig_Nevts_Y[_nbins]; double _Nbg[_nbins] , _sig_Nbg[_nbins], _Nbg_Y[_nbins], _sig_Nbg_Y[_nbins]; double _eff[_nbins] , _sig_eff[_nbins], _eff_Y[_nbins], _sig_eff_Y[_nbins]; double _acc[_nbins], _sig_acc[_nbins], _acc_Y[_nbins], _sig_acc_Y[_nbins] ; double _lumi , _sig_lumi; // luminosity +- error double _Kfac , _sig_Kfac; // Kfactor and error. std::string _eff_file; std::string _acc_file; std::string _bg_file; std::string _nevts_file; std::string _datapath; int _debug; // private methods void _init(); int _plot_ds_dY_v_Y(); int _plot_eff_v_Y(); int _plot_acc_v_Y(); int _plot_nevts_v_Y(); int _plot_bg_v_Y(); };