StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
EvtDalitzTable.hh
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 
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 
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 
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
Definition: EvtId.hh:27