[Rivet-svn] r3671 - in trunk: data/anainfo data/plotinfo src/Analyses

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Wed Apr 11 15:14:55 BST 2012


Author: richardn
Date: Wed Apr 11 15:14:55 2012
New Revision: 3671

Log:
BaBar tau decay analysis added

Added:
   trunk/data/anainfo/BABAR_2007_S7266081.info
      - copied, changed from r3667, trunk/data/anainfo/BABAR_2007_S6895344.info
   trunk/data/plotinfo/BABAR_2007_S7266081.plot
      - copied, changed from r3667, trunk/data/plotinfo/BABAR_2007_S6895344.plot
   trunk/src/Analyses/BABAR_2007_S7266081.cc
      - copied, changed from r3667, trunk/src/Analyses/ARGUS_1993_S2789213.cc
Modified:
   trunk/data/anainfo/Makefile.am
   trunk/data/plotinfo/Makefile.am
   trunk/src/Analyses/Makefile.am

Copied and modified: trunk/data/anainfo/BABAR_2007_S7266081.info (from r3667, trunk/data/anainfo/BABAR_2007_S6895344.info)
==============================================================================
--- trunk/data/anainfo/BABAR_2007_S6895344.info	Tue Apr 10 08:03:31 2012	(r3667, copy source)
+++ trunk/data/anainfo/BABAR_2007_S7266081.info	Wed Apr 11 15:14:55 2012	(r3671)
@@ -1,34 +1,37 @@
-Name: BABAR_2007_S6895344
-Summary: Inclusive $\Lambda_c^+$ Production in $e^+e^-$ Annihilation at $\sqrt{s}=10.54$ GeV and in $\Upsilon(4S)$ Decays.
+Name: BABAR_2007_S7266081
+Summary: Measurements of Semi-Leptonic Tau Decays into Three Charged Hadrons
 Status: VALIDATED
 Authors:
  - Peter Richardson <Peter.Richardson at durham.ac.uk>
 References:
- - Phys.Rev. D75 (2007) 012003
- - hep-ex/0609004
+ - Phys.Rev.Lett.100:011801,2008
+ - arXiv:0707.2981
+ - SLAC-R-936
 RunInfo:
-  $e^+ e^-$ analysis on the $\Upsilon(4S)$ resonance, with CoM boost -- 8.0~GeV~($e^−$) and 3.5~GeV~($e^+$)
+  Tau production, can be any process but original data was in  $e^+ e^-$ at the $\Upsilon(4S)$ resonance, with CoM boost -- 8.0~GeV~($e^−$) and 3.5~GeV~($e^+$)
 NumEvents: 1000000
-SpiresID: 6895344
+SpiresID: 7266081
 Beams: [e+, e-]
-Energies: [[3.5, 8.0],[3.5,7.91]]
+Energies: [[3.5, 8.0]]
 PtCuts: [0]
-Description: Measurements of the total production rates and momentum distributions of the charmed baryon $\Lambda_c^+$ in 
-             $e^+e^- \to$ hadrons at a centre-of-mass energy of 10.54 GeV and in $\Upsilon(4S)$ decays.
-BibKey: Aubert:2006cp
-BibTeX: '@article{Aubert:2006cp,
-      author         = "Aubert, Bernard and others",
-      title          = "{Inclusive $\Lambda_c^+$ Production in $e^+ e^-$ Annihilations
-                        at $\sqrt{s}=10.54$ GeV and in $\Upsilon(4S)$ Decays}",
-      collaboration  = "BABAR Collaboration",
-      journal        = "Phys.Rev.",
-      volume         = "D75",
-      pages          = "012003",
-      doi            = "10.1103/PhysRevD.75.012003",
-      year           = "2007",
-      eprint         = "hep-ex/0609004",
-      archivePrefix  = "arXiv",
-      primaryClass   = "hep-ex",
-      reportNumber   = "SLAC-PUB-12074, BABAR-PUB-06-054",
-      SLACcitation   = "%%CITATION = HEP-EX/0609004;%%",
+Description: Measurement of tau decays to three charged hadrons using
+ a data sample corresponding to an integrated luminosity of 342 $fb^{-1}$ collected
+ with the BABAR detector at the SLAC PEP-II electron-positron storage ring operating
+ at a center-of-mass energy near 10.58 GeV.
+BibKey: Aubert:2007mh
+BibTeX: '@Article{Aubert:2007mh,
+     author    = "Aubert, Bernard and others",
+     collaboration = "BABAR",
+     title     = "{Exclusive branching fraction measurements of semileptonic
+                  tau decays into three charged hadrons, $\tau^- \to \phi
+                  \pi^- \nu_\tau$ and $\tau^- \to \phi K^- \nu_\tau$}",
+     journal   = "Phys. Rev. Lett.",
+     volume    = "100",
+     year      = "2008",
+     pages     = "011801",
+     eprint    = "0707.2981",
+     archivePrefix = "arXiv",
+     primaryClass  =  "hep-ex",
+     doi       = "10.1103/PhysRevLett.100.011801",
+     SLACcitation  = "%%CITATION = 0707.2981;%%"
 }'

