LCOV - code coverage report
Current view: top level - TEvtGen/EvtGen/EvtGenBase - EvtMultiChannelParser.hh (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 13 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 15 0.0 %

          Line data    Source code
       1             : //-----------------------------------------------------------------------
       2             : // File and Version Information: 
       3             : //      $Id: EvtMultiChannelParser.hh,v 1.2 2009-03-16 16:41:09 robbep Exp $
       4             : // 
       5             : // Environment:
       6             : //      This software is part of the EvtGen package developed jointly
       7             : //      for the BaBar and CLEO collaborations. If you use all or part
       8             : //      of it, please give an appropriate acknowledgement.
       9             : //
      10             : // Copyright Information:
      11             : //      Copyright (C) 1998 Caltech, UCSB
      12             : //
      13             : // Module creator:
      14             : //      Alexei Dvoretskii, Caltech, 2001-2002.
      15             : //-----------------------------------------------------------------------
      16             : 
      17             : // Parse decay file tokens from a file or a vector
      18             : 
      19             : #ifndef EVT_MULTI_CHANNEL_PARSER
      20             : #define EVT_MULTI_CHANNEL_PARSER
      21             : 
      22             : 
      23             : #include <vector>
      24             : #include <string>
      25             : #include "EvtGenBase/EvtComplex.hh"
      26             : 
      27             : class EvtDecayMode;
      28             : 
      29             : enum {POLAR_RAD,POLAR_DEG,CARTESIAN};  
      30             : 
      31             : class EvtMultiChannelParser {
      32             : 
      33             : public:
      34             : 
      35           0 :   EvtMultiChannelParser() : _pdfMax(-1.), _nScan(0), _dm(0.) {}
      36           0 :   ~EvtMultiChannelParser() {}
      37             : 
      38             :   static EvtDecayMode getDecayMode(const char* file);
      39             : 
      40             :   void parse(const char* file, const char* model);
      41             :   void parse(const std::vector<std::string>& v);
      42             : 
      43             :   static void parseComplexCoef(size_t& i, const std::vector<std::string>& v,
      44             :                                EvtComplex& c, int& format);
      45             :   static double parseRealCoef(int& i, const std::vector<std::string>& v);
      46             :   static bool isKeyword(const std::string& s);
      47             : 
      48           0 :   inline double pdfMax() const { return _pdfMax; }
      49           0 :   inline int nScan() const { return _nScan; }
      50           0 :   inline double dm() const { return _dm; }
      51           0 :   inline double mixPhase() const { return _mixPhase; }
      52           0 :   inline double mixAmpli() const { return _mixAmpli; }
      53             : 
      54           0 :   inline std::vector<std::string> amp(int i) const { return _amp[i]; }
      55           0 :   inline std::vector<std::string> ampConj(int i) const { return _ampConj[i]; }
      56           0 :   inline EvtComplex ampCoef(int i) const { return _ampCoef[i]; }
      57           0 :   inline EvtComplex ampConjCoef(int i) const { return _ampConjCoef[i]; }
      58             : 
      59             :   inline int coefFormat(int i) const { return _coefFormat[i]; }
      60             :   inline int coefConjFormat(int i) const { return _coefConjFormat[i]; }
      61             : 
      62           0 :   inline int getNAmp() const { return _amp.size(); } 
      63           0 :   inline int getNAmpConj() const { return _ampConj.size(); } 
      64             : 
      65             : private:
      66             : 
      67             :   double _pdfMax;
      68             :   int _nScan;
      69             :   double _dm;
      70             :   double _mixPhase;
      71             :   double _mixAmpli;
      72             : 
      73             :   std::vector<std::vector<std::string> >  _amp;
      74             :   std::vector<std::vector<std::string> >  _ampConj;
      75             :   std::vector<EvtComplex> _ampCoef;
      76             :   std::vector<int> _coefFormat;
      77             :   std::vector<EvtComplex> _ampConjCoef;
      78             :   std::vector<int> _coefConjFormat;
      79             : };
      80             : 
      81             : #endif
      82             : 
      83             : 
      84             : 
      85             : 
      86             : 

Generated by: LCOV version 1.11