Skip to content
Snippets Groups Projects
PsiToXGamStates.hh 3.21 KiB
#ifndef _PsiToXGamStates_H
#define _PsiToXGamStates_H

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


#include <boost/shared_ptr.hpp>

// #include <TSystem.h>
#include "qft++/topincludes/relativistic-quantum-mechanics.hh"
#include "PwaUtils/DataUtils.hh"


class PsiToXGamStates {

public:

  ///Constructor 
  PsiToXGamStates();


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

  virtual std::vector< boost::shared_ptr<const JPCLS> > PsiToEtaGammaStates() const {return _JPCLS_PsiToEtaGamma;}
  virtual std::vector< boost::shared_ptr<const JPCLS> > PsiToF0GammaStates() const {return _JPCLS_PsiToF0Gamma;}
  virtual std::vector< boost::shared_ptr<const JPCLS> > PsiToF1GammaStates() const {return _JPCLS_PsiToF1Gamma;}
  virtual std::vector< boost::shared_ptr<const JPCLS> > PsiToF2GammaStates() const {return _JPCLS_PsiToF2Gamma;}
  virtual std::vector< boost::shared_ptr<const JPCLS> > PsiToEta2GammaStates() const {return _JPCLS_PsiToEta2Gamma;}

  virtual std::vector< boost::shared_ptr<const JPClamlam> > PsiToEtaGammaLamLamStates() const {return _JPCLamLam_PsiToEtaGamma;}
  virtual std::vector< boost::shared_ptr<const JPClamlam> > PsiToF0GammaLamLamStates() const {return _JPCLamLam_PsiToF0Gamma;}
  virtual std::vector< boost::shared_ptr<const JPClamlam> > PsiToF1GammaLamLamStates() const {return _JPCLamLam_PsiToF1Gamma;}
  virtual std::vector< boost::shared_ptr<const JPClamlam> > PsiToF2GammaLamLamStates() const {return _JPCLamLam_PsiToF2Gamma;}
  virtual std::vector< boost::shared_ptr<const JPClamlam> > PsiToEta2GammaLamLamStates() const {return _JPCLamLam_PsiToEta2Gamma;}  
  virtual void print(std::ostream& os) const; 

protected:
  virtual void fillJPCLS(boost::shared_ptr<jpcRes>, boost::shared_ptr<jpcRes>, boost::shared_ptr<jpcRes>, std::vector< boost::shared_ptr<const JPCLS> >& );

  virtual void fillJPClamlam(std::vector< boost::shared_ptr<const JPCLS> >& theJPCLSvec, boost::shared_ptr<jpcRes> xRes, std::vector< boost::shared_ptr<const JPClamlam> >& toFill);

  virtual void printDecayJPCLS(std::ostream& os,std::vector< boost::shared_ptr<const JPCLS > > theJPCLS) const;
  virtual void printDecayJPClamlam(std::ostream& os,std::vector< boost::shared_ptr<const JPClamlam > > theJPClamlam) const;

private:

  boost::shared_ptr<jpcRes> _psiJPC;
  boost::shared_ptr<jpcRes> _gammaJPC;
  boost::shared_ptr<jpcRes> _etaJPC;
  boost::shared_ptr<jpcRes> _f0JPC;
  boost::shared_ptr<jpcRes> _f1JPC;
  boost::shared_ptr<jpcRes> _f2JPC;
  boost::shared_ptr<jpcRes> _eta2JPC;
  
  std::vector< boost::shared_ptr<const JPCLS> > _JPCLS_PsiToEtaGamma;
  std::vector< boost::shared_ptr<const JPCLS> > _JPCLS_PsiToF0Gamma;
  std::vector< boost::shared_ptr<const JPCLS> > _JPCLS_PsiToF1Gamma;
  std::vector< boost::shared_ptr<const JPCLS> > _JPCLS_PsiToF2Gamma;
  std::vector< boost::shared_ptr<const JPCLS> > _JPCLS_PsiToEta2Gamma;

  std::vector< boost::shared_ptr<const JPClamlam> > _JPCLamLam_PsiToEtaGamma;
  std::vector< boost::shared_ptr<const JPClamlam> > _JPCLamLam_PsiToF0Gamma; 
  std::vector< boost::shared_ptr<const JPClamlam> > _JPCLamLam_PsiToF1Gamma;
  std::vector< boost::shared_ptr<const JPClamlam> > _JPCLamLam_PsiToF2Gamma; 
  std::vector< boost::shared_ptr<const JPClamlam> > _JPCLamLam_PsiToEta2Gamma; 
};

#endif