Modified: trunk/data/anainfo/Makefile.am
==============================================================================
--- trunk/data/anainfo/Makefile.am	Tue Apr 10 12:33:07 2012	(r3670)
+++ trunk/data/anainfo/Makefile.am	Wed Apr 11 15:14:55 2012	(r3671)
@@ -45,6 +45,7 @@
   ATLAS_2012_I1094568.info \
   BABAR_2005_S6181155.info \
   BABAR_2007_S6895344.info \
+  BABAR_2007_S7266081.info \
   BELLE_2001_S4598261.info \
   BELLE_2006_S6265367.info \
   CDF_1988_S1865951.info \

Copied and modified: trunk/data/plotinfo/BABAR_2007_S7266081.plot (from r3667, trunk/data/plotinfo/BABAR_2007_S6895344.plot)
==============================================================================
--- trunk/data/plotinfo/BABAR_2007_S6895344.plot	Tue Apr 10 08:03:31 2012	(r3667, copy source)
+++ trunk/data/plotinfo/BABAR_2007_S7266081.plot	Wed Apr 11 15:14:55 2012	(r3671)
@@ -1,30 +1,88 @@
-
-# BEGIN PLOT /BABAR_2007_S6895344/d01-x01-y01
-Title=$\Lambda_c^+$ scaled momentum in the continuum region
-XLabel=$x_p$
-YLabel=$1/\sigma\times\text{d}\sigma/\text{d}x_p$
+# BEGIN PLOT /BABAR_2007_S7266081/d01-x01-y01
+Title=$\pi^-\pi^-\pi^+$ mass in $\tau^-\to\pi^-\pi^-\pi^+\nu_\tau$ decays
+XLabel=$m_{\pi^-\pi^-\pi^+}$ [GeV]
+YLabel=$1/\Gamma\text{d}\Gamma/\text{d}m_{\pi^-\pi^-\pi^+}$ [ $\text{GeV}^{-1}$]
 YLog=0
 # END PLOT
-
-# BEGIN PLOT /BABAR_2007_S6895344/d03-x01-y01
-Title=$\Lambda_c^+$ scaled momentum in the resonance region
-XLabel=$x_p$
-YLabel=$1/\sigma\times\text{d}\sigma/\text{d}x_p$
+# BEGIN PLOT /BABAR_2007_S7266081/d02-x01-y01
+Title=$\pi^-\pi^+$ mass in $\tau^-\to\pi^-\pi^-\pi^+\nu_\tau$ decays
+XLabel=$m_{\pi^-\pi^+}$ [GeV]
+YLabel=$1/\Gamma\text{d}\Gamma/\text{d}m_{\pi^-\pi^+}$ [ $\text{GeV}^{-1}$]
 YLog=0
 # END PLOT
 
+# BEGIN PLOT /BABAR_2007_S7266081/d03-x01-y01
+Title=$K^-\pi^-\pi^+$ mass in $\tau^-\to K^-\pi^-\pi^+\nu_\tau$ decays
+XLabel=$m_{K^-\pi^-\pi^+}$ [GeV]
+YLabel=$1/\Gamma\text{d}\Gamma/\text{d}m_{K^-\pi^-\pi^+}$ [ $\text{GeV}^{-1}$]
+YLog=0
+# END PLOT
+# BEGIN PLOT /BABAR_2007_S7266081/d04-x01-y01
+Title=$K^-\pi^+$ mass in $\tau^-\to K^-\pi^-\pi^+\nu_\tau$ decays
+XLabel=$m_{K^-\pi^+}$ [GeV]
+YLabel=$1/\Gamma\text{d}\Gamma/\text{d}m_{K^-\pi^+}$ [ $\text{GeV}^{-1}$]
+YLog=0
+# END PLOT
+# BEGIN PLOT /BABAR_2007_S7266081/d05-x01-y01
+Title=$\pi^-\pi^+$ mass in $\tau^-\to K^-\pi^-\pi^+\nu_\tau$ decays
+XLabel=$m_{\pi^-\pi^+}$ [GeV]
+YLabel=$1/\Gamma\text{d}\Gamma/\text{d}m_{\pi^-\pi^+}$ [ $\text{GeV}^{-1}$]
+YLog=0
+# END PLOT
 
