D0_1996_S3214044 Class Reference

Inheritance diagram for D0_1996_S3214044:

Inheritance graph
[legend]

Collaboration diagram for D0_1996_S3214044:

Collaboration graph
[legend]

List of all members.


Detailed Description

D0 topological distributions of 3- and 4-jet events.

Definition at line 15 of file D0_1996_S3214044.cc.


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 scale (AIDA::IHistogram1D *&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_1996_S3214044 ()
 Constructor.
Analysis methods
void init ()
 Book histograms.
void analyze (const Event &event)
void 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="")
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 Member Functions

Helper functions
void _threeJetAnalysis (const Jets &jets, const double &weight)
void _fourJetAnalysis (const Jets &jets, const double &weight)
double _safeMass (const FourMomentum &p)

Private Attributes

Histograms
AIDA::IHistogram1D * _h_3j_x3
AIDA::IHistogram1D * _h_3j_x5
AIDA::IHistogram1D * _h_3j_costheta3
AIDA::IHistogram1D * _h_3j_psi
AIDA::IHistogram1D * _h_3j_mu34
AIDA::IHistogram1D * _h_3j_mu35
AIDA::IHistogram1D * _h_3j_mu45
AIDA::IHistogram1D * _h_4j_x3
AIDA::IHistogram1D * _h_4j_x4
AIDA::IHistogram1D * _h_4j_x5
AIDA::IHistogram1D * _h_4j_x6
AIDA::IHistogram1D * _h_4j_costheta3
AIDA::IHistogram1D * _h_4j_costheta4
AIDA::IHistogram1D * _h_4j_costheta5
AIDA::IHistogram1D * _h_4j_costheta6
AIDA::IHistogram1D * _h_4j_cosomega34
AIDA::IHistogram1D * _h_4j_cosomega35
AIDA::IHistogram1D * _h_4j_cosomega36
AIDA::IHistogram1D * _h_4j_cosomega45
AIDA::IHistogram1D * _h_4j_cosomega46
AIDA::IHistogram1D * _h_4j_cosomega56
AIDA::IHistogram1D * _h_4j_mu34
AIDA::IHistogram1D * _h_4j_mu35
AIDA::IHistogram1D * _h_4j_mu36
AIDA::IHistogram1D * _h_4j_mu45
AIDA::IHistogram1D * _h_4j_mu46
AIDA::IHistogram1D * _h_4j_mu56
AIDA::IHistogram1D * _h_4j_theta_BZ
AIDA::IHistogram1D * _h_4j_costheta_NR

Friends

class Projectionhandler

Constructor & Destructor Documentation

D0_1996_S3214044 (  )  [inline]

Constructor.

Definition at line 22 of file D0_1996_S3214044.cc.

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

00022                        : Analysis("D0_1996_S3214044")
00023     {
00024       setBeams(PROTON, ANTIPROTON);
00025       setNeedsCrossSection(false);
00026     }


Member Function Documentation

void init (  )  [inline, virtual]

Book histograms.

Todo:
Use correct jet algorithm

Implements Analysis.

Definition at line 33 of file D0_1996_S3214044.cc.

References D0_1996_S3214044::_h_3j_costheta3, D0_1996_S3214044::_h_3j_mu34, D0_1996_S3214044::_h_3j_mu35, D0_1996_S3214044::_h_3j_mu45, D0_1996_S3214044::_h_3j_psi, D0_1996_S3214044::_h_3j_x3, D0_1996_S3214044::_h_3j_x5, D0_1996_S3214044::_h_4j_cosomega34, D0_1996_S3214044::_h_4j_cosomega35, D0_1996_S3214044::_h_4j_cosomega36, D0_1996_S3214044::_h_4j_cosomega45, D0_1996_S3214044::_h_4j_cosomega46, D0_1996_S3214044::_h_4j_cosomega56, D0_1996_S3214044::_h_4j_costheta3, D0_1996_S3214044::_h_4j_costheta4, D0_1996_S3214044::_h_4j_costheta5, D0_1996_S3214044::_h_4j_costheta6, D0_1996_S3214044::_h_4j_costheta_NR, D0_1996_S3214044::_h_4j_mu34, D0_1996_S3214044::_h_4j_mu35, D0_1996_S3214044::_h_4j_mu36, D0_1996_S3214044::_h_4j_mu45, D0_1996_S3214044::_h_4j_mu46, D0_1996_S3214044::_h_4j_mu56, D0_1996_S3214044::_h_4j_theta_BZ, D0_1996_S3214044::_h_4j_x3, D0_1996_S3214044::_h_4j_x4, D0_1996_S3214044::_h_4j_x5, D0_1996_S3214044::_h_4j_x6, ProjectionApplier::addProjection(), Analysis::bookHistogram1D(), and FastJets::D0ILCONE.

