Skip to content
Snippets Groups Projects
D0ToKPiSPiDec.hh 1.58 KiB
Newer Older
#pragma once

#include <iostream>
#include <vector>
#include <complex>
#include <map>
#include <string>

#include <cassert>
#include <boost/shared_ptr.hpp>

#include "PwaUtils/AbsXdecAmp.hh"
#include "Examples/D0ToKsPipPim/D0ToKsPipPimStates.hh"
#include "PwaDynamics/FVector.hh"
#include "PwaDynamics/KMatrixKPiSFocus.hh"
#include "PwaDynamics/PVectorKPiSFocus.hh"

class D0ToKPiSPiDec : public AbsXdecAmp{

public:

  // create/copy/destroy:

  ///Constructor 
 D0ToKPiSPiDec(const std::string& name, const std::vector<std::string>& hypVec, boost::shared_ptr<D0ToKsPipPimStates> theStates);

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


  // Getters:
  
  virtual complex<double> XdecAmp(Spin lamX, EvtDataNew* theData);
                                         
  virtual void getDefaultParams(fitParamsNew& fitVal, fitParamsNew& fitErr);
  virtual void print(std::ostream& os) const;
  virtual bool checkRecalculation(fitParamsNew& theParamVal);

  virtual void updateFitParams(fitParamsNew& theParamVal);

protected:
  const std::string _iso1Key;
  const std::string _iso3Key;
  bool _iso1Hyp;
  bool _iso3Hyp;

  boost::shared_ptr<D0ToKsPipPimStates> _theStatesPtr;

  virtual void initialize();

private:
  boost::shared_ptr<FVector> _fVec;  
  boost::shared_ptr<KMatrixKPiSFocus> _kMatr;
  boost::shared_ptr<PVectorKPiSFocus> _pVec;

  std::map<std::string, double> _currentbFactorMap;
  std::map<std::string, double> _currentaProdMap; 
  std::map<std::string, double> _currentbProdMap; 
  std::map<std::string, double> _currentcProdMap;
  std::map<std::string, double> _currentphaseProdMap;  
};