-# BEGIN PLOT /BABAR_2007_S6895344/d02-x01-y01
-Title=Production rate for $\Lambda_c^++\bar{\Lambda}_c^-$ in the continuum region
-XLabel=$\sqrt{s}/\text{GeV}$
-YLabel=$N(\Lambda_c^++\bar{\Lambda}_c^-)/N(q\bar q)$
+# BEGIN PLOT /BABAR_2007_S7266081/d06-x01-y01
+Title=$K^-\pi^-K^+$ mass in $\tau^-\to K^-\pi^-K^+\nu_\tau$ decays
+XLabel=$m_{K^-\pi^-K^+}$ [GeV]
+YLabel=$1/\Gamma\text{d}\Gamma/\text{d}m_{K^-\pi^-K^+}$ [ $\text{GeV}^{-1}$]
+YLog=0
+# END PLOT
+# BEGIN PLOT /BABAR_2007_S7266081/d07-x01-y01
+Title=$K^-K^+$ mass in $\tau^-\to K^-\pi^-K^+\nu_\tau$ decays
+XLabel=$m_{K^-K^+}$ [GeV]
+YLabel=$1/\Gamma\text{d}\Gamma/\text{d}m_{K^-K^+}$ [ $\text{GeV}^{-1}$]
+YLog=0
+# END PLOT
+# BEGIN PLOT /BABAR_2007_S7266081/d08-x01-y01
+Title=$\pi^-K^+$ mass in $\tau^-\to K^-\pi^-K^+\nu_\tau$ decays
+XLabel=$m_{\pi^-K^+}$ [GeV]
+YLabel=$1/\Gamma\text{d}\Gamma/\text{d}m_{\pi^-K^+}$ [ $\text{GeV}^{-1}$]
 YLog=0
 # END PLOT
 
-# BEGIN PLOT /BABAR_2007_S6895344/d04-x01-y01
-Title=Cross Section for $e^+e^-\to \Lambda_c^++\bar{\Lambda}_c^-+X$ in the resonance region
-XLabel=$\sqrt{s}/\text{GeV}$
-YLabel=$N(\Lambda_c^++\bar{\Lambda}_c^-)/N(q\bar q)$
+# BEGIN PLOT /BABAR_2007_S7266081/d09-x01-y01
+Title=$K^-K^-K^+$ mass in $\tau^-\to K^-K^-K^+\nu_\tau$ decays
+XLabel=$m_{K^-K^-K^+}$ [GeV]
+YLabel=$1/\Gamma\text{d}\Gamma/\text{d}m_{K^-K^-K^+}$ [ $\text{GeV}^{-1}$]
+YLog=0
+# END PLOT
+# BEGIN PLOT /BABAR_2007_S7266081/d10-x01-y01
+Title=$K^-K^+$ mass in $\tau^-\to K^-K^-K^+\nu_\tau$ decays
+XLabel=$m_{K^-K^+}$ [GeV]
+YLabel=$1/\Gamma\text{d}\Gamma/\text{d}m_{K^-K^+}$ [ $\text{GeV}^{-1}$]
 YLog=0
 # END PLOT
 
+# BEGIN PLOT /BABAR_2007_S7266081/d11-x01-y01
+Title=Branching ratio for $\tau^-\to\pi^-\pi^-\pi^+\nu_\tau$ decays
+XLabel=
+YLabel=$\matrhcal{B}(\tau^-\to\pi^-\pi^-\pi^+\nu_\tau)$ [\%]
+YLog=0
+# END PLOT
+# BEGIN PLOT /BABAR_2007_S7266081/d12-x01-y01
+Title=Branching ratio for $\tau^-\to K^-\pi^-\pi^+\nu_\tau$ decays
+XLabel=
+YLabel=$\matrhcal{B}(\tau^-\to K^-\pi^-\pi^+\nu_\tau)$ [\%]
+YLog=0
+# END PLOT
+# BEGIN PLOT /BABAR_2007_S7266081/d13-x01-y01
+Title=Branching ratio for $\tau^-\to K^-\pi^-K^+\nu_\tau$ decays
+XLabel=
+YLabel=$\matrhcal{B}(\tau^-\to K^-\pi^-K^+\nu_\tau)$ [\%]
+YLog=0
+# END PLOT
+# BEGIN PLOT /BABAR_2007_S7266081/d14-x01-y01
+Title=Branching ratio for $\tau^-\to K^-K^-K^+\nu_\tau$ decays
+XLabel=
+YLabel=$\matrhcal{B}(\tau^-\to K^-K^-K^+\nu_\tau)$ [\%]
+YLog=0
+# END PLOT

Modified: trunk/data/plotinfo/Makefile.am
==============================================================================
--- trunk/data/plotinfo/Makefile.am	Tue Apr 10 12:33:07 2012	(r3670)
+++ trunk/data/plotinfo/Makefile.am	Wed Apr 11 15:14:55 2012	(r3671)
@@ -40,6 +40,7 @@
   ATLAS_2012_I1094568.plot \
   BABAR_2005_S6181155.plot \
   BABAR_2007_S6895344.plot \
+  BABAR_2007_S7266081.plot \
   BELLE_2001_S4598261.plot \
   BELLE_2006_S6265367.plot \
   CDF_1988_S1865951.plot \