00033                 {
00034       const FinalState fs;
00035       addProjection(fs, "FS");
00036       /// @todo Use correct jet algorithm
00037       addProjection(FastJets(fs, FastJets::D0ILCONE, 0.7), "ConeJets");
00038 
00039       _h_3j_x3 = bookHistogram1D(1, 1, 1);
00040       _h_3j_x5 = bookHistogram1D(2, 1, 1);
00041       _h_3j_costheta3 = bookHistogram1D(3, 1, 1);
00042       _h_3j_psi = bookHistogram1D(4, 1, 1);
00043       _h_3j_mu34 = bookHistogram1D(5, 1, 1);
00044       _h_3j_mu35 = bookHistogram1D(6, 1, 1);
00045       _h_3j_mu45 = bookHistogram1D(7, 1, 1);
00046 
00047       _h_4j_x3 = bookHistogram1D(8, 1, 1);
00048       _h_4j_x4 = bookHistogram1D(9, 1, 1);
00049       _h_4j_x5 = bookHistogram1D(10, 1, 1);
00050       _h_4j_x6 = bookHistogram1D(11, 1, 1);
00051       _h_4j_costheta3 = bookHistogram1D(12, 1, 1);
00052       _h_4j_costheta4 = bookHistogram1D(13, 1, 1);
00053       _h_4j_costheta5 = bookHistogram1D(14, 1, 1);
00054       _h_4j_costheta6 = bookHistogram1D(15, 1, 1);
00055       _h_4j_cosomega34 = bookHistogram1D(16, 1, 1);
00056       _h_4j_cosomega35 = bookHistogram1D(17, 1, 1);
00057       _h_4j_cosomega36 = bookHistogram1D(18, 1, 1);
00058       _h_4j_cosomega45 = bookHistogram1D(19, 1, 1);
00059       _h_4j_cosomega46 = bookHistogram1D(20, 1, 1);
00060       _h_4j_cosomega56 = bookHistogram1D(21, 1, 1);
00061       _h_4j_mu34 = bookHistogram1D(22, 1, 1);
00062       _h_4j_mu35 = bookHistogram1D(23, 1, 1);
00063       _h_4j_mu36 = bookHistogram1D(24, 1, 1);
00064       _h_4j_mu45 = bookHistogram1D(25, 1, 1);
00065       _h_4j_mu46 = bookHistogram1D(26, 1, 1);
00066       _h_4j_mu56 = bookHistogram1D(27, 1, 1);
00067       _h_4j_theta_BZ = bookHistogram1D(28, 1, 1);
00068       _h_4j_costheta_NR = bookHistogram1D(29, 1, 1);
00069 
00070     }

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 73 of file D0_1996_S3214044.cc.

References D0_1996_S3214044::_fourJetAnalysis(), D0_1996_S3214044::_threeJetAnalysis(), Rivet::deltaR(), Rivet::GeV, Rivet::momentum(), and vetoEvent.

00073                                      {
00074       const double weight = event.weight();
00075 
00076       Jets jets_in;
00077       foreach (const Jet& jet, applyProjection<FastJets>(event, "ConeJets").jetsByEt(20.0*GeV)) {
00078         if (fabs(jet.momentum().eta()) < 3.0) {
00079           jets_in.push_back(jet);
00080         }
00081       }
00082 
00083       Jets jets_isolated;
00084       for (size_t i = 0; i < jets_in.size(); ++i) {
00085         bool isolated=true;
00086         for (size_t j = 0; j < jets_in.size(); ++j) {
00087           if (i != j && deltaR(jets_in[i].momentum(), jets_in[j].momentum()) < 1.4) {
00088             isolated = false;
00089             break;
00090           }
00091         }
00092         if (isolated) {
00093           jets_isolated.push_back(jets_in[i]);
00094         }
00095       }
00096 
00097       if (jets_isolated.size() == 0 || jets_isolated[0].momentum().Et() < 60.0*GeV) {
00098         vetoEvent;
00099       }
00100 
00101       if (jets_isolated.size() > 2) _threeJetAnalysis(jets_isolated, weight);
00102       if (jets_isolated.size() > 3) _fourJetAnalysis(jets_isolated, weight);
00103     }

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.

