Skip to content
Snippets Groups Projects
OmegaPiHistLS.hh 2.85 KiB
Newer Older
#ifndef _OmegaPiHistLS_H
#define _OmegaPiHistLS_H

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

#include <cassert>

#include <boost/shared_ptr.hpp>

#include "TROOT.h"
// #include <TSystem.h>
#include "qft++/topincludes/relativistic-quantum-mechanics.hh"
#include "Examples/pbarpToOmegaPiLS/OmegaPiDataLS.hh"
// #include "Examples/pbarpToOmegaPiLS/AbsOmegaPiEventListLS.hh"

using OmegaPiDataLS::OmPiEvtDataLS;

class AbsOmegaPiEventListLS;
class AbsOmegaPiLhLS;
class TFile;
class TH2F;
class TH1F;


class OmegaPiHistLS {

public:

  // create/copy/destroy:

  ///Constructor 
  OmegaPiHistLS(boost::shared_ptr<const AbsOmegaPiEventListLS>, const std::string &thePathToRootFile);
  OmegaPiHistLS(boost::shared_ptr<AbsOmegaPiLhLS>, OmegaPiDataLS::fitParamVal&, const std::string &thePathToRootFile);

  /** Destructor */
  virtual ~OmegaPiHistLS();

  // Getters:
 
protected:


private:
  TFile* _theTFile;
  TH1F* _cosOmegaHeliDataHist;
  TH1F* _cosOmegaHeliMcHist;
  TH1F* _cosOmegaHeliFittedHist;
  TH1F* _cosOmegaAccCorHist;
  TH1F* _cosOmegaFittedAccCorHist;

  TH1F* _cosPi0FromOmegaDataHeli;
  TH1F* _cosPi0FromOmegaMcHeli;
  TH1F* _cosPi0FromOmegaFittedHeli;
  TH1F* _cosPi0FromOmegaAccCorHeli;
  TH1F* _cosPi0FromOmegaFittedAccCorHeli;

  TH1F* _treimanYangDataHist;
  TH1F* _treimanYangMcHist;
  TH1F* _treimanYangFittedHist;
  TH1F* _treimanYangAccCorHist;
  TH1F* _treimanYangFittedAccCorHist;

  TH1F* _cosPi0FromOmegaDataHeli1; 
  TH1F* _lambdaOmegaTo3PiData;
  TH1F* _lambdaOmegaTo3PiMc;
  TH1F* _lambdaOmegaTo3PiFitted; 

  TH2F* _thetaPhiPi0FromOmegaDataHeli;
  TH2F* _thetaPhiPi0FromOmegaMcHeli;
  TH2F* _thetaPhiPi0FromOmegaFittedHeli;
  TH2F* _thetaPhiPi0FromOmegaAccCorHeli;
  TH2F* _thetaPhiPi0FromOmegaFittedAccCorHeli;

  TH3F* _prodDecThetaPhiPi0FromOmegaDataHeli;
  TH3F* _prodDecThetaPhiPi0FromOmegaMcHeli;
  TH3F* _prodDecThetaPhiPi0FromOmegaFittedHeli;

  unsigned _lmax;
  unsigned _pbarmom;

  void initRootStuff(const std::string &thePathToRootFile);
  void plotCosOmegaHeli(TH1F* theHisto, const OmPiEvtDataLS* theEvtData, double weight);
  void plotCosPi0FromOmegaHeli(TH1F* theHisto, const OmPiEvtDataLS* theEvtData, double weight);
  void plotCosPi0FromOmegaHeli1(TH1F* theHisto, const OmPiEvtDataLS* theEvtData, double weight);
  void plotTreimanYang(TH1F* theHisto, const OmPiEvtDataLS* theEvtData, double weight);
  void plotThetaPhiPi0FromOmegaHeli(TH2F* theHisto, const OmPiEvtDataLS* theEvtData, double weight);
  void plotProdDecThetaPhiPi0FromOmegaHeli(TH3F* theHisto, const OmPiEvtDataLS* theEvtData, double weight);
  void plotLambdaOmegaTo3Pi(TH1F* theHisto, const OmPiEvtDataLS* theEvtData, double weight);
  TH1F* doAccCor(TH1F* dataHist, TH1F* mcHist, const std::string& name, const std::string& title);
  TH2F* doAccCor(TH2F* dataHist, TH2F* mcHist, const std::string& name, const std::string& title);