Copied and modified: trunk/src/Analyses/BABAR_2007_S7266081.cc (from r3667, trunk/src/Analyses/ARGUS_1993_S2789213.cc)
==============================================================================
--- trunk/src/Analyses/ARGUS_1993_S2789213.cc	Tue Apr 10 08:03:31 2012	(r3667, copy source)
+++ trunk/src/Analyses/BABAR_2007_S7266081.cc	Wed Apr 11 15:14:55 2012	(r3671)
@@ -3,286 +3,194 @@
 #include "Rivet/Analysis.hh"
 #include "Rivet/RivetAIDA.hh"
 #include "Rivet/Tools/ParticleIdUtils.hh"
-#include "Rivet/Projections/Beam.hh"
 #include "Rivet/Projections/UnstableFinalState.hh"
 #include "Rivet/ParticleName.hh"
 
 namespace Rivet {
 
 
-  /// @brief ARGUS vector meson production
+  /// @brief BABAR tau lepton to three charged hadrons
   /// @author Peter Richardson
-  class ARGUS_1993_S2789213 : public Analysis {
+  class BABAR_2007_S7266081 : public Analysis {
   public:
 
-    ARGUS_1993_S2789213() 
-      : Analysis("ARGUS_1993_S2789213"),
-	_weightSum_cont(0.),_weightSum_Ups1(0.),_weightSum_Ups4(0.)
+    BABAR_2007_S7266081() 
+      : Analysis("BABAR_2007_S7266081"), _weight_total(0.),
+	_weight_pipippi(0.),_weight_Kpipi(0.),_weight_KpiK(0.),_weight_KKK(0.)
     { }
 
 
     void analyze(const Event& e) {
-      const double weight = e.weight();
 
-      const Beam beamproj = applyProjection<Beam>(e, "Beams");
-      const double s = sqr(beamproj.sqrtS());
-      const double roots = sqrt(s);
       const UnstableFinalState& ufs = applyProjection<UnstableFinalState>(e, "UFS");
 
-      // find the upsilons
-      ParticleVector upsilons;
-      // first in unstable final state
-      foreach (const Particle& p, ufs.particles())
-	if(p.pdgId()==300553 || p.pdgId()==553 ) upsilons.push_back(p);
-      // then in whole event if fails
-      if(upsilons.empty()) {
-	foreach (GenParticle* p, Rivet::particles(e.genEvent())) { 
-	  if( p->pdg_id() != 300553 && p->pdg_id() != 553 ) continue;
- 	  const GenVertex* pv = p->production_vertex();
-	  bool passed = true;
-	  if (pv) {
-	    for (GenVertex::particles_in_const_iterator 
-		   pp = pv->particles_in_const_begin() ;
-		 pp != pv->particles_in_const_end() ; ++pp) {
-	      if ( p->pdg_id() == (*pp)->pdg_id() ) {
-		passed = false;
-		break;
-	      }
-	    }
-	  }
-	  if(passed) upsilons.push_back(Particle(*p));
+      // find the taus
+      ParticleVector taus;
+      foreach (const Particle& p, ufs.particles()) {
+	if(abs(p.pdgId())!=15) continue;
+	_weight_total += 1.;
+	ParticleVector pip,pim,Kp,Km;
+	unsigned int nstable = 0.;
+	// get the boost to the rest frame
+	LorentzTransform cms_boost;
+	if(p.momentum().vector3().mod()>0.001)
+	  cms_boost = LorentzTransform(-p.momentum().boostVector());
+	// find the decay products we want
+	findDecayProducts(p.genParticle(),nstable,pip,pim,Kp,Km);
+	if(p.pdgId()<0) {
+	  swap(pip,pim);
+	  swap(Kp ,Km );
 	}
-      }
-
-      // continuum
-      if(upsilons.empty()) {
-	_weightSum_cont += weight;
-	unsigned int nOmega(0),nRho0(0),nKStar0(0),nKStarPlus(0),nPhi(0);
-	foreach (const Particle& p, ufs.particles()) {
-	  int id = abs(p.pdgId());
-	  double xp = 2.*p.momentum().t()/roots;
-	  double beta = p.momentum().vector3().mod()/p.momentum().t();
-	  if(id==113) { 
-	    _hist_cont_Rho0->fill(xp,weight/beta);
-	    ++nRho0;
-	  }
-	  else if(id==313) {
-	    _hist_cont_KStar0->fill(xp,weight/beta);
-	    ++nKStar0;
-	  }
-	  else if(id==223) {
-	    _hist_cont_Omega->fill(xp,weight/beta);
-	    ++nOmega;
-	  }
-	  else if(id==323) {
-	    _hist_cont_KStarPlus->fill(xp,weight/beta);
-	    ++nKStarPlus;
-	  }
-	  else if(id==333) {
-	    ++nPhi;
-	  }
+	if(nstable!=4) continue;
+	// pipipi
+	if(pim.size()==2&&pip.size()==1) {
+	  _weight_pipippi += 1.;
+	  _hist_pipipi_pipipi->
+	    fill((pip[0].momentum()+pim[0].momentum()+pim[1].momentum()).mass(),1.);
+	  _hist_pipipi_pipi->
+	    fill((pip[0].momentum()+pim[0].momentum()).mass(),1.);
+	  _hist_pipipi_pipi->
+	    fill((pip[0].momentum()+pim[1].momentum()).mass(),1.);
 	}
-	_mult_cont_Omega    ->fill(10.45,weight*nOmega    );
-	_mult_cont_Rho0     ->fill(10.45,weight*nRho0     );
-	_mult_cont_KStar0   ->fill(10.45,weight*nKStar0   );
-	_mult_cont_KStarPlus->fill(10.45,weight*nKStarPlus);
-	_mult_cont_Phi      ->fill(10.45,weight*nPhi      );
-      }
-      else {
-	// find an upsilons
-	foreach (const Particle& ups, upsilons) {
-	  int parentId = ups.pdgId();
-	  if(parentId==553) 
-	    _weightSum_Ups1 += weight;
-	  else
-	    _weightSum_Ups4 += weight;
-	  ParticleVector unstable;
-	  // find the decay products we want
-	  findDecayProducts(ups.genParticle(),unstable);
-	  LorentzTransform cms_boost;
-	  if(ups.momentum().vector3().mod()>0.001)
-	    cms_boost = LorentzTransform(-ups.momentum().boostVector());
-	  double mass = ups.momentum().mass();
-	  unsigned int nOmega(0),nRho0(0),nKStar0(0),nKStarPlus(0),nPhi(0);
-	  foreach(const Particle & p , unstable) {
-	    int id = abs(p.pdgId());
-	    FourMomentum p2 = cms_boost.transform(p.momentum());
-	    double xp = 2.*p2.t()/mass;
-	    double beta = p2.vector3().mod()/p2.t();
-	    if(id==113) { 
-	      if(parentId==553) _hist_Ups1_Rho0->fill(xp,weight/beta);
-	      else                 _hist_Ups4_Rho0->fill(xp,weight/beta);
-	      ++nRho0;
-	    }
-	    else if(id==313) {
-	      if(parentId==553) _hist_Ups1_KStar0->fill(xp,weight/beta);
-	      else                 _hist_Ups4_KStar0->fill(xp,weight/beta);
-	      ++nKStar0;
-	    }
-	    else if(id==223) {
-	      if(parentId==553) _hist_Ups1_Omega->fill(xp,weight/beta);
-	      ++nOmega;
-	    }
-	    else if(id==323) {
-	      if(parentId==553) _hist_Ups1_KStarPlus->fill(xp,weight/beta);
-	      else                 _hist_Ups4_KStarPlus->fill(xp,weight/beta);
-	      ++nKStarPlus;
-	    }
-	    else if(id==333) {
-	      ++nPhi;
-	    }
-	  }
-	  if(parentId==553) {
-	    _mult_Ups1_Omega    ->fill(9.46,weight*nOmega    );
-	    _mult_Ups1_Rho0     ->fill(9.46,weight*nRho0     );
-	    _mult_Ups1_KStar0   ->fill(9.46,weight*nKStar0   );
-	    _mult_Ups1_KStarPlus->fill(9.46,weight*nKStarPlus);
-	    _mult_Ups1_Phi      ->fill(9.46,weight*nPhi      );
-	  }
-	  else {
-	    _mult_Ups4_Omega    ->fill(10.58,weight*nOmega    );
-	    _mult_Ups4_Rho0     ->fill(10.58,weight*nRho0     );
-	    _mult_Ups4_KStar0   ->fill(10.58,weight*nKStar0   );
-	    _mult_Ups4_KStarPlus->fill(10.58,weight*nKStarPlus);
-	    _mult_Ups4_Phi      ->fill(10.58,weight*nPhi      );
-	  }
+	else if(pim.size()==1&&pip.size()==1&&Km.size()==1) {
+	  _weight_Kpipi += 1.;
+	  _hist_Kpipi_Kpipi->
+	    fill((pim[0].momentum()+pip[0].momentum()+Km[0].momentum()).mass(),1.);
+	  _hist_Kpipi_Kpi->
+	    fill((pip[0].momentum()+Km[0].momentum()).mass(),1.);
+	  _hist_Kpipi_pipi->
+	    fill((pim[0].momentum()+pip[0].momentum()).mass(),1.);
+	}
+	else if(Kp.size()==1&&Km.size()==1&&pim.size()==1) {
+	  _weight_KpiK += 1.;
+	  _hist_KpiK_KpiK->
+	    fill((Kp[0].momentum()+Km[0].momentum()+pim[0].momentum()).mass(),1.);
+	  _hist_KpiK_KK->  
+	    fill((Kp[0].momentum()+Km[0].momentum()).mass(),1.);
+	  _hist_KpiK_piK->
+	    fill((Kp[0].momentum()+pim[0].momentum()).mass(),1.);
+	}
+	else if(Kp.size()==1&&Km.size()==2) {
+	  _weight_KKK += 1.;
+	  _hist_KKK_KKK->
+	    fill((Kp[0].momentum()+Km[0].momentum()+Km[1].momentum()).mass(),1.);
+	  _hist_KKK_KK->
+	    fill((Kp[0].momentum()+Km[0].momentum()).mass(),1.);
+	  _hist_KKK_KK->
+	    fill((Kp[0].momentum()+Km[1].momentum()).mass(),1.);
 	}
       }
     } // analyze
 
     void finalize() {
-      if(_weightSum_cont>0.) {
-	scale(_mult_cont_Omega    , 1./_weightSum_cont);
-	scale(_mult_cont_Rho0     , 1./_weightSum_cont);
-	scale(_mult_cont_KStar0   , 1./_weightSum_cont);
-	scale(_mult_cont_KStarPlus, 1./_weightSum_cont);
-	scale(_mult_cont_Phi      , 1./_weightSum_cont);
-	scale(_hist_cont_KStarPlus, 1./_weightSum_cont);
-	scale(_hist_cont_KStar0   , 1./_weightSum_cont);
-	scale(_hist_cont_Rho0     , 1./_weightSum_cont);
-	scale(_hist_cont_Omega    , 1./_weightSum_cont);
-      }
-      if(_weightSum_Ups1>0.) { 
-	scale(_mult_Ups1_Omega    , 1./_weightSum_Ups1);
-	scale(_mult_Ups1_Rho0     , 1./_weightSum_Ups1);
-	scale(_mult_Ups1_KStar0   , 1./_weightSum_Ups1);
-	scale(_mult_Ups1_KStarPlus, 1./_weightSum_Ups1);
-	scale(_mult_Ups1_Phi      , 1./_weightSum_Ups1);
-	scale(_hist_Ups1_KStarPlus, 1./_weightSum_Ups1);
-	scale(_hist_Ups1_KStar0   , 1./_weightSum_Ups1);
-	scale(_hist_Ups1_Rho0     , 1./_weightSum_Ups1);
-	scale(_hist_Ups1_Omega    , 1./_weightSum_Ups1);
-      }
-      if(_weightSum_Ups4>0.) {
-	scale(_mult_Ups4_Omega    , 1./_weightSum_Ups4);
-	scale(_mult_Ups4_Rho0     , 1./_weightSum_Ups4);
-	scale(_mult_Ups4_KStar0   , 1./_weightSum_Ups4);
-	scale(_mult_Ups4_KStarPlus, 1./_weightSum_Ups4);
-	scale(_mult_Ups4_Phi      , 1./_weightSum_Ups4);
-	scale(_hist_Ups4_KStarPlus, 1./_weightSum_Ups4);
-	scale(_hist_Ups4_KStar0   , 1./_weightSum_Ups4);
-	scale(_hist_Ups4_Rho0     , 1./_weightSum_Ups4);
-      }
+      if(_weight_pipippi>0.) {
+	scale(_hist_pipipi_pipipi, 1./_weight_pipippi);
+	scale(_hist_pipipi_pipi  ,0.5/_weight_pipippi);
+      }
+      if(_weight_Kpipi>0.) {
+	scale(_hist_Kpipi_Kpipi  , 1./_weight_Kpipi);
+	scale(_hist_Kpipi_Kpi    , 1./_weight_Kpipi);
+	scale(_hist_Kpipi_pipi   , 1./_weight_Kpipi);
+      }
+      if(_weight_KpiK>0.) {
+	scale(_hist_KpiK_KpiK    , 1./_weight_KpiK);
+	scale(_hist_KpiK_KK      , 1./_weight_KpiK);
+	scale(_hist_KpiK_piK     , 1./_weight_KpiK);
+      }
+      if(_weight_KKK>0.) {
+	scale(_hist_KKK_KKK      , 1./_weight_KKK);
+	scale(_hist_KKK_KK       ,0.5/_weight_KKK);
+      }
+      AIDA::IDataPointSet * br_pipipi = bookDataPointSet(11,1,1);
+      br_pipipi->point(0)->coordinate(1)->setValue     ( 100.*_weight_pipippi/_weight_total);
+      br_pipipi->point(0)->coordinate(1)->setErrorPlus ( 100.*sqrt(_weight_pipippi)/_weight_total);
+      br_pipipi->point(0)->coordinate(1)->setErrorMinus( 100.*sqrt(_weight_pipippi)/_weight_total);
+      AIDA::IDataPointSet * br_Kpipi  = bookDataPointSet(12,1,1);
+      br_Kpipi->point(0)->coordinate(1)->setValue     ( 100.*_weight_Kpipi/_weight_total);
+      br_Kpipi->point(0)->coordinate(1)->setErrorPlus ( 100.*sqrt(_weight_Kpipi)/_weight_total);
+      br_Kpipi->point(0)->coordinate(1)->setErrorMinus( 100.*sqrt(_weight_Kpipi)/_weight_total);
+      AIDA::IDataPointSet * br_KpiK   = bookDataPointSet(13,1,1);
+      br_KpiK->point(0)->coordinate(1)->setValue     ( 100.*_weight_KpiK/_weight_total);
+      br_KpiK->point(0)->coordinate(1)->setErrorPlus ( 100.*sqrt(_weight_KpiK)/_weight_total);
+      br_KpiK->point(0)->coordinate(1)->setErrorMinus( 100.*sqrt(_weight_KpiK)/_weight_total);
+      AIDA::IDataPointSet * br_KKK    = bookDataPointSet(14,1,1);
+      br_KKK->point(0)->coordinate(1)->setValue     ( 100.*_weight_KKK/_weight_total);
+      br_KKK->point(0)->coordinate(1)->setErrorPlus ( 100.*sqrt(_weight_KKK)/_weight_total);
+      br_KKK->point(0)->coordinate(1)->setErrorMinus( 100.*sqrt(_weight_KKK)/_weight_total);
     } // finalize
 
-
     void init() {
-      addProjection(Beam(), "Beams");
       addProjection(UnstableFinalState(), "UFS");
 
-      _mult_cont_Omega     = bookHistogram1D( 1,1,1);
-      _mult_cont_Rho0      = bookHistogram1D( 1,1,2);
-      _mult_cont_KStar0    = bookHistogram1D( 1,1,3);
-      _mult_cont_KStarPlus = bookHistogram1D( 1,1,4);
-      _mult_cont_Phi       = bookHistogram1D( 1,1,5);
-
-      _mult_Ups1_Omega     = bookHistogram1D( 2,1,1);
-      _mult_Ups1_Rho0      = bookHistogram1D( 2,1,2);
-      _mult_Ups1_KStar0    = bookHistogram1D( 2,1,3);
-      _mult_Ups1_KStarPlus = bookHistogram1D( 2,1,4);
-      _mult_Ups1_Phi       = bookHistogram1D( 2,1,5);
-
-      _mult_Ups4_Omega     = bookHistogram1D( 3,1,1);
-      _mult_Ups4_Rho0      = bookHistogram1D( 3,1,2);
-      _mult_Ups4_KStar0    = bookHistogram1D( 3,1,3);
-      _mult_Ups4_KStarPlus = bookHistogram1D( 3,1,4);
-      _mult_Ups4_Phi       = bookHistogram1D( 3,1,5);
-
-      _hist_cont_KStarPlus = bookHistogram1D( 4,1,1);
-      _hist_Ups1_KStarPlus = bookHistogram1D( 5,1,1);
-      _hist_Ups4_KStarPlus = bookHistogram1D( 6,1,1);
-
-      _hist_cont_KStar0    = bookHistogram1D( 7,1,1);
-      _hist_Ups1_KStar0    = bookHistogram1D( 8,1,1);
-      _hist_Ups4_KStar0    = bookHistogram1D( 9,1,1);
-
-      _hist_cont_Rho0      = bookHistogram1D(10,1,1);
-      _hist_Ups1_Rho0      = bookHistogram1D(11,1,1);
-      _hist_Ups4_Rho0      = bookHistogram1D(12,1,1);
-
-      _hist_cont_Omega     = bookHistogram1D(13,1,1);
-      _hist_Ups1_Omega     = bookHistogram1D(14,1,1);
+      _hist_pipipi_pipipi = bookHistogram1D( 1,1,1);
+      _hist_pipipi_pipi   = bookHistogram1D( 2,1,1);
+      _hist_Kpipi_Kpipi   = bookHistogram1D( 3,1,1);
+      _hist_Kpipi_Kpi     = bookHistogram1D( 4,1,1);
+      _hist_Kpipi_pipi    = bookHistogram1D( 5,1,1);
+      _hist_KpiK_KpiK     = bookHistogram1D( 6,1,1);
+      _hist_KpiK_KK       = bookHistogram1D( 7,1,1);
+      _hist_KpiK_piK      = bookHistogram1D( 8,1,1);
+      _hist_KKK_KKK       = bookHistogram1D( 9,1,1);
+      _hist_KKK_KK        = bookHistogram1D(10,1,1);
 
     } // init
 
   private:
 
     //@{
-    AIDA::IHistogram1D* _mult_cont_Omega    ;
-    AIDA::IHistogram1D* _mult_cont_Rho0     ;
-    AIDA::IHistogram1D* _mult_cont_KStar0   ;
-    AIDA::IHistogram1D* _mult_cont_KStarPlus;
-    AIDA::IHistogram1D* _mult_cont_Phi      ;
-
-    AIDA::IHistogram1D* _mult_Ups1_Omega    ;
-    AIDA::IHistogram1D* _mult_Ups1_Rho0     ;
-    AIDA::IHistogram1D* _mult_Ups1_KStar0   ;
-    AIDA::IHistogram1D* _mult_Ups1_KStarPlus;
-    AIDA::IHistogram1D* _mult_Ups1_Phi      ;
-
-    AIDA::IHistogram1D* _mult_Ups4_Omega    ;
-    AIDA::IHistogram1D* _mult_Ups4_Rho0     ;
-    AIDA::IHistogram1D* _mult_Ups4_KStar0   ;
-    AIDA::IHistogram1D* _mult_Ups4_KStarPlus;
-    AIDA::IHistogram1D* _mult_Ups4_Phi      ;
-
-    AIDA::IHistogram1D* _hist_cont_KStarPlus;
-    AIDA::IHistogram1D* _hist_Ups1_KStarPlus;
-    AIDA::IHistogram1D* _hist_Ups4_KStarPlus;
-
-    AIDA::IHistogram1D* _hist_cont_KStar0   ;
-    AIDA::IHistogram1D* _hist_Ups1_KStar0   ;
-    AIDA::IHistogram1D* _hist_Ups4_KStar0   ;
-
-    AIDA::IHistogram1D* _hist_cont_Rho0     ;
-    AIDA::IHistogram1D* _hist_Ups1_Rho0     ;
-    AIDA::IHistogram1D* _hist_Ups4_Rho0     ;
-
-    AIDA::IHistogram1D* _hist_cont_Omega    ;
-    AIDA::IHistogram1D* _hist_Ups1_Omega    ;
+    AIDA::IHistogram1D* _hist_pipipi_pipipi;
+    AIDA::IHistogram1D* _hist_pipipi_pipi  ;
+    AIDA::IHistogram1D* _hist_Kpipi_Kpipi  ;
+    AIDA::IHistogram1D* _hist_Kpipi_Kpi    ;
+    AIDA::IHistogram1D* _hist_Kpipi_pipi   ;
+    AIDA::IHistogram1D* _hist_KpiK_KpiK    ;
+    AIDA::IHistogram1D* _hist_KpiK_KK      ;
+    AIDA::IHistogram1D* _hist_KpiK_piK     ;
+    AIDA::IHistogram1D* _hist_KKK_KKK      ;
+    AIDA::IHistogram1D* _hist_KKK_KK       ;
 
     // count of weights
-    double _weightSum_cont,_weightSum_Ups1,_weightSum_Ups4;
+    double _weight_total,_weight_pipippi,_weight_Kpipi,_weight_KpiK,_weight_KKK;
     //@}
 
-    void findDecayProducts(const GenParticle & p,
-			   ParticleVector & unstable) {
+    void findDecayProducts(const GenParticle & p, unsigned int & nstable,
+			   ParticleVector & pip, ParticleVector & pim,
+			   ParticleVector &  Kp, ParticleVector & Km) {
       const GenVertex* dv = p.end_vertex();
       for (GenVertex::particles_out_const_iterator
 	     pp = dv->particles_out_const_begin();
 	   pp != dv->particles_out_const_end(); ++pp) {
-	int id = abs((*pp)->pdg_id());
-	if(id == 113 || id == 313 || id == 323 ||
-	   id == 333 || id == 223 ) {
-	  unstable.push_back(Particle(**pp));
+	int id = (*pp)->pdg_id();
+ 	if( id == PI0 ) 
+	  ++nstable;
+	else if ( id == K0S) 
+	  ++nstable;
+	else if(id==PIPLUS) {
+	  pip.push_back(Particle(**pp));
+	  ++nstable;
+	}
+	else if(id==PIMINUS) {
+	  pim.push_back(Particle(**pp));
+	  ++nstable;
+	}
+	else if(id==KPLUS) {
+	  Kp.push_back(Particle(**pp));
+	  ++nstable;
+	}
+	else if(id==KMINUS) {
+	  Km.push_back(Particle(**pp));
+	  ++nstable;
+	}
+	else if((*pp)->end_vertex()) {
+	  findDecayProducts(**pp,nstable,pip,pim,Kp,Km);
 	}
-	else if((*pp)->end_vertex())
-	  findDecayProducts(**pp,unstable);
+	else
+	  ++nstable;
       }
     }
   };
 
   // The hook for the plugin system
-  DECLARE_RIVET_PLUGIN(ARGUS_1993_S2789213);
+  DECLARE_RIVET_PLUGIN(BABAR_2007_S7266081);
 
 }

Modified: trunk/src/Analyses/Makefile.am
==============================================================================
--- trunk/src/Analyses/Makefile.am	Tue Apr 10 12:33:07 2012	(r3670)
+++ trunk/src/Analyses/Makefile.am	Wed Apr 11 15:14:55 2012	(r3671)
@@ -270,6 +270,7 @@
     ARGUS_1993_S2789213.cc \
     BABAR_2005_S6181155.cc \
     BABAR_2007_S6895344.cc \
+    BABAR_2007_S7266081.cc \
     BELLE_2001_S4598261.cc \
     BELLE_2006_S6265367.cc \
     CLEO_2004_S5809304.cc


More information about the Rivet-svn mailing list