CDF_1996_S3349578 Class Reference

Inheritance diagram for CDF_1996_S3349578:

Inheritance graph
[legend]

Collaboration diagram for CDF_1996_S3349578:

Collaboration graph
[legend]

List of all members.


Detailed Description

Definition at line 11 of file CDF_1996_S3349578.cc.


Public Member Functions

virtual bool isCompatible (const ParticleName &beam1, const ParticleName &beam2) const
 Is this analysis able to run on the supplied pair of beams?
virtual bool isCompatible (const BeamPair &beams) const
 Is this analysis able to run on the BeamPair 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.
 CDF_1996_S3349578 ()
 Constructor.
Analysis methods
void init ()
 Book histograms and initialise projections before the run.
void analyze (const Event &event)
void _threeJetAnalysis (const Jets &jets, const double &weight)
void _fourJetAnalysis (const Jets &jets, const double &weight)
void _fiveJetAnalysis (const Jets &jets, const double &weight)
void finalize ()
 Normalise histograms etc., after the run.
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 BeamPair 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 status () const
 Whether this analysis is trusted (in any way!).
Run conditions
const ParticlePairbeams () const
 Incoming beams for this run.
const BeamPair 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 (const ParticleName &beam1, const ParticleName &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

vector< FourMomentum_reduce (const vector< FourMomentum > &jets, FourMomentum &combined1, FourMomentum &combined2)
FourMomentum _avg_beam_in_lab (const double &m, const double &y)
double _psi (const FourMomentum &p1, const FourMomentum &p2, const FourMomentum &p3, const FourMomentum &p4)
double _safeMass (const FourMomentum &p)

Private Attributes

Histograms
AIDA::IHistogram1D * _h_3_mNJ
AIDA::IHistogram1D * _h_3_X3
AIDA::IHistogram1D * _h_3_X4
AIDA::IHistogram1D * _h_3_costheta3
AIDA::IHistogram1D * _h_3_psi3
AIDA::IHistogram1D * _h_3_f3
AIDA::IHistogram1D * _h_3_f4
AIDA::IHistogram1D * _h_3_f5
AIDA::IHistogram1D * _h_4_mNJ
AIDA::IHistogram1D * _h_4_X3
AIDA::IHistogram1D * _h_4_X4
AIDA::IHistogram1D * _h_4_costheta3
AIDA::IHistogram1D * _h_4_psi3
AIDA::IHistogram1D * _h_4_f3
AIDA::IHistogram1D * _h_4_f4
AIDA::IHistogram1D * _h_4_f5
AIDA::IHistogram1D * _h_4_XA
AIDA::IHistogram1D * _h_4_psiAB
AIDA::IHistogram1D * _h_4_fA
AIDA::IHistogram1D * _h_4_fB
AIDA::IHistogram1D * _h_5_mNJ
AIDA::IHistogram1D * _h_5_X3
AIDA::IHistogram1D * _h_5_X4
AIDA::IHistogram1D * _h_5_costheta3
AIDA::IHistogram1D * _h_5_psi3
AIDA::IHistogram1D * _h_5_f3
AIDA::IHistogram1D * _h_5_f4
AIDA::IHistogram1D * _h_5_f5
AIDA::IHistogram1D * _h_5_XA
AIDA::IHistogram1D * _h_5_XC
AIDA::IHistogram1D * _h_5_psiAB
AIDA::IHistogram1D * _h_5_psiCD
AIDA::IHistogram1D * _h_5_fA
AIDA::IHistogram1D * _h_5_fB
AIDA::IHistogram1D * _h_5_fC
AIDA::IHistogram1D * _h_5_fD

Friends

class Projectionhandler

Constructor & Destructor Documentation

CDF_1996_S3349578 (  )  [inline]

Constructor.

Definition at line 18 of file CDF_1996_S3349578.cc.

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

00019       : Analysis("CDF_1996_S3349578")
00020     {
00021       setBeams(PROTON, ANTIPROTON);
00022     }


Member Function Documentation

void init (  )  [inline, virtual]

Book histograms and initialise projections before the run.

Initialise and register projections here

Book histograms here, e.g.:

Implements Analysis.

Definition at line 33 of file CDF_1996_S3349578.cc.

References CDF_1996_S3349578::_h_3_costheta3, CDF_1996_S3349578::_h_3_f3, CDF_1996_S3349578::_h_3_f4, CDF_1996_S3349578::_h_3_f5, CDF_1996_S3349578::_h_3_mNJ, CDF_1996_S3349578::_h_3_psi3, CDF_1996_S3349578::_h_3_X3, CDF_1996_S3349578::_h_3_X4, CDF_1996_S3349578::_h_4_costheta3, CDF_1996_S3349578::_h_4_f3, CDF_1996_S3349578::_h_4_f4, CDF_1996_S3349578::_h_4_f5, CDF_1996_S3349578::_h_4_fA, CDF_1996_S3349578::_h_4_fB, CDF_1996_S3349578::_h_4_mNJ, CDF_1996_S3349578::_h_4_psi3, CDF_1996_S3349578::_h_4_psiAB, CDF_1996_S3349578::_h_4_X3, CDF_1996_S3349578::_h_4_X4, CDF_1996_S3349578::_h_4_XA, CDF_1996_S3349578::_h_5_costheta3, CDF_1996_S3349578::_h_5_f3, CDF_1996_S3349578::_h_5_f4, CDF_1996_S3349578::_h_5_f5, CDF_1996_S3349578::_h_5_fA, CDF_1996_S3349578::_h_5_fB, CDF_1996_S3349578::_h_5_fC, CDF_1996_S3349578::_h_5_fD, CDF_1996_S3349578::_h_5_mNJ, CDF_1996_S3349578::_h_5_psi3, CDF_1996_S3349578::_h_5_psiAB, CDF_1996_S3349578::_h_5_psiCD, CDF_1996_S3349578::_h_5_X3, CDF_1996_S3349578::_h_5_X4, CDF_1996_S3349578::_h_5_XA, CDF_1996_S3349578::_h_5_XC, ProjectionApplier::addProjection(), Analysis::bookHistogram1D(), and FastJets::CDFJETCLU.

00033                 {
00034 
00035       /// Initialise and register projections here
00036       const FinalState fs(-4.2, 4.2);
00037       addProjection(FastJets(fs, FastJets::CDFJETCLU, 0.7), "Jets");
00038 
00039       /// Book histograms here, e.g.:
00040       _h_3_mNJ = bookHistogram1D(1, 1, 1);
00041       _h_3_X3 = bookHistogram1D(2, 1, 1);
00042       _h_3_X4 = bookHistogram1D(3, 1, 1);
00043       _h_3_costheta3 = bookHistogram1D(8, 1, 1);
00044       _h_3_psi3 = bookHistogram1D(9, 1, 1);
00045       _h_3_f3 = bookHistogram1D(14, 1, 1);
00046       _h_3_f4 = bookHistogram1D(14, 1, 2);
00047       _h_3_f5 = bookHistogram1D(14, 1, 3);
00048    
00049       _h_4_mNJ = bookHistogram1D(1, 1, 2);
00050       _h_4_X3 = bookHistogram1D(4, 1, 1);
00051       _h_4_X4 = bookHistogram1D(5, 1, 1);
00052       _h_4_costheta3 = bookHistogram1D(10, 1, 1);
00053       _h_4_psi3 = bookHistogram1D(11, 1, 1);
00054       _h_4_f3 = bookHistogram1D(15, 1, 1);
00055       _h_4_f4 = bookHistogram1D(15, 1, 2);
00056       _h_4_f5 = bookHistogram1D(15, 1, 3);
00057       _h_4_XA = bookHistogram1D(17, 1, 1);
00058       _h_4_psiAB = bookHistogram1D(19, 1, 1);
00059       _h_4_fA = bookHistogram1D(21, 1, 1);
00060       _h_4_fB = bookHistogram1D(21, 1, 2);
00061    
00062       _h_5_mNJ = bookHistogram1D(1, 1, 3);
00063       _h_5_X3 = bookHistogram1D(6, 1, 1);
00064       _h_5_X4 = bookHistogram1D(7, 1, 1);
00065       _h_5_costheta3 = bookHistogram1D(12, 1, 1);
00066       _h_5_psi3 = bookHistogram1D(13, 1, 1);
00067       _h_5_f3 = bookHistogram1D(16, 1, 1);
00068       _h_5_f4 = bookHistogram1D(16, 1, 2);
00069       _h_5_f5 = bookHistogram1D(16, 1, 3);
00070       _h_5_XA = bookHistogram1D(18, 1, 1);
00071       _h_5_XC = bookHistogram1D(18, 1, 2);
00072       _h_5_psiAB = bookHistogram1D(20, 1, 1);
00073       _h_5_psiCD = bookHistogram1D(20, 1, 2);
00074       _h_5_fA = bookHistogram1D(22, 1, 1);
00075       _h_5_fB = bookHistogram1D(23, 1, 1);
00076       _h_5_fC = bookHistogram1D(24, 1, 1);
00077       _h_5_fD = bookHistogram1D(25, 1, 1);
00078    
00079     }

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 82 of file CDF_1996_S3349578.cc.

References CDF_1996_S3349578::_fiveJetAnalysis(), CDF_1996_S3349578::_fourJetAnalysis(), CDF_1996_S3349578::_threeJetAnalysis(), Rivet::deltaR(), Rivet::Et(), and Rivet::GeV.

00082                                      {
00083       const double weight = event.weight();
00084 
00085       Jets jets;
00086       FourMomentum jetsystem(0.0, 0.0, 0.0, 0.0);
00087       foreach (const Jet& jet, applyProjection<FastJets>(event, "Jets").jetsByEt()) {
00088         double Et = jet.momentum().Et();
00089         if (Et > 20.0*GeV) {
00090           bool separated=true;
00091           foreach (const Jet& ref, jets) {
00092             if (deltaR(jet.momentum(), ref.momentum())<0.9) {
00093               separated=false;
00094               break;
00095             }
00096           }
00097           if (!separated) continue;
00098           jets.push_back(jet);
00099           jetsystem += jet.momentum();
00100         }
00101         if (jets.size()>=5) break;
00102       }
00103       /// @todo include gaussian jet energy resolution smearing?
00104    
00105       if (jets.size() > 4) {
00106         _fiveJetAnalysis(jets, weight);
00107         jets.resize(4);
00108       }
00109       if (jets.size() > 3) {
00110         _fourJetAnalysis(jets, weight);
00111         jets.resize(3);
00112       }
00113       if (jets.size() > 2) _threeJetAnalysis(jets, weight);
00114     }

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

Definition at line 119 of file CDF_1996_S3349578.cc.

References CDF_1996_S3349578::_avg_beam_in_lab(), CDF_1996_S3349578::_h_3_costheta3, CDF_1996_S3349578::_h_3_f3, CDF_1996_S3349578::_h_3_f4, CDF_1996_S3349578::_h_3_f5, CDF_1996_S3349578::_h_3_mNJ, CDF_1996_S3349578::_h_3_psi3, CDF_1996_S3349578::_h_3_X3, CDF_1996_S3349578::_h_3_X4, CDF_1996_S3349578::_psi(), CDF_1996_S3349578::_safeMass(), FourMomentum::boostVector(), Log::DEBUG, Vector3::dot(), FourMomentum::E(), Analysis::getLog(), Rivet::GeV, FourMomentum::rapidity(), Vector3::unit(), and FourVector::vector3().

Referenced by CDF_1996_S3349578::analyze().

00119                                                                    {
00120       getLog() << Log::DEBUG << "3 jet analysis" << std::endl;
00121 
00122       double sumEt=0.0;
00123       FourMomentum jetsystem(0.0, 0.0, 0.0, 0.0);
00124       foreach (const Jet& jet, jets) {
00125         sumEt+=jet.momentum().Et();
00126         jetsystem+=jet.momentum();
00127       }
00128       if (sumEt < 420.0*GeV) return;
00129       
00130       const double m3J = _safeMass(jetsystem);
00131       if (m3J<600*GeV) {
00132         return;
00133       }
00134  
00135       LorentzTransform cms_boost(-jetsystem.boostVector());
00136       vector<FourMomentum> jets3;
00137       foreach (Jet jet, jets) {
00138         jets3.push_back(cms_boost.transform(jet.momentum()));
00139       }
00140       std::sort(jets3.begin(), jets3.end(), FourMomentum::byEDescending());
00141       FourMomentum p3(jets3[0]);
00142       FourMomentum p4(jets3[1]);
00143       FourMomentum p5(jets3[2]);
00144    
00145       FourMomentum pAV = cms_boost.transform(_avg_beam_in_lab(m3J, jetsystem.rapidity()));
00146       double costheta3=pAV.vector3().unit().dot(p3.vector3().unit());
00147       if (fabs(costheta3)>0.6) {
00148         return;
00149       }
00150    
00151       double X3 = 2.0*p3.E()/m3J;
00152       if (X3>0.9) {
00153         return;
00154       }
00155       
00156       const double X4 = 2.0*p4.E()/m3J;
00157       const double psi3 = _psi(p3, pAV, p4, p5);
00158       const double f3 = _safeMass(p3)/m3J;
00159       const double f4 = _safeMass(p4)/m3J;
00160       const double f5 = _safeMass(p5)/m3J;
00161    
00162       _h_3_mNJ->fill(m3J, weight);
00163       _h_3_X3->fill(X3, weight);
00164       _h_3_X4->fill(X4, weight);
00165       _h_3_costheta3->fill(costheta3, weight);
00166       _h_3_psi3->fill(psi3, weight);
00167       _h_3_f3->fill(f3, weight);
00168       _h_3_f4->fill(f4, weight);
00169       _h_3_f5->fill(f5, weight);
00170    
00171     }

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

Definition at line 176 of file CDF_1996_S3349578.cc.

References CDF_1996_S3349578::_avg_beam_in_lab(), CDF_1996_S3349578::_h_4_costheta3, CDF_1996_S3349578::_h_4_f3, CDF_1996_S3349578::_h_4_f4, CDF_1996_S3349578::_h_4_f5, CDF_1996_S3349578::_h_4_fA, CDF_1996_S3349578::_h_4_fB, CDF_1996_S3349578::_h_4_mNJ, CDF_1996_S3349578::_h_4_psi3, CDF_1996_S3349578::_h_4_psiAB, CDF_1996_S3349578::_h_4_X3, CDF_1996_S3349578::_h_4_X4, CDF_1996_S3349578::_h_4_XA, CDF_1996_S3349578::_psi(), CDF_1996_S3349578::_reduce(), CDF_1996_S3349578::_safeMass(), FourMomentum::boostVector(), Log::DEBUG, Vector3::dot(), FourMomentum::E(), Analysis::getLog(), Rivet::GeV, FourMomentum::rapidity(), Vector3::unit(), and FourVector::vector3().

Referenced by CDF_1996_S3349578::analyze().

00176                                                                   {
00177       getLog() << Log::DEBUG << "4 jet analysis" << std::endl;
00178       
00179       double sumEt=0.0;
00180       FourMomentum jetsystem(0.0, 0.0, 0.0, 0.0);
00181       foreach (const Jet& jet, jets) {
00182         sumEt+=jet.momentum().Et();
00183         jetsystem+=jet.momentum();
00184       }
00185       if (sumEt < 420.0*GeV) return;
00186       
00187       const double m4J = _safeMass(jetsystem);
00188       if (m4J < 650*GeV) return;
00189    
00190       LorentzTransform cms_boost(-jetsystem.boostVector());
00191       vector<FourMomentum> jets4;
00192       foreach (Jet jet, jets) {
00193         jets4.push_back(cms_boost.transform(jet.momentum()));
00194       }
00195       std::sort(jets4.begin(), jets4.end(), FourMomentum::byEDescending());
00196       
00197       FourMomentum pA, pB;
00198       vector<FourMomentum> jets3(_reduce(jets4, pA, pB));
00199       std::sort(jets3.begin(), jets3.end(), FourMomentum::byEDescending());
00200       FourMomentum p3(jets3[0]);
00201       FourMomentum p4(jets3[1]);
00202       FourMomentum p5(jets3[2]);
00203    
00204       FourMomentum pAV = cms_boost.transform(_avg_beam_in_lab(m4J, jetsystem.rapidity()));
00205       double costheta3=pAV.vector3().unit().dot(p3.vector3().unit());
00206       if (fabs(costheta3)>0.8) {
00207         return;
00208       }
00209    
00210       const double X3 = 2.0*p3.E()/m4J;
00211       if (X3>0.9) {
00212         return;
00213       }
00214    
00215       // fill histograms
00216       const double X4 = 2.0*p4.E()/m4J;
00217       const double psi3 = _psi(p3, pAV, p4, p5);
00218       const double f3 = _safeMass(p3)/m4J;
00219       const double f4 = _safeMass(p4)/m4J;
00220       const double f5 = _safeMass(p5)/m4J;
00221       const double fA = _safeMass(pA)/m4J;
00222       const double fB = _safeMass(pB)/m4J;
00223       const double XA = pA.E()/(pA.E()+pB.E());
00224       const double psiAB = _psi(pA, pB, pA+pB, pAV);
00225    
00226       _h_4_mNJ->fill(m4J, weight);
00227       _h_4_X3->fill(X3, weight);
00228       _h_4_X4->fill(X4, weight);
00229       _h_4_costheta3->fill(costheta3, weight);
00230       _h_4_psi3->fill(psi3, weight);
00231       _h_4_f3->fill(f3, weight);
00232       _h_4_f4->fill(f4, weight);
00233       _h_4_f5->fill(f5, weight);
00234       _h_4_XA->fill(XA, weight);
00235       _h_4_psiAB->fill(psiAB, weight);
00236       _h_4_fA->fill(fA, weight);
00237       _h_4_fB->fill(fB, weight);
00238     }

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

Definition at line 243 of file CDF_1996_S3349578.cc.

References CDF_1996_S3349578::_avg_beam_in_lab(), CDF_1996_S3349578::_h_5_costheta3, CDF_1996_S3349578::_h_5_f3, CDF_1996_S3349578::_h_5_f4, CDF_1996_S3349578::_h_5_f5, CDF_1996_S3349578::_h_5_fA, CDF_1996_S3349578::_h_5_fB, CDF_1996_S3349578::_h_5_fC, CDF_1996_S3349578::_h_5_fD, CDF_1996_S3349578::_h_5_mNJ, CDF_1996_S3349578::_h_5_psi3, CDF_1996_S3349578::_h_5_psiAB, CDF_1996_S3349578::_h_5_psiCD, CDF_1996_S3349578::_h_5_X3, CDF_1996_S3349578::_h_5_X4, CDF_1996_S3349578::_h_5_XA, CDF_1996_S3349578::_h_5_XC, CDF_1996_S3349578::_psi(), CDF_1996_S3349578::_reduce(), CDF_1996_S3349578::_safeMass(), FourMomentum::boostVector(), Log::DEBUG, Vector3::dot(), FourMomentum::E(), Analysis::getLog(), Rivet::GeV, FourMomentum::rapidity(), Vector3::unit(), and FourVector::vector3().

Referenced by CDF_1996_S3349578::analyze().

00243                                                                   {
00244       getLog() << Log::DEBUG << "5 jet analysis" << std::endl;
00245       
00246       double sumEt=0.0;
00247       FourMomentum jetsystem(0.0, 0.0, 0.0, 0.0);
00248       foreach (const Jet& jet, jets) {
00249         sumEt+=jet.momentum().Et();
00250         jetsystem+=jet.momentum();
00251       }
00252       if (sumEt < 420.0*GeV) return;
00253       
00254       const double m5J = _safeMass(jetsystem);
00255       if (m5J < 750*GeV) return;
00256 
00257       LorentzTransform cms_boost(-jetsystem.boostVector());
00258       vector<FourMomentum> jets5;
00259       foreach (Jet jet, jets) {
00260         jets5.push_back(cms_boost.transform(jet.momentum()));
00261       }
00262       std::sort(jets5.begin(), jets5.end(), FourMomentum::byEDescending());
00263       
00264       FourMomentum pC, pD;
00265       vector<FourMomentum> jets4(_reduce(jets5, pC, pD));
00266       std::sort(jets4.begin(), jets4.end(), FourMomentum::byEDescending());
00267       
00268       FourMomentum pA, pB;
00269       vector<FourMomentum> jets3(_reduce(jets4, pA, pB));
00270       std::sort(jets3.begin(), jets3.end(), FourMomentum::byEDescending());
00271       FourMomentum p3(jets3[0]);
00272       FourMomentum p4(jets3[1]);
00273       FourMomentum p5(jets3[2]);
00274    
00275       // fill histograms
00276       FourMomentum pAV = cms_boost.transform(_avg_beam_in_lab(m5J, jetsystem.rapidity()));
00277       const double costheta3 = pAV.vector3().unit().dot(p3.vector3().unit());
00278       const double X3 = 2.0*p3.E()/m5J;
00279       const double X4 = 2.0*p4.E()/m5J;
00280       const double psi3 = _psi(p3, pAV, p4, p5);
00281       const double f3 = _safeMass(p3)/m5J;
00282       const double f4 = _safeMass(p4)/m5J;
00283       const double f5 = _safeMass(p5)/m5J;
00284       const double fA = _safeMass(pA)/m5J;
00285       const double fB = _safeMass(pB)/m5J;
00286       const double XA = pA.E()/(pA.E()+pB.E());
00287       const double psiAB = _psi(pA, pB, pA+pB, pAV);
00288       const double fC = _safeMass(pC)/m5J;
00289       const double fD = _safeMass(pD)/m5J;
00290       const double XC = pC.E()/(pC.E()+pD.E());
00291       const double psiCD = _psi(pC, pD, pC+pD, pAV);
00292    
00293       _h_5_mNJ->fill(m5J, weight);
00294       _h_5_X3->fill(X3, weight);
00295       _h_5_X4->fill(X4, weight);
00296       _h_5_costheta3->fill(costheta3, weight);
00297       _h_5_psi3->fill(psi3, weight);
00298       _h_5_f3->fill(f3, weight);
00299       _h_5_f4->fill(f4, weight);
00300       _h_5_f5->fill(f5, weight);
00301       _h_5_XA->fill(XA, weight);
00302       _h_5_psiAB->fill(psiAB, weight);
00303       _h_5_fA->fill(fA, weight);
00304       _h_5_fB->fill(fB, weight);
00305       _h_5_XC->fill(XC, weight);
00306       _h_5_psiCD->fill(psiCD, weight);
00307       _h_5_fC->fill(fC, weight);
00308       _h_5_fD->fill(fD, weight);
00309     }

void finalize (  )  [inline, virtual]

Normalise histograms etc., after the run.

Normalise, scale and otherwise manipulate histograms here

Implements Analysis.

Definition at line 313 of file CDF_1996_S3349578.cc.

References CDF_1996_S3349578::_h_3_costheta3, CDF_1996_S3349578::_h_3_f3, CDF_1996_S3349578::_h_3_f4, CDF_1996_S3349578::_h_3_f5, CDF_1996_S3349578::_h_3_mNJ, CDF_1996_S3349578::_h_3_psi3, CDF_1996_S3349578::_h_3_X3, CDF_1996_S3349578::_h_3_X4, CDF_1996_S3349578::_h_4_costheta3, CDF_1996_S3349578::_h_4_f3, CDF_1996_S3349578::_h_4_f4, CDF_1996_S3349578::_h_4_f5, CDF_1996_S3349578::_h_4_fA, CDF_1996_S3349578::_h_4_fB, CDF_1996_S3349578::_h_4_mNJ, CDF_1996_S3349578::_h_4_psi3, CDF_1996_S3349578::_h_4_psiAB, CDF_1996_S3349578::_h_4_X3, CDF_1996_S3349578::_h_4_X4, CDF_1996_S3349578::_h_4_XA, CDF_1996_S3349578::_h_5_costheta3, CDF_1996_S3349578::_h_5_f3, CDF_1996_S3349578::_h_5_f4, CDF_1996_S3349578::_h_5_f5, CDF_1996_S3349578::_h_5_fA, CDF_1996_S3349578::_h_5_fB, CDF_1996_S3349578::_h_5_fC, CDF_1996_S3349578::_h_5_fD, CDF_1996_S3349578::_h_5_mNJ, CDF_1996_S3349578::_h_5_psi3, CDF_1996_S3349578::_h_5_psiAB, CDF_1996_S3349578::_h_5_psiCD, CDF_1996_S3349578::_h_5_X3, CDF_1996_S3349578::_h_5_X4, CDF_1996_S3349578::_h_5_XA, CDF_1996_S3349578::_h_5_XC, and Analysis::normalize().

00313                     {
00314    
00315       /// Normalise, scale and otherwise manipulate histograms here
00316       normalize(_h_3_mNJ, 1.0);
00317       normalize(_h_3_X3, 1.0);
00318       normalize(_h_3_X4, 1.0);
00319       normalize(_h_3_costheta3, 1.0);
00320       normalize(_h_3_psi3, 1.0);
00321       normalize(_h_3_f3, 1.0);
00322       normalize(_h_3_f4, 1.0);
00323       normalize(_h_3_f5, 1.0);
00324    
00325       normalize(_h_4_mNJ, 1.0);
00326       normalize(_h_4_X3, 1.0);
00327       normalize(_h_4_X4, 1.0);
00328       normalize(_h_4_costheta3, 1.0);
00329       normalize(_h_4_psi3, 1.0);
00330       normalize(_h_4_f3, 1.0);
00331       normalize(_h_4_f4, 1.0);
00332       normalize(_h_4_f5, 1.0);
00333       normalize(_h_4_XA, 1.0);
00334       normalize(_h_4_psiAB, 1.0);
00335       normalize(_h_4_fA, 1.0);
00336       normalize(_h_4_fB, 1.0);
00337    
00338       normalize(_h_5_mNJ, 1.0);
00339       normalize(_h_5_X3, 1.0);
00340       normalize(_h_5_X4, 1.0);
00341       normalize(_h_5_costheta3, 1.0);
00342       normalize(_h_5_psi3, 1.0);
00343       normalize(_h_5_f3, 1.0);
00344       normalize(_h_5_f4, 1.0);
00345       normalize(_h_5_f5, 1.0);
00346       normalize(_h_5_XA, 1.0);
00347       normalize(_h_5_XC, 1.0);
00348       normalize(_h_5_psiAB, 1.0);
00349       normalize(_h_5_psiCD, 1.0);
00350       normalize(_h_5_fA, 1.0);
00351       normalize(_h_5_fB, 1.0);
00352       normalize(_h_5_fC, 1.0);
00353       normalize(_h_5_fD, 1.0);
00354    
00355     }

vector<FourMomentum> _reduce ( const vector< FourMomentum > &  jets,
FourMomentum combined1,
FourMomentum combined2 
) [inline, private]

Definition at line 361 of file CDF_1996_S3349578.cc.

References Rivet::mass2().

Referenced by CDF_1996_S3349578::_fiveJetAnalysis(), and CDF_1996_S3349578::_fourJetAnalysis().

00363                                                           {
00364       double minMass2 = 1e9;
00365       size_t idx1(jets.size()), idx2(jets.size());
00366       for (size_t i=0; i<jets.size(); ++i) {
00367         for (size_t j=i+1; j<jets.size(); ++j) {
00368           double mass2 = FourMomentum(jets[i]+jets[j]).mass2();
00369           if (mass2<minMass2) {
00370             idx1=i;
00371             idx2=j;
00372           }
00373         }
00374       }
00375       vector<FourMomentum> newjets;
00376       for (size_t i=0; i<jets.size(); ++i) {
00377         if (i!=idx1 && i!=idx2) newjets.push_back(jets[i]);
00378       }
00379       newjets.push_back(jets[idx1]+jets[idx2]);
00380       combined1 = jets[idx1];
00381       combined2 = jets[idx2];
00382       return newjets;
00383     }

FourMomentum _avg_beam_in_lab ( const double &  m,
const double &  y 
) [inline, private]

Definition at line 385 of file CDF_1996_S3349578.cc.

References FourMomentum::boostVector(), and FourMomentum::E().

Referenced by CDF_1996_S3349578::_fiveJetAnalysis(), CDF_1996_S3349578::_fourJetAnalysis(), and CDF_1996_S3349578::_threeJetAnalysis().

00385                                                                     {
00386       const double mt = m/2.0;
00387       FourMomentum beam1(mt, 0, 0, mt);
00388       FourMomentum beam2(mt, 0, 0, -mt);
00389       if (fabs(y)>1e-3) {
00390         FourMomentum boostvec(cosh(y), 0.0, 0.0, sinh(y));
00391         LorentzTransform cms_boost(-boostvec.boostVector());
00392         cms_boost = cms_boost.inverse();
00393         beam1=cms_boost.transform(beam1);
00394         beam2=cms_boost.transform(beam2);
00395       }
00396       if (beam1.E()>beam2.E()) {
00397         return beam1-beam2;
00398       }
00399       else {
00400         return beam2-beam1;
00401       }
00402     }

double _psi ( const FourMomentum p1,
const FourMomentum p2,
const FourMomentum p3,
const FourMomentum p4 
) [inline, private]

Definition at line 404 of file CDF_1996_S3349578.cc.

References Vector3::cross(), Vector3::dot(), Rivet::mapAngle0ToPi(), Vector3::unit(), and FourVector::vector3().

Referenced by CDF_1996_S3349578::_fiveJetAnalysis(), CDF_1996_S3349578::_fourJetAnalysis(), and CDF_1996_S3349578::_threeJetAnalysis().

00405                                                                 {
00406       Vector3 p1xp2 = p1.vector3().cross(p2.vector3());
00407       Vector3 p3xp4 = p3.vector3().cross(p4.vector3());
00408       return mapAngle0ToPi(acos(p1xp2.unit().dot(p3xp4.unit())));
00409     }

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

Definition at line 411 of file CDF_1996_S3349578.cc.

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

Referenced by CDF_1996_S3349578::_fiveJetAnalysis(), CDF_1996_S3349578::_fourJetAnalysis(), and CDF_1996_S3349578::_threeJetAnalysis().

00411                                             {
00412       double mass2=p.mass2();
00413       if (mass2>0.0) return sqrt(mass2);
00414       else if (mass2<-1.0e-5) {
00415         getLog() << Log::WARNING << "m2 = " << m2 << ". Assuming m2=0." << endl;
00416         return 0.0;
00417       }
00418       else return 0.0;
00419     }

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

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

Definition at line 125 of file Analysis.cc.

References Analysis::_info.

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

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

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

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

Referenced by Analysis::_cacheBinEdges(), Analysis::_cacheXAxisData(), Analysis::_makeHistoDir(), AnalysisHandler::analysisNames(), AnalysisHandler::analyze(), Analysis::crossSection(), Analysis::getLog(), Analysis::histoDir(), AnalysisHandler::init(), AnalysisBuilderBase::name(), Analysis::normalize(), HistoHandler::registerAnalysisObject(), AnalysisHandler::removeIncompatibleAnalyses(), and Analysis::scale().

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

string spiresId (  )  const [virtual, inherited]

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

Definition at line 135 of file Analysis.cc.

References Analysis::_info.

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

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

References Analysis::_info.

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

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

References Analysis::_info.

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

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

References Analysis::_info.

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

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

References Analysis::_info.

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

string experiment (  )  const [virtual, inherited]

Experiment which performed and published this analysis.

Definition at line 164 of file Analysis.cc.

References Analysis::_info.

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

string collider (  )  const [virtual, inherited]

Collider on which the experiment ran.

Definition at line 169 of file Analysis.cc.

References Analysis::_info.

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

const BeamPair requiredBeams (  )  const [virtual, inherited]

Return the pair of incoming beams required by this analysis.

Definition at line 189 of file Analysis.cc.

References Analysis::beams(), Analysis::info(), and Rivet::make_pdgid_pair().

Referenced by Analysis::isCompatible().

00189                                                {
00190     return make_pdgid_pair(info().beams());
00191   }

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

Sets of valid beam energy pairs, in GeV.

Definition at line 160 of file Analysis.cc.

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

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

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

References Analysis::_info.

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

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

Journal, and preprint references.

Definition at line 179 of file Analysis.cc.

References Analysis::_info.

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

string status (  )  const [virtual, inherited]

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

Definition at line 184 of file Analysis.cc.

References Analysis::_info.

Referenced by AnalysisHandler::init().

00184                                 {
00185     if (!_info) return "UNVALIDATED";
00186     return _info->status();
00187   }

const ParticlePair & beams (  )  const [inherited]

const BeamPair 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 ( const ParticleName beam1,
const ParticleName beam2 
) const [virtual, inherited]

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

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

Definition at line 200 of file Analysis.cc.

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

Referenced by AnalysisHandler::removeIncompatibleAnalyses().

00200                                                                                         {
00201     BeamPair beams(beam1, beam2);
00202     return compatible(beams, requiredBeams());
00203     /// @todo Need to also check internal consistency of the analysis'
00204     /// beam requirements with those of the projections it uses.
00205   }

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

Is this analysis able to run on the BeamPair beams ?

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

Definition at line 207 of file Analysis.cc.

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

00207                                                          {
00208     return compatible(beams, requiredBeams());
00209     /// @todo Need to also check internal consistency of the analysis'
00210     /// beam requirements with those of the projections it uses.
00211   }

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

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

Referenced by OPAL_1998_S3780481::finalize(), H1_1994_S2919893::finalize(), ExampleAnalysis::finalize(), DELPHI_2002_069_CONF_603::finalize(), DELPHI_1995_S3137023::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_2007_S7057202::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(), ALEPH_2004_S5765862::finalize(), and ALEPH_1996_S3486095::finalize().

00487                                                                 {
00488     if (!histo) {
00489       getLog() << Log::ERROR << "Failed to normalise histo=NULL in analysis "
00490                << name() << "(norm=" << norm << ")" << endl;
00491       return;
00492     }
00493     const string hpath = tree().findPath(dynamic_cast<const AIDA::IManagedObject&>(*histo));
00494     getLog() << Log::TRACE << "Normalizing histo " << hpath << " to " << norm << endl;
00495  
00496     double oldintg = 0.0;
00497     int nBins = histo->axis().bins();
00498     for (int iBin = 0; iBin != nBins; ++iBin) {
00499       // Leaving out factor of binWidth because AIDA's "height" already includes a width factor.
00500       oldintg += histo->binHeight(iBin); // * histo->axis().binWidth(iBin);
00501     }
00502     if (oldintg == 0.0) {
00503       getLog() << Log::WARN << "Histo " << hpath << " has null integral during normalisation" << endl;
00504       return;
00505     }
00506 
00507     // Scale by the normalisation factor.
00508     scale(histo, norm/oldintg);
00509   }

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 512 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_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_ZJETS::finalize(), MC_WJETS::finalize(), MC_TTBAR::finalize(), MC_PHOTONJETS::finalize(), MC_JetAnalysis::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_2010_S8566488::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(), CDF_2009_S8436959::finalize(), CDF_2009_S8383952::finalize(), CDF_2009_S8233977::finalize(), CDF_2008_S8093652::finalize(), CDF_2008_S7828950::finalize(), CDF_2008_S7540469::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(), 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(), and Analysis::normalize().

00512                                                              {
00513     if (!histo) {
00514       getLog() << Log::ERROR << "Failed to scale histo=NULL in analysis "
00515           << name() << "(scale=" << scale << ")" << endl;
00516       return;
00517     }
00518     const string hpath = tree().findPath(dynamic_cast<const AIDA::IManagedObject&>(*histo));
00519     getLog() << Log::TRACE << "Scaling histo " << hpath << endl;
00520  
00521     vector<double> x, y, ex, ey;
00522     for (size_t i = 0, N = histo->axis().bins(); i < N; ++i) {
00523       x.push_back(0.5 * (histo->axis().binLowerEdge(i) + histo->axis().binUpperEdge(i)));
00524       ex.push_back(histo->axis().binWidth(i)*0.5);
00525 
00526       // "Bin height" is a misnomer in the AIDA spec: width is neglected.
00527       // We'd like to do this: y.push_back(histo->binHeight(i) * scale);
00528       y.push_back(histo->binHeight(i)*scale/histo->axis().binWidth(i));
00529 
00530       // "Bin error" is a misnomer in the AIDA spec: width is neglected.
00531       // We'd like to do this: ey.push_back(histo->binError(i) * scale);
00532       ey.push_back(histo->binError(i)*scale/(0.5*histo->axis().binWidth(i)));
00533     }
00534  
00535     string title = histo->title();
00536     string xtitle = histo->xtitle();
00537     string ytitle = histo->ytitle();
00538 
00539     tree().mkdir("/tmpnormalize");
00540     tree().mv(hpath, "/tmpnormalize");
00541  
00542     AIDA::IDataPointSet* dps = datapointsetFactory().createXY(hpath, title, x, y, ex, ey);
00543     dps->setXTitle(xtitle);
00544     dps->setYTitle(ytitle);
00545  
00546     tree().rm(tree().findPath(dynamic_cast<AIDA::IManagedObject&>(*histo)));
00547     tree().rmdir("/tmpnormalize");
00548  
00549     // Set histo pointer to null - it can no longer be used.
00550     histo = 0;
00551   }

Analysis & setCrossSection ( double  xs  )  [inherited]

Set the cross section from the generator.

Definition at line 214 of file Analysis.cc.

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

Referenced by AnalysisHandler::setCrossSection().

00214                                                {
00215     _crossSection = xs;
00216     _gotCrossSection = true;
00217     return *this;
00218   }

bool needsCrossSection (  )  const [inherited]

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

Definition at line 220 of file Analysis.cc.

References Analysis::_needsCrossSection.

Referenced by AnalysisHandler::needCrossSection().

00220                                          {
00221     return _needsCrossSection;
00222   }

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 106 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(), JADE_OPAL_2000_S4300807::analyze(), H1_1994_S2919893::analyze(), ExampleAnalysis::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_2006_S6438750::analyze(), D0_2004_S5992206::analyze(), D0_2001_S4674421::analyze(), D0_1998_S3711838::analyze(), CDF_2009_S8383952::analyze(), CDF_2009_S8233977::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_2007_S7057202::finalize(), CDF_2006_S6653332::finalize(), ZEUS_2001_S4815815::init(), JADE_OPAL_2000_S4300807::init(), ALEPH_2004_S5765862::init(), Analysis::normalize(), and Analysis::scale().

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

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

00237                                               {
00238     const double sumW = sumOfWeights();
00239     assert(sumW > 0);
00240     return _crossSection / sumW;
00241   }

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

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

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

double sumOfWeights (  )  const [protected, inherited]

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]