Implements Analysis.

Definition at line 106 of file D0_1996_S3214044.cc.

References D0_1996_S3214044::_h_3j_costheta3, D0_1996_S3214044::_h_3j_mu34, D0_1996_S3214044::_h_3j_mu35, D0_1996_S3214044::_h_3j_mu45, D0_1996_S3214044::_h_3j_psi, D0_1996_S3214044::_h_3j_x3, D0_1996_S3214044::_h_3j_x5, D0_1996_S3214044::_h_4j_cosomega34, D0_1996_S3214044::_h_4j_cosomega35, D0_1996_S3214044::_h_4j_cosomega36, D0_1996_S3214044::_h_4j_cosomega45, D0_1996_S3214044::_h_4j_cosomega46, D0_1996_S3214044::_h_4j_cosomega56, D0_1996_S3214044::_h_4j_costheta3, D0_1996_S3214044::_h_4j_costheta4, D0_1996_S3214044::_h_4j_costheta5, D0_1996_S3214044::_h_4j_costheta6, D0_1996_S3214044::_h_4j_costheta_NR, D0_1996_S3214044::_h_4j_mu34, D0_1996_S3214044::_h_4j_mu35, D0_1996_S3214044::_h_4j_mu36, D0_1996_S3214044::_h_4j_mu45, D0_1996_S3214044::_h_4j_mu46, D0_1996_S3214044::_h_4j_mu56, D0_1996_S3214044::_h_4j_theta_BZ, D0_1996_S3214044::_h_4j_x3, D0_1996_S3214044::_h_4j_x4, D0_1996_S3214044::_h_4j_x5, D0_1996_S3214044::_h_4j_x6, and Analysis::normalize().

00106                     {
00107       normalize(_h_3j_x3, 1.0);
00108       normalize(_h_3j_x5, 1.0);
00109       normalize(_h_3j_costheta3, 1.0);
00110       normalize(_h_3j_psi, 1.0);
00111       normalize(_h_3j_mu34, 1.0);
00112       normalize(_h_3j_mu35, 1.0);
00113       normalize(_h_3j_mu45, 1.0);
00114       normalize(_h_4j_x3, 1.0);
00115       normalize(_h_4j_x4, 1.0);
00116       normalize(_h_4j_x5, 1.0);
00117       normalize(_h_4j_x6, 1.0);
00118       normalize(_h_4j_costheta3, 1.0);
00119       normalize(_h_4j_costheta4, 1.0);
00120       normalize(_h_4j_costheta5, 1.0);
00121       normalize(_h_4j_costheta6, 1.0);
00122       normalize(_h_4j_cosomega34, 1.0);
00123       normalize(_h_4j_cosomega35, 1.0);
00124       normalize(_h_4j_cosomega36, 1.0);
00125       normalize(_h_4j_cosomega45, 1.0);
00126       normalize(_h_4j_cosomega46, 1.0);
00127       normalize(_h_4j_cosomega56, 1.0);
00128       normalize(_h_4j_mu34, 1.0);
00129       normalize(_h_4j_mu35, 1.0);
00130       normalize(_h_4j_mu36, 1.0);
00131       normalize(_h_4j_mu45, 1.0);
00132       normalize(_h_4j_mu46, 1.0);
00133       normalize(_h_4j_mu56, 1.0);
00134       normalize(_h_4j_theta_BZ, 1.0);
00135       normalize(_h_4j_costheta_NR, 1.0);
00136     }

void _threeJetAnalysis ( const Jets &  jets,
const double &  weight 
) [inline, private]

Definition at line 146 of file D0_1996_S3214044.cc.

