|
[Rivet] CMS inelastic cross-section Rivet routineHendrik Hoeth hendrik.hoeth at cern.chMon Dec 17 10:49:27 GMT 2012
Hi Sercan, > We would be happy if you can check the attached Rivet routine (CMS > inelastic cross-section paper, [...] > > This is very similar to the ATLAS inelastic cross-section measurement > which is already validated by you. I've changed the code such that it corresponds directly to the ATLAS analysis as it is in svn, so that it is easier to compare. Except for the n_charged histogram entries the analysis is identical to the ATLAS analysis and my code still produces identical results to yours. If your physics analysis is identical to ATLAS', then your Rivet code looks fine (though I'd rather put my version into svn ...). Since I don't know what kind of problems you observe, I'm afraid I can't help you further than this. BTW, I've also done some cosmetic changes to your .plot and .info files. Cheers, Hendrik -- If your dreams don't scare you, then you are not dreaming big enough. -------------- next part -------------- // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/RivetAIDA.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/FinalState.hh" namespace Rivet { class CMS_2012_I1193338 : public Analysis { public: CMS_2012_I1193338() : Analysis("CMS_2012_I1193338") { } public: void init() { addProjection(ChargedFinalState(-2.4, 2.4, 0.2*GeV), "CFS"); addProjection(FinalState(), "FS"); _h_sigma = bookHistogram1D(1, 1, 1); } void analyze(const Event& event) { const double weight = event.weight(); const ChargedFinalState& cfs = applyProjection<ChargedFinalState>(event, "CFS"); if (cfs.size() > 1) {_h_sigma->fill(1.5, weight);} if (cfs.size() > 2) {_h_sigma->fill(2.5, weight);} if (cfs.size() > 3) {_h_sigma->fill(3.5, weight);} const FinalState& fs = applyProjection<FinalState>(event, "FS"); if (fs.size() < 2) vetoEvent; // need at least two particles to calculate gaps double gapcenter = 0.; double LRG = 0.; double etapre = 0.; bool first = true; foreach(const Particle& p, fs.particlesByEta()) { // sorted from minus to plus if (first) { // First particle first = false; etapre = p.momentum().eta(); } else { double gap = fabs(p.momentum().eta()-etapre); if (gap > LRG) { LRG = gap; // largest gap gapcenter = (p.momentum().eta()+etapre)/2.; // find the center of the gap to separate the X and Y systems. } etapre = p.momentum().eta(); } } FourMomentum mxFourVector, myFourVector; foreach(const Particle& p, fs.particlesByEta()) { if (p.momentum().eta() > gapcenter) { mxFourVector += p.momentum(); } else { myFourVector += p.momentum(); } } const double M2 = max(mxFourVector.mass2(), myFourVector.mass2()); const double xi = M2/sqr(sqrtS()); // sqrt(s)=7000 GeV, note that units cancel if (xi < 5*10e-6) vetoEvent; _h_sigma->fill(0.5, weight); } void finalize() { scale(_h_sigma, crossSection()/millibarn/sumOfWeights()); } private: AIDA::IHistogram1D* _h_sigma; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(CMS_2012_I1193338); } -------------- next part -------------- Name: CMS_2012_I1193338 Year: 2012 Summary: Measurement of the inelastic proton-proton cross section at sqrt(s)=7 TeV Experiment: CMS Collider: LHC SpireID: InspireID: 1193338 Status: Authors: - Sercan Sen <ssen at cern.ch> References: - arXiv:1210.6718 [hep-ex] RunInfo: Inelastic events (non-diffractive and inelastic diffractive). NumEvents: 100000 NeedCrossSection: no Beams: [p+, p+] Energies: [7000] PtCuts: [0] Description: 'The inelastic cross-section is measured through two independent methods based on information from (i) forward calorimetry (for pseudorapidity $3 < |\eta| < 5$), in collisions where at least one proton loses more than $\xi > 5 \cdot 10^{-6}$ of its longitudinal momentum, and (ii) the central tracker ($|\eta| < 2.4$), in collisions containing an interaction vertex with more than 1, 2, or 3 tracks with $p_\perp > 200$ MeV/c.' BibKey: :2012 BibTeX: '@article{:2012, author = "Chatrchyan, Serguei and others", title = "{Measurement of the inelastic proton-proton cross section at sqrt(s) = 7 TeV}", collaboration = " CMS Collaboration", year = "2012", eprint = "1210.6718", archivePrefix = "arXiv", primaryClass = "hep-ex", reportNumber = "CMS-FWD-11-001, CERN-PH-EP-2012-293", SLACcitation = "%%CITATION = ARXIV:1210.6718;%%",}' -------------- next part -------------- # BEGIN PLOT /CMS_2012_I1193338/d01-x01-y01 Title=$\sigma_\text{inel}$ at $\sqrt{s}=7$ TeV XCustomMajorTicks=0.5 $\xi>5x10^{-6}$ 1.5 $n_\text{ch} > 1$ 2.5 $n_\text{ch} > 2$ 3.5 $n_\text{ch} > 3$ YLabel=$\sigma_\text{inel}$ [mb] LegendYPos=0.4 LogY=0 # END PLOT
More information about the Rivet mailing list |