1 #if !defined(INTENSITYMANAGER) 2 #define INTENSITYMANAGER 57 enum Type { kAmplitude, kMoment };
60 const string& reactionName);
70 virtual Type type()
const = 0;
79 virtual unsigned int maxFactorStoragePerEvent()
const = 0;
92 virtual unsigned int termStoragePerEvent()
const = 0;
112 virtual bool calcTerms(
AmpVecs& ampVecs )
const = 0;
127 virtual double calcIntensities(
AmpVecs& ampVecs )
const = 0;
141 virtual double calcSumLogIntensity(
AmpVecs& ampVecs )
const = 0;
156 virtual void calcIntegrals(
AmpVecs& ampVecs,
int iNGenEvents )
const = 0;
166 double calcIntensity(
const Kinematics* kinematics )
const;
181 const vector< string >& getTermNames()
const;
189 const AmpParameter& getScale(
const string& name )
const;
201 virtual bool hasTermWithFreeParam()
const = 0;
211 int termIndex(
const string& termName )
const;
231 complex< double > productionFactor(
const string& termName )
const;
238 complex< double > productionFactor(
int termIndex )
const;
248 void prodFactorArray(
double* array )
const;
261 bool hasTerm(
const string& termName )
const;
275 virtual void setupFromConfigurationInfo(
const ConfigurationInfo* configInfo ) = 0;
292 int addTerm(
const string& termName,
const string& scale =
"1.0" );
312 void setDefaultProductionFactor(
const string& termName,
313 complex< double > prodAmp );
335 void setExternalProductionFactor(
const string& ampName,
336 const complex< double >* prodAmpPtr );
359 virtual void setParPtr(
const string& termName,
const string& parName,
360 const double* ampParPtr );
382 virtual void setParValue(
const string& termName,
const string& parName,
383 double ampParValue );
390 virtual void updatePar(
const string& parName )
const {}
398 void resetProductionFactors();
458 string m_reactionName;
461 map< string, const complex< double >* > m_prodFactor;
464 vector< const complex< double >* > m_prodFactorVec;
469 vector< string > m_termNames;
470 map< string, int > m_termIndex;
473 map< string, complex< double > > m_defaultProdFactor;
476 bool m_renormalizeTerms;
479 vector< AmpParameter > m_termScaleVec;
string reactionName() const
virtual void updatePar(const string &parName) const
const NormIntInterface * normInt() const
bool termsAreRenormalized() const
virtual ~IntensityManager()