MINT2
IDalitzEvent.h
Go to the documentation of this file.
1 #ifndef IDALITZ_EVENT_HH
2 #define IDALITZ_EVENT_HH
3 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
4 // status: Mon 9 Feb 2009 19:18:00 GMT
5 
6 #include "TLorentzVector.h"
7 #include "TVector3.h"
8 
9 #include "Mint/IWeightedEvent.h"
11 
12 #include <vector>
13 #include <iostream>
14 #include <complex>
15 
16 class IDalitzEvent : public virtual MINT::IWeightedEvent{
17  protected:
19  public:
20  virtual void setAValue(double aValue)=0;
21  virtual double getAValue()const=0;
22 
23  virtual void setWeight(double w)=0;
24  virtual double getWeight()const=0;
25 
26  virtual void setGeneratorPdfRelativeToPhaseSpace(double gpdf)=0;
27  virtual double getGeneratorPdfRelativeToPhaseSpace()const=0;
28 
29  virtual const std::vector<double>& getVectorOfValues() const=0;
30  virtual std::vector<double>& getVectorOfValues()=0;
31  virtual const std::vector<double>& getVectorOfWeights() const=0;
32  virtual std::vector<double>& getVectorOfWeights()=0;
33  virtual void setValueInVector(unsigned int i, double value)=0;
34  virtual void setWeightInVector(unsigned int i, double weight)=0;
35  virtual double getValueFromVector(unsigned int i) const=0;
36  virtual double getWeightFromVector(unsigned int i) const=0;
37 
38  virtual const DalitzEventPattern& eventPattern() const=0;
39  virtual const TLorentzVector& p(unsigned int i) const= 0;
40 
41  virtual void setMothers3Momentum(const TVector3& mp3)=0;
42 
43  virtual double s(unsigned int i, unsigned int j) const= 0;
44  virtual double sij(const MINT::PolymorphVector<int>& indices) const= 0;
45  virtual double t(unsigned int i, unsigned int j) const= 0;
46 
47  virtual double sijMin(const MINT::PolymorphVector<int>& indices) const=0;
48  virtual double sijMax(const MINT::PolymorphVector<int>& indices) const=0;
49 
50  virtual double phaseSpace() const= 0;
51 
52  virtual void print(std::ostream& os = std::cout) const=0;
53 
54  virtual bool retrieveValue(int i, std::complex<double>& value, long int configNumber)=0;
55  virtual void setValue(int i, const std::complex<double>& value, long int configNumber)=0;
56 
57  virtual bool retrieveValue(int i, double value, long int configNumber)=0;
58  virtual void setValue(int i, double value, long int configNumber)=0;
59 
60  virtual int numPermutations() const=0;
61  virtual void setPermutationIndex(int i)=0;
62  virtual int permutationIndex() const=0;
63 
64  virtual IDalitzEvent* clone() const=0;
65  virtual ~IDalitzEvent(){}
66 };
67 
68 bool EqualEvent(const IDalitzEvent* a, const IDalitzEvent* b);
69 
70 std::ostream& operator<<(std::ostream& os, const IDalitzEvent& de);
71 
72 #endif
73 //
std::ostream & operator<<(std::ostream &os, const IDalitzEvent &de)
virtual const std::vector< double > & getVectorOfValues() const =0
virtual double getWeight() const =0
virtual const std::vector< double > & getVectorOfWeights() const =0
virtual double t(unsigned int i, unsigned int j) const =0
virtual double phaseSpace() const =0
virtual void setGeneratorPdfRelativeToPhaseSpace(double gpdf)=0
virtual void setPermutationIndex(int i)=0
virtual bool retrieveValue(int i, std::complex< double > &value, long int configNumber)=0
virtual ~IDalitzEvent()
Definition: IDalitzEvent.h:65
virtual int numPermutations() const =0
virtual void setAValue(double aValue)=0
virtual double sij(const MINT::PolymorphVector< int > &indices) const =0
virtual double getWeightFromVector(unsigned int i) const =0
virtual void print(std::ostream &os=std::cout) const =0
virtual void setWeight(double w)=0
virtual IDalitzEvent * clone() const =0
virtual const TLorentzVector & p(unsigned int i) const =0
virtual const DalitzEventPattern & eventPattern() const =0
virtual double sijMax(const MINT::PolymorphVector< int > &indices) const =0
virtual double getValueFromVector(unsigned int i) const =0
virtual double getGeneratorPdfRelativeToPhaseSpace() const =0
virtual void setValue(int i, const std::complex< double > &value, long int configNumber)=0
virtual double sijMin(const MINT::PolymorphVector< int > &indices) const =0
virtual double getAValue() const =0
virtual void setValueInVector(unsigned int i, double value)=0
virtual double s(unsigned int i, unsigned int j) const =0
virtual void setMothers3Momentum(const TVector3 &mp3)=0
virtual int permutationIndex() const =0
virtual void setWeightInVector(unsigned int i, double weight)=0
bool EqualEvent(const IDalitzEvent *a, const IDalitzEvent *b)
Definition: IDalitzEvent.cpp:5