]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/EvtGenBase/EvtMultiChannelParser.hh
o updates to fix the 11a pass4 problem of T0 (Alla)
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenBase / EvtMultiChannelParser.hh
CommitLineData
da0e9ce3 1//-----------------------------------------------------------------------
2// File and Version Information:
3// $Id: EvtMultiChannelParser.hh,v 1.7 2009/02/19 03:22:30 ryd 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
27class EvtDecayMode;
28
29enum {POLAR_RAD,POLAR_DEG,CARTESIAN};
30
31class EvtMultiChannelParser {
32
33public:
34
35 EvtMultiChannelParser() : _pdfMax(-1.), _nScan(0), _dm(0.) {}
36 ~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 inline double pdfMax() const { return _pdfMax; }
49 inline int nScan() const { return _nScan; }
50 inline double dm() const { return _dm; }
51 inline double mixPhase() const { return _mixPhase; }
52 inline double mixAmpli() const { return _mixAmpli; }
53
54 inline std::vector<std::string> amp(int i) const { return _amp[i]; }
55 inline std::vector<std::string> ampConj(int i) const { return _ampConj[i]; }
56 inline EvtComplex ampCoef(int i) const { return _ampCoef[i]; }
57 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 inline int getNAmp() const { return _amp.size(); }
63 inline int getNAmpConj() const { return _ampConj.size(); }
64
65private:
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