CDF_2009_S8233977.cc
Go to the documentation of this file.
00001 // -*- C++ -*- 00002 #include "Rivet/Analysis.hh" 00003 #include "Rivet/Projections/FinalState.hh" 00004 #include "Rivet/Projections/ChargedFinalState.hh" 00005 #include "Rivet/Projections/TriggerCDFRun2.hh" 00006 00007 namespace Rivet { 00008 00009 00010 /// @brief CDF Run II min-bias cross-section 00011 /// @author Hendrik Hoeth 00012 /// 00013 /// Measurement of \f$ \langle p_T \rangle \f$ vs. \f$ n_\text{ch} \f$, 00014 /// the track \f$ p_T \f$ distribution, and the \f$ \sum E_T \f$ distribution. 00015 /// Particles are selected within |eta|<1 and with pT>0.4 GeV. 00016 /// There is no pT cut for the \f$ \sum E_T \f$ measurement. 00017 /// 00018 /// @par Run conditions 00019 /// 00020 /// @arg \f$ \sqrt{s} = \f$ 1960 GeV 00021 /// @arg Run with generic QCD events. 00022 /// @arg Set particles with c*tau > 10 mm stable 00023 class CDF_2009_S8233977 : public Analysis { 00024 public: 00025 00026 /// Constructor 00027 CDF_2009_S8233977() 00028 : Analysis("CDF_2009_S8233977"), 00029 _sumWeightSelected(0.0) 00030 { } 00031 00032 00033 /// @name Analysis methods 00034 //@{ 00035 00036 /// Book histograms and projections 00037 void init() { 00038 addProjection(TriggerCDFRun2(), "Trigger"); 00039 addProjection(FinalState(-1.0, 1.0, 0.0*GeV), "EtFS"); 00040 addProjection(ChargedFinalState(-1.0, 1.0, 0.4*GeV), "CFS"); 00041 00042 _hist_pt = bookHisto1D(1, 1, 1); 00043 _hist_pt_vs_multiplicity = bookProfile1D(2, 1, 1); 00044 _hist_sumEt = bookHisto1D(3, 1, 1); 00045 } 00046 00047 00048 00049 /// Do the analysis 00050 void analyze(const Event& evt) { 00051 // MinBias Trigger 00052 const bool trigger = applyProjection<TriggerCDFRun2>(evt, "Trigger").minBiasDecision(); 00053 if (!trigger) vetoEvent; 00054 00055 // Get the event weight 00056 const double weight = evt.weight(); 00057 00058 /// @todo The pT and sum(ET) distributions look slightly different from 00059 /// Niccolo's Monte Carlo plots. Still waiting for his answer. 00060 00061 const ChargedFinalState& trackfs = applyProjection<ChargedFinalState>(evt, "CFS"); 00062 const size_t numParticles = trackfs.size(); 00063 foreach (const Particle& p, trackfs.particles()) { 00064 const double pT = p.pT() / GeV; 00065 _hist_pt_vs_multiplicity->fill(numParticles, pT, weight); 00066 00067 // The weight for entries in the pT distribution should be weight/(pT*dPhi*dy). 00068 // 00069 // - dPhi = 2*PI 00070 // 00071 // - dy depends on the pT: They calculate y assuming the particle has the 00072 // pion mass and assuming that eta=1: 00073 // dy = 2 * 1/2 * ln [(sqrt(m^2 + (a+1)*pT^2) + a*pT) / (sqrt(m^2 + (a+1)*pT^2) - a*pT)] 00074 // with a = sinh(1). 00075 // 00076 // sinh(1) = 1.1752012 00077 // m(charged pion)^2 = (139.57 MeV)^2 = 0.019479785 GeV^2 00078 const double sinh1 = 1.1752012; 00079 const double apT = sinh1 * pT; 00080 const double mPi = 139.57*MeV; 00081 const double root = sqrt(mPi*mPi + (1+sinh1)*pT*pT); 00082 const double dy = std::log((root+apT)/(root-apT)); 00083 const double dphi = TWOPI; 00084 _hist_pt->fill(pT, weight/(pT*dphi*dy)); 00085 } 00086 00087 // Calc sum(Et) from calo particles 00088 const FinalState& etfs = applyProjection<FinalState>(evt, "EtFS"); 00089 double sumEt = 0.0; 00090 foreach (const Particle& p, etfs.particles()) { 00091 sumEt += p.momentum().Et(); 00092 } 00093 _hist_sumEt->fill(sumEt, weight); 00094 _sumWeightSelected += evt.weight(); 00095 } 00096 00097 00098 00099 /// Normalize histos 00100 void finalize() { 00101 scale(_hist_sumEt, crossSection()/millibarn/(4*M_PI*_sumWeightSelected)); 00102 scale(_hist_pt, crossSection()/millibarn/_sumWeightSelected); 00103 MSG_DEBUG("sumOfWeights() = " << sumOfWeights()); 00104 MSG_DEBUG("_sumWeightSelected = " << _sumWeightSelected); 00105 } 00106 00107 //@} 00108 00109 00110 private: 00111 00112 double _sumWeightSelected; 00113 Profile1DPtr _hist_pt_vs_multiplicity; 00114 Histo1DPtr _hist_pt; 00115 Histo1DPtr _hist_sumEt; 00116 00117 }; 00118 00119 00120 00121 // The hook for the plugin system 00122 DECLARE_RIVET_PLUGIN(CDF_2009_S8233977); 00123 00124 } Generated on Thu Feb 6 2014 17:38:43 for The Rivet MC analysis system by ![]() |