References D0_1996_S3214044::_h_3j_costheta3, D0_1996_S3214044::_h_3j_mu34, D0_1996_S3214044::_h_3j_mu35, D0_1996_S3214044::_h_3j_mu45, D0_1996_S3214044::_h_3j_psi, D0_1996_S3214044::_h_3j_x3, D0_1996_S3214044::_h_3j_x5, D0_1996_S3214044::_safeMass(), FourMomentum::boostVector(), Vector3::cross(), Rivet::degree, Vector3::dot(), FourMomentum::E(), Rivet::GeV, Vector::mod(), Rivet::momentum(), and FourVector::vector3().

Referenced by D0_1996_S3214044::analyze().

00146                                                                    {
00147       // >=3 jet events
00148       FourMomentum jjj(jets[0].momentum()+jets[1].momentum()+jets[2].momentum());
00149       const double sqrts = _safeMass(jjj);
00150       if (sqrts<200*GeV) {
00151         return;
00152       }
00153 
00154       LorentzTransform cms_boost(-jjj.boostVector());
00155       vector<FourMomentum> jets_boosted;
00156       foreach (Jet jet, jets) {
00157         jets_boosted.push_back(cms_boost.transform(jet.momentum()));
00158       }
00159       std::sort(jets_boosted.begin(), jets_boosted.end(), FourMomentum::byEDescending());
00160       FourMomentum p3(jets_boosted[0]);
00161       FourMomentum p4(jets_boosted[1]);
00162       FourMomentum p5(jets_boosted[2]);
00163 
00164       Vector3 beam1(0.0, 0.0, 1.0);
00165       Vector3 p1xp3 = beam1.cross(p3.vector3());
00166       Vector3 p4xp5 = p4.vector3().cross(p5.vector3());
00167       const double cospsi = p1xp3.dot(p4xp5)/p1xp3.mod()/p4xp5.mod();
00168 
00169       _h_3j_x3->fill(2.0*p3.E()/sqrts, weight);
00170       _h_3j_x5->fill(2.0*p5.E()/sqrts, weight);
00171       _h_3j_costheta3->fill(fabs(cos(p3.theta())), weight);
00172       _h_3j_psi->fill(acos(cospsi)/degree, weight);
00173       _h_3j_mu34->fill(_safeMass(FourMomentum(p3+p4))/sqrts, weight);
00174       _h_3j_mu35->fill(_safeMass(FourMomentum(p3+p5))/sqrts, weight);
00175       _h_3j_mu45->fill(_safeMass(FourMomentum(p4+p5))/sqrts, weight);
00176     }

void _fourJetAnalysis ( const Jets &  jets,
const double &  weight 
) [inline, private]

Definition at line 179 of file D0_1996_S3214044.cc.

References D0_1996_S3214044::_h_4j_cosomega34, D0_1996_S3214044::_h_4j_cosomega35, D0_1996_S3214044::_h_4j_cosomega36, D0_1996_S3214044::_h_4j_cosomega45, D0_1996_S3214044::_h_4j_cosomega46, D0_1996_S3214044::_h_4j_cosomega56, D0_1996_S3214044::_h_4j_costheta3, D0_1996_S3214044::_h_4j_costheta4, D0_1996_S3214044::_h_4j_costheta5, D0_1996_S3214044::_h_4j_costheta6, D0_1996_S3214044::_h_4j_costheta_NR, D0_1996_S3214044::_h_4j_mu34, D0_1996_S3214044::_h_4j_mu35, D0_1996_S3214044::_h_4j_mu36, D0_1996_S3214044::_h_4j_mu45, D0_1996_S3214044::_h_4j_mu46, D0_1996_S3214044::_h_4j_mu56, D0_1996_S3214044::_h_4j_theta_BZ, D0_1996_S3214044::_h_4j_x3, D0_1996_S3214044::_h_4j_x4, D0_1996_S3214044::_h_4j_x5, D0_1996_S3214044::_h_4j_x6, D0_1996_S3214044::_safeMass(), FourVector::angle(), FourMomentum::boostVector(), Vector3::cross(), Rivet::degree, Rivet::dot(), Vector3::dot(), FourMomentum::E(), Rivet::GeV, Rivet::mod(), Vector::mod(), Rivet::momentum(), FourVector::theta(), and FourVector::vector3().

Referenced by D0_1996_S3214044::analyze().