Access the AIDA histogram factory of the controlling AnalysisHandler object.

Definition at line 65 of file Analysis.cc.

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

Referenced by STAR_2006_S6860818::finalize(), STAR_2006_S6500200::finalize(), H1_1995_S3167097::finalize(), D0_2008_S7837160::finalize(), D0_2008_S7719523::finalize(), and D0_2001_S4674421::finalize().

00065                                                 {
00066     return handler().histogramFactory();
00067   }

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.

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

00088                                         {
00089     string path = "/" + name();
00090     if (handler().runName().length() > 0) {
00091       path = "/" + handler().runName() + path;
00092     }
00093     while (find_first(path, "//")) {
00094       replace_all(path, "//", "/");
00095     }
00096     return path;
00097   }

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

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

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

References Analysis::binEdges(), and Rivet::makeAxisCode().

00286                                                                                            {
00287     const string hname = makeAxisCode(datasetId, xAxisId, yAxisId);
00288     return binEdges(hname);
00289   }

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

Get bin edges with logarithmic widths.

Definition at line 292 of file Analysis.cc.

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

00292                                                                          {
00293     assert(lower>0.0);
00294     assert(upper>lower);
00295     double loglower=log10(lower);
00296     double logupper=log10(upper);
00297     vector<double> binedges;
00298     double stepwidth=(logupper-loglower)/double(nbins);
00299     for (size_t i=0; i<=nbins; ++i) {
00300       binedges.push_back(pow(10.0, loglower+double(i)*stepwidth));
00301     }
00302     return binedges;
00303   }

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_1986_S1583476::init(), UA5_1982_S875503::init(), UA1_1990_S2044935::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_1998_S3780481::init(), MC_ZJETS::init(), MC_WJETS::init(), MC_TTBAR::init(), MC_SUSY::init(), MC_PHOTONJETUE::init(), MC_PHOTONJETS::init(), MC_JetAnalysis::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_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_1998_S3711838::init(), D0_1996_S3324664::init(), D0_1996_S3214044::init(), CDF_2009_S8436959::init(), CDF_2009_S8383952::init(), CDF_2009_S8233977::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_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 STAR_2006_S6860818::init(), MC_JetAnalysis::init(), JADE_OPAL_2000_S4300807::init(), CDF_2008_S7782535::init(), CDF_2008_S7541902::init(), CDF_1996_S3418421::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 ( const ParticleName beam1,
const ParticleName beam2 
) [protected, inherited]

