D0_2008_S7719523 Class Reference

Measurement of isolated gamma + jet + X differential cross-sections. More...

Inheritance diagram for D0_2008_S7719523:
Inheritance graph
[legend]
Collaboration diagram for D0_2008_S7719523:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual bool isCompatible (PdgId beam1, PdgId beam2) const
 Is this analysis able to run on the supplied pair of beams?
virtual bool isCompatible (const PdgIdPair &beams) const
 Is this analysis able to run on the PdgIdPair beams ?
AnalysisHandlerhandler () const
 Access the controlling AnalysisHandler object.
void normalize (AIDA::IHistogram1D *&histo, double norm=1.0)
void normalize (AIDA::IHistogram2D *&histo, double norm=1.0)
void scale (AIDA::IHistogram1D *&histo, double scale)
void scale (AIDA::IHistogram2D *&histo, double scale)
AnalysissetCrossSection (double xs)
 Set the cross section from the generator.
bool needsCrossSection () const
 Return true if this analysis needs to know the process cross-section.
Constructors etc.

 D0_2008_S7719523 ()
 Constructor.
Analysis methods

void init ()
 Set up projections and book histograms.
void analyze (const Event &event)
 Do the analysis.
void finalize ()
 Finalize.
Metadata

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

virtual 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 spiresId () const
 Get a the SPIRES/Inspire ID code for this analysis.
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 const std::vector
< PdgIdPair > & 
requiredBeams () const
 Return the pair of incoming beams required by this analysis.
virtual const std::vector
< std::pair< double, double > > & 
energies () const
 Sets of valid beam energy pairs, in GeV.
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.
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.
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
AnalysissetBeams (PdgId beam1, PdgId beam2)
AnalysissetNeedsCrossSection (bool needed)
 Declare whether this analysis needs to know the process cross-section from the generator.
ProjectionHandlergetProjHandler () const
 Get a reference to the ProjectionHandler for this thread.
AIDA analysis infrastructure.

AIDA::IAnalysisFactory & analysisFactory ()
 Access the AIDA analysis factory of the controlling AnalysisHandler object.
AIDA::ITree & tree ()
 Access the AIDA tree of the controlling AnalysisHandler object.
AIDA::IHistogramFactory & histogramFactory ()
 Access the AIDA histogram factory of the controlling AnalysisHandler object.
AIDA::IDataPointSetFactory & datapointsetFactory ()
 Access the AIDA histogram factory of the controlling AnalysisHandler object.
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.
Internal histogram booking (for use by Analysis sub-classes).

const BinEdgesbinEdges (const std::string &hname) const
 Get bin edges for a named histo (using ref AIDA caching).
const BinEdgesbinEdges (size_t datasetId, size_t xAxisId, size_t yAxisId) const
 Get bin edges for a numbered histo (using ref AIDA caching).
BinEdges logBinEdges (size_t nbins, double lower, double upper)
 Get bin edges with logarithmic widths.