00179                                                                   {
00180       // >=4 jet events
00181       FourMomentum jjjj(jets[0].momentum() + jets[1].momentum() + jets[2].momentum()+ jets[3].momentum());
00182       const double sqrts = _safeMass(jjjj);
00183       if (sqrts < 200*GeV) return;
00184 
00185       LorentzTransform cms_boost(-jjjj.boostVector());
00186       vector<FourMomentum> jets_boosted;
00187       foreach (Jet jet, jets) {
00188         jets_boosted.push_back(cms_boost.transform(jet.momentum()));
00189       }
00190       sort(jets_boosted.begin(), jets_boosted.end(), FourMomentum::byEDescending());
00191       FourMomentum p3(jets_boosted[0]);
00192       FourMomentum p4(jets_boosted[1]);
00193       FourMomentum p5(jets_boosted[2]);
00194       FourMomentum p6(jets_boosted[3]);
00195 
00196       Vector3 p3xp4 = p3.vector3().cross(p4.vector3());
00197       Vector3 p5xp6 = p5.vector3().cross(p6.vector3());
00198       const double costheta_BZ = p3xp4.dot(p5xp6)/p3xp4.mod()/p5xp6.mod();
00199       const double costheta_NR = (p3.vector3()-p4.vector3()).dot(p5.vector3()-p6.vector3())/
00200         (p3.vector3()-p4.vector3()).mod()/(p5.vector3()-p6.vector3()).mod();
00201 
00202       _h_4j_x3->fill(2.0*p3.E()/sqrts, weight);
00203       _h_4j_x4->fill(2.0*p4.E()/sqrts, weight);
00204       _h_4j_x5->fill(2.0*p5.E()/sqrts, weight);
00205       _h_4j_x6->fill(2.0*p6.E()/sqrts, weight);
00206       _h_4j_costheta3->fill(fabs(cos(p3.theta())), weight);
00207       _h_4j_costheta4->fill(fabs(cos(p4.theta())), weight);
00208       _h_4j_costheta5->fill(fabs(cos(p5.theta())), weight);
00209       _h_4j_costheta6->fill(fabs(cos(p6.theta())), weight);
00210       _h_4j_cosomega34->fill(cos(p3.angle(p4)), weight);
00211       _h_4j_cosomega35->fill(cos(p3.angle(p5)), weight);
00212       _h_4j_cosomega36->fill(cos(p3.angle(p6)), weight);
00213       _h_4j_cosomega45->fill(cos(p4.angle(p5)), weight);
00214       _h_4j_cosomega46->fill(cos(p4.angle(p6)), weight);
00215       _h_4j_cosomega56->fill(cos(p5.angle(p6)), weight);
00216       _h_4j_mu34->fill(_safeMass(FourMomentum(p3+p4))/sqrts, weight);
00217       _h_4j_mu35->fill(_safeMass(FourMomentum(p3+p5))/sqrts, weight);
00218       _h_4j_mu36->fill(_safeMass(FourMomentum(p3+p6))/sqrts, weight);
00219       _h_4j_mu45->fill(_safeMass(FourMomentum(p4+p5))/sqrts, weight);
00220       _h_4j_mu46->fill(_safeMass(FourMomentum(p4+p6))/sqrts, weight);
00221       _h_4j_mu56->fill(_safeMass(FourMomentum(p5+p6))/sqrts, weight);
00222       _h_4j_theta_BZ->fill(acos(costheta_BZ)/degree, weight);
00223       _h_4j_costheta_NR->fill(costheta_NR, weight);
00224 
00225     }

double _safeMass ( const FourMomentum p  )  [inline, private]

Definition at line 227 of file D0_1996_S3214044.cc.

References Analysis::getLog(), Rivet::m2, FourMomentum::mass2(), Rivet::mass2(), and Log::WARNING.

Referenced by D0_1996_S3214044::_fourJetAnalysis(), and D0_1996_S3214044::_threeJetAnalysis().

00227                                             {
00228       double mass2=p.mass2();
00229       if (mass2>0.0) return sqrt(mass2);
00230       else if (mass2<-1.0e-5) {
00231         getLog() << Log::WARNING << "m2 = " << m2 << ". Assuming m2=0." << endl;
00232         return 0.0;
00233       }
00234       else return 0.0;
00235     }

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   }

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::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   }

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   }

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   }

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   }

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   }

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   }

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   }

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   }

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   }

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 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   }

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   }

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   }

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   }

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   }