Set the colliding beam pair.

Deprecated:
Use .info file and AnalysisInfo class instead

Definition at line 193 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_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_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(), 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_1998_S3780481::OPAL_1998_S3780481(), 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_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_1988_S1867512::UA5_1988_S1867512(), UA5_1989_S1926373::UA5_1989_S1926373(), and ZEUS_2001_S4815815::ZEUS_2001_S4815815().

00193                                                                                    {
00194     assert(_info.get() != 0);
00195     _info->_beams = make_pair(beam1, beam2);
00196     return *this;
00197   }

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

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

Definition at line 224 of file Analysis.cc.

References Analysis::_needsCrossSection.

Referenced by ATLAS_2010_S8591806::ATLAS_2010_S8591806(), CDF_1991_S2313472::CDF_1991_S2313472(), 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_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_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_JetAnalysis::MC_JetAnalysis(), MC_JETS::MC_JETS(), MC_PHOTONJETS::MC_PHOTONJETS(), MC_WJETS::MC_WJETS(), MC_ZJETS::MC_ZJETS(), STAR_2006_S6870392::STAR_2006_S6870392(), and UA1_1990_S2044935::UA1_1990_S2044935().

00224                                                       {
00225     _needsCrossSection = needed;
00226     return *this;
00227   }

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

