diff --git a/analyses/pluginALICE/ALICE_2010_I880049.cc b/analyses/pluginALICE/ALICE_2010_I880049.cc --- a/analyses/pluginALICE/ALICE_2010_I880049.cc +++ b/analyses/pluginALICE/ALICE_2010_I880049.cc @@ -1,75 +1,104 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Tools/Cuts.hh" #include "Rivet/Projections/SingleValueProjection.hh" #include "Rivet/Tools/AliceCommon.hh" #include "Rivet/Projections/AliceCommon.hh" #include #define _USE_MATH_DEFINES #include namespace Rivet { // Analysis class ALICE_2010_I880049 : public Analysis { public: DEFAULT_RIVET_ANALYSIS_CTOR(ALICE_2010_I880049); /// Book histograms and initialise projections before the run void init() { // Declare centrality projection declareCentrality(ALICE::V0MMultiplicity(), "ALICE_2015_PBPBCentrality", "V0M", "V0M"); // Charged final states with |eta| < 0.5 and pT > 50 MeV const Cut& cut = Cuts::abseta < 0.5 && Cuts::pT > 50*MeV; const ChargedFinalState cfs(cut); addProjection(cfs,"CFS"); + // Trigger projections + declare(ChargedFinalState((Cuts::eta > 2.8 && Cuts::eta < 5.1) && + Cuts::pT > 0.1*GeV), "VZERO1"); + declare(ChargedFinalState((Cuts::eta > -3.7 && Cuts::eta < -1.7) && + Cuts::pT > 0.1*GeV), "VZERO2"); + declare(ChargedFinalState(Cuts::abseta < 1. && Cuts::pT > 0.15*GeV), + "SPD"); + + // Primary particles + declare(ALICE::PrimaryParticles(Cuts::abseta < 5.6),"APRIM"); + // Histograms and variables initialization _histNchVsCentr = bookProfile1D(1, 1, 1); _histNpartVsCentr = bookProfile1D(1, 1, 2); } /// Perform the per-event analysis void analyze(const Event& event) { - const ChargedFinalState& charged = apply(event, "CFS"); + // Trigger projections + const ChargedFinalState& vz1 = + applyProjection(event,"VZERO1"); + const ChargedFinalState& vz2 = + applyProjection(event,"VZERO2"); + const ChargedFinalState& spd = + applyProjection(event,"SPD"); + int fwdTrig = (vz1.particles().size() > 0 ? 1 : 0); + int bwdTrig = (vz2.particles().size() > 0 ? 1 : 0); + int cTrig = (spd.particles().size() > 0 ? 1 : 0); + + if (fwdTrig + bwdTrig + cTrig < 2) vetoEvent; const CentralityProjection& centrProj = apply(event, "V0M"); double centr = centrProj(); - double nch = charged.particles().size(); if (centr > 80.) vetoEvent; + // Calculate number of charged particles and fill histogram + double nch = 0.; + //primary.particles().size(); + for (const auto& p : applyProjection(event,"APRIM").particles()) { + if(p.abscharge() > 0) + nch++; + } _histNchVsCentr->fill(centr, nch, event.weight()); + // Attempt to extract Npart form GenEvent. TODO: Unclear how to handle this // in HepMC3 const HepMC::HeavyIon* hi = event.genEvent()->heavy_ion(); if (hi && hi->is_valid()) _histNpartVsCentr->fill(centr, hi->Npart_proj() + hi->Npart_targ(), event.weight()); } /// Normalise histograms etc., after the run void finalize() { } private: Profile1DPtr _histNchVsCentr; Profile1DPtr _histNpartVsCentr; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ALICE_2010_I880049); } diff --git a/analyses/pluginALICE/ALICE_2010_I880049.info b/analyses/pluginALICE/ALICE_2010_I880049.info --- a/analyses/pluginALICE/ALICE_2010_I880049.info +++ b/analyses/pluginALICE/ALICE_2010_I880049.info @@ -1,40 +1,43 @@ Name: ALICE_2010_I880049 Year: 2010 Summary: Centrality dependence of the charged-particle multiplicity density at mid-rapidity in Pb--Pb collisions at $\sqrt{s_{\rm{NN}}} = 2.76$ TeV Experiment: ALICE Collider: LHC SpireID: 032301 InspireID: 880049 -Status: UNVALIDATED +Status: VALIDATED Authors: + - Przemyslaw Karczmarczyk + - Jan Fiete Grosse-Oetringhaus + - Jochen Klein References: - arXiv:1012.1657 [nucl-ex] RunInfo: NumEvents: Options: - cent=REF,GEN,IMP,USR Beams: [1000822080, 1000822080] # This is _total_ energy of beams, so this becomes 208*2760=574080 Energies: [574080] Description: 'The centrality dependence of the charged-particle multiplicity density at mid-rapidity in Pb-Pb collisions at $\sqrt{s_{NN}} = 2.76$ TeV is presented. The charged-particle density normalized per participating nucleon pair increases by about a factor 2 from peripheral (70-80%) to central (0-5%) collisions. The centrality dependence is found to be similar to that observed at lower collision energies. The data are compared with models based on different mechanisms for particle production in nuclear collisions.' BibKey: Aamodt:2010cz BibTeX: '@article{Aamodt:2010cz, author = "Aamodt, Kenneth and others", title = "{Centrality dependence of the charged-particle multiplicity density at mid-rapidity in Pb-Pb collisions at $\sqrt{s_{NN}}=2.76$ TeV}", collaboration = "ALICE", journal = "Phys. Rev. Lett.", volume = "106", year = "2011", pages = "032301", doi = "10.1103/PhysRevLett.106.032301", eprint = "1012.1657", archivePrefix = "arXiv", primaryClass = "nucl-ex", reportNumber = "CERN-PH-EP-2010-071", SLACcitation = "%%CITATION = ARXIV:1012.1657;%%" }' diff --git a/analyses/pluginALICE/ALICE_2012_I1127497.cc b/analyses/pluginALICE/ALICE_2012_I1127497.cc --- a/analyses/pluginALICE/ALICE_2012_I1127497.cc +++ b/analyses/pluginALICE/ALICE_2012_I1127497.cc @@ -1,180 +1,180 @@ // -*- C++ -*- #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Tools/Cuts.hh" #include "Rivet/Projections/SingleValueProjection.hh" #include "Rivet/Tools/AliceCommon.hh" #include "Rivet/Projections/AliceCommon.hh" #include #define _USE_MATH_DEFINES #include namespace Rivet { /// Analysis class ALICE_2012_I1127497 : public Analysis { public: DEFAULT_RIVET_ANALYSIS_CTOR(ALICE_2012_I1127497); /// Book histograms and initialise projections before the run void init() { // Declare centrality projection - declareCentrality(ALICE::V0MMultiplicity(), "ALICE_2015_PBPBCentrality", "V0M", "V0M"); + if (getOption("cent") == "REF") { + _mode = 1; + declareCentrality(ALICE::V0MMultiplicity(), "ALICE_2015_PBPBCentrality", "V0M", "V0M"); + } + else if (getOption("cent") == "IMP") { + _mode = 2; + declareCentrality(ALICE::V0MMultiplicity(), "ALICE_2015_PBPBCentrality", "V0M", "V0M_IMP"); + } // Charged final states with |eta| < 0.5 and pT > 150 MeV const Cut& cut = Cuts::abseta < 0.5 && Cuts::pT > 150*MeV; const ChargedFinalState cfs(cut); addProjection(cfs,"CFS"); // Loop over all histograms for (size_t ihist = 0; ihist < NHISTOS; ++ihist) { // Initialize PbPb objects - _histNch[1][ihist] = bookHisto1D(ihist+1, 1, 1); - _sumOfWeights[1][ihist] = 0; + _histNch[PBPB][ihist] = bookHisto1D(ihist+1, 1, 1); - // Initialize pp objects. In principle, only one pp histogram would be needed since centrality does not - // make any difference here. However, in some cases in this analysis the binning differ from each other, - // so this is easy-to-implement way to account for that. - std::string namePbPb = _histNch[1][ihist]->name(); - std::string namePP = namePbPb + "-pp"; - _histNch[0][ihist] = bookHisto1D( namePP, refData(ihist+1, 1, 1) ); // binning taken from ref data - _sumOfWeights[0][ihist] = 0; + std::string nameCounterPbPb = "Counter_PbPb_" + std::to_string(ihist); + _counterSOW[PBPB][ihist] = bookCounter(nameCounterPbPb, "Sum of weights counter for PbPb"); - // Initialize R_AA histograms - _histRAA[ihist] = bookScatter2D(ihist+16, 1, 1); + std::string nameCounterNcoll = "Counter_Ncoll_" + std::to_string(ihist); + _counterNcoll[ihist] = bookCounter(nameCounterNcoll, "Ncoll counter for PbPb"); + + // Initialize pp objects. In principle, only one pp histogram would be needed since + // centrality does not make any difference here. However, in some cases in this analysis + // the binning differ from each other, so this is easy-to-implement way to account for that. + std::string namePP = _histNch[PBPB][ihist]->name() + "-pp"; + _histNch[PP][ihist] = bookHisto1D(namePP, refData(ihist+1, 1, 1)); // binning taken from ref data + + std::string nameCounterpp = "Counter_pp_" + std::to_string(ihist); + _counterSOW[PP][ihist] = bookCounter(nameCounterpp, "Sum of weights counter for pp"); } - // Centrality regions, 2 following numbers are boundaries for a certain region. Note, that some - // regions overlap with other regions. + // Centrality regions keeping boundaries for a certain region. + // Note, that some regions overlap with other regions. _centrRegions.clear(); - _centrRegions += {{0., 5., 5., 10., 10., 20., 20., 30., 30., 40., 40., 50., 50., 60., 60., 70., 70., 80., 0., 10., 0., 20., 20., 40., 40., 60., 40., 80., 60., 80.}}; + _centrRegions = {{0., 5.}, {5., 10.}, {10., 20.}, + {20., 30.}, {30., 40.}, {40., 50.}, + {50., 60.}, {60., 70.}, {70., 80.}, + {0., 10.}, {0., 20.}, {20., 40.}, + {40., 60.}, {40., 80.}, {60., 80.}}; - } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); // Final state particles with at least pT = 150 MeV in eta range of |eta| < 0.5 const ChargedFinalState& charged = applyProjection(event, "CFS"); Particles chargedParticles = charged.particlesByPt(); - // Flag to select which histograms to fill - size_t pp_AA; - - // Vector of indices to fill the histograms with right centrality - vector indices; - indices.clear(); - // Check type of event. This may be not the perfect way to check for the type of event as // there might be some weird conditions hidden inside. For example some HepMC versions check // if number of hard collisions is equal to 0 and assign 'false' in that case, which is usually wrong. // This might be changed in the future if (event.genEvent()->heavy_ion()) { // Prepare centrality projection and value - const CentralityProjection& centrProj = apply(event, "V0M"); + const CentralityProjection& centrProj = apply(event, (_mode == 1 ? "V0M" : "V0M_IMP")); double centr = centrProj(); // Veto event for too large centralities since those are not used in the analysis at all if ((centr < 0.) || (centr > 80.)) vetoEvent; - // Flag as PbPb event - pp_AA = 1; - - // Select indices - for (size_t ihist = 0; ihist < NHISTOS; ++ihist) { - // Check centrality bins and push corresponding indices of AA histograms. - if (inRange(centr, _centrRegions[2*ihist], _centrRegions[2*ihist+1])) { - indices.push_back(ihist); - } - } + // Fill the right PbPb histograms and add weights based on centrality value + for (size_t ihist = 0; ihist < NHISTOS; ++ihist) { + if (inRange(centr, _centrRegions[ihist].first, _centrRegions[ihist].second)) { + _counterSOW[PBPB][ihist]->fill(weight); + _counterNcoll[ihist]->fill(event.genEvent()->heavy_ion()->Ncoll(), weight); + foreach (const Particle& p, chargedParticles) { + float pT = p.pT()/GeV; + if (pT < 50.) { + double pTAtBinCenter = _histNch[PBPB][ihist]->binAt(pT).xMid(); + _histNch[PBPB][ihist]->fill(pT, weight/pTAtBinCenter); + } + } + } + } } else { - // Flag as pp event - pp_AA = 0; + // Fill all pp histograms and add weights + for (size_t ihist = 0; ihist < NHISTOS; ++ihist) { + _counterSOW[PP][ihist]->fill(weight); + foreach (const Particle& p, chargedParticles) { + float pT = p.pT()/GeV; + if (pT < 50.) { + double pTAtBinCenter = _histNch[PP][ihist]->binAt(pT).xMid(); + _histNch[PP][ihist]->fill(pT, weight/pTAtBinCenter); + } + } + } - // Select indices (push all indices in case of pp histograms) - for(size_t ihist = 0; ihist < NHISTOS; ++ihist) - indices.push_back(ihist); - - } - - // Fill the right histograms and add weights based on the pp_AA flag and vector of indices - for (size_t iindex = 0; iindex < indices.size(); ++iindex) { - _sumOfWeights[pp_AA][indices.at(iindex)] += weight; - foreach (const Particle& p, chargedParticles) { - float pT = p.pT()/GeV; - if (pT < 50.) { - _histNch[pp_AA][indices.at(iindex)]->fill(pT, weight*(1/pT)); - } - } } } /// Normalise histograms etc., after the run void finalize() { - // Check for the reentrant finalize - reentrant_flag = true; - // For each event type - for (int itype = 0; itype < 2; itype++) { - // For each centrality range - for (int ihist = 0; ihist < NHISTOS; ihist++) { - if (_histNch[itype][ihist]->numEntries() <= 0) - reentrant_flag = false; + // Right scaling of the histograms with their individual weights. + for (size_t itype = 0; itype < EVENT_TYPES; ++itype ) { + for (size_t ihist = 0; ihist < NHISTOS; ++ihist) { + if (_counterSOW[itype][ihist]->sumW() > 0.) { + scale(_histNch[itype][ihist], (1./_counterSOW[itype][ihist]->sumW() / 2. / M_PI)); + } + } + } + + // Postprocessing of the histograms + for (size_t ihist = 0; ihist < NHISTOS; ++ihist) { + // If there are entires in histograms for both beam types + if (_histNch[PP][ihist]->numEntries() > 0 && _histNch[PBPB][ihist]->numEntries() > 0) { + // Initialize and fill R_AA histograms + _histRAA[ihist] = bookScatter2D(ihist+16, 1, 1); + divide(_histNch[PBPB][ihist], _histNch[PP][ihist], _histRAA[ihist]); + // Scale by Ncoll. Unfortunately some generators does not provide Ncoll (eg. JEWEL), + // so the following scaling will be done only if there are entries in the counters + if (_counterNcoll[ihist]->sumW() > 1e-6 && _counterSOW[PBPB][ihist]->sumW() > 1e-6) { + _histRAA[ihist]->scaleY(1. / (_counterNcoll[ihist]->sumW() / _counterSOW[PBPB][ihist]->sumW())); + } } } - // Normal finalize - if (reentrant_flag == false) { - - // Right scaling of the histograms with their individual weights. - for (size_t pp_AA = 0; pp_AA < 2; ++pp_AA ) { - for (size_t ihist = 0; ihist < NHISTOS; ++ihist) { - if (_sumOfWeights[pp_AA][ihist] > 0.) - scale(_histNch[pp_AA][ihist], ( 1./_sumOfWeights[pp_AA][ihist] / 2. / M_PI / 1.6 ) ); - } - - } - - } - // Postprocessing of the histograms - else if (reentrant_flag == true) { - - for( size_t i = 0; i < NHISTOS; ++i) { - divide( _histNch[1][i], _histNch[0][i], _histRAA[i] ); - } - - } } private: static const int NHISTOS = 15; + static const int EVENT_TYPES = 2; + static const int PP = 0; + static const int PBPB = 1; - Histo1DPtr _histNch[2][NHISTOS]; - double _sumOfWeights[2][NHISTOS]; + Histo1DPtr _histNch[EVENT_TYPES][NHISTOS]; + CounterPtr _counterSOW[EVENT_TYPES][NHISTOS]; + CounterPtr _counterNcoll[NHISTOS]; Scatter2DPtr _histRAA[NHISTOS]; - std::vector _centrRegions; + std::vector> _centrRegions; - bool reentrant_flag; + int _mode; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ALICE_2012_I1127497); } diff --git a/analyses/pluginALICE/ALICE_2012_I1127497.info b/analyses/pluginALICE/ALICE_2012_I1127497.info --- a/analyses/pluginALICE/ALICE_2012_I1127497.info +++ b/analyses/pluginALICE/ALICE_2012_I1127497.info @@ -1,39 +1,42 @@ Name: ALICE_2012_I1127497 Year: 2012 Summary: Centrality dependence of charged particle production at large transverse momentum in Pb-Pb collisions at $\sqrt{s_{\rm{NN}}} = 2.76$ TeV Experiment: ALICE Collider: LHC SpireID: InspireID: 1127497 -Status: UNVALIDATED +Status: VALIDATED Authors: + - Przemyslaw Karczmarczyk + - Jan Fiete Grosse-Oetringhaus + - Jochen Klein References: - arXiv:1208.2711 [hep-ex] RunInfo: NumEvents: Options: - cent=REF,GEN,IMP,USR -Beams: [1000822080, 1000822080] +Beams: [[p, p], [1000822080, 1000822080]] # This is _total_ energy of beams, so this becomes 208*2760=574080 -Energies: [574080] +Energies: [2760, 574080] Description: 'The inclusive transverse momentum ($p_T$) distributions of primary charged particles are measured in the pseudo-rapidity range $|\eta| < 0.8$ as a function of event centrality in Pb--Pb collisions at $\sqrt{s_{nn}} = 2.76$ TeV with ALICE at the LHC. The data are presented in the $p_T$ range $0.15 30$ GeV/c. In peripheral collisions (70-80%), the suppression is weaker with $R_{AA} \approx 0.7$ almost independently of $p_T$. The measured nuclear modification factors are compared to other measurements and model calculations.' BibKey: Abelev:2012hxa BibTeX: '@article{Abelev:2012hxa, author = "Abelev, Betty and others", title = "{Centrality Dependence of Charged Particle Production at Large Transverse Momentum in Pb--Pb Collisions at $\sqrt{s_{\rm{NN}}} = 2.76$ TeV}", collaboration = "ALICE", journal = "Phys. Lett.", volume = "B720", year = "2013", pages = "52-62", doi = "10.1016/j.physletb.2013.01.051", eprint = "1208.2711", archivePrefix = "arXiv", primaryClass = "hep-ex", reportNumber = "CERN-PH-EP-2012-233", SLACcitation = "%%CITATION = ARXIV:1208.2711;%%" }' Reentrant: True diff --git a/analyses/pluginALICE/ALICE_2012_I1127497.plot b/analyses/pluginALICE/ALICE_2012_I1127497.plot --- a/analyses/pluginALICE/ALICE_2012_I1127497.plot +++ b/analyses/pluginALICE/ALICE_2012_I1127497.plot @@ -1,239 +1,239 @@ # BEGIN PLOT /ALICE_2012_I1127497/d01-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=0-5~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d02-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=5-10~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d03-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=10-20~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d04-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=20-30~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d05-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=30-40~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d06-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=40-50~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d07-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=50-60~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d08-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=60-70~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d09-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=70-80~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d10-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=0-10~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d11-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=0-20~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d12-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=20-40~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d13-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=40-60~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d14-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=40-80~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d15-x01-y01 Title=$N_\text{ch}$ vs. $p_\perp$, $\text{Centr}=60-80~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ -YLabel=$1 / N_\text{evt} 1\(2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeG/c)^2}]$ +YLabel=$1 / N_\text{evt} 1 / (2\pi \, p_\perp) \, (\mathrm{d}^2N_\text{ch}) / (\mathrm{d}\eta \, \mathrm{d}p_\perp )\, [(\text{GeV/}c)^{-2}]$ LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d16-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=0-5~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d17-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=5-10~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d18-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=10-20~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d19-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=20-30~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d20-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=30-40~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d21-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=40-50~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d22-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=50-60~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d23-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=60-70~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d24-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=70-80~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d25-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=0-10~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d26-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=0-20~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d27-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=20-40~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d28-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=40-60~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d29-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=40-80~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT # BEGIN PLOT /ALICE_2012_I1127497/d30-x01-y01 Title=RAA vs. $p_\perp$, $\text{Centr}=60-80~\%$, $\sqrt{s_\text{NN}} = \text{2.76~TeV}$ XLabel=$p_\perp\,[\text{GeV / }c]$ YLabel=RAA LogX=1 LogY=1 # END PLOT diff --git a/analyses/pluginALICE/ALICE_2012_I930312.cc b/analyses/pluginALICE/ALICE_2012_I930312.cc --- a/analyses/pluginALICE/ALICE_2012_I930312.cc +++ b/analyses/pluginALICE/ALICE_2012_I930312.cc @@ -1,337 +1,335 @@ // -*- C++ -*- #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Tools/Cuts.hh" #include "Rivet/Projections/SingleValueProjection.hh" #include "Rivet/Tools/AliceCommon.hh" #include "Rivet/Projections/AliceCommon.hh" #include #define _USE_MATH_DEFINES #include namespace Rivet { /// Analysis class ALICE_2012_I930312 : public Analysis { public: DEFAULT_RIVET_ANALYSIS_CTOR(ALICE_2012_I930312); /// Book histograms and initialise projections before the run void init() { // Declare centrality projection declareCentrality(ALICE::V0MMultiplicity(), "ALICE_2015_PBPBCentrality", "V0M", "V0M"); // Charged final states with |eta| < 1.0 and 8 < pT < 15 GeV/c for // trigger particles const Cut& cutTrigger = Cuts::abseta < 1.0 && Cuts::pT > 8*GeV && Cuts::pT < 15*GeV; const ChargedFinalState cfsTrigger(cutTrigger); addProjection(cfsTrigger,"CFSTrigger"); // Set limit values of pT bins pt_limits[0] = 3.; pt_limits[1] = 4.; pt_limits[2] = 6.; pt_limits[3] = 8.; pt_limits[4] = 10.; // Charged final states with |eta| < 1.0 and different pT bins for // associated particles. for (int ipt = 0; ipt < PT_BINS; ipt++) { Cut mycut = Cuts::abseta < 1.0 && Cuts::pT > pt_limits[ipt]*GeV && Cuts::pT < pt_limits[ipt + 1]*GeV; declare(ChargedFinalState(mycut), "CFSAssoc" + std::to_string(ipt)); } // Create event strings event_string[0] = "pp"; event_string[1] = "central"; event_string[2] = "peripheral"; event_string[3] = "other"; // For each event type for (int itype = 0; itype < EVENT_TYPES; itype++) { // For each pT range for (int ipt = 0; ipt < PT_BINS; ipt++) { // Initialize yield histograms _histYield[itype][ipt] = bookHisto1D("Yield_" + event_string[itype] + "_" + std::to_string(ipt), 36, -0.5 * M_PI, 1.5 * M_PI, "Associated particle per trigger particle yield", "$\\Delta\\eta$ (rad)", "$1 / N_{trig} dN_{assoc} / d\\Delta\\eta$ (rad$^-1$)"); _histYieldBkgRemoved[itype][ipt] = bookHisto1D("Yield_" + event_string[itype] + "_nobkg_" + std::to_string(ipt), 36, -0.5*M_PI, 1.5 * M_PI, "Associated particle per trigger particle yield no bkg", "$\\Delta\\eta$ (rad)", "$1 / N_{trig} dN_{assoc} / d\\Delta\\eta$ (rad$^-1$)"); } } // Histogram for counting trigger particles for each event type _histTriggerCounter = bookHisto1D("Trigger", EVENT_TYPES, 0.0, EVENT_TYPES, "Trigger counter", "event type", "N"); } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); // Create charged final state for trigger particle const ChargedFinalState& triggerFinalState = applyProjection(event, "CFSTrigger"); Particles triggerParticles = triggerFinalState.particlesByPt(); // Create charged final state for associated particle ChargedFinalState associatedFinalState[PT_BINS]; Particles associatedParticles[PT_BINS]; for (int ipt = 0; ipt < PT_BINS; ipt++) { associatedFinalState[ipt] = applyProjection(event, "CFSAssoc" + std::to_string(ipt)); associatedParticles[ipt] = associatedFinalState[ipt].particlesByPt(); } // Check event type if (event.genEvent()->heavy_ion()) { // Prepare centrality projection and value const CentralityProjection& centrProj = apply(event, "V0M"); double centr = centrProj(); // Set the flag for the type of the event if (centr > 0.0 && centr < 5.0) event_type = 1; // PbPb, central else if (centr > 60.0 && centr < 90.0) event_type = 2; // PbPb, peripherial else event_type = 3; // PbPb, other } else { event_type = 0; // pp } // Veto event if not valid event type if (event_type == 3) vetoEvent; // Fill trigger histogram for a proper event type _histTriggerCounter->fill(event_type, triggerParticles.size()); // Loop over trigger particles for (const auto& triggerParticle : triggerParticles) { // For each pt bin for (int ipt = 0; ipt < PT_BINS; ipt++) { // Loop over associated particles for (const auto& associatedParticle : associatedParticles[ipt]) { // If associated and trigger particle are not the same particles. if (associatedParticle != triggerParticle) { // Test trigger particle. if (triggerParticle.pt() > associatedParticle.pt()) { // Calculate delta phi in range (-0.5*PI, 1.5*PI). double dPhi = triggerParticle.phi() - associatedParticle.phi(); while (dPhi > 1.5 * M_PI) { dPhi -= 2 * M_PI; } while (dPhi < -0.5 * M_PI) { dPhi += 2 * M_PI; } // Fill yield histogram for calculated delta phi _histYield[event_type][ipt]->fill(dPhi, weight); } } } } } } /// Normalise histograms etc., after the run void finalize() { - cout << "finalize" << endl; // Check for the reentrant finalize bool pp_available = false, PbPb_available = false; reentrant_flag = false; // For each event type for (int itype = 0; itype < EVENT_TYPES; itype++) { // For each pT range for (int ipt = 0; ipt < PT_BINS; ipt++) { if (_histYield[itype][ipt]->numEntries() > 0) itype == 0 ? pp_available = true : PbPb_available = true; } } - cout << pp_available << " " << PbPb_available << endl; reentrant_flag = (pp_available && PbPb_available); + // Postprocessing of the histograms if (reentrant_flag == true) { - cout << "reenter!" << endl; // Initialize IAA and ICP histograms _histIAA[0] = bookScatter2D(1, 1, 1); _histIAA[1] = bookScatter2D(2, 1, 1); _histIAA[2] = bookScatter2D(5, 1, 1); _histIAA[3] = bookScatter2D(3, 1, 1); _histIAA[4] = bookScatter2D(4, 1, 1); _histIAA[5] = bookScatter2D(6, 1, 1); // Variables for near and away side peak calculation double nearSide[EVENT_TYPES][PT_BINS] = { {0.0} }; double awaySide[EVENT_TYPES][PT_BINS] = { {0.0} }; // Variables for background error calculation double background[EVENT_TYPES][PT_BINS] = { {0.0} }; double backgroundError[EVENT_TYPES][PT_BINS] = { {0.0} }; // Variables for integration error calculation double scalingFactor[EVENT_TYPES] = {0.0}; double numberOfEntries[EVENT_TYPES][PT_BINS][2] = { { {0.0} } }; int numberOfBins[EVENT_TYPES][PT_BINS][2] = { { {0} } }; // For each event type for (int itype = 0; itype < EVENT_TYPES; itype++) { // For each pT range for (int ipt = 0; ipt < PT_BINS; ipt++) { // Check if histograms are fine if (_histTriggerCounter->numEntries() == 0 || _histYield[itype][ipt]->numEntries() == 0) { cout << "There are no entries in one of the histograms" << endl; continue; } // Scale yield histogram if ((_histTriggerCounter->bin(itype).sumW() != 0)) { scalingFactor[itype] = 1. / _histTriggerCounter->bin(itype).sumW(); scale(_histYield[itype][ipt], (1. / _histTriggerCounter->bin(itype).sumW())); } // Calculate background double sum = 0.0; int nbins = 0; for (unsigned int ibin = 0; ibin < _histYield[itype][ipt]->numBins(); ibin++) { if ((_histYield[itype][ipt]->bin(ibin).xMid() > (-0.5 * M_PI) && _histYield[itype][ipt]->bin(ibin).xMid() < (-0.5 * M_PI + 0.4)) || (_histYield[itype][ipt]->bin(ibin).xMid() > (0.5 * M_PI - 0.4) && _histYield[itype][ipt]->bin(ibin).xMid() < (0.5 * M_PI + 0.4)) || (_histYield[itype][ipt]->bin(ibin).xMid() > (1.5 * M_PI - 0.4) && _histYield[itype][ipt]->bin(ibin).xMid() < (1.5 * M_PI))) { sum += _histYield[itype][ipt]->bin(ibin).sumW(); nbins++; } } if (nbins == 0) { std::cout << "Failed to estimate background!" << std::endl; continue; } background[itype][ipt] = sum / nbins; // Calculate background error sum = 0.0; nbins = 0; for (unsigned int ibin = 0; ibin < _histYield[itype][ipt]->numBins(); ibin++) { if (_histYield[itype][ipt]->bin(ibin).xMid() > (0.5 * M_PI - 0.4) && _histYield[itype][ipt]->bin(ibin).xMid() < (0.5 * M_PI + 0.4)) { sum += (_histYield[itype][ipt]->bin(ibin).sumW() - background[itype][ipt]) * (_histYield[itype][ipt]->bin(ibin).sumW() - background[itype][ipt]); nbins++; } } backgroundError[itype][ipt] = sqrt(sum / (nbins - 1)); // Fill histograms with removed background for (unsigned int ibin = 0; ibin < _histYield[itype][ipt]->numBins(); ibin++) { _histYieldBkgRemoved[itype][ipt]->fillBin(ibin, _histYield[itype][ipt]->bin(ibin).sumW() - background[itype][ipt]); } // Integrate near-side yield unsigned int lowerBin = _histYield[itype][ipt]->binIndexAt(-0.7 + 0.02); unsigned int upperBin = _histYield[itype][ipt]->binIndexAt( 0.7 - 0.02) + 1; nbins = upperBin - lowerBin; numberOfBins[itype][ipt][0] = nbins; nearSide[itype][ipt] = _histYield[itype][ipt]->integralRange(lowerBin, upperBin) - nbins * background[itype][ipt]; numberOfEntries[itype][ipt][0] = _histYield[itype][ipt]->integralRange( lowerBin, upperBin) * _histTriggerCounter->bin(itype).sumW(); // Integrate away-side yield lowerBin = _histYield[itype][ipt]->binIndexAt(M_PI - 0.7 + 0.02); upperBin = _histYield[itype][ipt]->binIndexAt(M_PI + 0.7 - 0.02) + 1; nbins = upperBin - lowerBin; numberOfBins[itype][ipt][1] = nbins; awaySide[itype][ipt] = _histYield[itype][ipt]->integralRange( lowerBin, upperBin) - nbins * background[itype][ipt]; numberOfEntries[itype][ipt][1] = _histYield[itype][ipt]->integralRange(lowerBin, upperBin) * _histTriggerCounter->bin(itype).sumW(); } } // Variables for IAA/ICP plots double dI = 0.0; int near = 0; int away = 1; double xval[PT_BINS] = { 3.5, 5.0, 7.0, 9.0 }; double xerr[PT_BINS] = { 0.5, 1.0, 1.0, 1.0 }; int types1[3] = {1, 2, 1}; int types2[3] = {0, 0, 2}; // Fill IAA/ICP plots for near side peak for (int ihist = 0; ihist < 3; ihist++) { int type1 = types1[ihist]; int type2 = types2[ihist]; for (int ipt = 0; ipt < PT_BINS; ipt++) { dI = scalingFactor[type1] * scalingFactor[type1] * numberOfEntries[type1][ipt][near] + scalingFactor[type2] * scalingFactor[type2] * numberOfEntries[type2][ipt][near] * nearSide[type1][ipt] * nearSide[type1][ipt] / (nearSide[type2][ipt] * nearSide[type2][ipt]) + numberOfBins[type1][ipt][near] * numberOfBins[type1][ipt][near] * backgroundError[type1][ipt] * backgroundError[type1][ipt] + numberOfBins[type2][ipt][near] * numberOfBins[type2][ipt][near] * backgroundError[type2][ipt] * backgroundError[type2][ipt] * nearSide[type1][ipt] * nearSide[type1][ipt] / (nearSide[type2][ipt] * nearSide[type2][ipt]); dI = sqrt(dI)/nearSide[type2][ipt]; _histIAA[ihist]->addPoint(xval[ipt], nearSide[type1][ipt] / nearSide[type2][ipt], xerr[ipt], dI); } } // Fill IAA/ICP plots for away side peak for (int ihist = 0; ihist < 3; ihist++) { int type1 = types1[ihist]; int type2 = types2[ihist]; for (int ipt = 0; ipt < PT_BINS; ipt++) { dI = scalingFactor[type1] * scalingFactor[type1] * numberOfEntries[type1][ipt][away] + scalingFactor[type2] * scalingFactor[type2] * numberOfEntries[type2][ipt][away] * awaySide[type1][ipt] * awaySide[type1][ipt] / (awaySide[type2][ipt] * awaySide[type2][ipt]) + numberOfBins[type1][ipt][away] * numberOfBins[type1][ipt][away] * backgroundError[type1][ipt] * backgroundError[type1][ipt] + numberOfBins[type2][ipt][away] * numberOfBins[type2][ipt][away] * backgroundError[type2][ipt] * backgroundError[type2][ipt] * awaySide[type1][ipt] * awaySide[type1][ipt] / (awaySide[type2][ipt] * awaySide[type2][ipt]); dI = sqrt(dI)/awaySide[type2][ipt]; _histIAA[ihist + 3]->addPoint(xval[ipt], awaySide[type1][ipt] / awaySide[type2][ipt], xerr[ipt], dI); } } } } private: static const int PT_BINS = 4; static const int EVENT_TYPES = 3; Histo1DPtr _histYield[EVENT_TYPES][PT_BINS]; Histo1DPtr _histYieldBkgRemoved[EVENT_TYPES][PT_BINS]; Histo1DPtr _histTriggerCounter; Scatter2DPtr _histIAA[6]; double pt_limits[5]; int event_type; string event_string[EVENT_TYPES + 1]; bool reentrant_flag; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ALICE_2012_I930312); } diff --git a/analyses/pluginALICE/ALICE_2012_I930312.info b/analyses/pluginALICE/ALICE_2012_I930312.info --- a/analyses/pluginALICE/ALICE_2012_I930312.info +++ b/analyses/pluginALICE/ALICE_2012_I930312.info @@ -1,39 +1,42 @@ Name: ALICE_2012_I930312 Year: 2012 Summary: Particle-yield modification in jet-like azimuthal di-hadron correlations in Pb-Pb collisions at $\sqrt{s_\rm{NN}} = 2.76$ TeV Experiment: ALICE Collider: LHC SpireID: InspireID: 930312 -Status: UNVALIDATED +Status: VALIDATED Authors: + - Przemyslaw Karczmarczyk + - Jan Fiete Grosse-Oetringhaus + - Jochen Klein References: - arXiv:1110.0121 [nucl-ex] RunInfo: NumEvents: Options: - cent=REF,GEN,IMP,USR Beams: [[p, p], [1000822080, 1000822080]] # This is _total_ energy of beams, so this becomes 208*2760=574080 Energies: [2760, 574080] Description: - 'The yield of charged particles associated with high-pT trigger particles ($8 < p_{\perp} < 15$ GeV/c) is measured with the ALICE detector in Pb-Pb collisions at $\sqrt{s_{NN}} = 2.76$ TeV relative to proton-proton collisions at the same energy. The conditional per-trigger yields are extracted from the narrow jet-like correlation peaks in azimuthal di-hadron correlations. In the 5% most central collisions, we observe that the yield of associated charged particles with transverse momenta $p_\perp > 3$ GeV/c on the away-side drops to about 60% of that observed in pp collisions, while on the near-side a moderate enhancement of 20-30% is found.' + 'The yield of charged particles associated with high-pT trigger particles ($8 < p_{\perp} < 15$ GeV/c) is measured with the ALICE detector in Pb-Pb collisions at $\sqrt{s_{NN}} = 2.76$ TeV relative to proton-proton collisions at the same energy. The conditional per-trigger yields are extracted from the narrow jet-like correlation peaks in azimuthal di-hadron correlations. In the 5\% most central collisions, we observe that the yield of associated charged particles with transverse momenta $p_\perp > 3$ GeV/c on the away-side drops to about 60\% of that observed in pp collisions, while on the near-side a moderate enhancement of 20-30\% is found.' BibKey: Aamodt:2011vg BibTeX: '@article{Aamodt:2011vg, author = "Aamodt, K. and others", title = "{Particle-yield modification in jet-like azimuthal di-hadron correlations in Pb-Pb collisions at $\sqrt{s_{NN}} = 2.76$ TeV}", collaboration = "ALICE", journal = "Phys. Rev. Lett.", volume = "108", year = "2012", pages = "092301", doi = "10.1103/PhysRevLett.108.092301", eprint = "1110.0121", archivePrefix = "arXiv", primaryClass = "nucl-ex", reportNumber = "CERN-PH-EP-2011-161", SLACcitation = "%%CITATION = ARXIV:1110.0121;%%" }' Reentrant: True diff --git a/analyses/pluginALICE/ALICE_2015_PBPBCentrality.info b/analyses/pluginALICE/ALICE_2015_PBPBCentrality.info --- a/analyses/pluginALICE/ALICE_2015_PBPBCentrality.info +++ b/analyses/pluginALICE/ALICE_2015_PBPBCentrality.info @@ -1,20 +1,20 @@ # -*- mode: conf-colon-mode -*- Name: ALICE_2015_PBPBCentrality Year: 2018 Summary: ALICE centrality calibration for Pb-Pb at 5.02TeV Experiment: ALICE Collider: LHC -Status: UNVALIDATED +Status: NEW Authors: - Christian Holm Christensen RunInfo: Pb-Pb at sqrt(sNN)=5.02TeV NumEvents: 1000000 NeedCrossSection: no -Beams: [1000822080, 1000822080] +Beams: [[p, p], [1000822080, 1000822080]] # This _total_ energy of beams, so this becomes 208*5023=1044784 -Energies: [574080,1044784] +Energies: [2760, 574080, 1044784] Description: 'Dummy analysis to bring in the centrality calibration for Pb-Pb at 5.02TeV' ToDo: 'Validate'