const ParticlePair & beams (  )  const [inherited]

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   }

double sqrtS (  )  const [inherited]

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   }

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   }

AnalysisHandler & handler (  )  const [inherited]

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 512 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_1993_S2742446::finalize(), ALEPH_2004_S5765862::finalize(), and ALEPH_1996_S3486095::finalize().

00512                                                                 {
00513     if (!histo) {
00514       getLog() << Log::ERROR << "Failed to normalise histo=NULL in analysis "
00515                << name() << " (norm=" << norm << ")" << endl;
00516       return;
00517     }
00518     const string hpath = tree().findPath(dynamic_cast<const AIDA::IManagedObject&>(*histo));
00519     getLog() << Log::TRACE << "Normalizing histo " << hpath << " to " << norm << endl;
00520 
00521     double oldintg = 0.0;
00522     int nBins = histo->axis().bins();
00523     for (int iBin = 0; iBin != nBins; ++iBin) {
00524       // Leaving out factor of binWidth because AIDA's "height" already includes a width factor.
00525       oldintg += histo->binHeight(iBin); // * histo->axis().binWidth(iBin);
00526     }
00527     if (oldintg == 0.0) {
00528       getLog() << Log::WARN << "Histo " << hpath << " has null integral during normalisation" << endl;
00529       return;
00530     }
00531 
00532     // Scale by the normalisation factor.
00533     scale(histo, norm/oldintg);
00534   }

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

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

Referenced by 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(), 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(), ALEPH_2004_S5765862::finalize(), ALEPH_1996_S3486095::finalize(), ALEPH_1996_S3196992::finalize(), ALEPH_1991_S2435284::finalize(), Analysis::normalize(), and BinnedHistogram::scale().

00537                                                              {
00538     if (!histo) {
00539       getLog() << Log::ERROR << "Failed to scale histo=NULL in analysis "
00540           << name() << " (scale=" << scale << ")" << endl;
00541       return;
00542     }
00543     const string hpath = tree().findPath(dynamic_cast<const AIDA::IManagedObject&>(*histo));
00544     getLog() << Log::TRACE << "Scaling histo " << hpath << endl;
00545 
00546     vector<double> x, y, ex, ey;
00547     for (size_t i = 0, N = histo->axis().bins(); i < N; ++i) {
00548       x.push_back(0.5 * (histo->axis().binLowerEdge(i) + histo->axis().binUpperEdge(i)));
00549       ex.push_back(histo->axis().binWidth(i)*0.5);
00550 
00551       // "Bin height" is a misnomer in the AIDA spec: width is neglected.
00552       // We'd like to do this: y.push_back(histo->binHeight(i) * scale);
00553       y.push_back(histo->binHeight(i)*scale/histo->axis().binWidth(i));
00554 
00555       // "Bin error" is a misnomer in the AIDA spec: width is neglected.
00556       // We'd like to do this: ey.push_back(histo->binError(i) * scale);
00557       ey.push_back(histo->binError(i)*scale/histo->axis().binWidth(i));
00558     }
00559 
00560     string title = histo->title();
00561     string xtitle = histo->xtitle();
00562     string ytitle = histo->ytitle();
00563 
00564     tree().mkdir("/tmpnormalize");
00565     tree().mv(hpath, "/tmpnormalize");
00566 
00567     AIDA::IDataPointSet* dps = datapointsetFactory().createXY(hpath, title, x, y, ex, ey);
00568     dps->setXTitle(xtitle);
00569     dps->setYTitle(ytitle);
00570 
00571     tree().rm(tree().findPath(dynamic_cast<AIDA::IManagedObject&>(*histo)));
00572     tree().rmdir("/tmpnormalize");
00573 
00574     // Set histo pointer to null - it can no longer be used.
00575     histo = 0;
00576   }

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   }

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   }

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 Log::getLog(), and 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_2005_S6217184::analyze(), CDF_2004_S5839831::analyze(), CDF_2001_S4751469::analyze(), CDF_2000_S4155203::analyze(), CDF_1994_S2952106::analyze(), CDF_1991_S2313472::analyze(), BELLE_2006_S6265367::analyze(), ALEPH_1996_S3486095::analyze(), ALEPH_1991_S2435284::analyze(), 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   }

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(), and CDF_1988_S1865951::finalize().

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

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   }

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(), ALEPH_2004_S5765862::finalize(), ALEPH_1996_S3486095::finalize(), ALEPH_1996_S3196992::finalize(), and ALEPH_1991_S2435284::finalize().

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

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   }

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   }