Get the contained projections, including recursion.

Definition at line 43 of file ProjectionApplier.hh.

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

Referenced by Projection::beamPairs().

00043                                                       {
00044       return getProjHandler().getChildProjections(*this, ProjectionHandler::DEEP);
00045     }

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

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

Definition at line 50 of file ProjectionApplier.hh.

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

Referenced by VetoedFinalState::compare(), Rivet::pcmp(), and Hemispheres::project().

00050                                                            {
00051       const Projection& p = getProjHandler().getProjection(*this, name);
00052       return pcast<PROJ>(p);
00053     }

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

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

00058                                                                  {
00059       return getProjHandler().getProjection(*this, name);
00060     }

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

Apply the supplied projection on event.

Definition at line 68 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

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

00068                                                                           {
00069       return pcast<PROJ>(_applyProjection(evt, proj));
00070     }

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

Apply the supplied projection on event.

Definition at line 75 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

00075                                                                                 {
00076       return pcast<PROJ>(_applyProjection(evt, proj));
00077     }

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

Apply the named projection on event.

Definition at line 82 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

00082                                                                                {
00083       return pcast<PROJ>(_applyProjection(evt, name));
00084     }

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

Get a reference to the ProjectionHandler for this thread.

Definition at line 95 of file ProjectionApplier.hh.

