rivet is hosted by Hepforge, IPPP Durham
Inheritance diagram for ATLAS_2010_S8894728:
Collaboration diagram for ATLAS_2010_S8894728:

List of all members.

Public Member Functions

 ATLAS_2010_S8894728 ()
void init ()
int region_index (double dphi)
void analyze (const Event &event)
void finalize ()
AnalysisHandlerhandler () const
 Access the controlling AnalysisHandler object.
void normalize (Histo1DPtr histo, double norm=1.0, bool includeoverflows=true)
void scale (Histo1DPtr histo, double scale)
AnalysissetCrossSection (double xs)
 Set the cross section from the generator.
void divide (Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const
void divide (Profile1DPtr p1, Profile1DPtr p2, Scatter2DPtr s) const
void divide (const YODA::Histo1D &h1, const YODA::Histo1D &h2, Scatter2DPtr s) const
void divide (const YODA::Profile1D &p1, const YODA::Profile1D &p2, Scatter2DPtr s) const
const vector< AnalysisObjectPtr > & plots () const
 List of registered plot objects.
Metadata

Metadata is used for querying from the command line and also for building web pages and the analysis pages in the Rivet manual.

const AnalysisInfoinfo () const
 Get the actual AnalysisInfo object in which all this metadata is stored.
virtual std::string name () const
 Get the name of the analysis.
virtual std::string inspireId () const
 Get the Inspire ID code for this analysis.
virtual std::string spiresId () const
 Get the SPIRES ID code for this analysis (~deprecated).
virtual std::vector< std::string > authors () const
 Names & emails of paper/analysis authors.
virtual std::string summary () const
 Get a short description of the analysis.
virtual std::string description () const
 Get a full description of the analysis.
virtual std::string runInfo () const
 Information about the events needed as input for this analysis.
virtual std::string experiment () const
 Experiment which performed and published this analysis.
virtual std::string collider () const
 Collider on which the experiment ran.
virtual std::string year () const
 When the original experimental analysis was published.
virtual std::vector< std::string > references () const
 Journal, and preprint references.
virtual std::string bibKey () const
 BibTeX citation key for this article.
virtual std::string bibTeX () const
 BibTeX citation entry for this article.
virtual std::string status () const
 Whether this analysis is trusted (in any way!)
virtual std::vector< std::string > todos () const
 Any work to be done on this analysis.
virtual const std::vector
< PdgIdPair > & 
requiredBeams () const
 Return the allowed pairs of incoming beams required by this analysis.
virtual AnalysissetRequiredBeams (const std::vector< PdgIdPair > &requiredBeams)
 Declare the allowed pairs of incoming beams required by this analysis.
virtual const std::vector
< std::pair< double, double > > & 
requiredEnergies () const
 Sets of valid beam energy pairs, in GeV.
virtual AnalysissetRequiredEnergies (const std::vector< std::pair< double, double > > &requiredEnergies)
 Declare the list of valid beam energy pairs, in GeV.
bool needsCrossSection () const
AnalysissetNeedsCrossSection (bool needed=true)
Internal metadata modifying methods
AnalysisInfoinfo ()
 Get the actual AnalysisInfo object in which all this metadata is stored (non-const).
Run conditions
const ParticlePairbeams () const
 Incoming beams for this run.
const PdgIdPair beamIds () const
 Incoming beam IDs for this run.
double sqrtS () const
 Centre of mass energy for this run.
Analysis / beam compatibility testing
bool isCompatible (const ParticlePair &beams) const
 Check if analysis is compatible with the provided beam particle IDs and energies.
bool isCompatible (PdgId beam1, PdgId beam2, double e1, double e2) const
 Check if analysis is compatible with the provided beam particle IDs and energies.
bool isCompatible (const PdgIdPair &beams, const std::pair< double, double > &energies) const
 Check if analysis is compatible with the provided beam particle IDs and energies.
Projection "getting" functions
std::set< ConstProjectionPtrgetProjections () const
 Get the contained projections, including recursion.
template<typename PROJ >
const PROJ & getProjection (const std::string &name) const
 Get the named projection, specifying return type via a template argument.
const ProjectiongetProjection (const std::string &name) const
Projection applying functions
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const PROJ &proj) const
 Apply the supplied projection on event.
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const Projection &proj) const
 Apply the supplied projection on event.
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const std::string &name) const
 Apply the named projection on event.

Protected Member Functions

LoggetLog () const
 Get a Log object based on the name() property of the calling analysis object.
double crossSection () const
 Get the process cross-section in pb. Throws if this hasn't been set.
double crossSectionPerEvent () const
size_t numEvents () const
double sumOfWeights () const
void addPlot (AnalysisObjectPtr)
 Add a plot object to the final output list.
ProjectionHandlergetProjHandler () const
 Get a reference to the ProjectionHandler for this thread.
AIDA analysis infrastructure.
const std::string histoDir () const
 Get the canonical histogram "directory" path for this analysis.
const std::string histoPath (const std::string &hname) const
 Get the canonical histogram path for the named histogram in this analysis.
const std::string histoPath (size_t datasetId, size_t xAxisId, size_t yAxisId) const
 Get the canonical histogram path for the numbered histogram in this analysis.
const std::string makeAxisCode (size_t datasetId, size_t xAxisId, size_t yAxisId) const
 Get the internal histogram name for given d, x and y (cf. HepData)
Internal histogram booking (for use by Analysis sub-classes).
const YODA::Scatter2D & referenceData (const string &hname) const
 Get reference data for a named histo.
const YODA::Scatter2D & referenceData (size_t datasetId, size_t xAxisId, size_t yAxisId) const
 Get reference data for a numbered histo.