AIDA::IHistogram1D * bookHistogram1D (const std::string &name, size_t nbins, double lower, double upper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IHistogram1D * bookHistogram1D (const std::string &name, const std::vector< double > &binedges, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IHistogram1D * bookHistogram1D (const std::string &name, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IHistogram1D * bookHistogram1D (size_t datasetId, size_t xAxisId, size_t yAxisId, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IHistogram2D * bookHistogram2D (const std::string &name, size_t nxbins, double xlower, double xupper, size_t nybins, double ylower, double yupper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="", const std::string &ztitle="")
AIDA::IHistogram2D * bookHistogram2D (const std::string &name, const std::vector< double > &xbinedges, const std::vector< double > &ybinedges, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="", const std::string &ztitle="")
Internal profile histogram booking (for use by Analysis sub-classes).

AIDA::IProfile1D * bookProfile1D (const std::string &name, size_t nbins, double lower, double upper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IProfile1D * bookProfile1D (const std::string &name, const std::vector< double > &binedges, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IProfile1D * bookProfile1D (const std::string &name, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IProfile1D * 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).

AIDA::IDataPointSet * bookDataPointSet (const std::string &name, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IDataPointSet * bookDataPointSet (const std::string &name, size_t npts, double lower, double upper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IDataPointSet * bookDataPointSet (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 Attributes

Histograms

AIDA::IHistogram1D * _h_central_same_cross_section
AIDA::IHistogram1D * _h_central_opp_cross_section
AIDA::IHistogram1D * _h_forward_same_cross_section
AIDA::IHistogram1D * _h_forward_opp_cross_section

Friends

class Projectionhandler

Detailed Description

Measurement of isolated gamma + jet + X differential cross-sections.

Inclusive isolated gamma + jet cross-sections, differential in pT(gamma), for various photon and jet rapidity bins.

Author:
Andy Buckley
Gavin Hesketh

Definition at line 20 of file D0_2008_S7719523.cc.


Constructor & Destructor Documentation

D0_2008_S7719523 (  )  [inline]

Constructor.

Definition at line 28 of file D0_2008_S7719523.cc.

References Rivet::ANTIPROTON, Rivet::PROTON, Analysis::setBeams(), and Analysis::setNeedsCrossSection().

00029       : Analysis("D0_2008_S7719523")
00030     {
00031       setBeams(PROTON, ANTIPROTON);
00032       setNeedsCrossSection(true);
00033     }


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, Log::ERROR, ProjectionApplier::getLog(), ProjectionApplier::getProjHandler(), ProjectionApplier::name(), Projection::name(), and ProjectionHandler::registerProjection().

Referenced by ProjectionApplier::addProjection().

00034                                                                              {
00035     if (!_allowProjReg) {
00036       getLog() << Log::ERROR << "Trying to register projection '"
00037                << proj.name() << "' before init phase in '" << this->name() << "'." << endl;
00038       exit(2);
00039     }
00040     const Projection& reg = getProjHandler().registerProjection(*this, proj, name);
00041     return reg;
00042   }

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 130 of file ProjectionApplier.hh.

References ProjectionApplier::_addProjection().

Referenced by ZFinder::_init(), WFinder::_init(), VetoedFinalState::addVetoOnThisFinalState(), CDF_2009_S8057893::CDF_2009_S8057893::init(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), ClosestJetShape::ClosestJetShape(), ClusteredPhotons::ClusteredPhotons(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), FinalState::FinalState(), FinalStateHCM::FinalStateHCM(), FoxWolframMoments::FoxWolframMoments(), HadronicFinalState::HadronicFinalState(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), ZEUS_2001_S4815815::init(), UA5_1989_S1926373::init(), UA5_1988_S1867512::init(), UA5_1987_S1640666::init(), UA5_1986_S1583476::init(), UA5_1982_S875503::init(), UA1_1990_S2044935::init(), STAR_2009_UE_HELEN::init(), STAR_2008_S7993412::init(), STAR_2008_S7869363::init(), STAR_2006_S6870392::init(), STAR_2006_S6860818::init(), STAR_2006_S6500200::init(), SFM_1984_S1178091::init(), PDG_HADRON_MULTIPLICITIES_RATIOS::init(), PDG_HADRON_MULTIPLICITIES::init(), OPAL_2004_S6132243::init(), OPAL_2001_S4553896::init(), OPAL_1998_S3780481::init(), OPAL_1993_S2692198::init(), MC_ZZJETS::init(), MC_ZJETS::init(), MC_WWJETS::init(), MC_WJETS::init(), MC_TTBAR::init(), MC_SUSY::init(), MC_PHOTONJETUE::init(), MC_PHOTONJETS::init(), MC_LEADINGJETS::init(), MC_JETS::init(), MC_HJETS::init(), MC_GENERIC::init(), MC_DIPHOTON::init(), MC_DIJET::init(), LHCB_2010_S8758301::init(), JADE_OPAL_2000_S4300807::init(), H1_2000_S4129130::init(), H1_1995_S3167097::init(), H1_1994_S2919893::init(), ExampleAnalysis::init(), E735_1998_S3905616::init(), DELPHI_2002_069_CONF_603::init(), DELPHI_1995_S3137023::init(), D0_2010_S8671338::init(), D0_2010_S8570965::init(), D0_2010_S8566488::init(), D0_2009_S8349509::init(), D0_2009_S8320160::init(), D0_2009_S8202443::init(), D0_2008_S7863608::init(), D0_2008_S7837160::init(), D0_2008_S7719523::init(), D0_2008_S7662670::init(), D0_2008_S7554427::init(), D0_2008_S6879055::init(), D0_2007_S7075677::init(), D0_2006_S6438750::init(), D0_2004_S5992206::init(), D0_2001_S4674421::init(), D0_2000_S4480767::init(), D0_1998_S3711838::init(), D0_1996_S3324664::init(), D0_1996_S3214044::init(), CDF_2009_S8436959::init(), CDF_2009_S8383952::init(), CDF_2009_S8233977::init(), CDF_2009_NOTE_9936::init(), CDF_2008_S8095620::init(), CDF_2008_S8093652::init(), CDF_2008_S7828950::init(), CDF_2008_S7782535::init(), CDF_2008_S7541902::init(), CDF_2008_S7540469::init(), CDF_2008_NOTE_9351::init(), CDF_2008_LEADINGJETS::init(), CDF_2007_S7057202::init(), CDF_2006_S6653332::init(), CDF_2006_S6450792::init(), CDF_2005_S6217184::init(), CDF_2005_S6080774::init(), CDF_2004_S5839831::init(), CDF_2002_S4796047::init(), CDF_2001_S4751469::init(), CDF_2001_S4563131::init(), CDF_2001_S4517016::init(), CDF_2000_S4266730::init(), CDF_2000_S4155203::init(), CDF_1998_S3618439::init(), CDF_1997_S3541940::init(), CDF_1996_S3418421::init(), CDF_1996_S3349578::init(), CDF_1996_S3108457::init(), CDF_1994_S2952106::init(), CDF_1993_S2742446::init(), CDF_1991_S2313472::init(), CDF_1990_S2089246::init(), CDF_1988_S1865951::init(), BELLE_2006_S6265367::init(), ATLAS_2010_S8817804::init(), ATLAS_2010_S8591806::init(), ATLAS_2010_CONF_2010_083::init(), ATLAS_2010_CONF_2010_081::init(), ATLAS_2010_CONF_2010_049::init(), ATLAS_2010_CONF_2010_031::init(), ALICE_2010_S8706239::init(), ALICE_2010_S8625980::init(), ALICE_2010_S8624100::init(), ALEPH_2004_S5765862::init(), ALEPH_1996_S3486095::init(), ALEPH_1996_S3196992::init(), ALEPH_1991_S2435284::init(), IsolationProjection< PROJ1, PROJ2, EST >::IsolationProjection(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState< ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), Multiplicity::Multiplicity(), NeutralFinalState::NeutralFinalState(), ParisiTensor::ParisiTensor(), Sphericity::Sphericity(), SVertex::SVertex(), Thrust::Thrust(), TotalVisibleMomentum::TotalVisibleMomentum(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), and VetoedFinalState::VetoedFinalState().

00130                                                                        {
00131       const Projection& reg = _addProjection(proj, name);
00132       const PROJ& rtn = dynamic_cast<const PROJ&>(reg);
00133       return rtn;
00134     }

IAnalysisFactory & analysisFactory (  )  [protected, inherited]

Access the AIDA analysis factory of the controlling AnalysisHandler object.

Definition at line 55 of file Analysis.cc.

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

00055                                               {
00056     return handler().analysisFactory();
00057   }

void analyze ( const Event event  )  [inline, virtual]

Do the analysis.

Implements Analysis.

Definition at line 71 of file D0_2008_S7719523.cc.

References D0_2008_S7719523::_h_central_opp_cross_section, D0_2008_S7719523::_h_central_same_cross_section, D0_2008_S7719523::_h_forward_opp_cross_section, D0_2008_S7719523::_h_forward_same_cross_section, FourVector::azimuthalAngle(), Log::DEBUG, Rivet::deltaR(), FourMomentum::E(), FourVector::eta(), Analysis::getLog(), Rivet::GeV, Rivet::inRange(), Particle::momentum(), Rivet::particles(), FinalState::particles(), FourVector::phi(), FourVector::pseudorapidity(), FourMomentum::pT(), FourMomentum::rapidity(), Rivet::sign(), and vetoEvent.

00071                                      {
00072       const double weight = event.weight();
00073 
00074       // Get the photon
00075       const FinalState& photonfs = applyProjection<FinalState>(event, "LeadingPhoton");
00076       if (photonfs.particles().size() != 1) {
00077         vetoEvent;
00078       }
00079       const FourMomentum photon = photonfs.particles().front().momentum();
00080 
00081       // Isolate photon by ensuring that a 0.4 cone around it contains less than 7% of the photon's energy
00082       double egamma = photon.E();
00083       double eta_P = photon.pseudorapidity();
00084       double phi_P = photon.azimuthalAngle();
00085       double econe = 0.0;
00086       foreach (const Particle& p, applyProjection<FinalState>(event, "JetFS").particles()) {
00087         if (deltaR(eta_P, phi_P,
00088                    p.momentum().pseudorapidity(), p.momentum().azimuthalAngle()) < 0.4) {
00089           econe += p.momentum().E();
00090           // Veto as soon as E_cone gets larger
00091           if (econe/egamma > 0.07) {
00092             getLog() << Log::DEBUG << "Vetoing event because photon is insufficiently isolated" << endl;
00093             vetoEvent;
00094           }
00095         }
00096       }
00097 
00098       Jets jets = applyProjection<FastJets>(event, "Jets").jetsByPt(15.0*GeV);
00099       if (jets.size()==0) {
00100         vetoEvent;
00101       }
00102       FourMomentum leadingJet = jets[0].momentum();
00103       if (deltaR(eta_P, phi_P, leadingJet.eta(), leadingJet.phi())<0.7) {
00104         vetoEvent;
00105       }
00106 
00107       int photon_jet_sign = sign( leadingJet.rapidity() * photon.rapidity() );
00108 
00109       // Veto if leading jet is outside plotted rapidity regions
00110       const double abs_y1 = fabs(leadingJet.rapidity());
00111       if (inRange(abs_y1, 0.8, 1.5) || abs_y1 > 2.5) {
00112         getLog() << Log::DEBUG << "Leading jet falls outside acceptance range; |y1| = "
00113                  << abs_y1 << endl;
00114         vetoEvent;
00115       }
00116 
00117       // Fill histos
00118       if (fabs(leadingJet.rapidity()) < 0.8) {
00119         if (photon_jet_sign >= 1) {
00120           _h_central_same_cross_section->fill(photon.pT(), weight);
00121         } else {
00122           _h_central_opp_cross_section->fill(photon.pT(), weight);
00123         }
00124       } else if (inRange( fabs(leadingJet.rapidity()), 1.5, 2.5)) {
00125         if (photon_jet_sign >= 1) {
00126           _h_forward_same_cross_section->fill(photon.pT(), weight);
00127         } else {
00128           _h_forward_opp_cross_section->fill(photon.pT(), weight);
00129         }
00130       }
00131 
00132     }

const PROJ& applyProjection ( const Event evt,
const std::string &  name 
) const [inline, inherited]

Apply the named projection on event.

Definition at line 97 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

00097                                                                                {
00098       return pcast<PROJ>(_applyProjection(evt, name));
00099     }

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

Apply the supplied projection on event.

Definition at line 90 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

00090                                                                                 {
00091       return pcast<PROJ>(_applyProjection(evt, proj));
00092     }

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

Apply the supplied projection on event.

Definition at line 83 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

Referenced by HadronicFinalState::project(), and FinalStateHCM::project().

00083                                                                           {
00084       return pcast<PROJ>(_applyProjection(evt, proj));
00085     }

vector< string > authors (  )  const [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 141 of file Analysis.cc.

References Analysis::_info.

00141                                          {
00142     if (!_info) return std::vector<std::string>();
00143     return _info->authors();
00144   }

const PdgIdPair beamIds (  )  const [inherited]

Incoming beam IDs for this run.

Definition at line 83 of file Analysis.cc.

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

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

00083                                           {
00084     return handler().beamIds();
00085   }

const ParticlePair & beams (  )  const [inherited]
string bibKey (  )  const [virtual, inherited]

BibTeX citation key for this article.

Definition at line 185 of file Analysis.cc.

References Analysis::_info.

00185                                 {
00186     if (!_info) return "";
00187     return _info->bibKey();
00188   }

string bibTeX (  )  const [virtual, inherited]

BibTeX citation entry for this article.

Definition at line 190 of file Analysis.cc.

References Analysis::_info.

00190                                 {
00191     if (!_info) return "";
00192     return _info->bibTeX();
00193   }

const BinEdges & binEdges ( size_t  datasetId,
size_t  xAxisId,
size_t  yAxisId 
) const [protected, inherited]

Get bin edges for a numbered histo (using ref AIDA caching).

Definition at line 311 of file Analysis.cc.

References Analysis::binEdges().

00311                                                                                            {
00312     const string hname = makeAxisCode(datasetId, xAxisId, yAxisId);
00313     return binEdges(hname);
00314   }

const BinEdges & binEdges ( const std::string &  hname  )  const [protected, inherited]

Get bin edges for a named histo (using ref AIDA caching).

Definition at line 296 of file Analysis.cc.

References Analysis::_cacheBinEdges(), Analysis::_histBinEdges, Analysis::getLog(), Analysis::name(), and Log::TRACE.

Referenced by ATLAS_2010_CONF_2010_081::analyze(), Analysis::binEdges(), Analysis::bookHistogram1D(), Analysis::bookProfile1D(), D0_2008_S7837160::init(), and CDF_1994_S2952106::init().

00296                                                               {
00297     _cacheBinEdges();
00298     getLog() << Log::TRACE << "Using histo bin edges for " << name() << ":" << hname << endl;
00299     const BinEdges& edges = _histBinEdges.find(hname)->second;
00300     if (getLog().isActive(Log::TRACE)) {
00301       stringstream edges_ss;
00302       foreach (const double be, edges) {
00303         edges_ss << " " << be;
00304       }
00305       getLog() << Log::TRACE << "Edges:" << edges_ss.str() << endl;
00306     }
00307     return edges;
00308   }

IDataPointSet * bookDataPointSet ( 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 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. 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 508 of file Analysis.cc.

References Analysis::_cacheXAxisData(), Analysis::_dpsData, Analysis::bookDataPointSet(), Analysis::getLog(), Analysis::name(), and Log::TRACE.

00510                                                                                         {
00511     // Get the bin edges (only read the AIDA file once)
00512     _cacheXAxisData();
00513     // Build the axis code
00514     const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId);
00515     //const map<string, vector<DPSXPoint> > xpoints = getDPSXValsErrs(papername);
00516     getLog() << Log::TRACE << "Using DPS x-positions for " << name() << ":" << axisCode << endl;
00517     IDataPointSet* dps = bookDataPointSet(axisCode, title, xtitle, ytitle);
00518     const vector<DPSXPoint> xpts = _dpsData.find(axisCode)->second;
00519     for (size_t pt = 0; pt < xpts.size(); ++pt) {
00520       dps->addPoint();
00521       IMeasurement* meas = dps->point(pt)->coordinate(0);
00522       meas->setValue(xpts[pt].val);
00523       meas->setErrorPlus(xpts[pt].errplus);
00524       meas->setErrorMinus(xpts[pt].errminus);
00525     }
00526     getLog() << Log::TRACE << "Made DPS " << axisCode <<  " for " << name() << endl;
00527     return dps;
00528   }

IDataPointSet * bookDataPointSet ( 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 490 of file Analysis.cc.

References Analysis::bookDataPointSet().

00493                                                                                         {
00494     IDataPointSet* dps = bookDataPointSet(hname, title, xtitle, ytitle);
00495     for (size_t pt = 0; pt < npts; ++pt) {
00496       const double binwidth = (upper-lower)/npts;
00497       const double bincentre = lower + (pt + 0.5) * binwidth;
00498       dps->addPoint();
00499       IMeasurement* meas = dps->point(pt)->coordinate(0);
00500       meas->setValue(bincentre);
00501       meas->setErrorPlus(binwidth/2.0);
00502       meas->setErrorMinus(binwidth/2.0);
00503     }
00504     return dps;
00505   }

IDataPointSet * bookDataPointSet ( 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 478 of file Analysis.cc.

References Analysis::_makeHistoDir(), Analysis::datapointsetFactory(), Analysis::getLog(), Analysis::histoPath(), Analysis::name(), and Log::TRACE.

Referenced by Analysis::bookDataPointSet(), ALEPH_2004_S5765862::finalize(), STAR_2006_S6860818::init(), OPAL_1993_S2692198::init(), MC_JetAnalysis::init(), JADE_OPAL_2000_S4300807::init(), D0_2001_S4674421::init(), CDF_2008_S7782535::init(), CDF_2008_S7541902::init(), CDF_2005_S6217184::init(), CDF_1996_S3418421::init(), CDF_1994_S2952106::init(), and ALEPH_2004_S5765862::init().

00479                                                                                         {
00480     _makeHistoDir();
00481     const string path = histoPath(hname);
00482     IDataPointSet* dps = datapointsetFactory().create(path, title, 2);
00483     getLog() << Log::TRACE << "Made data point set " << hname <<  " for " << name() << endl;
00484     dps->setXTitle(xtitle);
00485     dps->setYTitle(ytitle);
00486     return dps;
00487   }

IHistogram1D * bookHistogram1D ( 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 330 of file Analysis.cc.

References Analysis::bookHistogram1D().

00333   {
00334     const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId);
00335     return bookHistogram1D(axisCode, title, xtitle, ytitle);
00336   }

IHistogram1D * bookHistogram1D ( 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 339 of file Analysis.cc.

References Analysis::_makeHistoDir(), Analysis::binEdges(), Analysis::getLog(), Analysis::histogramFactory(), Analysis::histoPath(), Analysis::name(), and Log::TRACE.

00341   {
00342     // Get the bin edges (only read the AIDA file once)
00343     const BinEdges edges = binEdges(hname);
00344     _makeHistoDir();
00345     const string path = histoPath(hname);
00346     IHistogram1D* hist = histogramFactory().createHistogram1D(path, title, edges);
00347     getLog() << Log::TRACE << "Made histogram " << hname <<  " for " << name() << endl;
00348     hist->setXTitle(xtitle);
00349     hist->setYTitle(ytitle);
00350     return hist;
00351   }

IHistogram1D * bookHistogram1D ( 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 368 of file Analysis.cc.

References Analysis::_makeHistoDir(), Analysis::getLog(), Analysis::histogramFactory(), Analysis::histoPath(), Analysis::name(), and Log::TRACE.

00371                                                                                       {
00372     _makeHistoDir();
00373     const string path = histoPath(hname);
00374     IHistogram1D* hist = histogramFactory().createHistogram1D(path, title, binedges);
00375     getLog() << Log::TRACE << "Made histogram " << hname <<  " for " << name() << endl;
00376     hist->setXTitle(xtitle);
00377     hist->setYTitle(ytitle);
00378     return hist;
00379   }

IHistogram1D * bookHistogram1D ( 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 354 of file Analysis.cc.

References Analysis::_makeHistoDir(), Analysis::getLog(), Analysis::histogramFactory(), Analysis::histoPath(), Analysis::name(), and Log::TRACE.

Referenced by Analysis::bookHistogram1D(), ZEUS_2001_S4815815::init(), UA5_1989_S1926373::init(), UA5_1987_S1640666::init(), UA5_1986_S1583476::init(), UA5_1982_S875503::init(), UA1_1990_S2044935::init(), STAR_2008_S7869363::init(), STAR_2006_S6870392::init(), STAR_2006_S6860818::init(), STAR_2006_S6500200::init(), SFM_1984_S1178091::init(), PDG_HADRON_MULTIPLICITIES_RATIOS::init(), PDG_HADRON_MULTIPLICITIES::init(), OPAL_2004_S6132243::init(), OPAL_2001_S4553896::init(), OPAL_1998_S3780481::init(), MC_ZZJETS::init(), MC_ZJETS::init(), MC_WWJETS::init(), MC_WJETS::init(), MC_TTBAR::init(), MC_SUSY::init(), MC_PHOTONJETUE::init(), MC_PHOTONJETS::init(), MC_JetAnalysis::init(), MC_HJETS::init(), MC_GENERIC::init(), MC_DIPHOTON::init(), MC_DIJET::init(), LHCB_2010_S8758301::init(), JADE_OPAL_2000_S4300807::init(), H1_2000_S4129130::init(), H1_1995_S3167097::init(), H1_1994_S2919893::init(), ExampleAnalysis::init(), E735_1998_S3905616::init(), DELPHI_2002_069_CONF_603::init(), DELPHI_1995_S3137023::init(), D0_2010_S8671338::init(), D0_2010_S8570965::init(), D0_2010_S8566488::init(), D0_2009_S8349509::init(), D0_2009_S8320160::init(), D0_2009_S8202443::init(), D0_2008_S7863608::init(), D0_2008_S7837160::init(), D0_2008_S7719523::init(), D0_2008_S7662670::init(), D0_2008_S7554427::init(), D0_2008_S6879055::init(), D0_2007_S7075677::init(), D0_2006_S6438750::init(), D0_2004_S5992206::init(), D0_2001_S4674421::init(), D0_2000_S4480767::init(), D0_1998_S3711838::init(), D0_1996_S3324664::init(), D0_1996_S3214044::init(), CDF_2009_S8436959::init(), CDF_2009_S8383952::init(), CDF_2009_S8233977::init(), CDF_2009_NOTE_9936::init(), CDF_2008_S8095620::init(), CDF_2008_S8093652::init(), CDF_2008_S7828950::init(), CDF_2008_S7541902::init(), CDF_2008_S7540469::init(), CDF_2007_S7057202::init(), CDF_2006_S6653332::init(), CDF_2006_S6450792::init(), CDF_2005_S6080774::init(), CDF_2004_S5839831::init(), CDF_2002_S4796047::init(), CDF_2001_S4751469::init(), CDF_2001_S4563131::init(), CDF_2001_S4517016::init(), CDF_2000_S4266730::init(), CDF_2000_S4155203::init(), CDF_1998_S3618439::init(), CDF_1997_S3541940::init(), CDF_1996_S3418421::init(), CDF_1996_S3349578::init(), CDF_1996_S3108457::init(), CDF_1994_S2952106::init(), CDF_1993_S2742446::init(), CDF_1991_S2313472::init(), CDF_1990_S2089246::init(), CDF_1988_S1865951::init(), BELLE_2006_S6265367::init(), ATLAS_2010_S8817804::init(), ATLAS_2010_S8591806::init(), ATLAS_2010_CONF_2010_083::init(), ATLAS_2010_CONF_2010_049::init(), ATLAS_2010_CONF_2010_031::init(), ALICE_2010_S8706239::init(), ALICE_2010_S8625980::init(), ALICE_2010_S8624100::init(), ALEPH_2004_S5765862::init(), ALEPH_1996_S3486095::init(), ALEPH_1996_S3196992::init(), and ALEPH_1991_S2435284::init().

00357                                                                                       {
00358     _makeHistoDir();
00359     const string path = histoPath(hname);
00360     IHistogram1D* hist = histogramFactory().createHistogram1D(path, title, nbins, lower, upper);
00361     getLog() << Log::TRACE << "Made histogram " << hname <<  " for " << name() << endl;
00362     hist->setXTitle(xtitle);
00363     hist->setYTitle(ytitle);
00364     return hist;
00365   }

IHistogram2D * bookHistogram2D ( const std::string &  name,
const std::vector< double > &  xbinedges,
const std::vector< double > &  ybinedges,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "",
const std::string &  ztitle = "" 
) [protected, inherited]

Book a 2D histogram with non-uniform bins defined by the vectorx of bin edges xbinedges and ybinedges. (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 402 of file Analysis.cc.

References Analysis::_makeHistoDir(), Analysis::getLog(), Analysis::histogramFactory(), Analysis::histoPath(), Analysis::name(), and Log::TRACE.

00406                                                             {
00407     _makeHistoDir();
00408     const string path = histoPath(hname);
00409     IHistogram2D* hist =
00410       histogramFactory().createHistogram2D(path, title, xbinedges, ybinedges);
00411     getLog() << Log::TRACE << "Made 2D histogram " << hname <<  " for "
00412          << name() << endl;
00413     hist->setXTitle(xtitle);
00414     hist->setYTitle(ytitle);
00415     hist->setZTitle(ztitle);
00416     return hist;
00417   }

IHistogram2D * bookHistogram2D ( const std::string &  name,
size_t  nxbins,
double  xlower,
double  xupper,
size_t  nybins,
double  ylower,
double  yupper,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "",
const std::string &  ztitle = "" 
) [protected, inherited]

Book a 2D histogram with nxbins and nybins uniformly distributed across the ranges xlower - xupper and ylower - yupper respectively along the x- and y-axis. (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 382 of file Analysis.cc.

References Analysis::_makeHistoDir(), Analysis::getLog(), Analysis::histogramFactory(), Analysis::histoPath(), Analysis::name(), and Log::TRACE.

00386                                                             {
00387     _makeHistoDir();
00388     const string path = histoPath(hname);
00389     IHistogram2D* hist =
00390       histogramFactory().createHistogram2D(path, title, nxbins, xlower, xupper,
00391                        nybins, ylower, yupper);
00392     getLog() << Log::TRACE << "Made 2D histogram "
00393          << hname <<  " for " << name() << endl;
00394     hist->setXTitle(xtitle);
00395     hist->setYTitle(ytitle);
00396     hist->setZTitle(ztitle);
00397     return hist;
00398   }

IProfile1D * 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 423 of file Analysis.cc.

References Analysis::bookProfile1D().

00425                                                                                   {
00426     const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId);
00427     return bookProfile1D(axisCode, title, xtitle, ytitle);
00428   }

IProfile1D * 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 431 of file Analysis.cc.

References Analysis::_makeHistoDir(), Analysis::binEdges(), Analysis::getLog(), Analysis::histogramFactory(), Analysis::histoPath(), Analysis::name(), and Log::TRACE.

00433   {
00434     // Get the bin edges (only read the AIDA file once)
00435     const BinEdges edges = binEdges(hname);
00436     _makeHistoDir();
00437     const string path = histoPath(hname);
00438     IProfile1D* prof = histogramFactory().createProfile1D(path, title, edges);
00439     getLog() << Log::TRACE << "Made profile histogram " << hname <<  " for " << name() << endl;
00440     prof->setXTitle(xtitle);
00441     prof->setYTitle(ytitle);
00442     return prof;
00443   }

IProfile1D * 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 460 of file Analysis.cc.

References Analysis::_makeHistoDir(), Analysis::getLog(), Analysis::histogramFactory(), Analysis::histoPath(), Analysis::name(), and Log::TRACE.

00463                                                                                   {
00464     _makeHistoDir();
00465     const string path = histoPath(hname);
00466     IProfile1D* prof = histogramFactory().createProfile1D(path, title, binedges);
00467     getLog() << Log::TRACE << "Made profile histogram " << hname <<  " for " << name() << endl;
00468     prof->setXTitle(xtitle);
00469     prof->setYTitle(ytitle);
00470     return prof;
00471   }

IProfile1D * 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 446 of file Analysis.cc.

References Analysis::_makeHistoDir(), Analysis::getLog(), Analysis::histogramFactory(), Analysis::histoPath(), Analysis::name(), and Log::TRACE.

Referenced by Analysis::bookProfile1D(), UA5_1988_S1867512::init(), UA1_1990_S2044935::init(), STAR_2009_UE_HELEN::init(), STAR_2008_S7993412::init(), STAR_2006_S6860818::init(), MC_PHOTONJETUE::init(), MC_LEADINGJETS::init(), H1_2000_S4129130::init(), H1_1994_S2919893::init(), DELPHI_2002_069_CONF_603::init(), D0_1996_S3324664::init(), CDF_2009_S8233977::init(), CDF_2008_S7782535::init(), CDF_2008_NOTE_9351::init(), CDF_2008_LEADINGJETS::init(), CDF_2005_S6217184::init(), CDF_2004_S5839831::init(), CDF_2002_S4796047::init(), CDF_2001_S4751469::init(), ATLAS_2010_S8591806::init(), ATLAS_2010_CONF_2010_081::init(), ATLAS_2010_CONF_2010_031::init(), and ALICE_2010_S8706239::init().

00449                                                                                   {
00450     _makeHistoDir();
00451     const string path = histoPath(hname);
00452     IProfile1D* prof = histogramFactory().createProfile1D(path, title, nbins, lower, upper);
00453     getLog() << Log::TRACE << "Made profile histogram " << hname <<  " for " << name() << endl;
00454     prof->setXTitle(xtitle);
00455     prof->setYTitle(ytitle);
00456     return prof;
00457   }

string collider (  )  const [virtual, inherited]

Collider on which the experiment ran.

Definition at line 170 of file Analysis.cc.

References Analysis::_info.

00170                                   {
00171     if (!_info) return "NONE";
00172     return _info->collider();
00173   }

double crossSection (  )  const [protected, inherited]
double crossSectionPerEvent (  )  const [protected, inherited]

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

Definition at line 262 of file Analysis.cc.

References Analysis::_crossSection, and Analysis::sumOfWeights().

Referenced by UA1_1990_S2044935::finalize(), MC_PHOTONJETS::finalize(), D0_2001_S4674421::finalize(), CDF_2007_S7057202::finalize(), CDF_1988_S1865951::finalize(), and ATLAS_2010_S8817804::finalize().

00262                                               {
00263     const double sumW = sumOfWeights();
00264     assert(sumW > 0);
00265     return _crossSection / sumW;
00266   }

IDataPointSetFactory & datapointsetFactory (  )  [protected, inherited]

Access the AIDA histogram factory of the controlling AnalysisHandler object.

Definition at line 70 of file Analysis.cc.

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

Referenced by Analysis::bookDataPointSet(), and Analysis::scale().

00070                                                       {
00071     return handler().datapointsetFactory();
00072   }

string description (  )  const [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 151 of file Analysis.cc.

References Analysis::_info.

00151                                      {
00152     if (!_info) return "NONE";
00153     return _info->description();
00154   }

const std::vector< std::pair< double, double > > & energies (  )  const [virtual, inherited]

Sets of valid beam energy pairs, in GeV.

Definition at line 161 of file Analysis.cc.

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

00161                                                                      {
00162     return info().energies();
00163   }

string experiment (  )  const [virtual, inherited]

Experiment which performed and published this analysis.

Definition at line 165 of file Analysis.cc.

References Analysis::_info.

00165                                     {
00166     if (!_info) return "NONE";
00167     return _info->experiment();
00168   }

void finalize (  )  [inline, virtual]

Finalize.

Implements Analysis.

Definition at line 137 of file D0_2008_S7719523.cc.

References D0_2008_S7719523::_h_central_opp_cross_section, D0_2008_S7719523::_h_central_same_cross_section, D0_2008_S7719523::_h_forward_opp_cross_section, D0_2008_S7719523::_h_forward_same_cross_section, Analysis::crossSection(), Analysis::histoDir(), Analysis::histogramFactory(), Analysis::scale(), and Analysis::sumOfWeights().

00137                     {
00138       const double lumi_gen = sumOfWeights()/crossSection();
00139       const double dy_photon = 2.0;
00140       const double dy_jet_central = 1.6;
00141       const double dy_jet_forward = 2.0;
00142 
00143       // Cross-section ratios (6 plots)
00144       // Central/central and forward/forward ratios
00145       AIDA::IHistogramFactory& hf = histogramFactory();
00146       const string dir = histoDir();
00147 
00148       hf.divide(dir + "/d05-x01-y01", *_h_central_opp_cross_section, *_h_central_same_cross_section);
00149       hf.divide(dir + "/d08-x01-y01", *_h_forward_opp_cross_section, *_h_forward_same_cross_section);
00150 
00151       // Central/forward ratio combinations
00152       hf.divide(dir + "/d06-x01-y01", *_h_central_same_cross_section,
00153                 *_h_forward_same_cross_section)->scale(dy_jet_forward/dy_jet_central, 1);
00154       hf.divide(dir + "/d07-x01-y01", *_h_central_opp_cross_section,
00155                 *_h_forward_same_cross_section)->scale(dy_jet_forward/dy_jet_central, 1);
00156       hf.divide(dir + "/d09-x01-y01", *_h_central_same_cross_section,
00157                 *_h_forward_opp_cross_section)->scale(dy_jet_forward/dy_jet_central, 1);
00158       hf.divide(dir + "/d10-x01-y01", *_h_central_opp_cross_section,
00159                 *_h_forward_opp_cross_section)->scale(dy_jet_forward/dy_jet_central, 1);
00160 
00161       // Use generator cross section for remaining histograms
00162       // Each of these needs the additional factor 2 because the
00163       // y_photon * y_jet requirement reduces the corresponding 2D "bin width"
00164       // by a factor 1/2.
00165       scale(_h_central_same_cross_section, 2.0/lumi_gen * 1.0/dy_photon * 1.0/dy_jet_central);
00166       scale(_h_central_opp_cross_section, 2.0/lumi_gen * 1.0/dy_photon * 1.0/dy_jet_central);
00167       scale(_h_forward_same_cross_section, 2.0/lumi_gen * 1.0/dy_photon * 1.0/dy_jet_forward);
00168       scale(_h_forward_opp_cross_section, 2.0/lumi_gen * 1.0/dy_photon * 1.0/dy_jet_forward);
00169     }

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 107 of file Analysis.cc.

References Analysis::name().

Referenced by Analysis::_cacheBinEdges(), Analysis::_cacheXAxisData(), CDF_2004_S5839831::_calcTransCones(), CDF_1996_S3349578::_fiveJetAnalysis(), CDF_1996_S3349578::_fourJetAnalysis(), D0_1996_S3214044::_safeMass(), CDF_1997_S3541940::_safeMass(), CDF_1996_S3349578::_safeMass(), CDF_1996_S3349578::_threeJetAnalysis(), ZEUS_2001_S4815815::analyze(), UA5_1986_S1583476::analyze(), UA1_1990_S2044935::analyze(), STAR_2009_UE_HELEN::analyze(), STAR_2008_S7993412::analyze(), STAR_2006_S6870392::analyze(), STAR_2006_S6860818::analyze(), STAR_2006_S6500200::analyze(), SFM_1984_S1178091::analyze(), PDG_HADRON_MULTIPLICITIES_RATIOS::analyze(), PDG_HADRON_MULTIPLICITIES::analyze(), OPAL_1998_S3780481::analyze(), MC_SUSY::analyze(), MC_PHOTONJETUE::analyze(), MC_LEADINGJETS::analyze(), MC_JetAnalysis::analyze(), MC_GENERIC::analyze(), H1_1994_S2919893::analyze(), DELPHI_2002_069_CONF_603::analyze(), DELPHI_1995_S3137023::analyze(), D0_2009_S8349509::analyze(), D0_2009_S8202443::analyze(), D0_2008_S7863608::analyze(), D0_2008_S7837160::analyze(), D0_2008_S7719523::analyze(), D0_2008_S7662670::analyze(), D0_2008_S7554427::analyze(), D0_2008_S6879055::analyze(), D0_2007_S7075677::analyze(), D0_2004_S5992206::analyze(), D0_1998_S3711838::analyze(), CDF_2009_S8383952::analyze(), CDF_2008_S8095620::analyze(), CDF_2008_S7782535::analyze(), CDF_2008_S7540469::analyze(), CDF_2008_NOTE_9351::analyze(), CDF_2008_LEADINGJETS::analyze(), CDF_2006_S6653332::analyze(), CDF_2004_S5839831::analyze(), CDF_2001_S4751469::analyze(), CDF_2000_S4155203::analyze(), CDF_1991_S2313472::analyze(), BELLE_2006_S6265367::analyze(), ALEPH_1996_S3486095::analyze(), ALEPH_1991_S2435284::analyze(), Analysis::binEdges(), Analysis::bookDataPointSet(), Analysis::bookHistogram1D(), Analysis::bookHistogram2D(), Analysis::bookProfile1D(), CDF_2009_S8057893::CDF_2009_S8057893::analyze(), UA5_1986_S1583476::finalize(), UA1_1990_S2044935::finalize(), STAR_2006_S6860818::finalize(), STAR_2006_S6500200::finalize(), D0_2001_S4674421::finalize(), CDF_2009_S8233977::finalize(), CDF_2006_S6653332::finalize(), ZEUS_2001_S4815815::init(), JADE_OPAL_2000_S4300807::init(), ALEPH_2004_S5765862::init(), Analysis::normalize(), and Analysis::scale().

00107                               {
00108     string logname = "Rivet.Analysis." + name();
00109     return Log::getLog(logname);
00110   }

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 73 of file ProjectionApplier.hh.

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

00073                                                                  {
00074       return getProjHandler().getProjection(*this, name);
00075     }

const PROJ& getProjection ( const std::string &  name  )  const [inline, inherited]

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

Definition at line 65 of file ProjectionApplier.hh.

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

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

00065                                                            {
00066       const Projection& p = getProjHandler().getProjection(*this, name);
00067       return pcast<PROJ>(p);
00068     }

std::set<ConstProjectionPtr> getProjections (  )  const [inline, inherited]

Get the contained projections, including recursion.

Definition at line 58 of file ProjectionApplier.hh.

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

Referenced by Projection::beamPairs().

00058                                                       {
00059       return getProjHandler().getChildProjections(*this, ProjectionHandler::DEEP);
00060     }

ProjectionHandler& getProjHandler (  )  const [inline, protected, inherited]

Get a reference to the ProjectionHandler for this thread.

Definition at line 110 of file ProjectionApplier.hh.

References ProjectionApplier::_projhandler.

Referenced by ProjectionApplier::_addProjection(), ProjectionApplier::getProjection(), ProjectionApplier::getProjections(), and ProjectionApplier::~ProjectionApplier().

00110                                               {
00111       assert(_projhandler);
00112       return *_projhandler;
00113     }

AnalysisHandler & handler (  )  const [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 Analysis construction!

Definition at line 88 of file Analysis.cc.

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

Referenced by Analysis::_makeHistoDir(), STAR_2006_S6860818::finalize(), STAR_2006_S6500200::finalize(), MC_WJETS::finalize(), D0_2008_S7837160::finalize(), D0_2008_S7719523::finalize(), and Analysis::histoPath().

00088                                         {
00089     /// @todo This doesn't change: calc and cache at Analysis construction!
00090     string path = "/" + name();
00091     if (handler().runName().length() > 0) {
00092       path = "/" + handler().runName() + path;
00093     }
00094     while (find_first(path, "//")) {
00095       replace_all(path, "//", "/");
00096     }
00097     return path;
00098   }

IHistogramFactory & histogramFactory (  )  [protected, inherited]
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 101 of file Analysis.cc.

References Analysis::histoDir().

Referenced by Analysis::bookDataPointSet(), Analysis::bookHistogram1D(), Analysis::bookHistogram2D(), Analysis::bookProfile1D(), MC_JetAnalysis::finalize(), and MC_GENERIC::finalize().

00101                                                             {
00102     const string path = histoDir() + "/" + hname;
00103     return path;
00104   }

const AnalysisInfo & info (  )  const [virtual, inherited]

Get the actual AnalysisInfo object in which all this metadata is stored.

Definition at line 126 of file Analysis.cc.

References Analysis::_info.

Referenced by Analysis::energies(), and Analysis::requiredBeams().

00126                                            {
00127     assert(_info.get() != 0);
00128     return *_info;
00129   }

void init (  )  [inline, virtual]

Set up projections and book histograms.

Implements Analysis.

Definition at line 42 of file D0_2008_S7719523.cc.

References D0_2008_S7719523::_h_central_opp_cross_section, D0_2008_S7719523::_h_central_same_cross_section, D0_2008_S7719523::_h_forward_opp_cross_section, D0_2008_S7719523::_h_forward_same_cross_section, LeadingParticlesFinalState::addParticleId(), ProjectionApplier::addProjection(), VetoedFinalState::addVetoOnThisFinalState(), Analysis::bookHistogram1D(), FastJets::D0ILCONE, Rivet::GeV, and Rivet::PHOTON.

00042                 {
00043       // General FS
00044       FinalState fs;
00045       addProjection(fs, "FS");
00046 
00047       // Get leading photon
00048       LeadingParticlesFinalState photonfs(FinalState(-1.0, 1.0, 30.0*GeV));
00049       photonfs.addParticleId(PHOTON);
00050       addProjection(photonfs, "LeadingPhoton");
00051 
00052       // FS excluding the leading photon
00053       VetoedFinalState vfs(fs);
00054       vfs.addVetoOnThisFinalState(photonfs);
00055       addProjection(vfs, "JetFS");
00056 
00057       // Jets
00058       FastJets jetpro(vfs, FastJets::D0ILCONE, 0.7);
00059       addProjection(jetpro, "Jets");
00060 
00061       // Histograms
00062       _h_central_same_cross_section = bookHistogram1D(1, 1, 1);
00063       _h_central_opp_cross_section  = bookHistogram1D(2, 1, 1);
00064       _h_forward_same_cross_section = bookHistogram1D(3, 1, 1);
00065       _h_forward_opp_cross_section  = bookHistogram1D(4, 1, 1);
00066     }

bool isCompatible ( const PdgIdPair beams  )  const [virtual, inherited]

Is this analysis able to run on the PdgIdPair beams ?

Todo:
Deprecate?

Todo:
Need to also check internal consistency of the analysis' beam requirements with those of the projections it uses.

Definition at line 227 of file Analysis.cc.

References Rivet::compatible(), and Analysis::requiredBeams().

00227                                                           {
00228     foreach (const PdgIdPair& bp, requiredBeams()) {
00229       if (compatible(beams, bp)) return true;
00230     }
00231     return false;
00232     /// @todo Need to also check internal consistency of the analysis'
00233     /// beam requirements with those of the projections it uses.
00234   }

bool isCompatible ( PdgId  beam1,
PdgId  beam2 
) const [virtual, inherited]

Is this analysis able to run on the supplied pair of beams?

Todo:
Deprecate?

Definition at line 220 of file Analysis.cc.

References Analysis::beams().

00220                                                             {
00221     PdgIdPair beams(beam1, beam2);
00222     return isCompatible(beams);
00223   }

BinEdges logBinEdges ( size_t  nbins,
double  lower,
double  upper 
) [protected, inherited]

Get bin edges with logarithmic widths.

Definition at line 317 of file Analysis.cc.

Referenced by MC_ZZJETS::init(), MC_ZJETS::init(), MC_WWJETS::init(), MC_WJETS::init(), MC_PHOTONJETS::init(), MC_JetAnalysis::init(), MC_HJETS::init(), and MC_DIPHOTON::init().

00317                                                                          {
00318     assert(lower>0.0);
00319     assert(upper>lower);
00320     double loglower=log10(lower);
00321     double logupper=log10(upper);
00322     vector<double> binedges;
00323     double stepwidth=(logupper-loglower)/double(nbins);
00324     for (size_t i=0; i<=nbins; ++i) {
00325       binedges.push_back(pow(10.0, loglower+double(i)*stepwidth));
00326     }
00327     return binedges;
00328   }

string name (  )  const [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 131 of file Analysis.cc.

References Analysis::_defaultname, and Analysis::_info.

Referenced by Analysis::_cacheBinEdges(), Analysis::_cacheXAxisData(), Analysis::_makeHistoDir(), Analysis::binEdges(), Analysis::bookDataPointSet(), Analysis::bookHistogram1D(), Analysis::bookHistogram2D(), Analysis::bookProfile1D(), Analysis::crossSection(), Analysis::getLog(), Analysis::histoDir(), Analysis::normalize(), HistoHandler::registerAnalysisObject(), and Analysis::scale().

00131                               {
00132     if (_info && !_info->name().empty()) return _info->name();
00133     return _defaultname;
00134   }

bool needsCrossSection (  )  const [inherited]

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

Todo:
Deprecate, eventually

Definition at line 244 of file Analysis.cc.

References Analysis::_needsCrossSection.

00244                                          {
00245     return _needsCrossSection;
00246   }

void normalize ( AIDA::IHistogram2D *&  histo,
double  norm = 1.0 
) [inherited]

Normalize the given histogram, histo. After this call the histogram will have been transformed to a DataPointSet with the same name and path. It has the same effect as scale(histo, norm/sumOfWeights).

Parameters:
histo The histogram to be normalised.
norm The new area of the histogram.
Warning:
The old histogram will be deleted, and its pointer set to zero.

Definition at line 617 of file Analysis.cc.

References Log::ERROR, Analysis::getLog(), Analysis::name(), Analysis::scale(), Log::TRACE, Analysis::tree(), and Log::WARN.

00617                                                                 {
00618     if (!histo) {
00619       getLog() << Log::ERROR << "Failed to normalise histo=NULL in analysis "
00620                << name() << " (norm=" << norm << ")" << endl;
00621       return;
00622     }
00623     const string hpath = tree().findPath(dynamic_cast<const AIDA::IManagedObject&>(*histo));
00624     getLog() << Log::TRACE << "Normalizing histo " << hpath << " to " << norm << endl;
00625 
00626     double oldintg = 0.0;
00627     int nxBins = histo->xAxis().bins();
00628     int nyBins = histo->yAxis().bins();
00629     for (int ixBin = 0; ixBin != nxBins; ++ixBin)
00630       for (int iyBin = 0; iyBin != nyBins; ++iyBin) {
00631       // Leaving out factor of binWidth because AIDA's "height"
00632       // already includes a width factor.
00633     oldintg += histo->binHeight(ixBin, iyBin); // * histo->axis().binWidth(iBin);
00634     }
00635     if (oldintg == 0.0) {
00636       getLog() << Log::WARN << "Histo " << hpath
00637            << " has null integral during normalisation" << endl;
00638       return;
00639     }
00640 
00641     // Scale by the normalisation factor.
00642     scale(histo, norm/oldintg);
00643   }

void normalize ( AIDA::IHistogram1D *&  histo,
double  norm = 1.0 
) [inherited]

Normalize the given histogram, histo. After this call the histogram will have been transformed to a DataPointSet with the same name and path. It has the same effect as scale(histo, norm/sumOfWeights).

Parameters:
histo The histogram to be normalised.
norm The new area of the histogram.
Warning:
The old histogram will be deleted, and its pointer set to zero.

Definition at line 550 of file Analysis.cc.

References Log::ERROR, Analysis::getLog(), Analysis::name(), Analysis::scale(), Log::TRACE, Analysis::tree(), and Log::WARN.

Referenced by STAR_2008_S7869363::finalize(), OPAL_2001_S4553896::finalize(), OPAL_1998_S3780481::finalize(), H1_1994_S2919893::finalize(), ExampleAnalysis::finalize(), DELPHI_2002_069_CONF_603::finalize(), DELPHI_1995_S3137023::finalize(), D0_2010_S8671338::finalize(), D0_2009_S8320160::finalize(), D0_2008_S7554427::finalize(), D0_2008_S6879055::finalize(), D0_2007_S7075677::finalize(), D0_2004_S5992206::finalize(), D0_2001_S4674421::finalize(), D0_1996_S3324664::finalize(), D0_1996_S3214044::finalize(), CDF_2009_NOTE_9936::finalize(), CDF_2004_S5839831::finalize(), CDF_2002_S4796047::finalize(), CDF_2001_S4751469::finalize(), CDF_1997_S3541940::finalize(), CDF_1996_S3418421::finalize(), CDF_1996_S3349578::finalize(), CDF_1996_S3108457::finalize(), CDF_1994_S2952106::finalize(), CDF_1993_S2742446::finalize(), ATLAS_2010_CONF_2010_083::finalize(), ALICE_2010_S8625980::finalize(), ALICE_2010_S8624100::finalize(), ALEPH_2004_S5765862::finalize(), and ALEPH_1996_S3486095::finalize().

00550                                                                 {
00551     if (!histo) {
00552       getLog() << Log::ERROR << "Failed to normalise histo=NULL in analysis "
00553                << name() << " (norm=" << norm << ")" << endl;
00554       return;
00555     }
00556     const string hpath = tree().findPath(dynamic_cast<const AIDA::IManagedObject&>(*histo));
00557     getLog() << Log::TRACE << "Normalizing histo " << hpath << " to " << norm << endl;
00558 
00559     double oldintg = 0.0;
00560     int nBins = histo->axis().bins();
00561     for (int iBin = 0; iBin != nBins; ++iBin) {
00562       // Leaving out factor of binWidth because AIDA's "height" already includes a width factor.
00563       oldintg += histo->binHeight(iBin); // * histo->axis().binWidth(iBin);
00564     }
00565     if (oldintg == 0.0) {
00566       getLog() << Log::WARN << "Histo " << hpath << " has null integral during normalisation" << endl;
00567       return;
00568     }
00569 
00570     // Scale by the normalisation factor.
00571     scale(histo, norm/oldintg);
00572   }

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 113 of file Analysis.cc.

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

00113                                    {
00114     return handler().numEvents();
00115   }

vector< string > references (  )  const [virtual, inherited]

Journal, and preprint references.

Definition at line 180 of file Analysis.cc.

References Analysis::_info.

00180                                             {
00181     if (!_info) return vector<string>();
00182     return _info->references();
00183   }

const vector< PdgIdPair > & requiredBeams (  )  const [virtual, inherited]

Return the pair of incoming beams required by this analysis.

Definition at line 205 of file Analysis.cc.

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

Referenced by Analysis::isCompatible().

00205                                                          {
00206     return info().beams();
00207   }

string runInfo (  )  const [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 156 of file Analysis.cc.

References Analysis::_info.

00156                                  {
00157     if (!_info) return "NONE";
00158     return _info->runInfo();
00159   }

void scale ( AIDA::IHistogram2D *&  histo,
double  scale 
) [inherited]

Multiplicatively scale the given histogram, histo. After this call the histogram will have been transformed to a DataPointSet with the same name and path.

Parameters:
histo The histogram to be scaled.
scale The factor used to multiply the histogram bin heights.
Warning:
The old histogram will be deleted, and its pointer set to zero.

Definition at line 646 of file Analysis.cc.

References Analysis::datapointsetFactory(), Log::ERROR, Analysis::getLog(), Analysis::name(), Log::TRACE, and Analysis::tree().

00646                                                              {
00647     if (!histo) {
00648       getLog() << Log::ERROR << "Failed to scale histo=NULL in analysis "
00649            << name() << " (scale=" << scale << ")" << endl;
00650       return;
00651     }
00652     const string hpath =
00653       tree().findPath(dynamic_cast<const AIDA::IManagedObject&>(*histo));
00654     getLog() << Log::TRACE << "Scaling histo " << hpath << endl;
00655 
00656     vector<double> x, y, z, ex, ey, ez;
00657     for (size_t ix = 0, Nx = histo->xAxis().bins(); ix < Nx; ++ix)
00658       for (size_t iy = 0, Ny = histo->yAxis().bins(); iy < Ny; ++iy) {
00659     x.push_back(0.5 * (histo->xAxis().binLowerEdge(ix) +
00660                histo->xAxis().binUpperEdge(ix)));
00661     ex.push_back(histo->xAxis().binWidth(ix)*0.5);
00662     y.push_back(0.5 * (histo->yAxis().binLowerEdge(iy) +
00663                histo->yAxis().binUpperEdge(iy)));
00664     ey.push_back(histo->yAxis().binWidth(iy)*0.5);
00665 
00666     // "Bin height" is a misnomer in the AIDA spec: width is neglected.
00667     // We'd like to do this: y.push_back(histo->binHeight(i) * scale);
00668     z.push_back(histo->binHeight(ix, iy)*scale/
00669             (histo->xAxis().binWidth(ix)*histo->yAxis().binWidth(iy)));
00670     // "Bin error" is a misnomer in the AIDA spec: width is neglected.
00671     // We'd like to do this: ey.push_back(histo->binError(i) * scale);
00672     ez.push_back(histo->binError(ix, iy)*scale/
00673              (histo->xAxis().binWidth(ix)*histo->yAxis().binWidth(iy)));
00674     }
00675 
00676     string title = histo->title();
00677     string xtitle = histo->xtitle();
00678     string ytitle = histo->ytitle();
00679     string ztitle = histo->ztitle();
00680 
00681     tree().mkdir("/tmpnormalize");
00682     tree().mv(hpath, "/tmpnormalize");
00683 
00684     AIDA::IDataPointSet* dps =
00685       datapointsetFactory().createXYZ(hpath, title, x, y, z, ex, ey, ez);
00686     dps->setXTitle(xtitle);
00687     dps->setYTitle(ytitle);
00688     dps->setZTitle(ztitle);
00689 
00690     tree().rm(tree().findPath(dynamic_cast<AIDA::IManagedObject&>(*histo)));
00691     tree().rmdir("/tmpnormalize");
00692 
00693     // Set histo pointer to null - it can no longer be used.
00694     histo = 0;
00695   }

void scale ( AIDA::IHistogram1D *&  histo,
double  scale 
) [inherited]

Multiplicatively scale the given histogram, histo. After this call the histogram will have been transformed to a DataPointSet with the same name and path.

Parameters:
histo The histogram to be scaled.
scale The factor used to multiply the histogram bin heights.
Warning:
The old histogram will be deleted, and its pointer set to zero.

Definition at line 575 of file Analysis.cc.

References Analysis::datapointsetFactory(), Log::ERROR, Analysis::getLog(), Analysis::name(), Log::TRACE, and Analysis::tree().

Referenced by ATLAS_2010_CONF_2010_081::analyze(), UA5_1989_S1926373::finalize(), UA5_1987_S1640666::finalize(), UA5_1986_S1583476::finalize(), UA5_1982_S875503::finalize(), UA1_1990_S2044935::finalize(), STAR_2006_S6870392::finalize(), STAR_2006_S6860818::finalize(), STAR_2006_S6500200::finalize(), SFM_1984_S1178091::finalize(), PDG_HADRON_MULTIPLICITIES_RATIOS::finalize(), PDG_HADRON_MULTIPLICITIES::finalize(), OPAL_2004_S6132243::finalize(), OPAL_1998_S3780481::finalize(), MC_ZZJETS::finalize(), MC_ZJETS::finalize(), MC_WWJETS::finalize(), MC_WJETS::finalize(), MC_TTBAR::finalize(), MC_PHOTONJETS::finalize(), MC_JetAnalysis::finalize(), MC_HJETS::finalize(), MC_GENERIC::finalize(), MC_DIPHOTON::finalize(), LHCB_2010_S8758301::finalize(), JADE_OPAL_2000_S4300807::finalize(), H1_2000_S4129130::finalize(), H1_1994_S2919893::finalize(), E735_1998_S3905616::finalize(), D0_2010_S8570965::finalize(), D0_2009_S8349509::finalize(), D0_2009_S8202443::finalize(), D0_2008_S7863608::finalize(), D0_2008_S7719523::finalize(), D0_2008_S7662670::finalize(), D0_2006_S6438750::finalize(), D0_2000_S4480767::finalize(), CDF_2009_S8436959::finalize(), CDF_2009_S8383952::finalize(), CDF_2009_S8233977::finalize(), CDF_2008_S8093652::finalize(), CDF_2008_S7540469::finalize(), CDF_2007_S7057202::finalize(), CDF_2006_S6450792::finalize(), CDF_2005_S6080774::finalize(), CDF_2001_S4563131::finalize(), CDF_2000_S4266730::finalize(), CDF_2000_S4155203::finalize(), CDF_1998_S3618439::finalize(), CDF_1990_S2089246::finalize(), CDF_1988_S1865951::finalize(), ATLAS_2010_S8591806::finalize(), ATLAS_2010_CONF_2010_049::finalize(), ATLAS_2010_CONF_2010_031::finalize(), ALICE_2010_S8706239::finalize(), ALICE_2010_S8625980::finalize(), ALEPH_2004_S5765862::finalize(), ALEPH_1996_S3486095::finalize(), ALEPH_1996_S3196992::finalize(), ALEPH_1991_S2435284::finalize(), Analysis::normalize(), and BinnedHistogram< T >::scale().

00575                                                              {
00576     if (!histo) {
00577       getLog() << Log::ERROR << "Failed to scale histo=NULL in analysis "
00578           << name() << " (scale=" << scale << ")" << endl;
00579       return;
00580     }
00581     const string hpath = tree().findPath(dynamic_cast<const AIDA::IManagedObject&>(*histo));
00582     getLog() << Log::TRACE << "Scaling histo " << hpath << endl;
00583 
00584     vector<double> x, y, ex, ey;
00585     for (size_t i = 0, N = histo->axis().bins(); i < N; ++i) {
00586       x.push_back(0.5 * (histo->axis().binLowerEdge(i) + histo->axis().binUpperEdge(i)));
00587       ex.push_back(histo->axis().binWidth(i)*0.5);
00588 
00589       // "Bin height" is a misnomer in the AIDA spec: width is neglected.
00590       // We'd like to do this: y.push_back(histo->binHeight(i) * scale);
00591       y.push_back(histo->binHeight(i)*scale/histo->axis().binWidth(i));
00592 
00593       // "Bin error" is a misnomer in the AIDA spec: width is neglected.
00594       // We'd like to do this: ey.push_back(histo->binError(i) * scale);
00595       ey.push_back(histo->binError(i)*scale/histo->axis().binWidth(i));
00596     }
00597 
00598     string title = histo->title();
00599     string xtitle = histo->xtitle();
00600     string ytitle = histo->ytitle();
00601 
00602     tree().mkdir("/tmpnormalize");
00603     tree().mv(hpath, "/tmpnormalize");
00604 
00605     AIDA::IDataPointSet* dps = datapointsetFactory().createXY(hpath, title, x, y, ex, ey);
00606     dps->setXTitle(xtitle);
00607     dps->setYTitle(ytitle);
00608 
00609     tree().rm(tree().findPath(dynamic_cast<AIDA::IManagedObject&>(*histo)));
00610     tree().rmdir("/tmpnormalize");
00611 
00612     // Set histo pointer to null - it can no longer be used.
00613     histo = 0;
00614   }

Analysis & setBeams ( PdgId  beam1,
PdgId  beam2 
) [protected, inherited]

Set the colliding beam pair.

Deprecated:
Use .info file and AnalysisInfo class instead
Todo:
Deprecate?

Definition at line 211 of file Analysis.cc.

References Analysis::_info.

Referenced by ALEPH_1991_S2435284::ALEPH_1991_S2435284(), ALEPH_1996_S3196992::ALEPH_1996_S3196992(), ALEPH_1996_S3486095::ALEPH_1996_S3486095(), ALEPH_2004_S5765862::ALEPH_2004_S5765862(), ALICE_2010_S8624100::ALICE_2010_S8624100(), ALICE_2010_S8625980::ALICE_2010_S8625980(), ALICE_2010_S8706239::ALICE_2010_S8706239(), ATLAS_2010_S8817804::ATLAS_2010_S8817804(), BELLE_2006_S6265367::BELLE_2006_S6265367(), CDF_1988_S1865951::CDF_1988_S1865951(), CDF_1990_S2089246::CDF_1990_S2089246(), CDF_1991_S2313472::CDF_1991_S2313472(), CDF_1993_S2742446::CDF_1993_S2742446(), CDF_1994_S2952106::CDF_1994_S2952106(), CDF_1996_S3108457::CDF_1996_S3108457(), CDF_1996_S3349578::CDF_1996_S3349578(), CDF_1996_S3418421::CDF_1996_S3418421(), CDF_1997_S3541940::CDF_1997_S3541940(), CDF_1998_S3618439::CDF_1998_S3618439(), CDF_2000_S4155203::CDF_2000_S4155203(), CDF_2000_S4266730::CDF_2000_S4266730(), CDF_2001_S4517016::CDF_2001_S4517016(), CDF_2001_S4563131::CDF_2001_S4563131(), CDF_2001_S4751469::CDF_2001_S4751469(), CDF_2002_S4796047::CDF_2002_S4796047(), CDF_2004_S5839831::CDF_2004_S5839831(), CDF_2005_S6080774::CDF_2005_S6080774(), CDF_2005_S6217184::CDF_2005_S6217184(), CDF_2006_S6450792::CDF_2006_S6450792(), CDF_2006_S6653332::CDF_2006_S6653332(), CDF_2007_S7057202::CDF_2007_S7057202(), CDF_2008_LEADINGJETS::CDF_2008_LEADINGJETS(), CDF_2008_NOTE_9351::CDF_2008_NOTE_9351(), CDF_2008_S7540469::CDF_2008_S7540469(), CDF_2008_S7541902::CDF_2008_S7541902(), CDF_2008_S7782535::CDF_2008_S7782535(), CDF_2008_S7828950::CDF_2008_S7828950(), CDF_2008_S8093652::CDF_2008_S8093652(), CDF_2008_S8095620::CDF_2008_S8095620(), CDF_2009_NOTE_9936::CDF_2009_NOTE_9936(), CDF_2009_S8057893::CDF_2009_S8057893::CDF_2009_S8057893(), CDF_2009_S8233977::CDF_2009_S8233977(), CDF_2009_S8383952::CDF_2009_S8383952(), CDF_2009_S8436959::CDF_2009_S8436959(), D0_1996_S3214044::D0_1996_S3214044(), D0_1996_S3324664::D0_1996_S3324664(), D0_1998_S3711838::D0_1998_S3711838(), D0_2001_S4674421::D0_2001_S4674421(), D0_2004_S5992206::D0_2004_S5992206(), D0_2006_S6438750::D0_2006_S6438750(), D0_2007_S7075677::D0_2007_S7075677(), D0_2008_S6879055::D0_2008_S6879055(), D0_2008_S7554427::D0_2008_S7554427(), D0_2008_S7662670::D0_2008_S7662670(), D0_2008_S7719523::D0_2008_S7719523(), D0_2008_S7837160::D0_2008_S7837160(), D0_2008_S7863608::D0_2008_S7863608(), D0_2009_S8202443::D0_2009_S8202443(), D0_2009_S8320160::D0_2009_S8320160(), D0_2009_S8349509::D0_2009_S8349509(), D0_2010_S8566488::D0_2010_S8566488(), D0_2010_S8570965::D0_2010_S8570965(), D0_2010_S8671338::D0_2010_S8671338(), DELPHI_1995_S3137023::DELPHI_1995_S3137023(), DELPHI_2002_069_CONF_603::DELPHI_2002_069_CONF_603(), E735_1998_S3905616::E735_1998_S3905616(), H1_1994_S2919893::H1_1994_S2919893(), H1_1995_S3167097::H1_1995_S3167097(), H1_2000_S4129130::H1_2000_S4129130(), JADE_OPAL_2000_S4300807::JADE_OPAL_2000_S4300807(), LHCB_2010_S8758301::LHCB_2010_S8758301(), OPAL_1993_S2692198::OPAL_1993_S2692198(), OPAL_1998_S3780481::OPAL_1998_S3780481(), OPAL_2001_S4553896::OPAL_2001_S4553896(), PDG_HADRON_MULTIPLICITIES::PDG_HADRON_MULTIPLICITIES(), PDG_HADRON_MULTIPLICITIES_RATIOS::PDG_HADRON_MULTIPLICITIES_RATIOS(), SFM_1984_S1178091::SFM_1984_S1178091(), STAR_2006_S6500200::STAR_2006_S6500200(), STAR_2006_S6860818::STAR_2006_S6860818(), STAR_2006_S6870392::STAR_2006_S6870392(), STAR_2008_S7869363::STAR_2008_S7869363(), STAR_2008_S7993412::STAR_2008_S7993412(), STAR_2009_UE_HELEN::STAR_2009_UE_HELEN(), UA1_1990_S2044935::UA1_1990_S2044935(), UA5_1986_S1583476::UA5_1986_S1583476(), UA5_1987_S1640666::UA5_1987_S1640666(), UA5_1988_S1867512::UA5_1988_S1867512(), UA5_1989_S1926373::UA5_1989_S1926373(), and ZEUS_2001_S4815815::ZEUS_2001_S4815815().

00211                                                        {
00212     assert(_info.get() != 0);
00213     _info->_beams.clear();
00214     _info->_beams += make_pair(beam1, beam2);
00215     return *this;
00216   }

Analysis & setCrossSection ( double  xs  )  [inherited]

Set the cross section from the generator.

Definition at line 237 of file Analysis.cc.

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

00237                                                {
00238     _crossSection = xs;
00239     _gotCrossSection = true;
00240     return *this;
00241   }

Analysis & setNeedsCrossSection ( bool  needed  )  [protected, inherited]

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

Todo:
Deprecate, eventually

Definition at line 249 of file Analysis.cc.

References Analysis::_needsCrossSection.

Referenced by ALICE_2010_S8624100::ALICE_2010_S8624100(), ALICE_2010_S8625980::ALICE_2010_S8625980(), ALICE_2010_S8706239::ALICE_2010_S8706239(), ATLAS_2010_CONF_2010_031::ATLAS_2010_CONF_2010_031(), ATLAS_2010_CONF_2010_049::ATLAS_2010_CONF_2010_049(), ATLAS_2010_CONF_2010_081::ATLAS_2010_CONF_2010_081(), ATLAS_2010_CONF_2010_083::ATLAS_2010_CONF_2010_083(), ATLAS_2010_S8591806::ATLAS_2010_S8591806(), ATLAS_2010_S8817804::ATLAS_2010_S8817804(), CDF_1988_S1865951::CDF_1988_S1865951(), CDF_1991_S2313472::CDF_1991_S2313472(), CDF_1993_S2742446::CDF_1993_S2742446(), CDF_1996_S3108457::CDF_1996_S3108457(), CDF_1998_S3618439::CDF_1998_S3618439(), CDF_2000_S4155203::CDF_2000_S4155203(), CDF_2000_S4266730::CDF_2000_S4266730(), CDF_2001_S4517016::CDF_2001_S4517016(), CDF_2001_S4563131::CDF_2001_S4563131(), CDF_2005_S6080774::CDF_2005_S6080774(), CDF_2006_S6450792::CDF_2006_S6450792(), CDF_2006_S6653332::CDF_2006_S6653332(), CDF_2007_S7057202::CDF_2007_S7057202(), CDF_2008_S7540469::CDF_2008_S7540469(), CDF_2008_S7541902::CDF_2008_S7541902(), CDF_2008_S7828950::CDF_2008_S7828950(), CDF_2008_S8093652::CDF_2008_S8093652(), CDF_2009_NOTE_9936::CDF_2009_NOTE_9936(), CDF_2009_S8233977::CDF_2009_S8233977(), CDF_2009_S8383952::CDF_2009_S8383952(), CDF_2009_S8436959::CDF_2009_S8436959(), D0_1996_S3214044::D0_1996_S3214044(), D0_1996_S3324664::D0_1996_S3324664(), D0_1998_S3711838::D0_1998_S3711838(), D0_2000_S4480767::D0_2000_S4480767(), D0_2001_S4674421::D0_2001_S4674421(), D0_2006_S6438750::D0_2006_S6438750(), D0_2008_S7662670::D0_2008_S7662670(), D0_2008_S7719523::D0_2008_S7719523(), D0_2008_S7863608::D0_2008_S7863608(), D0_2010_S8566488::D0_2010_S8566488(), D0_2010_S8570965::D0_2010_S8570965(), LHCB_2010_S8758301::LHCB_2010_S8758301(), MC_DIPHOTON::MC_DIPHOTON(), MC_HJETS::MC_HJETS(), MC_JetAnalysis::MC_JetAnalysis(), MC_JETS::MC_JETS(), MC_PHOTONJETS::MC_PHOTONJETS(), MC_WJETS::MC_WJETS(), MC_WWJETS::MC_WWJETS(), MC_ZJETS::MC_ZJETS(), MC_ZZJETS::MC_ZZJETS(), OPAL_2001_S4553896::OPAL_2001_S4553896(), STAR_2006_S6870392::STAR_2006_S6870392(), STAR_2008_S7869363::STAR_2008_S7869363(), and UA1_1990_S2044935::UA1_1990_S2044935().

00249                                                       {
00250     _needsCrossSection = needed;
00251     return *this;
00252   }

string spiresId (  )  const [virtual, inherited]

Get a the SPIRES/Inspire ID code for this analysis.

Definition at line 136 of file Analysis.cc.

References Analysis::_info.

00136                                   {
00137     if (!_info) return "NONE";
00138     return _info->spiresId();
00139   }

double sqrtS (  )  const [inherited]
string status (  )  const [virtual, inherited]

Whether this analysis is trusted (in any way!).

Definition at line 195 of file Analysis.cc.

References Analysis::_info.

00195                                 {
00196     if (!_info) return "UNVALIDATED";
00197     return _info->status();
00198   }

string summary (  )  const [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 146 of file Analysis.cc.

References Analysis::_info.

00146                                  {
00147     if (!_info) return "NONE";
00148     return _info->summary();
00149   }

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 118 of file Analysis.cc.

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

Referenced by Analysis::crossSectionPerEvent(), STAR_2006_S6870392::finalize(), STAR_2006_S6860818::finalize(), STAR_2006_S6500200::finalize(), PDG_HADRON_MULTIPLICITIES::finalize(), OPAL_1998_S3780481::finalize(), OPAL_1993_S2692198::finalize(), MC_ZZJETS::finalize(), MC_ZJETS::finalize(), MC_WWJETS::finalize(), MC_WJETS::finalize(), MC_TTBAR::finalize(), MC_JetAnalysis::finalize(), MC_HJETS::finalize(), MC_GENERIC::finalize(), MC_DIPHOTON::finalize(), JADE_OPAL_2000_S4300807::finalize(), DELPHI_1995_S3137023::finalize(), D0_2010_S8570965::finalize(), D0_2010_S8566488::finalize(), D0_2008_S7863608::finalize(), D0_2008_S7719523::finalize(), D0_2008_S7662670::finalize(), D0_2006_S6438750::finalize(), D0_2000_S4480767::finalize(), CDF_2009_S8436959::finalize(), CDF_2009_S8383952::finalize(), CDF_2009_S8233977::finalize(), CDF_2008_S8093652::finalize(), CDF_2008_S7828950::finalize(), CDF_2008_S7541902::finalize(), CDF_2008_S7540469::finalize(), CDF_2006_S6653332::finalize(), CDF_2006_S6450792::finalize(), CDF_2005_S6080774::finalize(), CDF_2001_S4563131::finalize(), CDF_2001_S4517016::finalize(), CDF_2000_S4266730::finalize(), CDF_2000_S4155203::finalize(), CDF_1998_S3618439::finalize(), ATLAS_2010_CONF_2010_049::finalize(), ALEPH_2004_S5765862::finalize(), ALEPH_1996_S3486095::finalize(), ALEPH_1996_S3196992::finalize(), and ALEPH_1991_S2435284::finalize().

00118                                       {
00119     return handler().sumOfWeights();
00120   }

vector< string > todos (  )  const [virtual, inherited]

Any work to be done on this analysis.

Definition at line 200 of file Analysis.cc.

References Analysis::_info.

00200                                        {
00201     if (!_info) return vector<string>();
00202     return _info->todos();
00203   }

ITree & tree (  )  [protected, inherited]

Access the AIDA tree of the controlling AnalysisHandler object.

Definition at line 60 of file Analysis.cc.

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

Referenced by Analysis::_makeHistoDir(), Analysis::normalize(), and Analysis::scale().

00060                         {
00061     return handler().tree();
00062   }

string year (  )  const [virtual, inherited]

When the original experimental analysis was published.

When the refereed paper on which this is based was published, according to SPIRES.

Definition at line 175 of file Analysis.cc.

References Analysis::_info.

00175                               {
00176     if (!_info) return "NONE";
00177     return _info->year();
00178   }


Friends And Related Function Documentation

friend class Projectionhandler [friend, inherited]

Definition at line 38 of file ProjectionApplier.hh.


Member Data Documentation

bool _allowProjReg [protected, inherited]

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

Definition at line 157 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 465 of file Analysis.hh.

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

AIDA::IHistogram1D* _h_central_opp_cross_section [private]
AIDA::IHistogram1D* _h_central_same_cross_section [private]
AIDA::IHistogram1D* _h_forward_opp_cross_section [private]
AIDA::IHistogram1D* _h_forward_same_cross_section [private]
shared_ptr<AnalysisInfo> _info [protected, inherited]

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