Skip to content
Snippets Groups Projects
JpsiToPhiPhiGamHist.hh 3.54 KiB
#ifndef _JpsiToPhiPhiGamHist_H
#define _JpsiToPhiPhiGamHist_H

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <utility>


#include <cassert>

#include <boost/shared_ptr.hpp>

#include "TROOT.h"
// #include <TSystem.h>
#include "qft++/topincludes/relativistic-quantum-mechanics.hh"
#include "qft++/topincludes/tensor.hh"
#include "PwaUtils/EvtDataBaseListNew.hh"
#include "PwaUtils/FitParamsBaseNew.hh"
#include "PwaUtils/AbsLhNew.hh"

//#include  "Examples/JpsiGamKsKlKK/FitParamErrorMatrix.hh"

class TFile;
class TH2F;
class TH1F;
class TNtuple;
//class JpsiToPhiPhiGamLh;
class EvtDataBaseListNew;
//class FitParamErrorMatrix;

class JpsiToPhiPhiGamHist {

public:

  // create/copy/destroy:

  ///Constructor 
  JpsiToPhiPhiGamHist(boost::shared_ptr<const EvtDataBaseListNew>);
  JpsiToPhiPhiGamHist(boost::shared_ptr<AbsLhNew>, fitParamsNew&);
  // JpsiToPhiPhiGamHist(JpsiGamKsKlKKProdLh* theJpsiGamKsKlKKLh, fitParams& fitParam,  FitParamErrorMatrix* theErrorMatrix );
  // void fill();
  void setMassRange(std::pair<double, double> theMassRange){ _massRange = theMassRange; }
  
  
  /** Destructor */
  virtual ~JpsiToPhiPhiGamHist();

  // Getters:
 
protected:


private:
  
 


  TFile* _theTFile;
  TH2F* _dalitzDataHist;
  TH2F* _dalitzMcHist;
  TH2F* _dalitzFittedHist;
  
  TH1F* _PhiPhiMassDataHist;
  TH1F* _PhiPhiMassMcHist;
  TH1F* _PhiPhiMassFittedHist;
  
  TH1F* _KpKmMassDataHist;
  TH1F* _KpKmMassMcHist;
  TH1F* _KpKmMassFittedHist;
  TH1F* _KsKlMassDataHist;
  TH1F* _KsKlMassMcHist;
  TH1F* _KsKlMassFittedHist;

  TH1F* _costKs_KsKlHeliDataHist;
  TH1F* _costKs_KsKlHeliMcHist;
  TH1F* _costKs_KsKlHeliFittedHist;
  TH1F* _phiKs_KsKlHeliDataHist;
  TH1F* _phiKs_KsKlHeliMcHist;
  TH1F* _phiKs_KsKlHeliFittedHist;
 
  TH1F*  _costKp_KpKmHeliDataHist; 
  TH1F*  _costKp_KpKmHeliMcHist; 
  TH1F*  _costKp_KpKmHeliFittedHist;
  TH1F*  _phiKp_KpKmHeliDataHist; 
  TH1F*  _phiKp_KpKmHeliMcHist; 
  TH1F*  _phiKp_KpKmHeliFittedHist;

  TH1F*  _costGamCmDataHist; 
  TH1F*  _costGamCmMcHist; 
  TH1F*  _costGamCmFittedHist;

  TH1F*  _costPhi_KpKmDataHist; 
  TH1F*  _costPhi_KpKmMcHist; 
  TH1F*  _costPhi_KpKmFittedHist; 

  TH1F*  _phiPhi_KpKmDataHist; 
  TH1F*  _phiPhi_KpKmMcHist; 
  TH1F*  _phiPhi_KpKmFittedHist;

  TH1F*  _chiDataHist; 
  TH1F*  _chiMcHist; 
  TH1F*  _chiFittedHist;
 
  TNtuple* _dataTuple;
  TNtuple* _mcTuple;

  TNtuple* _massIndepTuple;
  std::pair<double, double> _massRange;

  void initRootStuff();
  void plotDalitz(TH2F* theHisto, EvtDataNew* theData, double weight);
  void plotPhiPhi(TH1F* theHisto, EvtDataNew* theData, double weight);
  void plotKsKl(TH1F* theHisto, EvtDataNew* theData, double weight);
  void plotKpKm(TH1F* theHisto, EvtDataNew* theData, double weight);
  void plotCostPhiKs(TH1F* theCostHisto, TH1F* thePhiHisto, EvtDataNew* theData, double weight);
  void plotCostPhiKp(TH1F* theCostHisto,  TH1F* thePhiHisto, EvtDataNew* theData, double weight);
  void plotCostPhi_PhiPhiHeli(TH1F* theCostHisto, TH1F* thePhiHisto, const Vector4<double>& the4Vec, double weight);
  void plotCostGam(TH1F* theCostHisto, EvtDataNew* theData, double weight);

  void plotChi(TH1F* theChiHisto, EvtDataNew* theData, double weight);

  void fillTuple( TNtuple* theTuple, EvtDataNew* theData, double weight);

  double decayAngleChi(const Vector4<double>& v4_p,const Vector4<double>& v4_d1,
		       const Vector4<double>& v4_d2,const Vector4<double>& v4_h1,
		       const Vector4<double>& v4_h2 ) ;


  // JpsiGamKsKlKKProdLh* _theJpsiGamKsKlKKLh;
  // fitParams _fitParam;
  // FitParamErrorMatrix* _errMatrix;

};

#endif