Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F9501872
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
8 KB
Subscribers
None
View Options
diff --git a/inc/LauAbsResonance.hh b/inc/LauAbsResonance.hh
index 3cd9728..89a8453 100644
--- a/inc/LauAbsResonance.hh
+++ b/inc/LauAbsResonance.hh
@@ -1,254 +1,273 @@
// Copyright University of Warwick 2004 - 2013.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// Authors:
// Thomas Latham
// John Back
// Paul Harrison
/*! \file LauAbsResonance.hh
\brief File containing declaration of LauAbsResonance class.
*/
/*! \class LauAbsResonance
\brief Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc.)
Abstract Class for defining the type for all classes used to model
resonances in the Dalitz plot, such as Breit-Wigner functions.
In addition, some common functionality is implemented, including data such
as the mass and width of the desired state.
*/
#ifndef LAU_ABS_RESONANCE
#define LAU_ABS_RESONANCE
#include "TString.h"
#include "LauComplex.hh"
class LauDaughters;
class LauKinematics;
class LauAbsResonance {
public:
//! Define the allowed resonance types
- enum LauResonanceModel {BW, RelBW, Flatte, Sigma, Kappa, Dabba, LASS_BW, LASS_NR, LASS, NRModel, BelleNR, GS, KMatrix, PolNR};
+ enum LauResonanceModel {
+ BW, /*!< simple Breit-Wigner */
+ RelBW, /*!< relativistic Breit-Wigner */
+ Flatte, /*!< Flatte or coupled-channel Breit-Wigner */
+ Sigma, /*!< special shape for the sigma or f_0(600) */
+ Kappa, /*!< special shape for the kappa, a low-mass Kpi scalar */
+ Dabba, /*!< special shape for the dabba, a low-mass Dpi scalar */
+ LASS, /*!< the LASS amplitude to describe the Kpi S-wave */
+ LASS_BW, /*!< the resonant part of the LASS amplitude */
+ LASS_NR, /*!< the nonresonant part of the LASS amplitude */
+ NRModel, /*!< a theoretical model nonresonant amplitude */
+ BelleNR, /*!< an empirical exponential nonresonant amplitude */
+ GS, /*!< a modified Breit-Wigner from Gounaris-Sakurai */
+ KMatrix, /*!< S-wave description using K-matrix and P-vector */
+ PolNR /*!< an empirical polynomial nonresonant amplitude */
+ };
//! Define the allowed types of barrier factors
- enum BarrierType { BWBarrier, BWPrimeBarrier, ExpBarrier };
+ enum BarrierType {
+ BWBarrier, /*!< Blatt-Weisskopf barrier factor (for use when momentum terms not used in angular term) */
+ BWPrimeBarrier, /*!< Blatt-Weisskopf barrier factor (for use when momentum terms are used in angular term) - the default */
+ ExpBarrier /*!< expoential barrier factor (mostly used for virtual contributions) */
+ };
//! Constructor
/*!
\param [in] resName the name of the resonance
\param [in] resMass the mass of the resonance
\param [in] resWidth the width of the resonance
\param [in] resSpin the spin of the resonance
\param [in] resCharge the charge of the resonance
\param [in] resPairAmpInt the number of the daughter not produced by the resonance
\param [in] daughters the daughter particles
*/
LauAbsResonance(const TString& resName, Double_t resMass, Double_t resWidth,
Int_t resSpin, Int_t resCharge, Int_t resPairAmpInt,
const LauDaughters* daughters);
//! Destructor
virtual ~LauAbsResonance();
//! Initialise the model
virtual void initialise() = 0;
//! Calculate the complex amplitude
/*!
\param [in] kinematics the kinematic variables of the current event
\return the complex amplitude
*/
virtual LauComplex amplitude(const LauKinematics* kinematics);
//! Get the resonance model type
/*!
\return the resonance model type
*/
virtual LauResonanceModel getResonanceModel() const = 0;
//! Get the name of the resonance
/*!
\return the resonance name
*/
const TString& getResonanceName() const {return resName_;}
//! Get the integer to identify which DP axis the resonance belongs to
/*!
\return the DP axis identification number, the ID of the bachelor
*/
Int_t getPairInt() const {return resPairAmpInt_;}
//! Get the spin of the resonance
/*!
\return the resonance spin
*/
Int_t getSpin() const {return resSpin_;}
//! Get the charge of the resonance
/*!
\return the resonance charge
*/
Int_t getCharge() const {return resCharge_;}
//! Get the mass of the resonance
/*!
\return the resonance mass
*/
Double_t getMass() const {return resMass_;}
//! Get the width of the resonance
/*!
\return the resonance width
*/
Double_t getWidth() const {return resWidth_;}
//! Get the helicity flip flag
/*!
\return the flip helicity flag
*/
Bool_t flipHelicity() const {return flipHelicity_;}
//! Set the helicity flip flag
/*!
\param [in] boolean the helicity flip status
*/
void flipHelicity(Bool_t boolean) {flipHelicity_ = boolean;}
//! Get the ignore momenta flag
/*!
\return the ignore momenta flag
*/
Bool_t ignoreMomenta() const {return ignoreMomenta_;}
//! Set the ignore p_ and q_ flag
/*!
\param [in] boolean the ignore momenta status
*/
void ignoreMomenta(Bool_t boolean) {ignoreMomenta_ = boolean;}
//! Allow the mass, width and spin of the resonance to be changed
/*!
\param [in] newMass new value of the resonance mass
\param [in] newWidth new value of the resonance width
\param [in] newSpin new value of the resonance spin
*/
void changeResonance(Double_t newMass, Double_t newWidth, Int_t newSpin);
//! Set the updated parameters from changeResonance
/*!
\param [in] value the updated parameter value
\param [in] name the updated parameter name
*/
virtual void setResonanceParameter(Double_t value, const TString& name);
protected:
//! Get the name of the parent particle
TString getNameParent() const;
//! Get the name of the first daughter of the resonance
TString getNameDaug1() const;
//! Get the name of the second daughter of the resonance
TString getNameDaug2() const;
//! Get the name of the daughter that does not originate form the resonance
TString getNameBachelor() const;
//! Get the parent particle mass
Double_t getMassParent() const;
//! Get the mass of daughter 1
Double_t getMassDaug1() const;
//! Get the mass of daughter 2
Double_t getMassDaug2() const;
//! Get the mass of the bachelor daughter
Double_t getMassBachelor() const;
//! Get the Charge of the parent particle
Int_t getChargeParent() const;
//! Get the charge of daughter 1
Int_t getChargeDaug1() const;
//! Get the charge of daughter 2
Int_t getChargeDaug2() const;
//! Get the charge of the bachelor daughter
Int_t getChargeBachelor() const;
//! Get the current value of the daughter momentum in the resonance rest frame
Double_t getQ() const {return q_;}
//! Get the current value of the bachelor momentum in the resonance rest frame
Double_t getP() const {return p_;}
//! Get the current value of the bachelor momentum in the parent rest frame
Double_t getPstar() const {return pstar_;}
//! Access the daughters object
const LauDaughters* getDaughters() const {return daughters_;}
//! Complex resonant amplitude
/*!
\param [in] mass appropriate invariant mass for the resonance
\param [in] spinTerm Zemach spin term
*/
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm) = 0;
private:
//! Information on the particles
const LauDaughters* daughters_;
//! Parent name
TString nameParent_;
//! Daughter 1 name
TString nameDaug1_;
//! Daughter 2 name
TString nameDaug2_;
//! Bachelor name
TString nameBachelor_;
//! Parent charge
Int_t chargeParent_;
//! Daughter 1 charge
Int_t chargeDaug1_;
//! Daughter 2 charge
Int_t chargeDaug2_;
//! Bachelor charge
Int_t chargeBachelor_;
//! Parent mass
Double_t massParent_;
//! Daughter 1 mass
Double_t massDaug1_;
//! Daughter 2 mass
Double_t massDaug2_;
// Bachelor mass
Double_t massBachelor_;
//! Resonance name
TString resName_;
//! Resonance mass
Double_t resMass_;
//! Resonance width
Double_t resWidth_;
//! Resonance spin
Int_t resSpin_;
//! Resonance charge
Int_t resCharge_;
//! DP axis identifier
Int_t resPairAmpInt_;
//! Boolean to flip helicity
Bool_t flipHelicity_;
//! Boolean to ignore q_ and p_ in spinTerm
Bool_t ignoreMomenta_;
//! Daughter momentum in resonance rest frame
Double_t q_;
//! Bachelor momentum in resonance rest frame
Double_t p_;
//! Bachelor momentum in parent rest frame
Double_t pstar_;
ClassDef(LauAbsResonance,0) // Abstract resonance class
};
#endif
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sun, Feb 23, 3:13 PM (42 m, 27 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4486877
Default Alt Text
(8 KB)
Attached To
rLAURA laura
Event Timeline
Log In to Comment