References ProjectionApplier::_projhandler.

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

00095                                               {
00096       assert(_projhandler);
00097       return *_projhandler;
00098     }

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 115 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_1986_S1583476::init(), UA5_1982_S875503::init(), UA1_1990_S2044935::init(), STAR_2009_UE_HELEN::init(), STAR_2008_S7993412::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_1998_S3780481::init(), MC_ZJETS::init(), MC_WJETS::init(), MC_TTBAR::init(), MC_SUSY::init(), MC_PHOTONJETUE::init(), MC_PHOTONJETS::init(), MC_LEADINGJETS::init(), MC_JETS::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_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_1998_S3711838::init(), D0_1996_S3324664::init(), D0_1996_S3214044::init(), CDF_2009_S8436959::init(), CDF_2009_S8383952::init(), CDF_2009_S8233977::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_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(), KtJets::KtJets(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState::LossyFinalState(), MergedFinalState::MergedFinalState(), Multiplicity::Multiplicity(), NeutralFinalState::NeutralFinalState(), ParisiTensor::ParisiTensor(), Sphericity::Sphericity(), SVertex::SVertex(), Thrust::Thrust(), TotalVisibleMomentum::TotalVisibleMomentum(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerUA5::TriggerUA5(), and VetoedFinalState::VetoedFinalState().

00115                                                                        {
00116       const Projection& reg = _addProjection(proj, name);
00117       return dynamic_cast<const PROJ&>(reg);
00118     }

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


Member Data Documentation

AIDA::IHistogram1D* _h_3_mNJ [private]

AIDA::IHistogram1D* _h_3_X3 [private]

AIDA::IHistogram1D* _h_3_X4 [private]

AIDA::IHistogram1D* _h_3_costheta3 [private]

AIDA::IHistogram1D* _h_3_psi3 [private]

AIDA::IHistogram1D* _h_3_f3 [private]

AIDA::IHistogram1D* _h_3_f4 [private]

AIDA::IHistogram1D* _h_3_f5 [private]

AIDA::IHistogram1D* _h_4_mNJ [private]

AIDA::IHistogram1D* _h_4_X3 [private]

AIDA::IHistogram1D* _h_4_X4 [private]

AIDA::IHistogram1D* _h_4_costheta3 [private]

AIDA::IHistogram1D* _h_4_psi3 [private]

AIDA::IHistogram1D* _h_4_f3 [private]

AIDA::IHistogram1D* _h_4_f4 [private]

AIDA::IHistogram1D* _h_4_f5 [private]

AIDA::IHistogram1D* _h_4_XA [private]

AIDA::IHistogram1D* _h_4_psiAB [private]

AIDA::IHistogram1D* _h_4_fA [private]

AIDA::IHistogram1D* _h_4_fB [private]

AIDA::IHistogram1D* _h_5_mNJ [private]

AIDA::IHistogram1D* _h_5_X3 [private]

AIDA::IHistogram1D* _h_5_X4 [private]

AIDA::IHistogram1D* _h_5_costheta3 [private]

AIDA::IHistogram1D* _h_5_psi3 [private]

AIDA::IHistogram1D* _h_5_f3 [private]

AIDA::IHistogram1D* _h_5_f4 [private]

AIDA::IHistogram1D* _h_5_f5 [private]

AIDA::IHistogram1D* _h_5_XA [private]

AIDA::IHistogram1D* _h_5_XC [private]

AIDA::IHistogram1D* _h_5_psiAB [private]

AIDA::IHistogram1D* _h_5_psiCD [private]

AIDA::IHistogram1D* _h_5_fA [private]

AIDA::IHistogram1D* _h_5_fB [private]

AIDA::IHistogram1D* _h_5_fC [private]

AIDA::IHistogram1D* _h_5_fD [private]

string _defaultname [protected, inherited]

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

Definition at line 412 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 141 of file ProjectionApplier.hh.

Referenced by ProjectionApplier::_addProjection(), and AnalysisHandler::init().


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