#include <string.h>
#include <iostream>
#include <vector>
#include "TFile.h"
#include "TLorentzVector.h"
#include "TH1.h"
#include "TH2.h"
#include "TF1.h"
#include "TRandom3.h"
#include "TVector3.h"
#include <fstream>


using namespace std;
 
//MAIN
int main(int argc, char **argv) {
  //char  hId[120];

  TFile *inSino=new TFile("./medDat_all.root"); //Get the file that has histo
  TH2D* hSino=(TH2D*)inSino->Get("hSino"); //Get the histogram 
  int nBinsS     = hSino->GetNbinsX();
  int nBinsTheta = hSino->GetNbinsY();

  double intensityMax = hSino->GetMaximum();

  ofstream myfile_data, myfile_theta, myfile_data_dark, myfile_data_white;
  myfile_data.open ("data.csv");
  myfile_theta.open ("theta.csv");
  myfile_data_dark.open ("data_dark.csv");
  myfile_data_white.open ("data_light.csv");

  for (int iBinTheta = 0; iBinTheta < nBinsTheta; iBinTheta++) {
    double thetaVal = hSino->GetYaxis()->GetBinCenter(iBinTheta+1);
      myfile_theta<<thetaVal;
      myfile_theta<<endl;

    for (int iBinS = 0; iBinS < nBinsS; iBinS++) {
      double intensity = hSino->GetBinContent(iBinS+1,iBinTheta+1);
      //double sVal = hSino->GetXaxis()->GetBinCenter(iBinS+1);

      myfile_data<<iBinTheta;
      myfile_data<<",";
      myfile_data<<0;
      myfile_data<<",";
      myfile_data<<iBinS;
      myfile_data<<",";
      myfile_data<<intensity+6;
      myfile_data<<endl;



      if (iBinTheta <10){
	myfile_data_dark<<iBinTheta;
	myfile_data_dark<<",";
	myfile_data_dark<<0;
	myfile_data_dark<<",";
	myfile_data_dark<<iBinS;
	myfile_data_dark<<",";
	myfile_data_dark<<5;
	myfile_data_dark<<endl;

	myfile_data_white<<iBinTheta;
	myfile_data_white<<",";
	myfile_data_white<<0;
	myfile_data_white<<",";
	myfile_data_white<<iBinS;
	myfile_data_white<<",";
	myfile_data_white<<intensityMax;
	myfile_data_white<<endl;
      }



    }
  }

  /////////////
  myfile_data.close();
  myfile_data_white.close();
  myfile_data_dark.close();
  myfile_theta.close();

  return 0;
}

