MINT2
DalitzEventPattern.h
Go to the documentation of this file.
1 #ifndef DALITZEVENTPATTERN_HH
2 #define DALITZEVENTPATTERN_HH
3 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
4 // status: Mon 9 Feb 2009 19:18:00 GMT
5 
6 #include <iostream>
7 //#include <vector>
8 #include "Mint/PolymorphVector.h"
9 
10 #include "Mint/DecayTreeItem.h"
11 
12 #include "Mint/DecayTree.h"
13 //#include "Mint/AmpInitialiser.h"
14 
15 class AmpInitialiser;
16 
17 class DalitzEventPattern : public MINT::PolymorphVector<DecayTreeItem>{
18  public:
21  this->clear();
22  }
23  DalitzEventPattern(int pdg_ids[], int arrayDimension );
24  // note: arrayDimension = num mums (=1) + num daughters.
25 
27  DalitzEventPattern(const std::vector<int>& pdg_ids);
28  DalitzEventPattern(const std::vector<DecayTreeItem>& yetAnother);
31 
32  DalitzEventPattern(int mum, int d1, int d2);
33  DalitzEventPattern(int mum, int d1, int d2, int d3);
34  DalitzEventPattern(int mum, int d1, int d2, int d3, int d4);
35  DalitzEventPattern(const DecayTree& dt_in);
36 
37  virtual ~DalitzEventPattern(){}
38 
40 
41  bool equal(const DalitzEventPattern& other) const;
42  bool lt(const DalitzEventPattern& other) const;
43  bool operator==(const DalitzEventPattern& rhs) const;
44  bool operator!=(const DalitzEventPattern& rhs) const;
45  bool operator<(const DalitzEventPattern& rhs) const;
46  bool operator<=(const DalitzEventPattern& rhs) const;
47  bool operator>=(const DalitzEventPattern& rhs) const;
48  bool operator>(const DalitzEventPattern& rhs) const;
49 
50  bool compatibleWithFinalState(const AmpInitialiser& ampInitContainsTree)const;
51  bool compatibleWithFinalState(const DecayTree& tree)const;
52  bool compatibleWithFinalState(const DalitzEventPattern& pat)const;
53  bool compatibleWithFinalState(const std::vector<int>& otherFs)const;
55  return compatibleWithFinalState(otherFs.theVector());
56  }
57 
58  bool compatibleWith(const DecayTree& tree)const; // mother & final state
59 
60  bool selfConjugateFS() const;
61 
62  void print(std::ostream& os = std::cout)const;
63  std::vector<int> finalStates() const;
64 
65  double sijMin(const MINT::PolymorphVector<int>& indices) const;
66  double sijMax(const MINT::PolymorphVector<int>& indices) const;
67 
68  double sijMin(int i, int j) const;
69  double sijMax(int i, int j) const;
70 
71  double sijMin(int i, int j, int k) const;
72  double sijMax(int i, int j, int k) const;
73 
74  int numDaughters() const{
75  return this->size() -1 ;
76  }
77 
78  std::vector<int> getVectorOfInts() const;
79  std::string name() const;
80 };
81 
82 std::ostream& operator<<(std::ostream& os, const DalitzEventPattern& ep);
83 
84 // DalitzEventPattern contains a list of the mother
85 // and of all final state
86 // particles in the order in which they appear in
87 // the event record, identified by pdg-id.
88 //
89 // So it defines what 1 and 2 is in s_{12} etc
90 //
91 #endif
92 //
double sijMax(const MINT::PolymorphVector< int > &indices) const
bool lt(const DalitzEventPattern &other) const
bool compatibleWithFinalState(const MINT::PolymorphVector< int > &otherFs) const
std::ostream & operator<<(std::ostream &os, const DalitzEventPattern &ep)
bool compatibleWithFinalState(const AmpInitialiser &ampInitContainsTree) const
std::string name() const
std::vector< int > finalStates() const
bool operator==(const DalitzEventPattern &rhs) const
bool compatibleWith(const DecayTree &tree) const
bool operator<(const DalitzEventPattern &rhs) const
bool operator>=(const DalitzEventPattern &rhs) const
bool operator<=(const DalitzEventPattern &rhs) const
std::vector< int > getVectorOfInts() const
double sijMin(const MINT::PolymorphVector< int > &indices) const
static const DalitzEventPattern NoPattern
bool equal(const DalitzEventPattern &other) const
bool operator!=(const DalitzEventPattern &rhs) const
DalitzEventPattern makeCPConjugate() const
std::vector< T > & theVector()
void print(std::ostream &os=std::cout) const
bool operator>(const DalitzEventPattern &rhs) const