Histo1DPtr bookHisto1D (const std::string &name, size_t nbins, double lower, double upper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Histo1DPtr bookHisto1D (const std::string &name, const std::vector< double > &binedges, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Histo1DPtr bookHisto1D (const std::string &name, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Histo1DPtr bookHisto1D (size_t datasetId, size_t xAxisId, size_t yAxisId, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Internal profile histogram booking (for use by Analysis sub-classes).
Profile1DPtr bookProfile1D (const std::string &name, size_t nbins, double lower, double upper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Profile1DPtr bookProfile1D (const std::string &name, const std::vector< double > &binedges, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Profile1DPtr bookProfile1D (const std::string &name, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Profile1DPtr bookProfile1D (size_t datasetId, size_t xAxisId, size_t yAxisId, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Internal data point set booking (for use by Analysis sub-classes).
Scatter2DPtr bookScatter2D (const std::string &name, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Scatter2DPtr bookScatter2D (const std::string &name, size_t npts, double lower, double upper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Scatter2DPtr bookScatter2D (const std::string &name, const std::string &title)
Scatter2DPtr bookScatter2D (size_t datasetId, size_t xAxisId, size_t yAxisId, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Projection registration functions
template<typename PROJ >
const PROJ & addProjection (const PROJ &proj, const std::string &name)
const Projection_addProjection (const Projection &proj, const std::string &name)
 Untemplated function to do the work...

Protected Attributes

string _defaultname
 Name passed to constructor (used to find .info analysis data file, and as a fallback)
shared_ptr< AnalysisInfo_info
 Pointer to analysis metadata object.
bool _allowProjReg
 Flag to forbid projection registration in analyses until the init phase.

Private Member Functions

void _moments_to_stddev (Profile1DPtr moment_profiles[], Scatter2DPtr target_dps)

Private Attributes

Profile1DPtr _hist_nch_transverse_500 [4]
Profile1DPtr _hist_nch_toward_500
Profile1DPtr _hist_nch_away_500
Profile1DPtr _hist_ptsum_transverse_500 [4]
Profile1DPtr _hist_ptsum_toward_500
Profile1DPtr _hist_ptsum_away_500
Scatter2DPtr _dps_sdnch_transverse_500
Scatter2DPtr _dps_sdptsum_transverse_500
Profile1DPtr _hist_ptavg_transverse_500
Profile1DPtr _hist_ptavg_toward_500
Profile1DPtr _hist_ptavg_away_500
Profile1DPtr _hist_dn_dpt_transverse_500
Profile1DPtr _hist_dn_dpt_toward_500
Profile1DPtr _hist_dn_dpt_away_500
Profile1DPtr _hist_N_vs_dPhi_1_500
Profile1DPtr _hist_N_vs_dPhi_2_500
Profile1DPtr _hist_N_vs_dPhi_3_500
Profile1DPtr _hist_N_vs_dPhi_5_500
Profile1DPtr _hist_pT_vs_dPhi_1_500
Profile1DPtr _hist_pT_vs_dPhi_2_500
Profile1DPtr _hist_pT_vs_dPhi_3_500
Profile1DPtr _hist_pT_vs_dPhi_5_500
Profile1DPtr _hist_nch_transverse_100
Profile1DPtr _hist_nch_toward_100
Profile1DPtr _hist_nch_away_100
Profile1DPtr _hist_ptsum_transverse_100
Profile1DPtr _hist_ptsum_toward_100
Profile1DPtr _hist_ptsum_away_100
Profile1DPtr _hist_nch_vs_eta_transverse_100
Profile1DPtr _hist_ptsum_vs_eta_transverse_100

Detailed Description

Definition at line 10 of file ATLAS_2010_S8894728.cc.


Constructor & Destructor Documentation

ATLAS_2010_S8894728 ( ) [inline]

Definition at line 13 of file ATLAS_2010_S8894728.cc.

: Analysis("ATLAS_2010_S8894728") {    }

Member Function Documentation

const Projection & _addProjection ( const Projection proj,
const std::string &  name 
) [protected, inherited]

Untemplated function to do the work...

Definition at line 33 of file ProjectionApplier.cc.

References ProjectionApplier::_allowProjReg, ProjectionApplier::getProjHandler(), ProjectionApplier::name(), Projection::name(), and ProjectionHandler::registerProjection().

Referenced by ProjectionApplier::addProjection().

                                                                             {
    if (!_allowProjReg) {
      cerr << "Trying to register projection '"
           << proj.name() << "' before init phase in '" << this->name() << "'." << endl;
      exit(2);
    }
    const Projection& reg = getProjHandler().registerProjection(*this, proj, name);
    return reg;
  }
void _moments_to_stddev ( Profile1DPtr  moment_profiles[],
Scatter2DPtr  target_dps 
) [inline, private]
Todo:
Assuming unit weights here! Should use N_effective = sumW**2/sumW2?

Definition at line 265 of file ATLAS_2010_S8894728.cc.

References Rivet::fuzzyLessEquals(), Rivet::intpow(), Rivet::mean(), and MSG_WARNING.

Referenced by ATLAS_2010_S8894728::finalize().

                                                                                            {
      for (size_t b = 0; b < moment_profiles[0]->numBins(); ++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 x = moment_profiles[0]->bin(b).midpoint();
        const double ex = moment_profiles[0]->bin(b).width()/2.;
        double var = 0.;
        double sd = 0.;
        if (numentries > 0) {
          var = moment_profiles[1]->bin(b).mean() - intpow(moment_profiles[0]->bin(b).mean(), 2);
          sd = fuzzyLessEquals(var,0.) ? 0 : sqrt(var); //< Numerical safety check
        }
        if (sd == 0 || numentries < 3) {
          MSG_WARNING("Need at least 3 bin entries and a non-zero central value to calculate "
                      << "an error on standard deviation profiles (bin " << b << ")");
          target_dps->addPoint(x, sd, ex, 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).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->addPoint(x, sd, ex, stderr_on_sd);
      }
    }
void addPlot ( AnalysisObjectPtr  ao) [protected, inherited]

Add a plot object to the final output list.

Todo:
2D versions of scale and normalize... or ditch these completely?

Definition at line 475 of file Analysis.cc.

References Analysis::_plotobjects.

Referenced by Analysis::bookHisto1D(), Analysis::bookProfile1D(), and Analysis::bookScatter2D().

                                             {
    _plotobjects.push_back(ao);
  }
const PROJ& addProjection ( const PROJ &  proj,
const std::string &  name 
) [inline, protected, inherited]

Register a contained projection. The type of the argument is used to instantiate a new projection internally: this new object is applied to events rather than the argument object. Hence you are advised to only use locally-scoped Projection objects in your Projection and Analysis constructors, and to avoid polymorphism (e.g. handling ConcreteProjection via a pointer or reference to type Projection) since this will screw up the internal type management.

Definition at line 113 of file ProjectionApplier.hh.

References ProjectionApplier::_addProjection().

Referenced by ZFinder::_init(), WFinder::_init(), VetoedFinalState::addVetoOnThisFinalState(), BeamThrust::BeamThrust(), CDF_2009_S8057893::CDF_2009_S8057893::init(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), ClusteredPhotons::ClusteredPhotons(), DISFinalState::DISFinalState(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), FinalState::FinalState(), FoxWolframMoments::FoxWolframMoments(), FParameter::FParameter(), HadronicFinalState::HadronicFinalState(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), ATLAS_2010_S8894728::init(), CMS_2010_S8547297::init(), CMS_2010_S8656010::init(), CMS_2011_S8968497::init(), ATLAS_2011_S8994773::init(), ATLAS_2011_I894867::init(), CMS_2011_S8950903::init(), ALICE_2011_S8945144::init(), CMS_2011_S8941262::init(), CMS_2011_S8973270::init(), CMS_2011_S8978280::init(), CMS_2011_S9086218::init(), CMS_2011_S9088458::init(), ATLAS_2010_CONF_2010_049::init(), CMS_2012_I1087342::init(), ALICE_2011_S8909580::init(), CMS_2011_S9215166::init(), CMS_2012_I1107658::init(), LHCF_2012_I1115479::init(), CDF_2007_S7057202::init(), TOTEM_2012_I1115294::init(), ATLAS_2010_S8591806::init(), D0_2011_I895662::init(), CMS_2011_S8957746::init(), MC_JETS::init(), CDF_2012_NOTE10874::init(), CMS_QCD_10_024::init(), ATLAS_2011_S9002537::init(), CDF_1997_S3541940::init(), UA5_1987_S1640666::init(), MC_DIJET::init(), STAR_2006_S6500200::init(), STAR_2008_S7993412::init(), CDF_2000_S4155203::init(), CDF_2005_S6080774::init(), CDF_2006_S6450792::init(), MC_DIPHOTON::init(), SFM_1984_S1178091::init(), UA5_1982_S875503::init(), STAR_2006_S6870392::init(), UA5_1989_S1926373::init(), D0_2008_S6879055::init(), CDF_1993_S2742446::init(), H1_1995_S3167097::init(), MC_HJETS::init(), CDF_2008_S8093652::init(), MC_ZJETS::init(), CMS_2012_I1102908::init(), CDF_1988_S1865951::init(), E735_1998_S3905616::init(), MC_PHOTONJETS::init(), MC_TTBAR::init(), MC_ZZJETS::init(), CDF_2008_S7782535::init(), ATLAS_2012_I1091481::init(), ATLAS_2012_I1183818::init(), D0_1996_S3324664::init(), ALEPH_1991_S2435284::init(), ATLAS_2010_S8817804::init(), DELPHI_1999_S3960137::init(), CDF_1990_S2089246::init(), OPAL_1998_S3749908::init(), UA5_1986_S1583476::init(), ALEPH_1996_S3196992::init(), MC_IDENTIFIED::init(), MC_LEADJETUE::init(), ALEPH_2002_S4823664::init(), MC_PHOTONJETUE::init(), MC_WJETS::init(), MC_WWJETS::init(), OPAL_1995_S3198391::init(), OPAL_1996_S3257789::init(), OPAL_1997_S3608263::init(), OPAL_1998_S3702294::init(), OPAL_2000_S4418603::init(), ATLAS_2011_S8924791::init(), D0_2010_S8570965::init(), CDF_1994_S2952106::init(), JADE_OPAL_2000_S4300807::init(), MC_GENERIC::init(), CDF_2005_S6217184::init(), ATLAS_2011_I954993::init(), D0_2001_S4674421::init(), D0_2007_S7075677::init(), LHCB_2011_I919315::init(), CDF_2008_S7540469::init(), CDF_2008_S7828950::init(), ATLAS_2011_I925932::init(), UA1_1990_S2044935::init(), ZEUS_2001_S4815815::init(), D0_1996_S3214044::init(), ALICE_2010_S8624100::init(), D0_2008_S7554427::init(), D0_2008_S7863608::init(), D0_2010_S8671338::init(), DELPHI_1995_S3137023::init(), ATLAS_2011_S9131140::init(), JADE_1998_S3612880::init(), MC_PHOTONS::init(), OPAL_1997_S3396100::init(), STAR_2006_S6860818::init(), STAR_2009_UE_HELEN::init(), ALEPH_2004_S5765862::init(), D0_2000_S4480767::init(), ALICE_2010_S8625980::init(), D0_2009_S8202443::init(), D0_2009_S8349509::init(), CDF_2008_S8095620::init(), MC_SUSY::init(), EXAMPLE::init(), ATLAS_2011_S9128077::init(), ALICE_2010_S8706239::init(), CDF_2009_NOTE_9936::init(), D0_2009_S8320160::init(), ATLAS_2011_S8971293::init(), CDF_1996_S3108457::init(), CDF_1998_S3618439::init(), CDF_2000_S4266730::init(), CDF_2001_S4563131::init(), CDF_2009_S8383952::init(), CDF_2009_S8436959::init(), D0_2006_S6438750::init(), D0_2008_S7837160::init(), D0_2010_S8566488::init(), CDF_2001_S4517016::init(), DELPHI_2002_069_CONF_603::init(), ATLAS_2012_I1082936::init(), ATLAS_2011_I926145::init(), SLD_2002_S4869273::init(), CDF_1996_S3349578::init(), ALEPH_2001_S4656318::init(), D0_2010_S8821313::init(), MC_WPOL::init(), CDF_1996_S3418421::init(), ATLAS_2011_I944826::init(), D0_2008_S7662670::init(), UA5_1988_S1867512::init(), ATLAS_2010_S8919674::init(), ATLAS_2012_I1083318::init(), ATLAS_2011_S9108483::init(), CDF_2006_S6653332::init(), CDF_2008_S7541902::init(), ATLAS_2012_I1125961::init(), ATLAS_2011_S9212183::init(), SLD_1996_S3398250::init(), ATLAS_2012_CONF_2012_104::init(), ATLAS_2011_S8983313::init(), ATLAS_2012_I943401::init(), ATLAS_2012_CONF_2012_109::init(), ATLAS_2011_S9212353::init(), ATLAS_2011_CONF_2011_090::init(), ATLAS_2012_CONF_2012_001::init(), DELPHI_2000_S4328825::init(), OPAL_2002_S5361494::init(), ATLAS_2012_CONF_2012_103::init(), ATLAS_2012_I946427::init(), ATLAS_2012_I1095236::init(), ATLAS_2012_I1180197::init(), ATLAS_2011_S9225137::init(), ATLAS_2012_CONF_2012_105::init(), ATLAS_2012_I1112263::init(), ATLAS_2012_I1190891::init(), TASSO_1990_S2148048::init(), ATLAS_2012_I1117704::init(), ATLAS_2011_S9019561::init(), ATLAS_2012_I1186556::init(), D0_2008_S7719523::init(), ATLAS_2012_I1082009::init(), ATLAS_2011_CONF_2011_098::init(), ATLAS_2012_I1084540::init(), ATLAS_2012_I1126136::init(), CDF_2009_S8233977::init(), CDF_2010_S8591881_DY::init(), ATLAS_2012_CONF_2012_153::init(), CDF_2008_NOTE_9351::init(), CDF_2010_S8591881_QCD::init(), CDF_2008_LEADINGJETS::init(), D0_2004_S5992206::init(), ATLAS_2010_S8914702::init(), ATLAS_2011_S9120807::init(), CDF_2001_S4751469::init(), ATLAS_2010_S8918562::init(), LHCB_2011_I917009::init(), ATLAS_2011_I945498::init(), ATLAS_2011_S9041966::init(), DELPHI_1996_S3430090::init(), ALEPH_1996_S3486095::init(), ALEPH_1999_S4193598::init(), ATLAS_2012_I1094568::init(), OPAL_2004_S6132243::init(), ATLAS_2012_I1093738::init(), OPAL_1994_S2927284::init(), ATLAS_2011_S9126244::init(), STAR_2008_S7869363::init(), BABAR_2007_S6895344::init(), MC_VH2BB::init(), BABAR_2005_S6181155::init(), BELLE_2001_S4598261::init(), ATLAS_2011_I919017::init(), OPAL_2001_S4553896::init(), DELPHI_2003_WUD_03_11::init(), CDF_2004_S5839831::init(), CLEO_2004_S5809304::init(), ARGUS_1993_S2653028::init(), OPAL_1998_S3780481::init(), BABAR_2007_S7266081::init(), OPAL_1993_S2692198::init(), ARGUS_1993_S2669951::init(), H1_1994_S2919893::init(), H1_2000_S4129130::init(), ARGUS_1993_S2789213::init(), SLD_2004_S5693039::init(), BELLE_2006_S6265367::init(), SLD_1999_S3743934::init(), PDG_HADRON_MULTIPLICITIES::init(), PDG_HADRON_MULTIPLICITIES_RATIOS::init(), IsolationProjection< PROJ1, PROJ2, EST >::IsolationProjection(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LeptonClusters::LeptonClusters(), LossyFinalState< ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), MissingMomentum::MissingMomentum(), Multiplicity::Multiplicity(), NeutralFinalState::NeutralFinalState(), NonHadronicFinalState::NonHadronicFinalState(), ParisiTensor::ParisiTensor(), Sphericity::Sphericity(), Spherocity::Spherocity(), Thrust::Thrust(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), VetoedFinalState::VetoedFinalState(), and VisibleFinalState::VisibleFinalState().

                                                                       {
      const Projection& reg = _addProjection(proj, name);
      const PROJ& rtn = dynamic_cast<const PROJ&>(reg);
      return rtn;
    }
void analyze ( const Event event) [inline, virtual]

Analyze one event. A concrete class should here apply the necessary projections on the event and fill the relevant histograms. An overridden function must make sure it first calls the base class function.

Implements Analysis.

Definition at line 97 of file ATLAS_2010_S8894728.cc.

References ATLAS_2010_S8894728::_hist_dn_dpt_away_500, ATLAS_2010_S8894728::_hist_dn_dpt_toward_500, ATLAS_2010_S8894728::_hist_dn_dpt_transverse_500, ATLAS_2010_S8894728::_hist_N_vs_dPhi_1_500, ATLAS_2010_S8894728::_hist_N_vs_dPhi_2_500, ATLAS_2010_S8894728::_hist_N_vs_dPhi_3_500, ATLAS_2010_S8894728::_hist_N_vs_dPhi_5_500, ATLAS_2010_S8894728::_hist_nch_away_100, ATLAS_2010_S8894728::_hist_nch_away_500, ATLAS_2010_S8894728::_hist_nch_toward_100, ATLAS_2010_S8894728::_hist_nch_toward_500, ATLAS_2010_S8894728::_hist_nch_transverse_100, ATLAS_2010_S8894728::_hist_nch_transverse_500, ATLAS_2010_S8894728::_hist_nch_vs_eta_transverse_100, ATLAS_2010_S8894728::_hist_pT_vs_dPhi_1_500, ATLAS_2010_S8894728::_hist_pT_vs_dPhi_2_500, ATLAS_2010_S8894728::_hist_pT_vs_dPhi_3_500, ATLAS_2010_S8894728::_hist_pT_vs_dPhi_5_500, ATLAS_2010_S8894728::_hist_ptavg_away_500, ATLAS_2010_S8894728::_hist_ptavg_toward_500, ATLAS_2010_S8894728::_hist_ptavg_transverse_500, ATLAS_2010_S8894728::_hist_ptsum_away_100, ATLAS_2010_S8894728::_hist_ptsum_away_500, ATLAS_2010_S8894728::_hist_ptsum_toward_100, ATLAS_2010_S8894728::_hist_ptsum_toward_500, ATLAS_2010_S8894728::_hist_ptsum_transverse_100, ATLAS_2010_S8894728::_hist_ptsum_transverse_500, ATLAS_2010_S8894728::_hist_ptsum_vs_eta_transverse_100, Rivet::deltaPhi(), FourVector::eta(), Rivet::fuzzyEquals(), Particle::genParticle(), Rivet::GeV, Rivet::intpow(), Rivet::mean(), Particle::momentum(), MSG_DEBUG, FinalState::particles(), FinalState::particlesByPt(), FourVector::perp(), FourVector::phi(), Rivet::PI, FourMomentum::pT(), Rivet::pT(), Analysis::referenceData(), ATLAS_2010_S8894728::region_index(), FinalState::size(), Analysis::sqrtS(), Rivet::TeV, and vetoEvent.

                                     {
      const double weight = event.weight();

      // Require at least one track in the event with pT >= 1 GeV
      const ChargedFinalState& cfslead = applyProjection<ChargedFinalState>(event, "CFSlead");
      if (cfslead.size() < 1) {
        vetoEvent;
      }

      // These are the charged particles (tracks) with pT > 500 MeV
      const ChargedFinalState& charged500 = applyProjection<ChargedFinalState>(event, "CFS500");

      // Identify leading track and its phi and pT (this is the same for both the 100 MeV and 500 MeV track cuts)
      ParticleVector particles500 = charged500.particlesByPt();
      Particle p_lead = particles500[0];
      const double philead = p_lead.momentum().phi();
      const double etalead = p_lead.momentum().eta();
      const double pTlead  = p_lead.momentum().perp();
      MSG_DEBUG("Leading track: pT = " << pTlead << ", eta = " << etalead << ", phi = " << philead);

      // Iterate over all > 500 MeV particles and count particles and scalar pTsum in the three regions
      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
      Histo1D hist_num_dphi_500(referenceData(13,1,1));
      Histo1D hist_pt_dphi_500(referenceData(15,1,1));
      foreach (const Particle& p, particles500) {
        const double pT = p.momentum().pT();
        const double dPhi = deltaPhi(philead, p.momentum().phi());
        const int ir = region_index(dPhi);
        num500[ir] += 1;
        ptSum500[ir] += pT;

        // Fill temp histos to bin Nch and pT in dPhi
        if (p.genParticle() != p_lead.genParticle()) { // We don't want to fill all those zeros from the leading track...
          hist_num_dphi_500.fill(dPhi, 1);
          hist_pt_dphi_500.fill(dPhi, pT);
        }
      }


      // Iterate over charged particles again for profiles against Nch
      // This is necessary since the Nch are region-specific and so are only known after the first loop
      foreach (const Particle& p, particles500) {
        const double pT = p.momentum().pT();
        const double dPhi = deltaPhi(philead, p.momentum().phi());
        const int ir = region_index(dPhi);
        switch (ir) {
        case 0:
          _hist_dn_dpt_toward_500->fill(num500[0], pT, weight);
          break;
        case 1:
          _hist_dn_dpt_transverse_500->fill(num500[1], pT, weight);
          break;
        case 2:
          _hist_dn_dpt_away_500->fill(num500[2], pT, weight);
          break;
        default:
          assert(false && "How did we get here?");
        }
      }


      // Now fill underlying event histograms
      // The densities are calculated by dividing the UE properties by dEta*dPhi
      // -- each region has a dPhi of 2*PI/3 and dEta is two times 2.5
      const double dEtadPhi = (2*2.5 * 2*PI/3.0);
      // Transverse profiles need 4 orders of moments for stddev with errors
      for (int i = 0; i < 4; ++i) {
        _hist_nch_transverse_500[i]->fill(pTlead/GeV, intpow(num500[1]/dEtadPhi, i+1), weight);
        _hist_ptsum_transverse_500[i]->fill(pTlead/GeV, intpow(ptSum500[1]/GeV/dEtadPhi, i+1), weight);
      }
      // Toward and away profiles only need the first moment (the mean)
      _hist_nch_toward_500->fill(pTlead/GeV, num500[0]/dEtadPhi, weight);
      _hist_nch_away_500->fill(pTlead/GeV, num500[2]/dEtadPhi, weight);
      _hist_ptsum_toward_500->fill(pTlead/GeV, ptSum500[0]/GeV/dEtadPhi, weight);
      _hist_ptsum_away_500->fill(pTlead/GeV, ptSum500[2]/GeV/dEtadPhi, weight);
      // <pT> profiles
      //MSG_INFO("Trans pT1, pTsum, Nch, <pT>" << pTlead/GeV << ", " <<  ptSum500[1]/GeV << ", " << num500[1] << ", " << ptSum500[1]/GeV/num500[1]);
      if (num500[1] > 0) _hist_ptavg_transverse_500->fill(pTlead/GeV, ptSum500[1]/GeV/num500[1], weight);
      if (num500[0] > 0) _hist_ptavg_toward_500->fill(pTlead/GeV, ptSum500[0]/GeV/num500[0], weight);
      if (num500[2] > 0) _hist_ptavg_away_500->fill(pTlead/GeV, ptSum500[2]/GeV/num500[2], weight);


      // Update the "proper" dphi profile histograms
      // Note that we fill dN/dEtadPhi: dEta = 2*2.5, dPhi = 2*PI/nBins
      // The values tabulated in the note are for an (undefined) signed Delta(phi) rather than
      // |Delta(phi)| and so differ by a factor of 2: we have to actually norm for angular range = 2pi
      const size_t nbins = referenceData(13,1,1).numPoints();
      std::vector<double> ptcut;
      if (fuzzyEquals(sqrtS(), 900*GeV)) {
        ptcut += 1.0; ptcut += 1.5; ptcut += 2.0; ptcut += 2.5;
      }
      else if (fuzzyEquals(sqrtS(), 7*TeV)) {
        ptcut += 1.0; ptcut += 2.0; ptcut += 3.0; ptcut += 5.0;
      }
      assert(ptcut.size() == 4);
      for (size_t i = 0; i < nbins; ++i) {
        // First Nch
        double mean = hist_num_dphi_500.bin(i).midpoint();
        double value = 0.;
        if (hist_num_dphi_500.bin(i).numEntries() > 0) {
          mean = hist_num_dphi_500.bin(i).xMean();
          value = 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(mean, value, weight);
        if (pTlead/GeV >= ptcut[1]) _hist_N_vs_dPhi_2_500->fill(mean, value, weight);
        if (pTlead/GeV >= ptcut[2]) _hist_N_vs_dPhi_3_500->fill(mean, value, weight);
        if (pTlead/GeV >= ptcut[3]) _hist_N_vs_dPhi_5_500->fill(mean, value, weight);

        // Then pT
        mean = hist_pt_dphi_500.bin(i).midpoint();
        value = 0.;
        if (hist_pt_dphi_500.bin(i).numEntries() > 0) {
          mean = hist_pt_dphi_500.bin(i).xMean();
          value = 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(mean, value, weight);
        if (pTlead/GeV >= ptcut[1]) _hist_pT_vs_dPhi_2_500->fill(mean, value, weight);
        if (pTlead/GeV >= ptcut[2]) _hist_pT_vs_dPhi_3_500->fill(mean, value, weight);
        if (pTlead/GeV >= ptcut[3]) _hist_pT_vs_dPhi_5_500->fill(mean, value, weight);
      }


      //////////////////////


      // These are the charged particles (tracks) with pT > 100 MeV
      const ChargedFinalState& charged100 = applyProjection<ChargedFinalState>(event, "CFS100");

      // Iterate over all > 100 MeV particles and count particles and scalar pTsum in the three regions
      vector<double> num100(3, 0), ptSum100(3, 0.0);
      foreach (const Particle& p, charged100.particles()) {
        const double pT = p.momentum().pT();
        const double dPhi = deltaPhi(philead, p.momentum().phi());
        const int ir = region_index(dPhi);
        num100[ir] += 1;
        ptSum100[ir] += pT;
      }

      // Now fill the two sets of 100 MeV underlying event histograms
      _hist_nch_transverse_100->fill(pTlead/GeV, num100[1]/dEtadPhi, weight);
      _hist_nch_toward_100->fill(pTlead/GeV, num100[0]/dEtadPhi, weight);
      _hist_nch_away_100->fill(pTlead/GeV, num100[2]/dEtadPhi, weight);
      _hist_ptsum_transverse_100->fill(pTlead/GeV, ptSum100[1]/GeV/dEtadPhi, weight);
      _hist_ptsum_toward_100->fill(pTlead/GeV, ptSum100[0]/GeV/dEtadPhi, weight);
      _hist_ptsum_away_100->fill(pTlead/GeV, ptSum100[2]/GeV/dEtadPhi, weight);

      // And finally the Nch and pT vs eta_lead profiles (again from > 100 MeV tracks, and only at 7 TeV)
      if (fuzzyEquals(sqrtS(), 7*TeV) && pTlead > 5*GeV) {
        // MSG_INFO(sqrtS() << " " << pTlead << " " << ptSum100[1]/dEtadPhi << " " << num100[1]/dEtadPhi);
        _hist_nch_vs_eta_transverse_100->fill(etalead, num100[1]/dEtadPhi, weight);
        _hist_ptsum_vs_eta_transverse_100->fill(etalead, ptSum100[1]/GeV/dEtadPhi, weight);
      }

    }
const PROJ& applyProjection ( const Event evt,
const PROJ &  proj 
) const [inline, inherited]

Apply the supplied projection on event.

Definition at line 67 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

Referenced by DISFinalState::project().

                                                                          {
      return pcast<PROJ>(_applyProjection(evt, proj));
    }
const PROJ& applyProjection ( const Event evt,
const Projection proj 
) const [inline, inherited]

Apply the supplied projection on event.

Definition at line 74 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

                                                                                {
      return pcast<PROJ>(_applyProjection(evt, proj));
    }
const PROJ& applyProjection ( const Event evt,
const std::string &  name 
) const [inline, inherited]

Apply the named projection on event.

Definition at line 81 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

                                                                               {
      return pcast<PROJ>(_applyProjection(evt, name));
    }
virtual std::vector<std::string> authors ( ) const [inline, virtual, inherited]

Names & emails of paper/analysis authors.

Names and email of authors in 'NAME <EMAIL>' format. The first name in the list should be the primary contact person.

Definition at line 136 of file Analysis.hh.

References AnalysisInfo::authors(), and Analysis::info().

                                                 {
      return info().authors();
    }
const PdgIdPair beamIds ( ) const [inherited]

Incoming beam IDs for this run.

Definition at line 32 of file Analysis.cc.

References AnalysisHandler::beamIds(), and Analysis::handler().

Referenced by UA5_1982_S875503::finalize(), and UA5_1982_S875503::init().

                                          {
    return handler().beamIds();
  }
virtual std::string bibKey ( ) const [inline, virtual, inherited]

BibTeX citation key for this article.

Definition at line 189 of file Analysis.hh.

References AnalysisInfo::bibKey(), and Analysis::info().

                                     {
      return info().bibKey();
    }
virtual std::string bibTeX ( ) const [inline, virtual, inherited]

BibTeX citation entry for this article.

Definition at line 194 of file Analysis.hh.

References AnalysisInfo::bibTeX(), and Analysis::info().

                                     {
      return info().bibTeX();
    }
Histo1DPtr bookHisto1D ( const std::string &  name,
size_t  nbins,
double  lower,
double  upper,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 1D histogram with nbins uniformly distributed across the range lower - upper . (NB. this returns a pointer rather than a reference since it will have to be stored in the analysis class - there's no point in forcing users to explicitly get the pointer from a reference before they can use it!)

Definition at line 213 of file Analysis.cc.

References Analysis::addPlot(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

Referenced by Analysis::bookHisto1D(), CMS_2010_S8547297::init(), CMS_2010_S8656010::init(), CMS_2011_S8968497::init(), CMS_2011_S8950903::init(), ATLAS_2011_I894867::init(), CMS_2011_S9086218::init(), ATLAS_2010_CONF_2010_049::init(), ALICE_2011_S8909580::init(), ALICE_2011_S8945144::init(), CMS_2011_S8941262::init(), CMS_2011_S8973270::init(), CMS_2011_S8978280::init(), CMS_2011_S9088458::init(), CMS_2012_I1087342::init(), LHCF_2012_I1115479::init(), CDF_2007_S7057202::init(), TOTEM_2012_I1115294::init(), CMS_2011_S9215166::init(), CMS_2012_I1107658::init(), D0_2011_I895662::init(), ATLAS_2010_S8591806::init(), CMS_2011_S8957746::init(), ATLAS_2011_S9002537::init(), MC_DIJET::init(), CDF_1997_S3541940::init(), STAR_2006_S6500200::init(), UA5_1987_S1640666::init(), CMS_QCD_10_024::init(), CDF_2005_S6080774::init(), UA5_1982_S875503::init(), MC_DIPHOTON::init(), MC_JetAnalysis::init(), CDF_2000_S4155203::init(), CDF_2006_S6450792::init(), SFM_1984_S1178091::init(), CDF_1993_S2742446::init(), H1_1995_S3167097::init(), MC_HJETS::init(), MC_ZJETS::init(), STAR_2006_S6870392::init(), CDF_2008_S8093652::init(), UA5_1989_S1926373::init(), D0_2008_S6879055::init(), E735_1998_S3905616::init(), CDF_1988_S1865951::init(), MC_PDFS::init(), MC_PHOTONJETS::init(), MC_TTBAR::init(), MC_ZZJETS::init(), ATLAS_2012_I1091481::init(), OPAL_1997_S3608263::init(), OPAL_1998_S3702294::init(), OPAL_1998_S3749908::init(), OPAL_2000_S4418603::init(), UA5_1986_S1583476::init(), ALEPH_2002_S4823664::init(), D0_1996_S3324664::init(), ATLAS_2012_I1183818::init(), DELPHI_1999_S3960137::init(), ALEPH_1991_S2435284::init(), CDF_1990_S2089246::init(), ATLAS_2010_S8817804::init(), MC_IDENTIFIED::init(), ALEPH_1996_S3196992::init(), MC_PHOTONJETUE::init(), MC_WJETS::init(), MC_WWJETS::init(), OPAL_1995_S3198391::init(), OPAL_1996_S3257789::init(), D0_2010_S8570965::init(), JADE_OPAL_2000_S4300807::init(), MC_GENERIC::init(), CDF_1994_S2952106::init(), ATLAS_2011_I954993::init(), LHCB_2011_I919315::init(), CDF_2008_S7540469::init(), CDF_2008_S7828950::init(), UA1_1990_S2044935::init(), ZEUS_2001_S4815815::init(), ATLAS_2011_I925932::init(), D0_2007_S7075677::init(), D0_2001_S4674421::init(), D0_2008_S7863608::init(), D0_2010_S8671338::init(), ALICE_2010_S8624100::init(), DELPHI_1995_S3137023::init(), JADE_1998_S3612880::init(), MC_PHOTONS::init(), ATLAS_2011_S9131140::init(), STAR_2006_S6860818::init(), OPAL_1997_S3396100::init(), D0_1996_S3214044::init(), ALEPH_2004_S5765862::init(), D0_2008_S7554427::init(), D0_2009_S8202443::init(), D0_2009_S8349509::init(), CDF_2008_S8095620::init(), EXAMPLE::init(), ALICE_2010_S8625980::init(), ATLAS_2011_S9128077::init(), MC_SUSY::init(), MC_XS::init(), ALICE_2010_S8706239::init(), CDF_2009_NOTE_9936::init(), D0_2000_S4480767::init(), ATLAS_2011_S8971293::init(), D0_2009_S8320160::init(), CDF_1996_S3108457::init(), CDF_1998_S3618439::init(), CDF_2000_S4266730::init(), CDF_2001_S4563131::init(), CDF_2009_S8436959::init(), CDF_2009_S8383952::init(), ATLAS_2012_I1082936::init(), D0_2008_S7837160::init(), ATLAS_2011_I926145::init(), CDF_2001_S4517016::init(), D0_2010_S8566488::init(), DELPHI_2002_069_CONF_603::init(), ALEPH_2001_S4656318::init(), SLD_2002_S4869273::init(), CDF_1996_S3349578::init(), D0_2006_S6438750::init(), CDF_1996_S3418421::init(), MC_WPOL::init(), D0_2010_S8821313::init(), ATLAS_2010_S8919674::init(), ATLAS_2012_I1083318::init(), ATLAS_2011_I944826::init(), D0_2008_S7662670::init(), ATLAS_2011_S9108483::init(), ATLAS_2011_S9212183::init(), CDF_2006_S6653332::init(), CDF_2008_S7541902::init(), ATLAS_2012_I1125961::init(), ATLAS_2012_I943401::init(), ATLAS_2012_I1112263::init(), ATLAS_2012_I1180197::init(), ATLAS_2011_S9019561::init(), ATLAS_2011_S9225137::init(), ATLAS_2012_CONF_2012_109::init(), ATLAS_2011_S8983313::init(), ATLAS_2012_CONF_2012_103::init(), ATLAS_2012_I946427::init(), ATLAS_2011_S9212353::init(), TASSO_1990_S2148048::init(), ATLAS_2012_I1117704::init(), ATLAS_2011_CONF_2011_090::init(), ATLAS_2012_CONF_2012_105::init(), ATLAS_2012_CONF_2012_001::init(), ATLAS_2012_CONF_2012_104::init(), ATLAS_2012_I1095236::init(), ATLAS_2012_I1190891::init(), ATLAS_2012_I1082009::init(), D0_2008_S7719523::init(), ATLAS_2011_CONF_2011_098::init(), ATLAS_2012_I1084540::init(), ATLAS_2012_I1186556::init(), CDF_2009_S8233977::init(), ATLAS_2012_I1126136::init(), ATLAS_2012_CONF_2012_153::init(), D0_2004_S5992206::init(), ATLAS_2010_S8914702::init(), ATLAS_2011_S9120807::init(), ATLAS_2010_S8918562::init(), CDF_2001_S4751469::init(), ATLAS_2011_I945498::init(), ATLAS_2011_S9041966::init(), DELPHI_1996_S3430090::init(), ALEPH_1996_S3486095::init(), ALEPH_1999_S4193598::init(), OPAL_2004_S6132243::init(), OPAL_1994_S2927284::init(), ATLAS_2012_I1093738::init(), STAR_2008_S7869363::init(), BABAR_2007_S6895344::init(), MC_VH2BB::init(), BELLE_2001_S4598261::init(), BABAR_2005_S6181155::init(), ATLAS_2011_I919017::init(), OPAL_2001_S4553896::init(), DELPHI_2003_WUD_03_11::init(), CDF_2004_S5839831::init(), CLEO_2004_S5809304::init(), ARGUS_1993_S2653028::init(), OPAL_1998_S3780481::init(), BABAR_2007_S7266081::init(), OPAL_1993_S2692198::init(), ARGUS_1993_S2669951::init(), H1_1994_S2919893::init(), H1_2000_S4129130::init(), ARGUS_1993_S2789213::init(), SLD_2004_S5693039::init(), BELLE_2006_S6265367::init(), SLD_1999_S3743934::init(), PDG_HADRON_MULTIPLICITIES::init(), PDG_HADRON_MULTIPLICITIES_RATIOS::init(), ATLAS_2011_S9126244::initializePlots(), and ATLAS_2012_I1094568::InitializePlots().

                                                                               {
    const string path = histoPath(hname);
    Histo1DPtr hist( new Histo1D(nbins, lower, upper, path, title) );
    addPlot(hist);
    MSG_TRACE("Made histogram " << hname <<  " for " << name());
    hist->setAnnotation("XLabel", xtitle);
    hist->setAnnotation("YLabel", ytitle);
    return hist;
  }
Histo1DPtr bookHisto1D ( const std::string &  name,
const std::vector< double > &  binedges,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 1D histogram with non-uniform bins defined by the vector of bin edges binedges . (NB. this returns a pointer rather than a reference since it will have to be stored in the analysis class - there's no point in forcing users to explicitly get the pointer from a reference before they can use it!)

Definition at line 227 of file Analysis.cc.

References Analysis::addPlot(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

                                                         {
    const string path = histoPath(hname);
    Histo1DPtr hist( new Histo1D(binedges, path, title) );
    addPlot(hist);
    MSG_TRACE("Made histogram " << hname <<  " for " << name());
    hist->setAnnotation("XLabel", xtitle);
    hist->setAnnotation("YLabel", ytitle);
    return hist;
  }
Histo1DPtr bookHisto1D ( const std::string &  name,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 1D histogram based on the name in the corresponding AIDA file. The binnings will be obtained by reading the bundled AIDA data record file with the same filename as the analysis' name() property.

Definition at line 198 of file Analysis.cc.

References Analysis::addPlot(), Analysis::histoPath(), MSG_TRACE, Analysis::name(), and Analysis::referenceData().

  {
    const Scatter2D & refdata = referenceData(hname);
    const string path = histoPath(hname);
    Histo1DPtr hist( new Histo1D(refdata, path) );
    addPlot(hist);
    MSG_TRACE("Made histogram " << hname <<  " for " << name());
    hist->setTitle(title);
    hist->setAnnotation("XLabel", xtitle);
    hist->setAnnotation("YLabel", ytitle);
    return hist;
  }
Histo1DPtr bookHisto1D ( size_t  datasetId,
size_t  xAxisId,
size_t  yAxisId,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 1D histogram based on the paper, dataset and x/y-axis IDs in the corresponding HepData record. The binnings will be obtained by reading the bundled AIDA data record file of the same filename as the analysis' name() property.

Definition at line 189 of file Analysis.cc.

References Analysis::bookHisto1D(), and Analysis::makeAxisCode().

  {
    const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId);
    return bookHisto1D(axisCode, title, xtitle, ytitle);
  }
Profile1DPtr bookProfile1D ( const std::string &  name,
size_t  nbins,
double  lower,
double  upper,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 1D profile histogram with nbins uniformly distributed across the range lower - upper . (NB. this returns a pointer rather than a reference since it will have to be stored in the analysis class - there's no point in forcing users to explicitly get the pointer from a reference before they can use it!)

Definition at line 304 of file Analysis.cc.

References Analysis::addPlot(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

Referenced by Analysis::bookProfile1D(), ATLAS_2010_S8894728::init(), ATLAS_2011_S8994773::init(), ALICE_2011_S8945144::init(), CMS_2012_I1107658::init(), ATLAS_2010_S8591806::init(), CDF_2012_NOTE10874::init(), STAR_2008_S7993412::init(), CDF_2008_S7782535::init(), D0_1996_S3324664::init(), MC_LEADJETUE::init(), MC_PHOTONJETUE::init(), ATLAS_2011_S8924791::init(), CDF_2005_S6217184::init(), MC_GENERIC::init(), UA1_1990_S2044935::init(), STAR_2006_S6860818::init(), STAR_2009_UE_HELEN::init(), MC_PHOTONS::init(), ALICE_2010_S8706239::init(), ALEPH_2001_S4656318::init(), DELPHI_2002_069_CONF_603::init(), MC_WPOL::init(), CDF_2009_S8233977::init(), CDF_2008_NOTE_9351::init(), CDF_2010_S8591881_DY::init(), CDF_2010_S8591881_QCD::init(), CDF_2008_LEADINGJETS::init(), ATLAS_2010_S8918562::init(), CDF_2001_S4751469::init(), DELPHI_1996_S3430090::init(), CDF_2004_S5839831::init(), H1_1994_S2919893::init(), H1_2000_S4129130::init(), and ATLAS_2011_S9126244::initializePlots().

                                                                                   {
    const string path = histoPath(hname);
    Profile1DPtr prof( new Profile1D(nbins, lower, upper, path, title) );
    addPlot(prof);
    MSG_TRACE("Made profile histogram " << hname <<  " for " << name());
    prof->setAnnotation("XLabel", xtitle);
    prof->setAnnotation("YLabel", ytitle);
    return prof;
  }
Profile1DPtr bookProfile1D ( const std::string &  name,
const std::vector< double > &  binedges,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 1D profile histogram with non-uniform bins defined by the vector of bin edges binedges . (NB. this returns a pointer rather than a reference since it will have to be stored in the analysis class - there's no point in forcing users to explicitly get the pointer from a reference before they can use it!)

Definition at line 318 of file Analysis.cc.

References Analysis::addPlot(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

                                                                                   {
    const string path = histoPath(hname);
    Profile1DPtr prof( new Profile1D(binedges, path, title) );
    addPlot(prof);
    MSG_TRACE("Made profile histogram " << hname <<  " for " << name());
    prof->setAnnotation("XLabel", xtitle);
    prof->setAnnotation("YLabel", ytitle);
    return prof;
  }
Profile1DPtr bookProfile1D ( const std::string &  name,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 1D profile histogram based on the name in the corresponding AIDA file. The binnings will be obtained by reading the bundled AIDA data record file with the same filename as the analysis' name() property.

Definition at line 289 of file Analysis.cc.

References Analysis::addPlot(), Analysis::histoPath(), MSG_TRACE, Analysis::name(), and Analysis::referenceData().

  {
    const Scatter2D & refdata = referenceData(hname);
    const string path = histoPath(hname);
    Profile1DPtr prof( new Profile1D(refdata, path) );
    addPlot(prof);
    MSG_TRACE("Made profile histogram " << hname <<  " for " << name());
    prof->setTitle(title);
    prof->setAnnotation("XLabel", xtitle);
    prof->setAnnotation("YLabel", ytitle);
    return prof;
  }
Profile1DPtr bookProfile1D ( size_t  datasetId,
size_t  xAxisId,
size_t  yAxisId,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 1D profile histogram based on the paper, dataset and x/y-axis IDs in the corresponding HepData record. The binnings will be obtained by reading the bundled AIDA data record file of the same filename as the analysis' name() property.

Definition at line 281 of file Analysis.cc.

References Analysis::bookProfile1D(), and Analysis::makeAxisCode().

                                                                                   {
    const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId);
    return bookProfile1D(axisCode, title, xtitle, ytitle);
  }
Scatter2DPtr bookScatter2D ( const std::string &  name,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 2-dimensional data point set. (NB. this returns a pointer rather than a reference since it will have to be stored in the analysis class - there's no point in forcing users to explicitly get the pointer from a reference before they can use it!)

Definition at line 343 of file Analysis.cc.

References Analysis::addPlot(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

Referenced by Analysis::bookScatter2D(), ALEPH_2004_S5765862::finalize(), ATLAS_2010_S8894728::init(), ALICE_2011_S8909580::init(), CMS_2011_S8978280::init(), CMS_2011_S9088458::init(), ATLAS_2011_S9002537::init(), STAR_2006_S6500200::init(), MC_JetAnalysis::init(), CDF_2008_S7782535::init(), CMS_2012_I1102908::init(), MC_WJETS::init(), MC_GENERIC::init(), CDF_1994_S2952106::init(), CDF_2005_S6217184::init(), D0_2001_S4674421::init(), STAR_2006_S6860818::init(), ATLAS_2011_S9128077::init(), MC_XS::init(), D0_2008_S7837160::init(), CDF_1996_S3418421::init(), UA5_1988_S1867512::init(), ATLAS_2012_I1083318::init(), ATLAS_2011_I944826::init(), CDF_2008_S7541902::init(), D0_2008_S7719523::init(), ATLAS_2011_I945498::init(), SLD_2004_S5693039::init(), SLD_1999_S3743934::init(), ATLAS_2011_S9126244::initializePlots(), and ATLAS_2012_I1094568::InitializePlots().

                                                                                   {
    const string path = histoPath(hname);
    Scatter2DPtr dps( new Scatter2D(path, title) );
    addPlot(dps);
    MSG_TRACE("Made data point set " << hname <<  " for " << name());
    dps->setAnnotation("XLabel", xtitle);
    dps->setAnnotation("YLabel", ytitle);
    return dps;
  }
Scatter2DPtr bookScatter2D ( const std::string &  name,
size_t  npts,
double  lower,
double  upper,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 2-dimensional data point set with equally spaced points in a range. (NB. this returns a pointer rather than a reference since it will have to be stored in the analysis class - there's no point in forcing users to explicitly get the pointer from a reference before they can use it!)

Definition at line 355 of file Analysis.cc.

References Analysis::bookScatter2D().

                                                                                   {
    Scatter2DPtr dps = bookScatter2D(hname, title, xtitle, ytitle);
    const double binwidth = (upper-lower)/npts;
    for (size_t pt = 0; pt < npts; ++pt) {
      const double bincentre = lower + (pt + 0.5) * binwidth;
      // @todo YODA check
      dps->addPoint(bincentre, 0, binwidth/2.0, 0);
      // IMeasurement* meas = dps->point(pt)->coordinate(0);
      // meas->setValue(bincentre);
      // meas->setErrorPlus(binwidth/2.0);
      // meas->setErrorMinus(binwidth/2.0);
    }
    return dps;
  }
Scatter2DPtr bookScatter2D ( const std::string &  name,
const std::string &  title 
) [protected, inherited]

Book a 2-dimensional data point set based on the corresponding AIDA data file. The binnings (x-errors) will be obtained by reading the bundled AIDA data record file of the same filename as the analysis' name() property.

Scatter2DPtr bookScatter2D ( size_t  datasetId,
size_t  xAxisId,
size_t  yAxisId,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 2-dimensional data point set based on the paper, dataset and x/y-axis IDs in the corresponding HepData record. The binnings (x-errors) will be obtained by reading the bundled AIDA data record file of the same filename as the analysis' name() property.

Definition at line 335 of file Analysis.cc.

References Analysis::bookScatter2D(), and Analysis::makeAxisCode().

                                                                                   {
    const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId);
    return bookScatter2D(axisCode, title, xtitle, ytitle);
  }
virtual std::string collider ( ) const [inline, virtual, inherited]

Collider on which the experiment ran.

Definition at line 174 of file Analysis.hh.

References AnalysisInfo::collider(), and Analysis::info().

                                       {
      return info().collider();
    }
double crossSection ( ) const [protected, inherited]

Get the process cross-section in pb. Throws if this hasn't been set.

Definition at line 145 of file Analysis.cc.

References Analysis::_crossSection, Analysis::_gotCrossSection, and Analysis::name().

Referenced by MC_JetAnalysis::finalize(), CDF_2006_S6450792::finalize(), CMS_2011_S9086218::finalize(), CDF_2008_S7828950::finalize(), D0_2000_S4480767::finalize(), MC_XS::finalize(), CDF_2008_S8093652::finalize(), CDF_2000_S4155203::finalize(), CMS_2011_S8941262::finalize(), CDF_2001_S4563131::finalize(), CMS_2012_I1087342::finalize(), CDF_1998_S3618439::finalize(), BABAR_2005_S6181155::finalize(), D0_2010_S8566488::finalize(), STAR_2006_S6870392::finalize(), CDF_2009_S8383952::finalize(), CDF_2000_S4266730::finalize(), CDF_2001_S4517016::finalize(), CDF_2009_S8436959::finalize(), ATLAS_2011_I894867::finalize(), D0_2011_I895662::finalize(), MC_HJETS::finalize(), MC_ZJETS::finalize(), MC_DIPHOTON::finalize(), CDF_2005_S6080774::finalize(), D0_2006_S6438750::finalize(), CLEO_2004_S5809304::finalize(), D0_2008_S7662670::finalize(), D0_2008_S7863608::finalize(), ATLAS_2010_CONF_2010_049::finalize(), CDF_2009_S8233977::finalize(), MC_WJETS::finalize(), ATLAS_2011_I954993::finalize(), CMS_2011_S8973270::finalize(), ATLAS_2012_I946427::finalize(), CDF_2008_S7541902::finalize(), D0_2010_S8570965::finalize(), D0_2008_S7719523::finalize(), CDF_2006_S6653332::finalize(), ATLAS_2011_I926145::finalize(), ATLAS_2011_S9108483::finalize(), CDF_2008_S7540469::finalize(), MC_WWJETS::finalize(), ATLAS_2010_S8919674::finalize(), ATLAS_2010_S8914702::finalize(), MC_ZZJETS::finalize(), ATLAS_2012_I1083318::finalize(), ATLAS_2012_CONF_2012_105::finalize(), ATLAS_2011_S9120807::finalize(), BELLE_2006_S6265367::finalize(), ATLAS_2012_I1084540::finalize(), ATLAS_2012_CONF_2012_104::finalize(), ATLAS_2012_I1186556::finalize(), MC_VH2BB::finalize(), ATLAS_2012_CONF_2012_103::finalize(), ATLAS_2012_I1117704::finalize(), ATLAS_2012_I1125961::finalize(), ATLAS_2011_CONF_2011_098::finalize(), ATLAS_2012_I1095236::finalize(), ATLAS_2011_S9019561::finalize(), ATLAS_2012_I1190891::finalize(), ATLAS_2012_I1126136::finalize(), ATLAS_2012_I1093738::finalize(), ATLAS_2011_S9212183::finalize(), ATLAS_2011_S8983313::finalize(), ATLAS_2012_I1112263::finalize(), ATLAS_2012_CONF_2012_109::finalize(), ATLAS_2011_CONF_2011_090::finalize(), ATLAS_2012_CONF_2012_001::finalize(), ATLAS_2011_S9225137::finalize(), ATLAS_2012_I943401::finalize(), ATLAS_2012_I1180197::finalize(), ATLAS_2012_CONF_2012_153::finalize(), ATLAS_2011_S9212353::finalize(), ATLAS_2011_S9041966::finalize(), and ATLAS_2011_I919017::finalize().

                                      {
    if (!_gotCrossSection || std::isnan(_crossSection)) {
      string errMsg = "You did not set the cross section for the analysis " + name();
      throw Error(errMsg);
    }
    return _crossSection;
  }
virtual std::string description ( ) const [inline, virtual, inherited]

Get a full description of the analysis.

Full textual description of this analysis, what it is useful for, what experimental techniques are applied, etc. Should be treated as a chunk of restructuredText (http://docutils.sourceforge.net/rst.html), with equations to be rendered as LaTeX with amsmath operators.

Definition at line 155 of file Analysis.hh.

References AnalysisInfo::description(), and Analysis::info().

                                          {
      return info().description();
    }
void divide ( Histo1DPtr  h1,
Histo1DPtr  h2,
Scatter2DPtr  s 
) const [inherited]

Helper for histogram division. Preserves the path information of the target.

Definition at line 399 of file Analysis.cc.

Referenced by CMS_2011_S8978280::finalize(), ALICE_2011_S8909580::finalize(), STAR_2006_S6500200::finalize(), D0_2008_S7837160::finalize(), MC_WJETS::finalize(), D0_2008_S7719523::finalize(), STAR_2006_S6860818::finalize(), ATLAS_2011_S9128077::finalize(), SLD_2004_S5693039::finalize(), and SLD_1999_S3743934::finalize().

                                                                          {
    // preserve the path info
    std::string path = s->path();
    *s = *h1 / *h2;
    s->setPath( path );
  }
void divide ( Profile1DPtr  p1,
Profile1DPtr  p2,
Scatter2DPtr  s 
) const [inherited]

Helper for profile histogram division. Preserves the path information of the target.

Definition at line 406 of file Analysis.cc.

                                                                              {
    // preserve the path info
    std::string path = s->path();
    *s = *p1 / *p2;
    s->setPath( path );
  }
void divide ( const YODA::Histo1D &  h1,
const YODA::Histo1D &  h2,
Scatter2DPtr  s 
) const [inherited]

Helper for histogram division. Preserves the path information of the target.

Definition at line 413 of file Analysis.cc.

                                              {
    // preserve the path info
    std::string path = s->path();
    *s = h1 / h2;
    s->setPath( path );
  }
void divide ( const YODA::Profile1D &  p1,
const YODA::Profile1D &  p2,
Scatter2DPtr  s 
) const [inherited]

Helper for profile histogram division. Preserves the path information of the target.

Definition at line 422 of file Analysis.cc.

                                              {
    // preserve the path info
    std::string path = s->path();
    *s = p1 / p2;
    s->setPath( path );
  }
virtual std::string experiment ( ) const [inline, virtual, inherited]

Experiment which performed and published this analysis.

Definition at line 169 of file Analysis.hh.

References AnalysisInfo::experiment(), and Analysis::info().

                                         {
      return info().experiment();
    }
void finalize ( ) [inline, virtual]

Finalize this analysis object. A concrete class should here make all necessary operations on the histograms. Writing the histograms to a file is, however, done by the Rivet class. An overridden function must make sure it first calls the base class function.

Reimplemented from Analysis.

Definition at line 255 of file ATLAS_2010_S8894728.cc.

References ATLAS_2010_S8894728::_dps_sdnch_transverse_500, ATLAS_2010_S8894728::_dps_sdptsum_transverse_500, ATLAS_2010_S8894728::_hist_nch_transverse_500, ATLAS_2010_S8894728::_hist_ptsum_transverse_500, and ATLAS_2010_S8894728::_moments_to_stddev().

                    {
      // Convert the various moments of the 500 MeV trans pT and Nch distributions to std devs with correct error
      _moments_to_stddev(_hist_nch_transverse_500, _dps_sdnch_transverse_500);
      _moments_to_stddev(_hist_ptsum_transverse_500, _dps_sdptsum_transverse_500);
    }
Log & getLog ( ) const [protected, inherited]

Get a Log object based on the name() property of the calling analysis object.

Reimplemented from ProjectionApplier.

Definition at line 76 of file Analysis.cc.

References Analysis::name().

                              {
    string logname = "Rivet.Analysis." + name();
    return Log::getLog(logname);
  }
const PROJ& getProjection ( const std::string &  name) const [inline, inherited]

Get the named projection, specifying return type via a template argument.

Definition at line 49 of file ProjectionApplier.hh.

References ProjectionHandler::getProjection(), and ProjectionApplier::getProjHandler().

Referenced by ProjectionApplier::_applyProjection(), Rivet::pcmp(), and Hemispheres::project().

                                                           {
      const Projection& p = getProjHandler().getProjection(*this, name);
      return pcast<PROJ>(p);
    }
const Projection& getProjection ( const std::string &  name) const [inline, inherited]

Get the named projection (non-templated, so returns as a reference to a Projection base class).

Definition at line 57 of file ProjectionApplier.hh.

References ProjectionHandler::getProjection(), and ProjectionApplier::getProjHandler().

                                                                 {
      return getProjHandler().getProjection(*this, name);
    }
std::set<ConstProjectionPtr> getProjections ( ) const [inline, inherited]

Get the contained projections, including recursion.

Definition at line 42 of file ProjectionApplier.hh.

References ProjectionHandler::DEEP, ProjectionHandler::getChildProjections(), and ProjectionApplier::getProjHandler().

Referenced by Projection::beamPairs().

AnalysisHandler& handler ( ) const [inline, inherited]
const string histoDir ( ) const [protected, inherited]

Get the canonical histogram "directory" path for this analysis.

Todo:
This doesn't change: calc and cache at first use!

Definition at line 37 of file Analysis.cc.

References Analysis::handler(), Analysis::name(), and AnalysisHandler::runName().

Referenced by Analysis::histoPath().

                                        {
    /// @todo This doesn't change: calc and cache at first use!
    string path = "/" + name();
    if (handler().runName().length() > 0) {
      path = "/" + handler().runName() + path;
    }
    while (find_first(path, "//")) {
      replace_all(path, "//", "/");
    }
    return path;
  }
const string histoPath ( const std::string &  hname) const [protected, inherited]

Get the canonical histogram path for the named histogram in this analysis.

Definition at line 50 of file Analysis.cc.

References Analysis::histoDir().

Referenced by Analysis::bookHisto1D(), Analysis::bookProfile1D(), and Analysis::bookScatter2D().

                                                            {
    const string path = histoDir() + "/" + hname;
    return path;
  }
const string histoPath ( size_t  datasetId,
size_t  xAxisId,
size_t  yAxisId 
) const [protected, inherited]

Get the canonical histogram path for the numbered histogram in this analysis.

Definition at line 56 of file Analysis.cc.

References Analysis::histoDir(), and Analysis::makeAxisCode().

                                                                                         {
    return histoDir() + "/" + makeAxisCode(datasetId, xAxisId, yAxisId);
  }
AnalysisInfo& info ( ) [inline, inherited]

Get the actual AnalysisInfo object in which all this metadata is stored (non-const).

Definition at line 250 of file Analysis.hh.

References Analysis::_info.

                         {
      assert(_info.get() != 0 && "No AnalysisInfo object :O");
      return *_info;
    }
void init ( ) [inline, virtual]

Initialize this analysis object. A concrete class should here book all necessary histograms. An overridden function must make sure it first calls the base class function.

Reimplemented from Analysis.

Definition at line 16 of file ATLAS_2010_S8894728.cc.

References ATLAS_2010_S8894728::_dps_sdnch_transverse_500, ATLAS_2010_S8894728::_dps_sdptsum_transverse_500, ATLAS_2010_S8894728::_hist_dn_dpt_away_500, ATLAS_2010_S8894728::_hist_dn_dpt_toward_500, ATLAS_2010_S8894728::_hist_dn_dpt_transverse_500, ATLAS_2010_S8894728::_hist_N_vs_dPhi_1_500, ATLAS_2010_S8894728::_hist_N_vs_dPhi_2_500, ATLAS_2010_S8894728::_hist_N_vs_dPhi_3_500, ATLAS_2010_S8894728::_hist_N_vs_dPhi_5_500, ATLAS_2010_S8894728::_hist_nch_away_100, ATLAS_2010_S8894728::_hist_nch_away_500, ATLAS_2010_S8894728::_hist_nch_toward_100, ATLAS_2010_S8894728::_hist_nch_toward_500, ATLAS_2010_S8894728::_hist_nch_transverse_100, ATLAS_2010_S8894728::_hist_nch_transverse_500, ATLAS_2010_S8894728::_hist_nch_vs_eta_transverse_100, ATLAS_2010_S8894728::_hist_pT_vs_dPhi_1_500, ATLAS_2010_S8894728::_hist_pT_vs_dPhi_2_500, ATLAS_2010_S8894728::_hist_pT_vs_dPhi_3_500, ATLAS_2010_S8894728::_hist_pT_vs_dPhi_5_500, ATLAS_2010_S8894728::_hist_ptavg_away_500, ATLAS_2010_S8894728::_hist_ptavg_toward_500, ATLAS_2010_S8894728::_hist_ptavg_transverse_500, ATLAS_2010_S8894728::_hist_ptsum_away_100, ATLAS_2010_S8894728::_hist_ptsum_away_500, ATLAS_2010_S8894728::_hist_ptsum_toward_100, ATLAS_2010_S8894728::_hist_ptsum_toward_500, ATLAS_2010_S8894728::_hist_ptsum_transverse_100, ATLAS_2010_S8894728::_hist_ptsum_transverse_500, ATLAS_2010_S8894728::_hist_ptsum_vs_eta_transverse_100, ProjectionApplier::addProjection(), Analysis::bookProfile1D(), Analysis::bookScatter2D(), Rivet::fuzzyEquals(), Rivet::GeV, Rivet::MeV, Analysis::referenceData(), Analysis::sqrtS(), and Rivet::TeV.

                {
      const ChargedFinalState cfs100(-2.5, 2.5, 100*MeV);
      addProjection(cfs100, "CFS100");
      const ChargedFinalState cfs500(-2.5, 2.5, 500*MeV);
      addProjection(cfs500, "CFS500");
      const ChargedFinalState cfslead(-2.5, 2.5, 1.0*GeV);
      addProjection(cfslead, "CFSlead");

      // Get an index for the beam energy
      int isqrts = -1;
      if (fuzzyEquals(sqrtS(), 900*GeV)) isqrts = 0;
      else if (fuzzyEquals(sqrtS(), 7*TeV)) isqrts = 1;
      assert(isqrts >= 0);

      // Nch profiles, 500 MeV track pT cut
      _hist_nch_transverse_500[0] = bookProfile1D(1+isqrts, 1, 1);
      _hist_nch_toward_500        = bookProfile1D(1+isqrts, 1, 2);
      _hist_nch_away_500          = bookProfile1D(1+isqrts, 1, 3);

      // pTsum profiles, 500 MeV track pT cut
      _hist_ptsum_transverse_500[0] = bookProfile1D(3+isqrts, 1, 1);
      _hist_ptsum_toward_500        = bookProfile1D(3+isqrts, 1, 2);
      _hist_ptsum_away_500          = bookProfile1D(3+isqrts, 1, 3);

      // 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].reset(new Profile1D(referenceData(1+isqrts, 1, 1)));
        _hist_ptsum_transverse_500[i].reset(new Profile1D(referenceData(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);
      _dps_sdptsum_transverse_500 = bookScatter2D(7+isqrts, 1, 1);

      // <pT> profiles, 500 MeV track pT cut
      _hist_ptavg_transverse_500 = bookProfile1D(9+isqrts, 1, 1);
      _hist_ptavg_toward_500     = bookProfile1D(9+isqrts, 1, 2);
      _hist_ptavg_away_500       = bookProfile1D(9+isqrts, 1, 3);

      // <pT> vs. Nch profiles, 500 MeV track pT cut
      _hist_dn_dpt_transverse_500 = bookProfile1D(11+isqrts, 1, 1);
      _hist_dn_dpt_toward_500     = bookProfile1D(11+isqrts, 1, 2);
      _hist_dn_dpt_away_500       = bookProfile1D(11+isqrts, 1, 3);

      // Nch vs. Delta(phi) profiles, 500 MeV track pT cut
      _hist_N_vs_dPhi_1_500 = bookProfile1D(13+isqrts, 1, 1);
      _hist_N_vs_dPhi_2_500 = bookProfile1D(13+isqrts, 1, 2);
      _hist_N_vs_dPhi_3_500 = bookProfile1D(13+isqrts, 1, 3);
      _hist_N_vs_dPhi_5_500 = bookProfile1D(13+isqrts, 1, 4);
      // pT vs. Delta(phi) profiles, 500 MeV track pT cut
      _hist_pT_vs_dPhi_1_500 = bookProfile1D(15+isqrts, 1, 1);
      _hist_pT_vs_dPhi_2_500 = bookProfile1D(15+isqrts, 1, 2);
      _hist_pT_vs_dPhi_3_500 = bookProfile1D(15+isqrts, 1, 3);
      _hist_pT_vs_dPhi_5_500 = bookProfile1D(15+isqrts, 1, 4);

      // Nch and pTsum profiles, 100 MeV track pT cut
      _hist_nch_transverse_100   = bookProfile1D(17+isqrts, 1, 1);
      _hist_nch_toward_100       = bookProfile1D(17+isqrts, 1, 2);
      _hist_nch_away_100         = bookProfile1D(17+isqrts, 1, 3);
      _hist_ptsum_transverse_100 = bookProfile1D(19+isqrts, 1, 1);
      _hist_ptsum_toward_100     = bookProfile1D(19+isqrts, 1, 2);
      _hist_ptsum_away_100       = bookProfile1D(19+isqrts, 1, 3);

      // Profiles vs. eta (7 TeV only)
      if (isqrts == 1) {
        _hist_nch_vs_eta_transverse_100   = bookProfile1D(21, 1, 1);
        _hist_ptsum_vs_eta_transverse_100 = bookProfile1D(22, 1, 1);
      }

    }
virtual std::string inspireId ( ) const [inline, virtual, inherited]

Get the Inspire ID code for this analysis.

Definition at line 123 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::inspireId().

                                        {
      return info().inspireId();
    }
bool isCompatible ( const ParticlePair beams) const [inherited]

Check if analysis is compatible with the provided beam particle IDs and energies.

Definition at line 95 of file Analysis.cc.

Referenced by Analysis::isCompatible().

                                                             {
    return isCompatible(beams.first.pdgId(),  beams.second.pdgId(),
                        beams.first.energy(), beams.second.energy());
  }
bool isCompatible ( PdgId  beam1,
PdgId  beam2,
double  e1,
double  e2 
) const [inherited]

Check if analysis is compatible with the provided beam particle IDs and energies.

Definition at line 101 of file Analysis.cc.

References Analysis::beams(), and Analysis::isCompatible().

                                                                                  {
    PdgIdPair beams(beam1, beam2);
    pair<double,double> energies(e1, e2);
    return isCompatible(beams, energies);
  }
bool isCompatible ( const PdgIdPair beams,
const std::pair< double, double > &  energies 
) const [inherited]

Check if analysis is compatible with the provided beam particle IDs and energies.

const string makeAxisCode ( size_t  datasetId,
size_t  xAxisId,
size_t  yAxisId 
) const [protected, inherited]

Get the internal histogram name for given d, x and y (cf. HepData)

Definition at line 61 of file Analysis.cc.

Referenced by Analysis::bookHisto1D(), Analysis::bookProfile1D(), Analysis::bookScatter2D(), Analysis::histoPath(), and Analysis::referenceData().

                                                                                            {
    stringstream axisCode;
    axisCode << "d";
    if (datasetId < 10) axisCode << 0;
    axisCode << datasetId;
    axisCode << "-x";
    if (xAxisId < 10) axisCode << 0;
    axisCode << xAxisId;
    axisCode << "-y";
    if (yAxisId < 10) axisCode << 0;
    axisCode << yAxisId;
    return axisCode.str();
  }
virtual std::string name ( ) const [inline, virtual, inherited]

Get the name of the analysis.

By default this is computed by combining the results of the experiment, year and Spires ID metadata methods and you should only override it if there's a good reason why those won't work.

Implements ProjectionApplier.

Definition at line 118 of file Analysis.hh.

References Analysis::_defaultname, Analysis::info(), and AnalysisInfo::name().

Referenced by Analysis::_cacheRefData(), Analysis::Analysis(), Analysis::bookHisto1D(), Analysis::bookProfile1D(), Analysis::bookScatter2D(), Analysis::crossSection(), Analysis::getLog(), Analysis::histoDir(), Analysis::normalize(), Analysis::referenceData(), HistoHandler::registerAnalysisObject(), and Analysis::scale().

                                   {
      return (info().name().empty()) ? _defaultname : info().name();
    }
bool needsCrossSection ( ) const [inline, inherited]

Return true if this analysis needs to know the process cross-section.

Todo:
Remove this and require HepMC >= 2.06

Definition at line 233 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::needsCrossSection().

                                   {
      return info().needsCrossSection();
    }
void normalize ( Histo1DPtr  histo,
double  norm = 1.0,
bool  includeoverflows = true 
) [inherited]

Normalize the given histogram, histo, to area = norm.

NB. The histogram is no longer invalidated by this procedure.

Definition at line 431 of file Analysis.cc.

References MSG_ERROR, MSG_TRACE, MSG_WARNING, and Analysis::name().

Referenced by CMS_2011_S8950903::finalize(), CMS_2011_S8968497::finalize(), D0_2010_S8671338::finalize(), CDF_2009_NOTE_9936::finalize(), D0_2007_S7075677::finalize(), BABAR_2005_S6181155::finalize(), D0_2008_S7554427::finalize(), ALICE_2010_S8624100::finalize(), ATLAS_2011_S8971293::finalize(), ALICE_2010_S8625980::finalize(), D0_2009_S8320160::finalize(), CMS_2011_S8957746::finalize(), DELPHI_1995_S3137023::finalize(), CDF_1993_S2742446::finalize(), D0_1996_S3324664::finalize(), SLD_2002_S4869273::finalize(), CDF_1996_S3418421::finalize(), D0_2008_S6879055::finalize(), D0_2010_S8821313::finalize(), EXAMPLE::finalize(), CDF_1996_S3108457::finalize(), CDF_1994_S2952106::finalize(), JADE_1998_S3612880::finalize(), ALEPH_2001_S4656318::finalize(), D0_1996_S3214044::finalize(), ATLAS_2011_I925932::finalize(), DELPHI_2002_069_CONF_603::finalize(), D0_2004_S5992206::finalize(), OPAL_1997_S3396100::finalize(), MC_PHOTONS::finalize(), CMS_2012_I1107658::finalize(), D0_2001_S4674421::finalize(), OPAL_2001_S4553896::finalize(), TASSO_1990_S2148048::finalize(), STAR_2008_S7869363::finalize(), OPAL_1998_S3780481::finalize(), CDF_1997_S3541940::finalize(), DELPHI_2003_WUD_03_11::finalize(), H1_1994_S2919893::finalize(), BELLE_2006_S6265367::finalize(), CDF_2001_S4751469::finalize(), MC_TTBAR::finalize(), ALEPH_2004_S5765862::finalize(), CDF_2004_S5839831::finalize(), CDF_1996_S3349578::finalize(), ALEPH_1996_S3486095::finalize(), DELPHI_1996_S3430090::finalize(), and ATLAS_2011_I919017::safeinvscale().

                                                                               {
    if (!histo) {
      MSG_ERROR("Failed to normalize histo=NULL in analysis " << name() << " (norm=" << norm << ")");
      return;
    }
    MSG_TRACE("Normalizing histo " << histo->path() << " to " << norm);
    try {
      histo->normalize(norm, includeoverflows);
    } catch (YODA::WeightError& we) {
      MSG_WARNING("Could not normalize histo " << histo->path());
      return;
    }
  }
size_t numEvents ( ) const [protected, inherited]

Get the number of events seen (via the analysis handler). Use in the finalize phase only.

Definition at line 82 of file Analysis.cc.

References Analysis::handler(), and AnalysisHandler::numEvents().

                                   {
    return handler().numEvents();
  }
const vector<AnalysisObjectPtr>& plots ( ) const [inline, inherited]

List of registered plot objects.

Definition at line 521 of file Analysis.hh.

References Analysis::_plotobjects.

                                                    {
      return _plotobjects;
    }
const Scatter2D & referenceData ( const string &  hname) const [protected, inherited]

Get reference data for a named histo.

Definition at line 173 of file Analysis.cc.

References Analysis::_cacheRefData(), Analysis::_refdata, MSG_ERROR, MSG_TRACE, and Analysis::name().

Referenced by ATLAS_2011_S8994773::analyze(), ATLAS_2010_S8894728::analyze(), Analysis::bookHisto1D(), Analysis::bookProfile1D(), ATLAS_2010_S8894728::init(), CMS_2012_I1102908::init(), CDF_1994_S2952106::init(), and Analysis::referenceData().

                                                                     {
    _cacheRefData();
    MSG_TRACE("Using histo bin edges for " << name() << ":" << hname);
    if (!_refdata[hname]) {
      MSG_ERROR("Can't find reference histogram " << hname);
    }
    return *_refdata[hname];
  }
const Scatter2D & referenceData ( size_t  datasetId,
size_t  xAxisId,
size_t  yAxisId 
) const [protected, inherited]

Get reference data for a numbered histo.

Definition at line 183 of file Analysis.cc.

References Analysis::makeAxisCode(), and Analysis::referenceData().

                                                                                                  {
    const string hname = makeAxisCode(datasetId, xAxisId, yAxisId);
    return referenceData(hname);
  }
virtual std::vector<std::string> references ( ) const [inline, virtual, inherited]

Journal, and preprint references.

Definition at line 184 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::references().

                                                    {
      return info().references();
    }
int region_index ( double  dphi) [inline]

Definition at line 89 of file ATLAS_2010_S8894728.cc.

References Rivet::CLOSED, Rivet::inRange(), and Rivet::PI.

Referenced by ATLAS_2010_S8894728::analyze().

                                         {
      assert(inRange(dphi, 0.0, PI, CLOSED, CLOSED));
      if (dphi < PI/3.0) return 0;
      if (dphi < 2*PI/3.0) return 1;
      return 2;
    }
virtual const std::vector<PdgIdPair>& requiredBeams ( ) const [inline, virtual, inherited]

Return the allowed pairs of incoming beams required by this analysis.

Definition at line 210 of file Analysis.hh.

References AnalysisInfo::beams(), and Analysis::info().

                                                              {
      return info().beams();
    }
virtual const std::vector<std::pair<double, double> >& requiredEnergies ( ) const [inline, virtual, inherited]

Sets of valid beam energy pairs, in GeV.

Definition at line 221 of file Analysis.hh.

References AnalysisInfo::energies(), and Analysis::info().

Referenced by Analysis::setRequiredEnergies().

                                                                                {
      return info().energies();
    }
virtual std::string runInfo ( ) const [inline, virtual, inherited]

Information about the events needed as input for this analysis.

Event types, energies, kinematic cuts, particles to be considered stable, etc. etc. Should be treated as a restructuredText bullet list (http://docutils.sourceforge.net/rst.html)

Definition at line 164 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::runInfo().

                                      {
      return info().runInfo();
    }
void scale ( Histo1DPtr  histo,
double  scale 
) [inherited]

Multiplicatively scale the given histogram, histo, by factor scale.

NB. The histogram is no longer invalidated by this procedure.

Definition at line 446 of file Analysis.cc.

References MSG_ERROR, MSG_TRACE, MSG_WARNING, and Analysis::name().

Referenced by MC_JetAnalysis::finalize(), CDF_2006_S6450792::finalize(), ALEPH_1991_S2435284::finalize(), TOTEM_2012_I1115294::finalize(), E735_1998_S3905616::finalize(), ATLAS_2010_S8591806::finalize(), D0_2000_S4480767::finalize(), UA5_1987_S1640666::finalize(), D0_2010_S8671338::finalize(), MC_XS::finalize(), CDF_2008_S8093652::finalize(), CDF_2000_S4155203::finalize(), CMS_2011_S8941262::finalize(), BABAR_2007_S6895344::finalize(), CDF_2001_S4563131::finalize(), CMS_2012_I1087342::finalize(), CDF_1998_S3618439::finalize(), CDF_1990_S2089246::finalize(), CDF_2007_S7057202::finalize(), CDF_1988_S1865951::finalize(), CMS_2010_S8656010::finalize(), UA5_1982_S875503::finalize(), BABAR_2005_S6181155::finalize(), CMS_QCD_10_024::finalize(), STAR_2006_S6870392::finalize(), BELLE_2001_S4598261::finalize(), CDF_2009_S8383952::finalize(), CDF_2000_S4266730::finalize(), CMS_2010_S8547297::finalize(), OPAL_1995_S3198391::finalize(), OPAL_1997_S3608263::finalize(), OPAL_2000_S4418603::finalize(), CDF_2009_S8436959::finalize(), LHCB_2011_I919315::finalize(), ALICE_2010_S8625980::finalize(), OPAL_1994_S2927284::finalize(), ATLAS_2011_I894867::finalize(), MC_PDFS::finalize(), D0_2011_I895662::finalize(), ALEPH_2002_S4823664::finalize(), ALICE_2010_S8706239::finalize(), CMS_2011_S8978280::finalize(), OPAL_1996_S3257789::finalize(), UA5_1989_S1926373::finalize(), MC_HJETS::finalize(), MC_ZJETS::finalize(), ALICE_2011_S8945144::finalize(), MC_IDENTIFIED::finalize(), OPAL_1998_S3702294::finalize(), CDF_2005_S6080774::finalize(), DELPHI_1999_S3960137::finalize(), MC_DIPHOTON::finalize(), ALICE_2011_S8909580::finalize(), D0_2006_S6438750::finalize(), BABAR_2007_S7266081::finalize(), ATLAS_2011_S9131140::finalize(), UA5_1986_S1583476::finalize(), STAR_2006_S6500200::finalize(), CLEO_2004_S5809304::finalize(), D0_2008_S7662670::finalize(), SFM_1984_S1178091::finalize(), CMS_2011_S9215166::finalize(), D0_2008_S6879055::finalize(), D0_2008_S7863608::finalize(), ARGUS_1993_S2653028::finalize(), ATLAS_2010_CONF_2010_049::finalize(), ALEPH_1999_S4193598::finalize(), H1_1995_S3167097::finalize(), CDF_2009_S8233977::finalize(), MC_PHOTONJETS::finalize(), MC_WJETS::finalize(), OPAL_1998_S3749908::finalize(), CMS_2011_S8973270::finalize(), ATLAS_2011_I954993::finalize(), D0_2009_S8349509::finalize(), ATLAS_2012_I946427::finalize(), ATLAS_2012_I1082009::finalize(), D0_2010_S8570965::finalize(), ARGUS_1993_S2669951::finalize(), CMS_2012_I1107658::finalize(), UA1_1990_S2044935::finalize(), D0_2009_S8202443::finalize(), MC_WPOL::finalize(), MC_GENERIC::finalize(), ALEPH_1996_S3196992::finalize(), ATLAS_2012_I1091481::finalize(), D0_2008_S7719523::finalize(), CDF_2008_S8095620::finalize(), CDF_2006_S6653332::finalize(), STAR_2006_S6860818::finalize(), OPAL_1998_S3780481::finalize(), ARGUS_1993_S2789213::finalize(), ATLAS_2011_S9128077::finalize(), ATLAS_2010_S8918562::finalize(), ATLAS_2011_I926145::finalize(), OPAL_1993_S2692198::finalize(), JADE_OPAL_2000_S4300807::finalize(), ATLAS_2011_S9108483::finalize(), MC_WWJETS::finalize(), CDF_2008_S7540469::finalize(), ATLAS_2010_S8919674::finalize(), ATLAS_2010_S8914702::finalize(), MC_ZZJETS::finalize(), ATLAS_2012_I1083318::finalize(), ATLAS_2012_I1183818::finalize(), OPAL_2004_S6132243::finalize(), H1_1994_S2919893::finalize(), ATLAS_2012_CONF_2012_105::finalize(), ATLAS_2011_S9120807::finalize(), BELLE_2006_S6265367::finalize(), ATLAS_2012_I1084540::finalize(), ATLAS_2012_CONF_2012_104::finalize(), ATLAS_2012_I1186556::finalize(), MC_VH2BB::finalize(), ATLAS_2011_I945498::finalize(), ATLAS_2012_CONF_2012_103::finalize(), H1_2000_S4129130::finalize(), ATLAS_2011_I944826::finalize(), ALEPH_2004_S5765862::finalize(), ATLAS_2012_I1117704::finalize(), SLD_2004_S5693039::finalize(), ATLAS_2012_I1125961::finalize(), ATLAS_2011_CONF_2011_098::finalize(), ATLAS_2012_I1095236::finalize(), ATLAS_2011_S9019561::finalize(), ATLAS_2012_I1190891::finalize(), ATLAS_2012_I1126136::finalize(), ATLAS_2012_I1093738::finalize(), ATLAS_2011_S9212183::finalize(), ATLAS_2011_S8983313::finalize(), ATLAS_2012_I1112263::finalize(), ATLAS_2012_CONF_2012_109::finalize(), ATLAS_2011_CONF_2011_090::finalize(), ATLAS_2012_CONF_2012_001::finalize(), SLD_1999_S3743934::finalize(), ATLAS_2011_S9225137::finalize(), ALEPH_1996_S3486095::finalize(), ATLAS_2012_I943401::finalize(), ATLAS_2012_I1180197::finalize(), DELPHI_1996_S3430090::finalize(), ATLAS_2012_CONF_2012_153::finalize(), ATLAS_2011_S9212353::finalize(), PDG_HADRON_MULTIPLICITIES_RATIOS::finalize(), PDG_HADRON_MULTIPLICITIES::finalize(), ATLAS_2011_S9041966::finalize(), ATLAS_2011_I919017::safeinvscale(), and BinnedHistogram< T >::scale().

                                                     {
    if (!histo) {
      MSG_ERROR("Failed to scale histo=NULL in analysis " << name() << " (scale=" << scale << ")");
      return;
    }
    MSG_TRACE("Scaling histo " << histo->path() << "by factor " << scale);
    try {
      histo->scaleW(scale);
    } catch (YODA::WeightError& we) {
      MSG_WARNING("Could not normalize histo " << histo->path());
      return;
    }
    // // Transforming the histo into a scatter after scaling
    // vector<double> x, y, ex, ey;
    // for (size_t i = 0, N = histo->numBins(); i < N; ++i) {
    //   x.push_back( histo->bin(i).midpoint() );
    //   ex.push_back(histo->bin(i).width()*0.5);
    //   y.push_back(histo->bin(i).height()*scale);
    //   ey.push_back(histo->bin(i).heightErr()*scale);
    // }
    // string title = histo->title();
    // Scatter2DPtr dps( new Scatter2D(x, y, ex, ey, hpath, title) );
    // addPlot(dps);
  }
Analysis & setCrossSection ( double  xs) [inherited]

Set the cross section from the generator.

Normalize the given histogram, histo, to area = norm.

NB. The histogram is no longer invalidated by this procedure. Multiplicatively scale the given histogram, histo, by factor scale.

NB. The histogram is no longer invalidated by this procedure.

Definition at line 139 of file Analysis.cc.

References Analysis::_crossSection, and Analysis::_gotCrossSection.

                                               {
    _crossSection = xs;
    _gotCrossSection = true;
    return *this;
  }
Analysis& setNeedsCrossSection ( bool  needed = true) [inline, inherited]

Declare whether this analysis needs to know the process cross-section from the generator.

Todo:
Remove this and require HepMC >= 2.06

Definition at line 238 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::setNeedsCrossSection().

Referenced by ATLAS_2011_I945498::ATLAS_2011_I945498(), ATLAS_2011_I954993::ATLAS_2011_I954993(), and MC_JetAnalysis::MC_JetAnalysis().

                                                     {
      info().setNeedsCrossSection(needed);
      return *this;
    }
virtual Analysis& setRequiredBeams ( const std::vector< PdgIdPair > &  requiredBeams) [inline, virtual, inherited]

Declare the allowed pairs of incoming beams required by this analysis.

Definition at line 214 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::setBeams().

                                                                                  {
      info().setBeams(requiredBeams);
      return *this;
    }
virtual Analysis& setRequiredEnergies ( const std::vector< std::pair< double, double > > &  requiredEnergies) [inline, virtual, inherited]

Declare the list of valid beam energy pairs, in GeV.

Definition at line 225 of file Analysis.hh.

References Analysis::info(), Analysis::requiredEnergies(), and AnalysisInfo::setEnergies().

                                                                                                       {
      info().setEnergies(requiredEnergies);
      return *this;
    }
virtual std::string spiresId ( ) const [inline, virtual, inherited]

Get the SPIRES ID code for this analysis (~deprecated).

Definition at line 128 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::spiresId().

                                       {
      return info().spiresId();
    }
double sqrtS ( ) const [inherited]

Centre of mass energy for this run.

Definition at line 24 of file Analysis.cc.

References Analysis::handler(), and AnalysisHandler::sqrtS().

Referenced by PDG_HADRON_MULTIPLICITIES::analyze(), PDG_HADRON_MULTIPLICITIES_RATIOS::analyze(), SLD_2004_S5693039::analyze(), CMS_2011_S9215166::analyze(), SFM_1984_S1178091::analyze(), ALICE_2010_S8625980::analyze(), UA1_1990_S2044935::analyze(), JADE_1998_S3612880::analyze(), TASSO_1990_S2148048::analyze(), MC_TTBAR::analyze(), ATLAS_2010_S8894728::analyze(), ATLAS_2010_S8918562::analyze(), ALEPH_2004_S5765862::analyze(), CDF_2004_S5839831::analyze(), ALICE_2010_S8625980::finalize(), JADE_1998_S3612880::finalize(), UA1_1990_S2044935::finalize(), ATLAS_2010_S8918562::finalize(), ALEPH_2004_S5765862::finalize(), CDF_2004_S5839831::finalize(), PDG_HADRON_MULTIPLICITIES_RATIOS::finalize(), PDG_HADRON_MULTIPLICITIES::finalize(), ATLAS_2010_S8894728::init(), CMS_2010_S8547297::init(), ATLAS_2011_S8994773::init(), CMS_2011_S9215166::init(), CDF_2012_NOTE10874::init(), CMS_QCD_10_024::init(), MC_JetAnalysis::init(), SFM_1984_S1178091::init(), MC_DIPHOTON::init(), MC_HJETS::init(), MC_ZJETS::init(), UA5_1989_S1926373::init(), CDF_1988_S1865951::init(), MC_PHOTONJETS::init(), MC_ZZJETS::init(), ATLAS_2012_I1091481::init(), CDF_1990_S2089246::init(), MC_WJETS::init(), MC_WWJETS::init(), UA5_1986_S1583476::init(), JADE_OPAL_2000_S4300807::init(), UA1_1990_S2044935::init(), ALICE_2010_S8624100::init(), MC_PHOTONS::init(), ALEPH_2004_S5765862::init(), JADE_1998_S3612880::init(), ALICE_2010_S8625980::init(), MC_WPOL::init(), ATLAS_2011_I944826::init(), UA5_1988_S1867512::init(), TASSO_1990_S2148048::init(), LHCB_2011_I917009::init(), ATLAS_2010_S8918562::init(), OPAL_2004_S6132243::init(), CDF_2004_S5839831::init(), PDG_HADRON_MULTIPLICITIES::init(), and PDG_HADRON_MULTIPLICITIES_RATIOS::init().

                               {
    return handler().sqrtS();
  }
virtual std::string status ( ) const [inline, virtual, inherited]

Whether this analysis is trusted (in any way!)

Definition at line 199 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::status().

                                     {
      return (info().status().empty()) ? "UNVALIDATED" : info().status();
    }
virtual std::string summary ( ) const [inline, virtual, inherited]

Get a short description of the analysis.

Short (one sentence) description used as an index entry. Use description() to provide full descriptive paragraphs of analysis details.

Definition at line 145 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::summary().

                                      {
      return info().summary();
    }
double sumOfWeights ( ) const [protected, inherited]

Get the sum of event weights seen (via the analysis handler). Use in the finalize phase only.

Definition at line 87 of file Analysis.cc.

References Analysis::handler(), and AnalysisHandler::sumOfWeights().

Referenced by Analysis::crossSectionPerEvent(), MC_JetAnalysis::finalize(), CDF_2006_S6450792::finalize(), ALEPH_1991_S2435284::finalize(), CMS_2011_S9086218::finalize(), LHCF_2012_I1115479::finalize(), CDF_2008_S7828950::finalize(), D0_2000_S4480767::finalize(), MC_XS::finalize(), CDF_2008_S8093652::finalize(), CMS_2011_S8941262::finalize(), BABAR_2007_S6895344::finalize(), CDF_2000_S4155203::finalize(), CMS_2012_I1087342::finalize(), CDF_2001_S4563131::finalize(), CDF_1998_S3618439::finalize(), CMS_2010_S8656010::finalize(), BABAR_2005_S6181155::finalize(), D0_2010_S8566488::finalize(), STAR_2006_S6870392::finalize(), CDF_2009_S8383952::finalize(), CMS_2010_S8547297::finalize(), CDF_2000_S4266730::finalize(), OPAL_1995_S3198391::finalize(), CDF_2001_S4517016::finalize(), OPAL_1997_S3608263::finalize(), OPAL_2000_S4418603::finalize(), OPAL_1994_S2927284::finalize(), CDF_2009_S8436959::finalize(), MC_PDFS::finalize(), ATLAS_2011_I894867::finalize(), D0_2011_I895662::finalize(), ALEPH_2002_S4823664::finalize(), CMS_2011_S8978280::finalize(), OPAL_1996_S3257789::finalize(), MC_HJETS::finalize(), MC_ZJETS::finalize(), MC_IDENTIFIED::finalize(), ALICE_2011_S8945144::finalize(), DELPHI_1999_S3960137::finalize(), MC_DIPHOTON::finalize(), OPAL_1998_S3702294::finalize(), CDF_2005_S6080774::finalize(), D0_2006_S6438750::finalize(), ALICE_2011_S8909580::finalize(), DELPHI_1995_S3137023::finalize(), STAR_2006_S6500200::finalize(), CLEO_2004_S5809304::finalize(), D0_2008_S7662670::finalize(), D0_2008_S7863608::finalize(), ATLAS_2010_CONF_2010_049::finalize(), CDF_2009_S8233977::finalize(), MC_WJETS::finalize(), OPAL_1998_S3749908::finalize(), OPAL_1997_S3396100::finalize(), ATLAS_2011_I954993::finalize(), CMS_2011_S8973270::finalize(), ATLAS_2012_I946427::finalize(), D0_2010_S8570965::finalize(), CDF_2008_S7541902::finalize(), MC_GENERIC::finalize(), ALEPH_1996_S3196992::finalize(), ATLAS_2012_I1091481::finalize(), D0_2008_S7719523::finalize(), CDF_2006_S6653332::finalize(), STAR_2006_S6860818::finalize(), OPAL_1998_S3780481::finalize(), OPAL_1993_S2692198::finalize(), ATLAS_2011_I926145::finalize(), JADE_OPAL_2000_S4300807::finalize(), ATLAS_2011_S9108483::finalize(), MC_WWJETS::finalize(), CDF_2008_S7540469::finalize(), ATLAS_2010_S8919674::finalize(), ATLAS_2010_S8914702::finalize(), MC_ZZJETS::finalize(), ATLAS_2012_I1083318::finalize(), ATLAS_2012_CONF_2012_105::finalize(), ATLAS_2011_S9120807::finalize(), BELLE_2006_S6265367::finalize(), ATLAS_2012_I1084540::finalize(), ATLAS_2012_CONF_2012_104::finalize(), ATLAS_2012_I1186556::finalize(), MC_VH2BB::finalize(), ATLAS_2012_CONF_2012_103::finalize(), ALEPH_2004_S5765862::finalize(), ATLAS_2012_I1117704::finalize(), SLD_2004_S5693039::finalize(), ATLAS_2012_I1125961::finalize(), ATLAS_2011_CONF_2011_098::finalize(), ATLAS_2012_I1095236::finalize(), ATLAS_2011_S9019561::finalize(), ATLAS_2012_I1190891::finalize(), ATLAS_2012_I1126136::finalize(), ATLAS_2012_I1093738::finalize(), ATLAS_2011_S9212183::finalize(), ATLAS_2011_S8983313::finalize(), ATLAS_2012_I1112263::finalize(), ATLAS_2012_CONF_2012_109::finalize(), ATLAS_2011_CONF_2011_090::finalize(), ATLAS_2012_CONF_2012_001::finalize(), SLD_1999_S3743934::finalize(), ATLAS_2011_S9225137::finalize(), ALEPH_1996_S3486095::finalize(), ATLAS_2012_I943401::finalize(), ATLAS_2012_I1180197::finalize(), ATLAS_2012_CONF_2012_153::finalize(), ATLAS_2011_S9212353::finalize(), PDG_HADRON_MULTIPLICITIES::finalize(), and ATLAS_2011_S9041966::finalize().

                                      {
    return handler().sumOfWeights();
  }
virtual std::vector<std::string> todos ( ) const [inline, virtual, inherited]

Any work to be done on this analysis.

Definition at line 204 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::todos().

                                               {
      return info().todos();
    }
virtual std::string year ( ) const [inline, virtual, inherited]

When the original experimental analysis was published.

Definition at line 179 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::year().

                                   {
      return info().year();
    }

Member Data Documentation

bool _allowProjReg [protected, inherited]

Flag to forbid projection registration in analyses until the init phase.

Definition at line 140 of file ProjectionApplier.hh.

Referenced by ProjectionApplier::_addProjection(), and Analysis::Analysis().

string _defaultname [protected, inherited]

Name passed to constructor (used to find .info analysis data file, and as a fallback)

Definition at line 542 of file Analysis.hh.

Referenced by Analysis::Analysis(), and Analysis::name().

shared_ptr<AnalysisInfo> _info [protected, inherited]

Pointer to analysis metadata object.

Definition at line 545 of file Analysis.hh.

Referenced by Analysis::Analysis(), and Analysis::info().


The documentation for this class was generated from the following file: