#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;

int main(int argc, char **argv) {


  TFile *inFile = new TFile("./AB_V1.root"); //Get the file that has histo
  TH1D *hTheta45=(TH1D*) inFile->Get("hMassKpStar"); //Get the histogram 

  double sMax = hTheta45->GetXaxis()->GetXmax();
  double sMin = hTheta45->GetXaxis()->GetXmin();
  int nBinsS     = hTheta45->GetNbinsX();

  int nBinsX = nBinsS;
  double xMin = sMin;
  double xMax = sMax;

  int nBinsY = nBinsS;
  double yMin = sMin;
  double yMax = sMax;

  //int theta = (45*3.14157/180)

  TH2D *hXY = new TH2D("hXY","",nBinsX,xMin,xMax,nBinsY,yMin,yMax);

  for (int iBinX = 1; iBinX <= nBinsX; iBinX++) {
    for (int iBinY = 1; iBinY <= nBinsY; iBinY++) {
      double xVal = hXY->GetXaxis()->GetBinCenter(iBinX);
      double yVal = hXY->GetYaxis()->GetBinCenter(iBinY);
      //double sVal = xVal*0.52532 + yVal*0.85090;// for fixed 45 degrees

      double thetaVal = 45*3.14159/180;

      double sVal = xVal*cos(thetaVal) + yVal*sin(thetaVal);// for fixed 45 degrees

      int sBin = hTheta45->GetXaxis()->FindBin(sVal);//stuck
      double intensityVal = hTheta45->GetBinContent(sBin);//stuck

      if (intensityVal != 0){ 
      
	cout<<"ix,iy: x,y,s = "<<iBinX<<" , "<<iBinY<<" : "<<xVal<<" , "<<yVal<<" ; "<<sVal<<endl;
	cout<<"intensity = "<<intensityVal<<endl;//prints intensity value of 0 for all s values. 
	
	cout<<"sBin, sVal = "<<sBin<<" , "<<sVal<<endl;
      }
      
      hXY->SetBinContent(iBinX,iBinY,intensityVal);

    }
  }

  TFile *outFile = new TFile("./myOutFile.root","RECREATE");
  outFile->cd();
  hXY->Write();
  outFile->Close();
  return 0;


}

