MINT2
IFastAmplitudeIntegrable.h
Go to the documentation of this file.
1 #ifndef IFAST_AMPLITUDE_INTEGRABLE_HH
2 #define IFAST_AMPLITUDE_INTEGRABLE_HH
3 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
4 // status: Mon 9 Feb 2009 19:18:02 GMT
5 
6 #include "Mint/counted_ptr.h"
10 #include "Mint/IDalitzEvent.h"
12 #include "TRandom.h"
14 
15 #include "Mint/IntegCalculator.h"
16 
18 
19 #include <iostream>
20 #include <vector>
21 
23 : virtual public MINT::IReturnRealForEvent<IDalitzEvent>
24 , virtual public MINT::IReturnComplexForEvent<IDalitzEvent>
25 {
26  public:
30 
33  , TRandom* rnd=gRandom)=0;
34 
35  virtual void print(std::ostream& os=std::cout) const=0;
36 
37  virtual std::complex<double> ComplexVal(IDalitzEvent& evt){return std::complex<double>(RealVal(evt),0);}
38  virtual void Gradient(IDalitzEvent& evt,std::vector<double>& grad,MINT::MinuitParameterSet* mps){
39  std::cout << "Gradient of pdf is not implemented. Please implement me or set useAnalyticGradient to 0 in your options file. I'll crash now. " << std::endl;
40  throw "crash";
41  (void)evt;
42  (void)grad;
43  (void)mps;
44  }
45  virtual bool useAnalyticGradient() {return false;}
46 
48 };
49 
50 #endif
51 //
virtual std::complex< double > ComplexVal(IDalitzEvent &evt)
virtual MINT::counted_ptr< IIntegrationCalculator > makeIntegrationCalculator()=0
virtual double RealVal(IDalitzEvent &evt)=0
virtual MINT::counted_ptr< FitAmpPairList > makeFitAmpPairList()=0
virtual void print(std::ostream &os=std::cout) const =0
virtual MINT::counted_ptr< MINT::IUnweightedEventGenerator< IDalitzEvent > > makeEventGenerator(const DalitzEventPattern &pat, TRandom *rnd=gRandom)=0
virtual void Gradient(IDalitzEvent &evt, std::vector< double > &grad, MINT::MinuitParameterSet *mps)
virtual MINT::counted_ptr< IntegCalculator > makeIntegCalculator()=0