rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BABAR_2006_I719581

Decay asymmetries in the decay of $\Omega^-$ baryons produced in $\Xi^0_c$ and $\Omega_c^0$ decays
Experiment: BABAR (PEP-II)
Inspire ID: 719581
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Phys.Rev.Lett. 97 (2006) 112001
Beams: * *
Beam energies: ANY
Run details:
  • Any process producing Xi_c0 and Omega_c0 baryons

Measurement of the decay asymmetries in $\Xi^0_c\to\Omega^-K^+$ and $\Omega^-_c\to\Omega^-\pi^+$ by the BaBar experiment. In both cases the decay mode $\Omega^-\to\Lambda^0K^-$ was used. This analysis is useful for testing spin correlations in hadron decays.

Source code: BABAR_2006_I719581.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/UnstableParticles.hh"
  4
  5namespace Rivet {
  6
  7
  8  /// @brief Omega decay asymmetries
  9  class BABAR_2006_I719581 : public Analysis {
 10  public:
 11
 12    /// Constructor
 13    RIVET_DEFAULT_ANALYSIS_CTOR(BABAR_2006_I719581);
 14
 15
 16    /// @name Analysis methods
 17    //@{
 18
 19    /// Book histograms and initialise projections before the run
 20    void init() {
 21      
 22      // Initialise and register projections
 23      declare(UnstableParticles(), "UFS" );
 24      // Book histograms
 25      book(_h_ctheta_xic   ,1,1,1);
 26      book(_h_ctheta_omegac,2,1,1);
 27    }
 28
 29
 30    /// Perform the per-event analysis
 31    void analyze(const Event& event) {
 32      // loop over Xi_c0 baryons and Omega_c0 baryons
 33      for(const Particle& baryon : apply<UnstableParticles>(event, "UFS").particles(Cuts::abspid==4132 || Cuts::abspid==4332 )) {
 34	int sign = baryon.pid()/baryon.abspid();
 35	if(baryon.children().size()!=2) continue;
 36	Particle baryon1,meson1;
 37	if(baryon.abspid()==4132) {
 38	  if(baryon.children()[0].pid()==sign*3334 && 
 39	     baryon.children()[1].pid()==sign*321) {
 40	    baryon1 = baryon.children()[0];
 41	    meson1  = baryon.children()[1];
 42	  }
 43	  else if(baryon.children()[1].pid()==sign*3332 && 
 44		  baryon.children()[0].pid()==sign*321) {
 45	    baryon1 = baryon.children()[1];
 46	    meson1  = baryon.children()[0];
 47	  }
 48	  else
 49	    continue;
 50	}
 51	else {
 52	  if(baryon.children()[0].pid()==sign*3334 && 
 53	     baryon.children()[1].pid()==sign*211) {
 54	    baryon1 = baryon.children()[0];
 55	    meson1  = baryon.children()[1];
 56	  }
 57	  else if(baryon.children()[1].pid()==sign*3334 && 
 58		  baryon.children()[0].pid()==sign*211) {
 59	    baryon1 = baryon.children()[1];
 60	    meson1  = baryon.children()[0];
 61	  }
 62	  else
 63	    continue;
 64	}
 65	Particle baryon2,meson2;
 66	if(baryon1.children()[0].pid()== sign*3122 && 
 67	   baryon1.children()[1].pid()==-sign*321) {
 68	  baryon2 = baryon1.children()[0];
 69	  meson2  = baryon1.children()[1];
 70	}
 71	else if(baryon1.children()[1].pid()== sign*3122 && 
 72		baryon1.children()[0].pid()==-sign*321) {
 73	  baryon2 = baryon1.children()[1];
 74	  meson2  = baryon1.children()[0];
 75	}
 76	else
 77	  continue;
 78	// first boost to the Xic/Omegac rest frame
 79	LorentzTransform boost1 = LorentzTransform::mkFrameTransformFromBeta(baryon.momentum().betaVec());
 80	FourMomentum pbaryon1 = boost1.transform(baryon1.momentum());
 81	FourMomentum pbaryon2 = boost1.transform(baryon2.momentum());
 82	// to omega rest frame
 83	LorentzTransform boost2 = LorentzTransform::mkFrameTransformFromBeta(pbaryon1.betaVec());
 84	Vector3 axis = pbaryon1.p3().unit();
 85	FourMomentum pp = boost2.transform(pbaryon2);
 86	// calculate angle
 87	double cTheta = pp.p3().unit().dot(axis);
 88	if(baryon.abspid()==4132)
 89	  _h_ctheta_xic->fill(cTheta,1.);
 90	else 
 91	  _h_ctheta_omegac->fill(cTheta,1.);	
 92      }
 93    }
 94
 95
 96    /// Normalise histograms etc., after the run
 97    void finalize() {
 98
 99      normalize(_h_ctheta_xic);
100      normalize(_h_ctheta_omegac);
101    }
102
103    //@}
104
105
106    /// @name Histograms
107    //@{
108    Histo1DPtr _h_ctheta_xic,_h_ctheta_omegac;
109    //@}
110
111
112  };
113
114
115  // The hook for the plugin system
116  RIVET_DECLARE_PLUGIN(BABAR_2006_I719581);
117
118
119}