Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F9501815
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
26 KB
Subscribers
None
View Options
diff --git a/analyses/pluginATLAS/ATLAS_2010_S8591806.cc b/analyses/pluginATLAS/ATLAS_2010_S8591806.cc
--- a/analyses/pluginATLAS/ATLAS_2010_S8591806.cc
+++ b/analyses/pluginATLAS/ATLAS_2010_S8591806.cc
@@ -1,73 +1,71 @@
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/ChargedFinalState.hh"
namespace Rivet {
/// @brief ATLAS minimum bias analysis at 900 GeV
/// @author Frank Siegert
class ATLAS_2010_S8591806 : public Analysis {
public:
ATLAS_2010_S8591806()
: Analysis("ATLAS_2010_S8591806")
{ }
void init() {
ChargedFinalState cfs(-2.5, 2.5, 0.5*GeV);
declare(cfs, "CFS");
book(_h_dNch_deta ,2, 1, 1);
book(_h_dNch_dpT ,3, 1, 1);
book(_h_dNevt_dNch ,4, 1, 1);
book(_p_meanpT_Nch ,5, 1, 1);
book(_Nevt_after_cuts, "nevt_pass");
}
void analyze(const Event& event) {
- const double;
-
const ChargedFinalState& charged = apply<ChargedFinalState>(event, "CFS");
if (charged.size() < 1) {
vetoEvent;
}
_Nevt_after_cuts->fill();
_h_dNevt_dNch->fill(charged.size());
foreach (const Particle& p, charged.particles()) {
double pT = p.pT()/GeV;
_h_dNch_deta->fill(p.eta());
_h_dNch_dpT->fill(pT, 1.0/pT);
_p_meanpT_Nch->fill(charged.size(), pT);
}
}
void finalize() {
double deta = 5.0;
scale(_h_dNch_deta, 1.0/_Nevt_after_cuts->val());
scale(_h_dNch_dpT, 1.0/_Nevt_after_cuts->val()/TWOPI/deta);
scale(_h_dNevt_dNch, 1.0/_Nevt_after_cuts->val());
}
private:
Histo1DPtr _h_dNch_deta;
Histo1DPtr _h_dNch_dpT;
Histo1DPtr _h_dNevt_dNch;
Profile1DPtr _p_meanpT_Nch;
CounterPtr _Nevt_after_cuts;
};
//DECLARE_RIVET_PLUGIN(ATLAS_2010_S8591806);
DECLARE_ALIASED_RIVET_PLUGIN(ATLAS_2010_S8591806, ATLAS_2010_I849050);
}
diff --git a/analyses/pluginATLAS/ATLAS_2011_I925932.cc b/analyses/pluginATLAS/ATLAS_2011_I925932.cc
--- a/analyses/pluginATLAS/ATLAS_2011_I925932.cc
+++ b/analyses/pluginATLAS/ATLAS_2011_I925932.cc
@@ -1,115 +1,113 @@
// -*- C++ -*-
// ATLAS W pT analysis
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/WFinder.hh"
namespace Rivet {
class ATLAS_2011_I925932 : public Analysis {
public:
/// Constructor
ATLAS_2011_I925932() : Analysis("ATLAS_2011_I925932") { }
/// @name Analysis methods
//@{
void init() {
// Set up projections
FinalState fs;
Cut cuts = Cuts::abseta < 2.4 && Cuts::pT > 20*GeV;
WFinder wfinder_dressed_el(fs, cuts, PID::ELECTRON, 0*GeV, 1000*GeV, 25*GeV, 0.2, WFinder::CLUSTERNODECAY);
declare(wfinder_dressed_el, "WFinder_dressed_el");
WFinder wfinder_bare_el(fs, cuts, PID::ELECTRON, 0*GeV, 1000*GeV, 25*GeV, 0.0, WFinder::NOCLUSTER);
declare(wfinder_bare_el, "WFinder_bare_el");
WFinder wfinder_dressed_mu(fs, cuts, PID::MUON, 0*GeV, 1000*GeV, 25*GeV, 0.2, WFinder::CLUSTERNODECAY);
declare(wfinder_dressed_mu, "WFinder_dressed_mu");
WFinder wfinder_bare_mu(fs, cuts, PID::MUON, 0*GeV, 1000*GeV, 25*GeV, 0.0, WFinder::NOCLUSTER);
declare(wfinder_bare_mu, "WFinder_bare_mu");
// Book histograms
book(_hist_wpt_dressed_el ,1, 1, 1);
book(_hist_wpt_bare_el ,1, 1, 2);
book(_hist_wpt_dressed_mu ,2, 1, 1);
book(_hist_wpt_bare_mu ,2, 1, 2);
}
/// Do the analysis
void analyze(const Event& event) {
- const double weight = 1.0;
-
const WFinder& wfinder_dressed_el = apply<WFinder>(event, "WFinder_dressed_el");
const WFinder& wfinder_bare_el = apply<WFinder>(event, "WFinder_bare_el");
const WFinder& wfinder_dressed_mu = apply<WFinder>(event, "WFinder_dressed_mu");
const WFinder& wfinder_bare_mu = apply<WFinder>(event, "WFinder_bare_mu");
if (wfinder_dressed_el.empty() && wfinder_bare_el.empty() &&
wfinder_dressed_mu.empty() && wfinder_bare_mu.empty()) {
MSG_DEBUG("No W bosons found");
vetoEvent;
}
// "Dressed" electron
if (!wfinder_dressed_el.particles().empty()) {
const FourMomentum& nu = wfinder_dressed_el.constituentNeutrinos()[0].momentum();
if (wfinder_dressed_el.mT() > 40*GeV && nu.pT() > 25*GeV) {
- _hist_wpt_dressed_el->fill(wfinder_dressed_el.bosons()[0].pT()/GeV, weight);
+ _hist_wpt_dressed_el->fill(wfinder_dressed_el.bosons()[0].pT()/GeV);
}
}
// "Bare" electron
if (!wfinder_bare_el.particles().empty()) {
const FourMomentum& nu = wfinder_bare_el.constituentNeutrinos()[0].momentum();
if (wfinder_bare_el.mT() > 40*GeV && nu.pT() > 25*GeV) {
- _hist_wpt_bare_el->fill(wfinder_bare_el.bosons()[0].pT()/GeV, weight);
+ _hist_wpt_bare_el->fill(wfinder_bare_el.bosons()[0].pT()/GeV);
}
}
// "Dressed" muon
if (!wfinder_dressed_mu.particles().empty()) {
const FourMomentum& nu = wfinder_dressed_mu.constituentNeutrinos()[0].momentum();
if (wfinder_dressed_mu.mT() > 40*GeV && nu.pT() > 25*GeV) {
- _hist_wpt_dressed_mu->fill(wfinder_dressed_mu.bosons()[0].pT()/GeV, weight);
+ _hist_wpt_dressed_mu->fill(wfinder_dressed_mu.bosons()[0].pT()/GeV);
}
}
// "Bare" muon
if (!wfinder_bare_mu.particles().empty()) {
const FourMomentum& nu = wfinder_bare_mu.constituentNeutrinos()[0].momentum();
if (wfinder_bare_mu.mT() > 40*GeV && nu.pT() > 25*GeV) {
- _hist_wpt_bare_mu->fill(wfinder_bare_mu.bosons()[0].pT()/GeV, weight);
+ _hist_wpt_bare_mu->fill(wfinder_bare_mu.bosons()[0].pT()/GeV);
}
}
}
// Normalize histos
void finalize() {
normalize(_hist_wpt_dressed_el);
normalize(_hist_wpt_bare_el);
normalize(_hist_wpt_dressed_mu);
normalize(_hist_wpt_bare_mu);
}
//@}
private:
Histo1DPtr _hist_wpt_dressed_el;
Histo1DPtr _hist_wpt_bare_el;
Histo1DPtr _hist_wpt_dressed_mu;
Histo1DPtr _hist_wpt_bare_mu;
};
// Hook for the plugin system
DECLARE_RIVET_PLUGIN(ATLAS_2011_I925932);
}
diff --git a/analyses/pluginATLAS/ATLAS_2011_I926145.cc b/analyses/pluginATLAS/ATLAS_2011_I926145.cc
--- a/analyses/pluginATLAS/ATLAS_2011_I926145.cc
+++ b/analyses/pluginATLAS/ATLAS_2011_I926145.cc
@@ -1,172 +1,170 @@
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/IdentifiedFinalState.hh"
#include "Rivet/Projections/WFinder.hh"
#include "Rivet/Projections/ZFinder.hh"
namespace Rivet {
/// @brief Measurement of electron and muon differential cross section from heavy flavour production
///
/// Lepton cross sections differential in pT
///
/// @author Paul Bell, Holger Schulz
class ATLAS_2011_I926145 : public Analysis {
public:
/// Constructor
ATLAS_2011_I926145()
: Analysis("ATLAS_2011_I926145")
{ }
public:
/// Book histograms and initialise projections before the run
void init() {
///projection for electrons
Cut cuts = (Cuts::abseta < 1.37 || Cuts::absetaIn(1.52, 2.00)) && Cuts::pT > 7*GeV;
IdentifiedFinalState elecs(cuts);
elecs.acceptId(PID::ELECTRON);
elecs.acceptId(PID::POSITRON);
declare(elecs, "elecs");
//projection for muons -- same phase space as above??? Not sure if the crack region has
//to be removed for the muons as well
std::vector<std::pair<double, double> > eta_m;
//eta_m.push_back(make_pair(-2.00,-1.52));
//eta_m.push_back(make_pair(-1.37,1.37));
//eta_m.push_back(make_pair(1.52,2.00));
//IdentifiedFinalState muons(eta_m, 7.0*GeV);
IdentifiedFinalState muons(Cuts::abseta < 2 && Cuts::pT > 7*GeV);
muons.acceptId(PID::MUON);
muons.acceptId(PID::ANTIMUON);
declare(muons, "muons");
//projection for muons full range
IdentifiedFinalState muons_full(Cuts::abseta < 2.5 && Cuts::pT > 4*GeV);
muons_full.acceptId(PID::MUON);
muons_full.acceptId(PID::ANTIMUON);
declare(muons_full, "muons_full");
Cut cut20 = Cuts::abseta < 2.0;
Cut cut25 = Cuts::abseta < 2.5;
const FinalState fs20(cut20);
const FinalState fs25(cut25);
/// @todo Bare Zs ...
ZFinder zfinder_e(fs20, cut20, PID::ELECTRON, 66.0*GeV, 116.0*GeV, 0.1, ZFinder::NOCLUSTER);
declare(zfinder_e, "ZFinder_e");
ZFinder zfinder_mu(fs20, cut20, PID::MUON, 66.0*GeV, 116.0*GeV, 0.1, ZFinder::NOCLUSTER);
declare(zfinder_mu, "ZFinder_mu");
ZFinder zfinder_mufull(fs25, cut25, PID::MUON, 66.0*GeV, 116.0*GeV, 0.1, ZFinder::NOCLUSTER);
declare(zfinder_mufull, "ZFinder_mufull");
/// @todo ... but dressed Ws?
WFinder wfinder_e(fs20, cut20, PID::ELECTRON, 60.0*GeV, 100.0*GeV, 25.0*GeV, 0.2);
declare(wfinder_e, "WFinder_e");
WFinder wfinder_mu(fs20, cut20, PID::MUON, 60.0*GeV, 100.0*GeV, 25.0*GeV, 0.2);
declare(wfinder_mu, "WFinder_mu");
WFinder wfinder_mufull(fs25, cut25, PID::MUON, 60.0*GeV, 100.0*GeV, 25.0*GeV, 0.2);
declare(wfinder_mufull, "WFinder_mufull");
// Book histograms
book(_histPt_elecs ,1 ,1 ,1);
book(_histPt_muons ,2 ,1 ,1);
book(_histPt_muons_full ,3 ,1 ,1);
}
/// Perform the per-event analysis
void analyze(const Event& event) {
- const double weight = 1.0;
-
const FinalState& elecs = apply<FinalState>(event, "elecs");
const FinalState& muons = apply<FinalState>(event, "muons");
const FinalState& muons_full = apply<FinalState>(event, "muons_full");
// Veto event if no lepton is present
if (elecs.size() == 0 && muons.size() == 0 && muons_full.size() == 0) {
vetoEvent;
}
// Check for W and or Z bosons in event
//
// Z veto
const ZFinder& zfinder_e = apply<ZFinder>(event, "ZFinder_e");
const ZFinder& zfinder_mu = apply<ZFinder>(event, "ZFinder_mu");
const ZFinder& zfinder_mufull = apply<ZFinder>(event, "ZFinder_mufull");
if (zfinder_e.bosons().size() > 0 || zfinder_mu.bosons().size() > 0 || zfinder_mufull.bosons().size() > 0) {
MSG_DEBUG("Num elec Z-bosons found: " << zfinder_e.bosons().size());
MSG_DEBUG("Num muon Z-bosons found: " << zfinder_mu.bosons().size());
MSG_DEBUG("Num muon Z-bosons found (|eta|<2.5): " << zfinder_mufull.bosons().size());
vetoEvent;
}
// W veto
const WFinder& wfinder_e = apply<WFinder>(event, "WFinder_e");
const WFinder& wfinder_mu = apply<WFinder>(event, "WFinder_mu");
const WFinder& wfinder_mufull = apply<WFinder>(event, "WFinder_mufull");
if (wfinder_e.bosons().size() > 0 || wfinder_mu.bosons().size() > 0 || wfinder_mufull.bosons().size() > 0) {
MSG_DEBUG("Num elec W-bosons found: " << wfinder_e.bosons().size());
MSG_DEBUG("Num muon W-bosons found: " << wfinder_mu.bosons().size());
MSG_DEBUG("Num muon W-bosons found (|eta|<2.5): " << wfinder_mufull.bosons().size());
vetoEvent;
}
// Electron histogram
if (elecs.size() > 0) {
foreach (const Particle& ele, elecs.particles()) {
if (ele.pT()*GeV < 26.0) {
- _histPt_elecs->fill(ele.pT()*GeV, weight);
+ _histPt_elecs->fill(ele.pT()*GeV);
}
}
}
// Muon histogram
if (muons.size() > 0) {
foreach (const Particle& muo, muons.particles()) {
if (muo.pT()*GeV < 26.0) {
- _histPt_muons->fill(muo.pT()*GeV, weight);
+ _histPt_muons->fill(muo.pT()*GeV);
}
}
}
// Muon full histogram
if (muons_full.size() > 0) {
foreach (const Particle& muo, muons_full.particles()) {
if (muo.pT()*GeV < 100.0) {
- _histPt_muons_full->fill(muo.pT()*GeV, weight);
+ _histPt_muons_full->fill(muo.pT()*GeV);
}
}
}
}
/// Normalise histograms etc., after the run
void finalize() {
// Data cross-section is given in nb! x-sections in rivet are in pb!
scale(_histPt_elecs, crossSection()/nanobarn/sumOfWeights());
scale(_histPt_muons, crossSection()/nanobarn/sumOfWeights());
scale(_histPt_muons_full, crossSection()/nanobarn/sumOfWeights());
}
private:
/// @name Histograms
Histo1DPtr _histPt_elecs;
Histo1DPtr _histPt_muons;
Histo1DPtr _histPt_muons_full;
};
// The hook for the plugin system
DECLARE_RIVET_PLUGIN(ATLAS_2011_I926145);
}
diff --git a/analyses/pluginATLAS/ATLAS_2011_I928289_W.cc b/analyses/pluginATLAS/ATLAS_2011_I928289_W.cc
--- a/analyses/pluginATLAS/ATLAS_2011_I928289_W.cc
+++ b/analyses/pluginATLAS/ATLAS_2011_I928289_W.cc
@@ -1,148 +1,147 @@
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/WFinder.hh"
namespace Rivet {
class ATLAS_2011_I928289_W : public Analysis {
public:
/// Constructor
ATLAS_2011_I928289_W()
: Analysis("ATLAS_2011_I928289_W")
{
setNeedsCrossSection(true);
}
/// @name Analysis methods
//@{
/// Book histograms and initialise projections before the run
void init() {
///Initialise and register projections here
FinalState fs;
Cut cut = (Cuts::pT >= 20*GeV);
WFinder wfinder_el_bare( fs, cut, PID::ELECTRON, 40.0*GeV, 7000.0*GeV, 25.0*GeV, 0.0, WFinder::CLUSTERNODECAY, WFinder::NOTRACK, WFinder::TRANSMASS);
WFinder wfinder_el_dressed(fs, cut, PID::ELECTRON, 40.0*GeV, 7000.0*GeV, 25.0*GeV, 0.1, WFinder::CLUSTERNODECAY, WFinder::NOTRACK, WFinder::TRANSMASS);
WFinder wfinder_mu_bare (fs, cut, PID::MUON , 40.0*GeV, 7000.0*GeV, 25.0*GeV, 0.0, WFinder::CLUSTERNODECAY, WFinder::NOTRACK, WFinder::TRANSMASS);
WFinder wfinder_mu_dressed(fs, cut, PID::MUON , 40.0*GeV, 7000.0*GeV, 25.0*GeV, 0.1, WFinder::CLUSTERNODECAY, WFinder::NOTRACK, WFinder::TRANSMASS);
declare(wfinder_el_bare , "WFinder_el_bare");
declare(wfinder_el_dressed, "WFinder_el_dressed");
declare(wfinder_mu_bare , "WFinder_mu_bare");
declare(wfinder_mu_dressed, "WFinder_mu_dressed");
/// Book histograms here
book(_h_Wminus_lepton_eta_el_bare ,3, 1, 1);
book(_h_Wminus_lepton_eta_el_dressed ,3, 1, 2);
book(_h_Wminus_lepton_eta_mu_bare ,3, 1, 3);
book(_h_Wminus_lepton_eta_mu_dressed ,3, 1, 4);
book(_h_Wplus_lepton_eta_el_bare ,5, 1, 1);
book(_h_Wplus_lepton_eta_el_dressed ,5, 1, 2);
book(_h_Wplus_lepton_eta_mu_bare ,5, 1, 3);
book(_h_Wplus_lepton_eta_mu_dressed ,5, 1, 4);
book(_h_W_asym_eta_el_bare ,7, 1, 1);
book(_h_W_asym_eta_el_dressed ,7, 1, 2);
book(_h_W_asym_eta_mu_bare ,7, 1, 3);
book(_h_W_asym_eta_mu_dressed ,7, 1, 4);
}
/// Perform the per-event analysis
void analyze(const Event& event) {
const WFinder& wfinder_el_bare = apply<WFinder>(event, "WFinder_el_bare");
const WFinder& wfinder_el_dressed = apply<WFinder>(event, "WFinder_el_dressed");
const WFinder& wfinder_mu_bare = apply<WFinder>(event, "WFinder_mu_bare");
const WFinder& wfinder_mu_dressed = apply<WFinder>(event, "WFinder_mu_dressed");
- const double weight = 1.0;
- fillPlots1D(wfinder_el_bare , _h_Wplus_lepton_eta_el_bare , _h_Wminus_lepton_eta_el_bare , weight);
- fillPlots1D(wfinder_el_dressed, _h_Wplus_lepton_eta_el_dressed, _h_Wminus_lepton_eta_el_dressed, weight);
- fillPlots1D(wfinder_mu_bare , _h_Wplus_lepton_eta_mu_bare , _h_Wminus_lepton_eta_mu_bare , weight);
- fillPlots1D(wfinder_mu_dressed, _h_Wplus_lepton_eta_mu_dressed, _h_Wminus_lepton_eta_mu_dressed, weight);
+ fillPlots1D(wfinder_el_bare , _h_Wplus_lepton_eta_el_bare , _h_Wminus_lepton_eta_el_bare);
+ fillPlots1D(wfinder_el_dressed, _h_Wplus_lepton_eta_el_dressed, _h_Wminus_lepton_eta_el_dressed);
+ fillPlots1D(wfinder_mu_bare , _h_Wplus_lepton_eta_mu_bare , _h_Wminus_lepton_eta_mu_bare);
+ fillPlots1D(wfinder_mu_dressed, _h_Wplus_lepton_eta_mu_dressed, _h_Wminus_lepton_eta_mu_dressed);
}
- void fillPlots1D(const WFinder& wfinder, Histo1DPtr hist_plus, Histo1DPtr hist_minus, double weight) {
+ void fillPlots1D(const WFinder& wfinder, Histo1DPtr hist_plus, Histo1DPtr hist_minus) {
if (wfinder.bosons().size() != 1) return;
const Particle l = wfinder.constituentLeptons()[0];
const FourMomentum& miss = wfinder.constituentNeutrinos()[0].momentum();
if (l.pT() > 20*GeV && miss.Et() > 25*GeV && wfinder.mT() > 40*GeV)
- (l.charge3() > 0 ? hist_plus : hist_minus)->fill(l.abseta(), weight);
+ (l.charge3() > 0 ? hist_plus : hist_minus)->fill(l.abseta());
}
/// Normalise histograms etc., after the run
void finalize() {
// Construct asymmetry: (dsig+/deta - dsig-/deta) / (dsig+/deta + dsig-/deta)
divide(*_h_Wplus_lepton_eta_el_bare - *_h_Wminus_lepton_eta_el_bare,
*_h_Wplus_lepton_eta_el_bare + *_h_Wminus_lepton_eta_el_bare,
_h_W_asym_eta_el_bare);
divide(*_h_Wplus_lepton_eta_el_dressed - *_h_Wminus_lepton_eta_el_dressed,
*_h_Wplus_lepton_eta_el_dressed + *_h_Wminus_lepton_eta_el_dressed,
_h_W_asym_eta_el_dressed);
divide(*_h_Wplus_lepton_eta_mu_bare - *_h_Wminus_lepton_eta_mu_bare,
*_h_Wplus_lepton_eta_mu_bare + *_h_Wminus_lepton_eta_mu_bare,
_h_W_asym_eta_mu_bare);
divide(*_h_Wplus_lepton_eta_mu_dressed - *_h_Wminus_lepton_eta_mu_dressed,
*_h_Wplus_lepton_eta_mu_dressed + *_h_Wminus_lepton_eta_mu_dressed,
_h_W_asym_eta_mu_dressed);
// Print summary info
const double xs_pb(crossSection() / picobarn);
const double sumw(sumOfWeights());
MSG_DEBUG( "Cross-section/pb : " << xs_pb );
MSG_DEBUG( "Sum of weights : " << sumw );
MSG_DEBUG( "nEvents : " << numEvents() );
/// Normalise, scale and otherwise manipulate histograms here
const double sf = 0.5 * xs_pb / sumw; // 0.5 accounts for rapidity bin width
scale(_h_Wminus_lepton_eta_el_bare , sf);
scale(_h_Wminus_lepton_eta_el_dressed, sf);
scale(_h_Wminus_lepton_eta_mu_bare , sf);
scale(_h_Wminus_lepton_eta_mu_dressed, sf);
scale(_h_Wplus_lepton_eta_el_bare , sf);
scale(_h_Wplus_lepton_eta_el_dressed , sf);
scale(_h_Wplus_lepton_eta_mu_bare , sf);
scale(_h_Wplus_lepton_eta_mu_dressed , sf);
}
//@}
private:
/// @name Histograms
//@{
Histo1DPtr _h_Wminus_lepton_eta_el_bare;
Histo1DPtr _h_Wminus_lepton_eta_el_dressed;
Histo1DPtr _h_Wminus_lepton_eta_mu_bare;
Histo1DPtr _h_Wminus_lepton_eta_mu_dressed;
Histo1DPtr _h_Wplus_lepton_eta_el_bare;
Histo1DPtr _h_Wplus_lepton_eta_el_dressed;
Histo1DPtr _h_Wplus_lepton_eta_mu_bare;
Histo1DPtr _h_Wplus_lepton_eta_mu_dressed;
Scatter2DPtr _h_W_asym_eta_el_bare;
Scatter2DPtr _h_W_asym_eta_el_dressed;
Scatter2DPtr _h_W_asym_eta_mu_bare;
Scatter2DPtr _h_W_asym_eta_mu_dressed;
//@}
};
// The hook for the plugin system
DECLARE_RIVET_PLUGIN(ATLAS_2011_I928289_W);
}
diff --git a/analyses/pluginATLAS/ATLAS_2011_I928289_Z.cc b/analyses/pluginATLAS/ATLAS_2011_I928289_Z.cc
--- a/analyses/pluginATLAS/ATLAS_2011_I928289_Z.cc
+++ b/analyses/pluginATLAS/ATLAS_2011_I928289_Z.cc
@@ -1,111 +1,110 @@
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/ZFinder.hh"
namespace Rivet {
class ATLAS_2011_I928289_Z : public Analysis {
public:
/// Constructor
ATLAS_2011_I928289_Z()
: Analysis("ATLAS_2011_I928289_Z")
{
setNeedsCrossSection(true);
}
/// @name Analysis methods
//@{
/// Book histograms and initialise projections before the run
void init() {
FinalState fs;
Cut cut = (Cuts::pT >= 20.0*GeV);
ZFinder zfinder_ee_bare( fs, cut, PID::ELECTRON, 66.0*GeV, 116.0*GeV, 0.0, ZFinder::CLUSTERNODECAY, ZFinder::NOTRACK);
ZFinder zfinder_ee_dressed(fs, cut, PID::ELECTRON, 66.0*GeV, 116.0*GeV, 0.1, ZFinder::CLUSTERNODECAY, ZFinder::NOTRACK);
ZFinder zfinder_mm_bare( fs, cut, PID::MUON , 66.0*GeV, 116.0*GeV, 0.0, ZFinder::CLUSTERNODECAY, ZFinder::NOTRACK);
ZFinder zfinder_mm_dressed(fs, cut, PID::MUON , 66.0*GeV, 116.0*GeV, 0.1, ZFinder::CLUSTERNODECAY, ZFinder::NOTRACK);
declare(zfinder_ee_bare , "ZFinder_ee_bare" );
declare(zfinder_ee_dressed, "ZFinder_ee_dressed");
declare(zfinder_mm_bare , "ZFinder_mm_bare" );
declare(zfinder_mm_dressed, "ZFinder_mm_dressed");
// y(Z) cross-section dependence
book(_h_Z_y_ee_bare ,1, 1, 1);
book(_h_Z_y_ee_dressed ,1, 1, 2);
book(_h_Z_y_mm_bare ,1, 1, 3);
book(_h_Z_y_mm_dressed ,1, 1, 4);
}
/// Perform the per-event analysis
void analyze(const Event& event) {
const ZFinder& zfinder_ee_bare = apply<ZFinder>(event, "ZFinder_ee_bare" );
const ZFinder& zfinder_ee_dressed = apply<ZFinder>(event, "ZFinder_ee_dressed");
const ZFinder& zfinder_mm_bare = apply<ZFinder>(event, "ZFinder_mm_bare" );
const ZFinder& zfinder_mm_dressed = apply<ZFinder>(event, "ZFinder_mm_dressed");
- const double weight = 1.0;
- fillPlots1D(zfinder_ee_bare , _h_Z_y_ee_bare , weight);
- fillPlots1D(zfinder_ee_dressed, _h_Z_y_ee_dressed, weight);
- fillPlots1D(zfinder_mm_bare , _h_Z_y_mm_bare , weight);
- fillPlots1D(zfinder_mm_dressed, _h_Z_y_mm_dressed, weight);
+ fillPlots1D(zfinder_ee_bare , _h_Z_y_ee_bare);
+ fillPlots1D(zfinder_ee_dressed, _h_Z_y_ee_dressed);
+ fillPlots1D(zfinder_mm_bare , _h_Z_y_mm_bare);
+ fillPlots1D(zfinder_mm_dressed, _h_Z_y_mm_dressed);
}
- void fillPlots1D(const ZFinder& zfinder, Histo1DPtr hist, double weight) {
+ void fillPlots1D(const ZFinder& zfinder, Histo1DPtr hist) {
if (zfinder.bosons().size() != 1) return;
const FourMomentum zmom = zfinder.bosons()[0].momentum();
- hist->fill(zmom.absrap(), weight);
+ hist->fill(zmom.absrap());
}
/// Normalise histograms etc., after the run
void finalize() {
// Print summary info
const double xs_pb(crossSection() / picobarn);
const double sumw(sumOfWeights());
MSG_DEBUG("Cross-Section/pb: " << xs_pb );
MSG_DEBUG("Sum of weights : " << sumw );
MSG_DEBUG("nEvents : " << numEvents());
// Normalise, scale and otherwise manipulate histograms here
const double sf(0.5 * xs_pb / sumw); // 0.5 accounts for rapidity bin width
scale(_h_Z_y_ee_bare , sf);
scale(_h_Z_y_ee_dressed, sf);
scale(_h_Z_y_mm_bare , sf);
scale(_h_Z_y_mm_dressed, sf);
}
//@}
private:
/// @name Histograms
//@{
Histo1DPtr _h_Z_y_ee_bare;
Histo1DPtr _h_Z_y_ee_dressed;
Histo1DPtr _h_Z_y_mm_bare;
Histo1DPtr _h_Z_y_mm_dressed;
//@}
};
// The hook for the plugin system
DECLARE_RIVET_PLUGIN(ATLAS_2011_I928289_Z);
}
diff --git a/analyses/pluginATLAS/ATLAS_2011_I929691.cc b/analyses/pluginATLAS/ATLAS_2011_I929691.cc
--- a/analyses/pluginATLAS/ATLAS_2011_I929691.cc
+++ b/analyses/pluginATLAS/ATLAS_2011_I929691.cc
@@ -1,103 +1,102 @@
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/FastJets.hh"
#include "Rivet/Projections/ChargedFinalState.hh"
namespace Rivet {
/// Jet fragmentation at 7 TeV
class ATLAS_2011_I929691 : public Analysis {
public:
/// Constructor
DEFAULT_RIVET_ANALYSIS_CTOR(ATLAS_2011_I929691);
/// Initialisation
void init() {
const FinalState fs(Cuts::abseta < 2.0);
FastJets antikt_06_jets(fs, FastJets::ANTIKT, 0.6, JetAlg::NO_MUONS, JetAlg::NO_INVISIBLES);
declare(antikt_06_jets, "jets");
ChargedFinalState tracks(Cuts::pT > 0.5*GeV && Cuts::abseta < 2.0);
declare(tracks, "tracks");
// Set up the histograms (each element is a binning in jet pT)
for (size_t i = 0; i < 10; i++) {
book(_p_F_z[i] , i+ 1, 1, 1);
book(_p_rho_r[i] , i+11, 1, 1);
book(_p_f_pTrel[i], i+21, 1, 1);
}
}
// Per-event analysis
void analyze(const Event& event) {
const Jets alljets = apply<FastJets>(event, "jets").jetsByPt(Cuts::absrap < 1.2);
const Particles& tracks = apply<ChargedFinalState>(event, "tracks").particlesByPt();
for (size_t i = 0; i < 10; ++i) {
const Jets jets = filter_select(alljets, Cuts::pT > bedges[i] && Cuts::pT < bedges[i+1]);
const int n_jets = jets.size();
if (n_jets == 0) continue;
// First... count the tracks
Histo1D h_ntracks_z(*_p_F_z[i]), h_ntracks_r(*_p_rho_r[i]), h_ntracks_pTrel(*_p_f_pTrel[i]);
for (const Jet& j : jets) {
for (const Particle& p : tracks) {
const double dr = deltaR(j, p, RAPIDITY);
if (dr > 0.6) continue; // The paper uses pseudorapidity, but this is a requirement for filling the histogram
h_ntracks_z.fill(z(j, p), 1.0/n_jets);
h_ntracks_r.fill(dr, 1.0/n_jets);
h_ntracks_pTrel.fill(pTrel(j, p), 1.0/n_jets);
}
}
// Then... calculate the observable and fill the profiles
- const double weight = 1.0;
for (const HistoBin1D& b : h_ntracks_z.bins())
- _p_F_z[i]->fill(b.xMid(), b.height(), weight);
+ _p_F_z[i]->fill(b.xMid(), b.height());
for (const HistoBin1D& b : h_ntracks_r.bins())
- _p_rho_r[i]->fill(b.xMid(), b.area()/annulus_area(b.xMin(), b.xMax()), weight);
+ _p_rho_r[i]->fill(b.xMid(), b.area()/annulus_area(b.xMin(), b.xMax()));
for (const HistoBin1D& b : h_ntracks_pTrel.bins())
- _p_f_pTrel[i]->fill(b.xMid(), b.height(), weight);
+ _p_f_pTrel[i]->fill(b.xMid(), b.height());
}
}
double z (const Jet& jet, const Particle& ch) {
return dot(jet.p3(), ch.p3()) / jet.p3().mod2();
}
double pTrel (const Jet& jet, const Particle& ch) {
return (ch.p3().cross(jet.p3())).mod()/(jet.p3().mod());
}
// To calculate the area of the annulus in an r bin
double annulus_area(double r1, double r2) {
return M_PI*(sqr(r2) - sqr(r1));
}
private:
Profile1DPtr _p_F_z[10], _p_rho_r[10], _p_f_pTrel[10];
const vector<double> bedges = { 25., 40., 60., 80., 110., 160., 210., 260., 310., 400., 500. };
};
// The hook for the plugin system
DECLARE_RIVET_PLUGIN(ATLAS_2011_I929691);
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sun, Feb 23, 3:06 PM (24 m, 28 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4486844
Default Alt Text
(26 KB)
Attached To
rRIVETHG rivethg
Event Timeline
Log In to Comment