]>
Commit | Line | Data |
---|---|---|
0ca57c2f | 1 | //-------------------------------------------------------------------------- |
2 | // | |
3 | // Environment: | |
4 | // This software is part of the EvtGen package developed jointly | |
5 | // for the BaBar and CLEO collaborations. If you use all or part | |
6 | // of it, please give an appropriate acknowledgement. | |
7 | // | |
8 | // Copyright Information: See EvtGen/COPYRIGHT | |
9 | // Copyright (C) 1998 Caltech, UCSB | |
10 | // | |
11 | // Module: EvtGen/EvtGenericDalitz.hh | |
12 | // | |
13 | // Description: Model to describe a generic dalitz decay | |
14 | // | |
15 | // Modification history: | |
16 | // | |
17 | // DCC 16 December, 2011 Module created | |
18 | // | |
19 | //------------------------------------------------------------------------ | |
20 | ||
21 | #ifndef EVTDALITZTABLE_HPP | |
22 | #define EVTDALITZTABLE_HPP | |
23 | ||
24 | #include "EvtGenModels/EvtDalitzDecayInfo.hh" | |
25 | #include "EvtGenBase/EvtId.hh" | |
26 | ||
27 | #include "EvtGenBase/EvtDalitzReso.hh" | |
28 | #include "EvtGenBase/EvtDalitzPlot.hh" | |
29 | #include "EvtGenBase/EvtCyclic3.hh" | |
30 | #include "EvtGenBase/EvtSpinType.hh" | |
31 | ||
32 | #include <map> | |
33 | #include <string> | |
34 | #include <vector> | |
35 | ||
36 | class EvtDalitzTable { | |
37 | public: | |
38 | ||
39 | static EvtDalitzTable* getInstance(const std::string dec_name="", bool verbose=true); | |
40 | ||
41 | bool fileHasBeenRead(const std::string dec_name); | |
42 | void readXMLDecayFile(const std::string dec_name, bool verbose=true); | |
43 | void checkParticle(std::string particle); | |
44 | ||
45 | void addDecay(EvtId parent, const EvtDalitzDecayInfo& dec); | |
46 | void copyDecay(EvtId parent, EvtId* daughters, EvtId copy, EvtId* copyd); | |
47 | ||
48 | std::vector<EvtDalitzDecayInfo> getDalitzTable(const EvtId& parent); | |
49 | ||
50 | protected: | |
51 | ||
52 | EvtDalitzTable(); | |
53 | ~EvtDalitzTable(); | |
54 | ||
55 | private: | |
56 | ||
57 | EvtDalitzReso getResonance(std::string shape, EvtDalitzPlot dp, EvtCyclic3::Pair angPair, EvtCyclic3::Pair resPair, | |
58 | EvtSpinType::spintype spinType, double mass, double width, double FFp, double FFr, double alpha, | |
59 | double aLass, double rLass, double BLass, double phiBLass, double RLass, double phiRLass, double cutoffLass); | |
60 | int getDaughterPairs(EvtId* resDaughter, EvtId* daughter, std::vector< std::pair<EvtCyclic3::Pair,EvtCyclic3::Pair> >& angAndResPairs); | |
61 | ||
62 | std::map<EvtId, std::vector<EvtDalitzDecayInfo> > _dalitztable; | |
63 | std::vector<std::string> _readFiles; | |
64 | ||
65 | EvtDalitzTable(const EvtDalitzTable&); | |
66 | EvtDalitzTable& operator=(const EvtDalitzTable&); | |
67 | ||
68 | //to calculate probMax | |
69 | double calcProbMax(EvtDalitzPlot dp, EvtDalitzDecayInfo* model); | |
70 | double calcProb(EvtDalitzPoint point, EvtDalitzDecayInfo* model); | |
71 | }; | |
72 | ||
73 | #endif |