BABAR_2007_S6895344.cc
Go to the documentation of this file.
00001 // -*- C++ -*- 00002 #include <iostream> 00003 #include "Rivet/Analysis.hh" 00004 #include "Rivet/Projections/Beam.hh" 00005 #include "Rivet/Projections/UnstableFinalState.hh" 00006 00007 namespace Rivet { 00008 00009 00010 /// @brief BABAR Lambda_c from fragmentation 00011 /// @author Peter Richardson 00012 class BABAR_2007_S6895344 : public Analysis { 00013 public: 00014 00015 BABAR_2007_S6895344() 00016 : Analysis("BABAR_2007_S6895344") 00017 { } 00018 00019 00020 void analyze(const Event& e) { 00021 const double weight = e.weight(); 00022 00023 // Loop through unstable FS particles and look for charmed mesons/baryons 00024 const UnstableFinalState& ufs = applyProjection<UnstableFinalState>(e, "UFS"); 00025 00026 const Beam beamproj = applyProjection<Beam>(e, "Beams"); 00027 const ParticlePair& beams = beamproj.beams(); 00028 FourMomentum mom_tot = beams.first.momentum() + beams.second.momentum(); 00029 LorentzTransform cms_boost(-mom_tot.boostVector()); 00030 const double s = sqr(beamproj.sqrtS()); 00031 const bool onresonance = fuzzyEquals(beamproj.sqrtS(), 10.58, 2E-3); 00032 00033 // Particle masses from PDGlive (accessed online 16. Nov. 2009). 00034 foreach (const Particle& p, ufs.particles()) { 00035 // only looking at Lambda_c 00036 if(abs(p.pdgId())!=4122) continue; 00037 MSG_DEBUG("Lambda_c found"); 00038 double mH2 = 5.22780; // 2.28646^2 00039 const double mom = cms_boost.transform(p.momentum()).vector3().mod(); 00040 double xp = mom/sqrt(s/4.0 - mH2); 00041 00042 if(onresonance) { 00043 _histOn ->fill(xp,weight); 00044 _sigmaOn ->fill(10.58,weight); 00045 } 00046 else { 00047 _histOff ->fill(xp,weight); 00048 _sigmaOff->fill(10.54,weight); 00049 } 00050 } 00051 } // analyze 00052 00053 00054 void finalize() { 00055 00056 scale(_sigmaOn , 1./sumOfWeights()); 00057 scale(_sigmaOff, 1./sumOfWeights()); 00058 scale(_histOn , 1./sumOfWeights()); 00059 scale(_histOff , 1./sumOfWeights()); 00060 } // finalize 00061 00062 00063 void init() { 00064 addProjection(Beam(), "Beams"); 00065 addProjection(UnstableFinalState(), "UFS"); 00066 00067 _histOff = bookHisto1D(1,1,1); 00068 _sigmaOff = bookHisto1D(2,1,1); 00069 _histOn = bookHisto1D(3,1,1); 00070 _sigmaOn = bookHisto1D(4,1,1); 00071 00072 } // init 00073 00074 private: 00075 00076 //@{ 00077 // Histograms for the continuum cross sections 00078 Histo1DPtr _sigmaOn ; 00079 Histo1DPtr _sigmaOff; 00080 Histo1DPtr _histOn ; 00081 Histo1DPtr _histOff ; 00082 //@} 00083 00084 }; 00085 00086 // The hook for the plugin system 00087 DECLARE_RIVET_PLUGIN(BABAR_2007_S6895344); 00088 00089 } Generated on Thu Feb 6 2014 17:38:42 for The Rivet MC analysis system by ![]() |