IHistogramFactory & histogramFactory (  )  [protected, inherited]

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::scale().

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

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(), and D0_2008_S7719523::finalize().

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   }

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

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

Referenced by MC_JetAnalysis::finalize(), and MC_GENERIC::finalize().

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

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

Referenced by Analysis::binEdges(), and D0_2008_S7837160::init().

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(), and Rivet::makeAxisCode().

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

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   }

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 = "" 
) [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!)

Referenced by 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(), 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_S8591806::init(), ALEPH_2004_S5765862::init(), ALEPH_1996_S3486095::init(), ALEPH_1996_S3196992::init(), and ALEPH_1991_S2435284::init().

AIDA::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!)

AIDA::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.

AIDA::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.

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 = "" 
) [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!)

Referenced by 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(), and ATLAS_2010_S8591806::init().

AIDA::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!)

AIDA::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.

AIDA::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.

AIDA::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!)

Referenced by 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_1996_S3418421::init(), CDF_1994_S2952106::init(), and ALEPH_2004_S5765862::init().

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 = "" 
) [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!)

AIDA::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.

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(), 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(), 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 & 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 ATLAS_2010_S8591806::ATLAS_2010_S8591806(), 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(), 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   }

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     }

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 Rivet::pcmp(), and Hemispheres::project().

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

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& 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     }

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 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     }

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     }

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(), 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(), 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_S8591806::init(), ALEPH_2004_S5765862::init(), ALEPH_1996_S3486095::init(), ALEPH_1996_S3196992::init(), ALEPH_1991_S2435284::init(), IsolationProjection::IsolationProjection(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState< Rivet::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     }

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   }


Friends And Related Function Documentation

friend class Projectionhandler [friend, inherited]

Definition at line 38 of file ProjectionApplier.hh.


Member Data Documentation

AIDA::IHistogram1D* _h_3j_x3 [private]

AIDA::IHistogram1D* _h_3j_x5 [private]

AIDA::IHistogram1D* _h_3j_costheta3 [private]

AIDA::IHistogram1D* _h_3j_psi [private]

AIDA::IHistogram1D* _h_3j_mu34 [private]

AIDA::IHistogram1D* _h_3j_mu35 [private]

AIDA::IHistogram1D* _h_3j_mu45 [private]

AIDA::IHistogram1D* _h_4j_x3 [private]

AIDA::IHistogram1D* _h_4j_x4 [private]

AIDA::IHistogram1D* _h_4j_x5 [private]

AIDA::IHistogram1D* _h_4j_x6 [private]

AIDA::IHistogram1D* _h_4j_costheta3 [private]

AIDA::IHistogram1D* _h_4j_costheta4 [private]

AIDA::IHistogram1D* _h_4j_costheta5 [private]

AIDA::IHistogram1D* _h_4j_costheta6 [private]

AIDA::IHistogram1D* _h_4j_cosomega34 [private]

AIDA::IHistogram1D* _h_4j_cosomega35 [private]

AIDA::IHistogram1D* _h_4j_cosomega36 [private]

AIDA::IHistogram1D* _h_4j_cosomega45 [private]

AIDA::IHistogram1D* _h_4j_cosomega46 [private]

AIDA::IHistogram1D* _h_4j_cosomega56 [private]

AIDA::IHistogram1D* _h_4j_mu34 [private]

AIDA::IHistogram1D* _h_4j_mu35 [private]

AIDA::IHistogram1D* _h_4j_mu36 [private]

AIDA::IHistogram1D* _h_4j_mu45 [private]

AIDA::IHistogram1D* _h_4j_mu46 [private]

AIDA::IHistogram1D* _h_4j_mu56 [private]

AIDA::IHistogram1D* _h_4j_theta_BZ [private]

AIDA::IHistogram1D* _h_4j_costheta_NR [private]

string _defaultname [protected, inherited]

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

Definition at line 422 of file Analysis.hh.

Referenced by Analysis::name().

shared_ptr<AnalysisInfo> _info [protected, inherited]

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().


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