MINT2
DalitzArea.h
Go to the documentation of this file.
1 #ifndef DALITZAREA_HH
2 #define DALITZAREA_HH
3 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
4 // status: Mon 9 Feb 2009 19:17:57 GMT
5 
8 
9 #include "TLorentzVector.h"
10 #include "TRandom.h"
11 
12 #include "Mint/counted_ptr.h"
13 
14 //#include <vector>
15 #include <iostream>
16 #include "Mint/PolymorphVector.h"
17 
18 class DalitzEvent;
19 class IDalitzEvent;
20 
21 class DalitzArea{
22 
24 
25  TRandom* _rnd;
26 
27  // MINT::counted_ptr<DalitzEvent> _evt;
28 
29  mutable bool _madeCMap;
30  void makeCoordinateMap()const;
31  void makeMiMa();
32 
33  bool compatiblePattern(const DalitzEventPattern& p)const;
36 
37  std::vector<DalitzArea> split_in_all_dim_3body(int n=2) const;
38  std::vector<DalitzArea> split_in_all_dim_4body(int n=2) const;
39 
40  public:
41  // for now keep them public:
42 
43  // currently storing the same info twice, once as
44  // a (flexible) map, once again as seperate variables
45  // - the latter mainly for passing it to
46  // the DalitzEvent constructor.
47  // Can remove the latter copy once the DalitzEvent
48  // constructor can take some 'coordinate set' or so.
49 
50  mutable std::map<DalitzCoordKey, DalitzCoordinate*> _coords;
52  // mutable for debug - remove this and const in makeCoordinate map.
53 
54  DalitzArea();
55  DalitzArea(const DalitzEventPattern& pat, TRandom* rnd = gRandom);
56  DalitzArea(const DalitzArea& other);
57  virtual ~DalitzArea();
58 
59  DalitzArea& operator=(const DalitzArea& other);
60 
61  bool setCoordinate(const DalitzCoordinate& c);
62 
63  void setPattern(const DalitzEventPattern& pat);
64 
65  bool isInside(const IDalitzEvent& evt) const;
66  // bool isInside(const DalitzEvent& evt) const;
67  bool isInside(const DalitzCoordinate& dc) const;
68  bool isInside(const std::vector<DalitzCoordinate>& dcList) const;
69 
70  double size() const;
71 
74  double scale1,
75  double scale2,
76  double scale3,
77  double scale4
78  ) const;
79 
80  /* one day...(3 body)
81  MINT::counted_ptr<DalitzEvent> makeEventForOwner(double scale0
82  double scale1
83  );
84  */
85 
86  void encloseInPhaseSpaceArea(double safetyFactor=1.0);
87 
88  void setAllLimitsToPhaseSpaceArea(double safetyFactor=1.0);
89 
90  std::vector<DalitzArea> split_in_all_dimensions(int n=2) const;
91 
92  void print(std::ostream& os = std::cout) const;
93 
94  bool setRnd(TRandom* rnd=gRandom);
95 };
96 
97 std::ostream& operator<<(std::ostream& os, const DalitzArea& da);
98 
99 #endif
100 //
std::vector< DalitzArea > split_in_all_dimensions(int n=2) const
Definition: DalitzArea.cpp:371
void setPattern(const DalitzEventPattern &pat)
Definition: DalitzArea.cpp:89
virtual ~DalitzArea()
Definition: DalitzArea.cpp:182
bool setRnd(TRandom *rnd=gRandom)
Definition: DalitzArea.cpp:105
void setAllLimitsToPhaseSpaceArea(double safetyFactor=1.0)
Definition: DalitzArea.cpp:165
bool isInside(const IDalitzEvent &evt) const
Definition: DalitzArea.cpp:214
std::vector< DalitzArea > split_in_all_dim_4body(int n=2) const
Definition: DalitzArea.cpp:411
double size() const
Definition: DalitzArea.cpp:251
MINT::counted_ptr< DalitzEvent > makeEventForOwner() const
Definition: DalitzArea.cpp:319
void makeCoordinateMap() const
Definition: DalitzArea.cpp:110
DalitzEventPattern _pat
Definition: DalitzArea.h:23
std::ostream & operator<<(std::ostream &os, const DalitzArea &da)
Definition: DalitzArea.cpp:464
void encloseInPhaseSpaceArea(double safetyFactor=1.0)
Definition: DalitzArea.cpp:147
bool setCoordinate(const DalitzCoordinate &c)
Definition: DalitzArea.cpp:358
MINT::counted_ptr< DalitzEvent > make3Event() const
Definition: DalitzArea.cpp:328
bool compatiblePattern(const DalitzEventPattern &p) const
Definition: DalitzArea.cpp:185
std::map< DalitzCoordKey, DalitzCoordinate * > _coords
Definition: DalitzArea.h:50
DalitzCoordinate _t40
Definition: DalitzArea.h:51
DalitzCoordinate _t01
Definition: DalitzArea.h:51
DalitzCoordinate _s12
Definition: DalitzArea.h:51
bool _madeCMap
Definition: DalitzArea.h:29
std::vector< DalitzArea > split_in_all_dim_3body(int n=2) const
Definition: DalitzArea.cpp:389
TRandom * _rnd
Definition: DalitzArea.h:25
DalitzArea & operator=(const DalitzArea &other)
Definition: DalitzArea.cpp:49
void print(std::ostream &os=std::cout) const
Definition: DalitzArea.cpp:452
void makeMiMa()
Definition: DalitzArea.cpp:129
MINT::counted_ptr< DalitzEvent > make4Event() const
Definition: DalitzArea.cpp:349
DalitzCoordinate _s23
Definition: DalitzArea.h:51
DalitzCoordinate _s34
Definition: DalitzArea.h:51