|
[Rivet-svn] r3222 - branches/2011-07-aida2yoda/src/Analysesblackhole at projects.hepforge.org blackhole at projects.hepforge.orgTue Jul 19 19:54:59 BST 2011
Author: hoeth Date: Tue Jul 19 19:54:58 2011 New Revision: 3222 Log: ATLAS analyses are YODAized Modified: branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_CONF_2010_049.cc branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_S8894728.cc branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_S8918562.cc branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_S8994773.cc branches/2011-07-aida2yoda/src/Analyses/ATLAS_2011_S9002537.cc branches/2011-07-aida2yoda/src/Analyses/Makefile.am Modified: branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_CONF_2010_049.cc ============================================================================== --- branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_CONF_2010_049.cc Tue Jul 19 19:02:33 2011 (r3221) +++ branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_CONF_2010_049.cc Tue Jul 19 19:54:58 2011 (r3222) @@ -4,7 +4,6 @@ #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Tools/Logging.hh" -#include "LWH/Histogram1D.h" namespace Rivet { Modified: branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_S8894728.cc ============================================================================== --- branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_S8894728.cc Tue Jul 19 19:02:33 2011 (r3221) +++ branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_S8894728.cc Tue Jul 19 19:54:58 2011 (r3222) @@ -3,8 +3,6 @@ #include "Rivet/RivetYODA.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Tools/Logging.hh" -#include "LWH/Profile1D.h" -#include "LWH/Histogram1D.h" namespace Rivet { @@ -12,29 +10,27 @@ namespace { inline void _moments_to_stddev(Profile1DPtr moment_profiles[], Scatter2DPtr target_dps) { - for (int b = 0; b < target_dps->size(); ++b) { // loop over bins - /// @todo Assuming unit weights here! Should use N_effective = sumW**2/sumW2? How? - const double numentries = moment_profiles[0]->binEntries(b); - const double var = moment_profiles[1]->bin(b).area() - intpow(moment_profiles[0]->bin(b).area(), 2); + for (size_t b = 0; b < target_dps->numPoints(); ++b) { // loop over points + /// @todo Assuming unit weights here! Should use N_effective = sumW**2/sumW2? + const double numentries = moment_profiles[0]->bin(b).numEntries(); + const double var = moment_profiles[1]->bin(b).mean() - intpow(moment_profiles[0]->bin(b).mean(), 2); const double sd = isZero(var) ? 0 : sqrt(var); //< Numerical safety check - target_dps->point(b)->coordinate(1)->setValue(sd); + target_dps->point(b).setY(sd); if (sd == 0 || numentries < 3) { cerr << "Need at least 3 bin entries and a non-zero central value to calculate " << "an error on standard deviation profiles (bin " << b << ")" << endl; - target_dps->point(b)->coordinate(1)->setErrorPlus(0); - target_dps->point(b)->coordinate(1)->setErrorMinus(0); + target_dps->point(b).setYErr(0); continue; } // c2(y) = m4(x) - 4 m3(x) m1(x) - m2(x)^2 + 8 m2(x) m1(x)^2 - 4 m1(x)^4 - const double var_on_var = moment_profiles[3]->bin(b).area() - - 4 * moment_profiles[2]->bin(b).area() * moment_profiles[0]->bin(b).area() - - intpow(moment_profiles[1]->bin(b).area(), 2) - + 8 * moment_profiles[1]->bin(b).area() * intpow(moment_profiles[0]->bin(b).area(), 2) - - 4 * intpow(moment_profiles[0]->bin(b).area(), 4); + const double var_on_var = moment_profiles[3]->bin(b).mean() + - 4 * moment_profiles[2]->bin(b).mean() * moment_profiles[0]->bin(b).mean() + - intpow(moment_profiles[1]->bin(b).mean(), 2) + + 8 * moment_profiles[1]->bin(b).mean() * intpow(moment_profiles[0]->bin(b).mean(), 2) + - 4 * intpow(moment_profiles[0]->bin(b).mean(), 4); const double stderr_on_var = sqrt(var_on_var/(numentries-2.0)); const double stderr_on_sd = stderr_on_var / (2.0*sd); - target_dps->point(b)->coordinate(1)->setErrorPlus(stderr_on_sd); - target_dps->point(b)->coordinate(1)->setErrorMinus(stderr_on_sd); + target_dps->point(b).setYErr(stderr_on_sd); } } @@ -74,8 +70,8 @@ // Standard deviation profiles // First the higher moments of main profiles to calculate variance and error on variance... for (size_t i = 1; i < 4; ++i) { - _hist_nch_transverse_500[i] = new LWH::Profile1D(binEdges(1+isqrts, 1, 1)); - _hist_ptsum_transverse_500[i] = new LWH::Profile1D(binEdges(3+isqrts, 1, 1)); + _hist_nch_transverse_500[i].reset(new Profile1D(binEdges(1+isqrts, 1, 1))); + _hist_ptsum_transverse_500[i].reset(new Profile1D(binEdges(3+isqrts, 1, 1))); } // Then the data point sets into which the results will be inserted _dps_sdnch_transverse_500 = bookScatter2D(5+isqrts, 1, 1); @@ -152,8 +148,8 @@ vector<double> num500(3, 0), ptSum500(3, 0.0); // Temporary histos that bin Nch and pT in dPhi. // NB. Only one of each needed since binnings are the same for the energies and pT cuts - LWH::Histogram1D hist_num_dphi_500(binEdges(13,1,1)); - LWH::Histogram1D hist_pt_dphi_500(binEdges(15,1,1)); + Histo1D hist_num_dphi_500(binEdges(13,1,1)); + Histo1D hist_pt_dphi_500(binEdges(15,1,1)); foreach (const Particle& p, particles500) { const double pT = p.momentum().pT(); const double dPhi = deltaPhi(philead, p.momentum().phi()); @@ -228,14 +224,14 @@ for (size_t i = 0; i < nbins; ++i) { // First Nch const double binmean_num = hist_num_dphi_500.bin(i).xMean(); - const double binvalue_num = hist_num_dphi_500.bin(i).area()/hist_num_dphi_500.axis().binWidth(i)/10.0; + const double binvalue_num = hist_num_dphi_500.bin(i).area()/hist_num_dphi_500.bin(i).width()/10.0; if (pTlead/GeV >= ptcut[0]) _hist_N_vs_dPhi_1_500->fill(binmean_num, binvalue_num, weight); if (pTlead/GeV >= ptcut[1]) _hist_N_vs_dPhi_2_500->fill(binmean_num, binvalue_num, weight); if (pTlead/GeV >= ptcut[2]) _hist_N_vs_dPhi_3_500->fill(binmean_num, binvalue_num, weight); if (pTlead/GeV >= ptcut[3]) _hist_N_vs_dPhi_5_500->fill(binmean_num, binvalue_num, weight); // Then pT const double binmean_pt = hist_pt_dphi_500.bin(i).xMean(); - const double binvalue_pt = hist_pt_dphi_500.bin(i).area()/hist_pt_dphi_500.axis().binWidth(i)/10.0; + const double binvalue_pt = hist_pt_dphi_500.bin(i).area()/hist_pt_dphi_500.bin(i).width()/10.0; if (pTlead/GeV >= ptcut[0]) _hist_pT_vs_dPhi_1_500->fill(binmean_pt, binvalue_pt, weight); if (pTlead/GeV >= ptcut[1]) _hist_pT_vs_dPhi_2_500->fill(binmean_pt, binvalue_pt, weight); if (pTlead/GeV >= ptcut[2]) _hist_pT_vs_dPhi_3_500->fill(binmean_pt, binvalue_pt, weight); Modified: branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_S8918562.cc ============================================================================== --- branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_S8918562.cc Tue Jul 19 19:02:33 2011 (r3221) +++ branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_S8918562.cc Tue Jul 19 19:54:58 2011 (r3222) @@ -15,7 +15,7 @@ /// Helper for collectively filling Nch, pT, eta, and pT vs. Nch histograms void fillPtEtaNch(const ChargedFinalState& cfs, int nchcut, double weight, Histo1DPtr h_nch, Histo1DPtr h_pt, - Histo1DPtr h_eta, Profile1DPtr h_ptnch = 0) { + Histo1DPtr h_eta, Profile1DPtr h_ptnch = Profile1DPtr()) { // Get number of particles and skip if event fails cut const int nch = cfs.size(); @@ -84,7 +84,7 @@ _hist_pt500_nch1_pt = bookHisto1D(9, 1, 1); _hist_pt500_nch1_eta = bookHisto1D(2, 1, 1); // This one histogram might be called while unbooked, so ensure its pointer is null! - _hist_pt500_nch1_ptnch = 0; + _hist_pt500_nch1_ptnch = Profile1DPtr(); } else if (fuzzyEquals(sqrtS()/GeV, 7000)) { @@ -160,34 +160,34 @@ if (!fuzzyEquals(sqrtS()/GeV, 2360)) { if (_sumW_pt100_nch2 > 0) { - _hist_pt100_nch2_nch->scale(1.0/_sumW_pt100_nch2); - _hist_pt100_nch2_pt->scale(1.0/_sumW_pt100_nch2/TWOPI/5); - _hist_pt100_nch2_eta->scale(1.0/_sumW_pt100_nch2); + scale(_hist_pt100_nch2_nch, 1.0/_sumW_pt100_nch2); + scale(_hist_pt100_nch2_pt, 1.0/_sumW_pt100_nch2/TWOPI/5); + scale(_hist_pt100_nch2_eta, 1.0/_sumW_pt100_nch2); } if (_sumW_pt100_nch20 > 0) { - _hist_pt100_nch20_nch->scale(1.0/_sumW_pt100_nch20); - _hist_pt100_nch20_pt->scale(1.0/_sumW_pt100_nch20/TWOPI/5); - _hist_pt100_nch20_eta->scale(1.0/_sumW_pt100_nch20); + scale(_hist_pt100_nch20_nch, 1.0/_sumW_pt100_nch20); + scale(_hist_pt100_nch20_pt, 1.0/_sumW_pt100_nch20/TWOPI/5); + scale(_hist_pt100_nch20_eta, 1.0/_sumW_pt100_nch20); } if (_sumW_pt500_nch6 > 0) { - _hist_pt500_nch6_nch->scale(1.0/_sumW_pt500_nch6); - _hist_pt500_nch6_pt->scale(1.0/_sumW_pt500_nch6/TWOPI/5); - _hist_pt500_nch6_eta->scale(1.0/_sumW_pt500_nch6); + scale(_hist_pt500_nch6_nch, 1.0/_sumW_pt500_nch6); + scale(_hist_pt500_nch6_pt, 1.0/_sumW_pt500_nch6/TWOPI/5); + scale(_hist_pt500_nch6_eta, 1.0/_sumW_pt500_nch6); } if (_sumW_pt2500_nch1 > 0) { - _hist_pt2500_nch1_nch->scale(1.0/_sumW_pt2500_nch1); - _hist_pt2500_nch1_pt->scale(1.0/_sumW_pt2500_nch1/TWOPI/5); - _hist_pt2500_nch1_eta->scale(1.0/_sumW_pt2500_nch1); + scale(_hist_pt2500_nch1_nch, 1.0/_sumW_pt2500_nch1); + scale(_hist_pt2500_nch1_pt, 1.0/_sumW_pt2500_nch1/TWOPI/5); + scale(_hist_pt2500_nch1_eta, 1.0/_sumW_pt2500_nch1); } } if (_sumW_pt500_nch1 > 0) { - _hist_pt500_nch1_nch->scale(1.0/_sumW_pt500_nch1); - _hist_pt500_nch1_pt->scale(1.0/_sumW_pt500_nch1/TWOPI/5); - _hist_pt500_nch1_eta->scale(1.0/_sumW_pt500_nch1); + scale(_hist_pt500_nch1_nch, 1.0/_sumW_pt500_nch1); + scale(_hist_pt500_nch1_pt, 1.0/_sumW_pt500_nch1/TWOPI/5); + scale(_hist_pt500_nch1_eta, 1.0/_sumW_pt500_nch1); } } Modified: branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_S8994773.cc ============================================================================== --- branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_S8994773.cc Tue Jul 19 19:02:33 2011 (r3221) +++ branches/2011-07-aida2yoda/src/Analyses/ATLAS_2010_S8994773.cc Tue Jul 19 19:54:58 2011 (r3222) @@ -3,8 +3,6 @@ #include "Rivet/RivetYODA.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Tools/Logging.hh" -#include "LWH/Profile1D.h" -#include "LWH/Histogram1D.h" namespace Rivet { @@ -64,7 +62,7 @@ vector<double> num500(3, 0), ptSum500(3, 0.0); // Temporary histos that bin N in dPhi. // NB. Only one of each needed since binnings are the same for the energies and pT cuts - LWH::Histogram1D hist_num_dphi_500(binEdges(13+isqrts,1,1)); + Histo1D hist_num_dphi_500(binEdges(13+isqrts,1,1)); foreach (const Particle& p, particles500) { const double pT = p.momentum().pT(); const double dPhi = deltaPhi(philead, p.momentum().phi()); @@ -93,7 +91,7 @@ const size_t nbins = binEdges(13+isqrts,1,1).size() - 1; for (size_t i = 0; i < nbins; ++i) { const double binmean_num = hist_num_dphi_500.bin(i).xMean(); - const double binvalue_num = hist_num_dphi_500.bin(i).area()/hist_num_dphi_500.axis().binWidth(i)/10.0; + const double binvalue_num = hist_num_dphi_500.bin(i).area()/hist_num_dphi_500.bin(i).width()/10.0; if (pTlead/GeV >= 1.0) _hist_N_vs_dPhi_1_500->fill(binmean_num, binvalue_num, weight); if (pTlead/GeV >= 2.0) _hist_N_vs_dPhi_2_500->fill(binmean_num, binvalue_num, weight); if (pTlead/GeV >= 3.0) _hist_N_vs_dPhi_3_500->fill(binmean_num, binvalue_num, weight); @@ -103,7 +101,6 @@ void finalize() { - // nothing } Modified: branches/2011-07-aida2yoda/src/Analyses/ATLAS_2011_S9002537.cc ============================================================================== --- branches/2011-07-aida2yoda/src/Analyses/ATLAS_2011_S9002537.cc Tue Jul 19 19:02:33 2011 (r3221) +++ branches/2011-07-aida2yoda/src/Analyses/ATLAS_2011_S9002537.cc Tue Jul 19 19:54:58 2011 (r3222) @@ -76,30 +76,32 @@ /// Normalise histograms etc., after the run void finalize() { - int Nbins = _h_plus->axis().bins(); - std::vector<double> asym, asym_err; + int Nbins = _h_plus->numBins(); for (int i=0; i<Nbins; i++) { double num = _h_plus->bin(i).area() - _h_minus->bin(i).area(); double denom = _h_plus->bin(i).area() + _h_minus->bin(i).area(); - double err = _h_plus->binError(i) + _h_minus->binError(i); + double err = _h_plus->bin(i).areaError() + _h_minus->bin(i).areaError(); + double asym, asym_err; if (num==0 || denom==0) { - asym.push_back(0.); - asym_err.push_back(0.); + asym = 0; + asym_err = 0; } else { - asym.push_back(num/denom); - asym_err.push_back(num/denom*((err/num)+(err/denom))); + asym = num/denom; + asym_err = num/denom*((err/num)+(err/denom)); } + _h_asym->point(i).setY(asym); + _h_asym->point(i).setYErr(asym_err); } - _h_asym->setCoordinate(1, asym, asym_err); - histogramFactory().destroy(_h_plus); - histogramFactory().destroy(_h_minus); + // todo YODA deleteplot + // histogramFactory().destroy(_h_plus); + // histogramFactory().destroy(_h_minus); } private: - AIDA::IHistogram1D *_h_plus, *_h_minus; + Histo1DPtr _h_plus, _h_minus; Scatter2DPtr _h_asym; }; Modified: branches/2011-07-aida2yoda/src/Analyses/Makefile.am ============================================================================== --- branches/2011-07-aida2yoda/src/Analyses/Makefile.am Tue Jul 19 19:02:33 2011 (r3221) +++ branches/2011-07-aida2yoda/src/Analyses/Makefile.am Tue Jul 19 19:54:58 2011 (r3222) @@ -41,25 +41,25 @@ ALICE_2010_S8624100.cc -# lib_LTLIBRARIES += RivetATLASAnalyses.la -# RivetATLASAnalyses_la_SOURCES = \ -# ATLAS_2010_S8591806.cc \ -# ATLAS_2010_S8817804.cc \ -# ATLAS_2010_S8894728.cc \ -# ATLAS_2010_S8914702.cc \ -# ATLAS_2010_S8918562.cc \ -# ATLAS_2010_S8919674.cc \ -# ATLAS_2011_S8924791.cc \ -# ATLAS_2011_S8971293.cc \ -# ATLAS_2010_S8994773.cc \ -# ATLAS_2011_S8983313.cc \ -# ATLAS_2011_S9002537.cc -# if ENABLE_UNVALIDATED -# RivetATLASAnalyses_la_SOURCES += \ -# ATLAS_2010_CONF_2010_049.cc \ -# ATLAS_2011_S9019561.cc \ -# ATLAS_2011_CONF_2011_090.cc -# endif +lib_LTLIBRARIES += RivetATLASAnalyses.la +RivetATLASAnalyses_la_SOURCES = \ + ATLAS_2010_S8591806.cc \ + ATLAS_2010_S8817804.cc \ + ATLAS_2010_S8894728.cc \ + ATLAS_2010_S8914702.cc \ + ATLAS_2010_S8918562.cc \ + ATLAS_2010_S8919674.cc \ + ATLAS_2011_S8924791.cc \ + ATLAS_2011_S8971293.cc \ + ATLAS_2010_S8994773.cc \ + ATLAS_2011_S8983313.cc \ + ATLAS_2011_S9002537.cc +if ENABLE_UNVALIDATED +RivetATLASAnalyses_la_SOURCES += \ + ATLAS_2010_CONF_2010_049.cc \ + ATLAS_2011_S9019561.cc \ + ATLAS_2011_CONF_2011_090.cc +endif lib_LTLIBRARIES += RivetCMSAnalyses.la
More information about the Rivet-svn mailing list |