Rivet analyses
Momentum Spectra and cross sections for DsJ*(2317)+ and DsJ*(2460)+ at 10.6 GeV
Experiment: BABAR (PEP-II)
Inspire ID: 714447
Status: VALIDATED
Authors: - Peter Richardson
References: - Phys.Rev. D74 (2006) 032007
Beams: e+ e-
Beam energies: (5.3, 5.3)GeV
Run details: - e+e- to hadrons
Momentum Spectra and cross sections for DsJ*(2317)+ and DsJ*(2460)+ at 10.6 GeV. All spectra and cross sections are for the centre-of-mass momentum of the excited Ds state, p*, greater than 3.2 GeV.
Source
code:BABAR_2006_I714447.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/UnstableParticles.hh"
namespace Rivet {
/// @brief D*(sJ) production
class BABAR_2006_I714447 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(BABAR_2006_I714447);
/// @name Analysis methods
/// @{
/// Book histograms and initialise projections before the run
void init() {
// projections
declare(UnstableParticles(),"UFS");
// histograms
// dists
book(_s_2317 ,2,1,1);
book(_s_2460_1,3,1,1);
book(_s_2460_2,4,1,1);
book(_hel ,5,1,1);
// rates
book(_r_2317 ,1,1,1);
book(_r_2460_1,1,1,2);
book(_r_2460_2,1,1,3);
book(_r_2460_3,1,1,4);
book(_r_2460_4,1,1,5);
book(_r_2536 ,1,1,6);
}
/// Perform the per-event analysis
void analyze(const Event& event) {
for(const Particle & Ds: apply<UnstableParticles>(event,"UFS").particles(Cuts::pid==10433 or
Cuts::pid==20433 or
Cuts::pid==10431)) {
// cut of 3.2 GeV of the momentum
double mom=Ds.momentum().p3().mod();
if(mom<=3.2) continue;
if(Ds.abspid()==10431) {
_s_2317->fill(mom);
}
else if(Ds.abspid()==20433) {
_s_2460_1->fill(mom);
_s_2460_2->fill(mom);
}
int sign = Ds.pid()/Ds.abspid();
Particle DsStar;
bool doHelicity=false;
// identify the decay mode
if(Ds.children().size()==2) {
if(Ds.children()[0].pid()==sign*431 &&
Ds.children()[1].pid()==111) {
if(Ds.abspid()==10431) _r_2317->fill("10.6"s);
}
else if(Ds.children()[1].pid()==sign*431 &&
Ds.children()[0].pid()==111) {
if(Ds.abspid()==10431) _r_2317->fill("10.6"s);
}
else if(Ds.children()[0].pid()==sign*433 &&
Ds.children()[1].pid()==111) {
if(Ds.abspid()==20433) {
_r_2460_3->fill("10.6"s);
DsStar=Ds.children()[0];
doHelicity=true;
}
}
else if(Ds.children()[1].pid()==sign*433 &&
Ds.children()[0].pid()==111) {
if(Ds.abspid()==20433) {
_r_2460_3->fill("10.6"s);
DsStar=Ds.children()[1];
doHelicity=true;
}
}
else if(Ds.children()[0].pid()==sign*431 &&
Ds.children()[1].pid()==22) {
if(Ds.abspid()==20433) _r_2460_1->fill("10.6"s);
}
else if(Ds.children()[1].pid()==sign*431 &&
Ds.children()[0].pid()==22) {
if(Ds.abspid()==20433) _r_2460_1->fill("10.6"s);
}
if(doHelicity && DsStar.children().size()==2) {
Particle gamma;
doHelicity=false;
for(const Particle & p : DsStar.children()) {
if(p.pid()==22) {
doHelicity=true;
gamma=p;
}
}
if(doHelicity) {
LorentzTransform boost = LorentzTransform::mkFrameTransformFromBeta(Ds.momentum().betaVec());
FourMomentum pDsStar = boost.transform(DsStar.momentum());
FourMomentum pGamma = boost.transform(gamma .momentum());
LorentzTransform boost2 = LorentzTransform::mkFrameTransformFromBeta(pDsStar.betaVec());
FourMomentum pGamma2 = boost2.transform(pGamma);
double cTheta = pGamma2.p3().unit().dot(pDsStar.p3().unit());
_hel->fill(cTheta);
}
}
}
Particles D, pip, pi0, gamma;
unsigned int nstable(0);
findDecayProducts(Ds,D,pip,pi0,gamma,nstable);
if(nstable==3) {
if(D.size()==1&&pip.size()==2) {
if(Ds.abspid()==20433) {
_r_2460_4->fill("10.6"s);
}
else if(Ds.abspid()==10433) {
_r_2536 ->fill("10.6"s);
}
}
else if(D.size()==1&&pi0.size()==1&&gamma.size()==1) {
if(Ds.abspid()==20433)
_r_2460_2->fill("10.6"s);
}
}
}
}
void findDecayProducts(Particle parent, Particles & Ds, Particles & pip, Particles & pi0,
Particles & gamma, unsigned int & nstable) {
for(const Particle & p: parent.children()) {
if(p.pid()==111) {
pi0.push_back(p);
++nstable;
}
else if(p.pid()==22) {
gamma.push_back(p);
++nstable;
}
else if(p.abspid()==211) {
pip.push_back(p);
++nstable;
}
else if(p.abspid()==431) {
Ds.push_back(p);
++nstable;
}
else if(p.children().empty()) {
++nstable;
}
else
findDecayProducts(p,Ds,pip,pi0,gamma,nstable);
}
}
/// Normalise histograms etc., after the run
void finalize() {
normalize(_s_2317 ,1.,false);
normalize(_s_2460_1,1.,false);
normalize(_s_2460_2,1.,false);
normalize(_hel ,1.,false);
scale(_r_2317 ,crossSection()/femtobarn/sumOfWeights());
scale(_r_2460_1,crossSection()/femtobarn/sumOfWeights());
scale(_r_2460_2,crossSection()/femtobarn/sumOfWeights());
scale(_r_2460_3,crossSection()/femtobarn/sumOfWeights());
scale(_r_2460_4,crossSection()/femtobarn/sumOfWeights());
scale(_r_2536 ,crossSection()/femtobarn/sumOfWeights());
}
/// @}
/// @name Histograms
/// @{
Histo1DPtr _s_2317,_s_2460_1,_s_2460_2,_hel;
BinnedHistoPtr<string> _r_2317,_r_2460_1,_r_2460_2,_r_2460_3,_r_2460_4,_r_2536;
/// @}
};
RIVET_DECLARE_PLUGIN(BABAR_2006_I714447);
}