+//____________________________________________________________________
+/**
+ * @defgroup pwg2_forward_otherdata External data
+ *
+ * @ingroup pwg2_forward_scripts
+ */
+/**
+ * @file
+ *
+ * @ingroup pwg2_forward_script_otherdata
+ */
#include <TGraphAsymmErrors.h>
#include <TMultiGraph.h>
#include <TStyle.h>
#include <TCanvas.h>
#include <TLegend.h>
-//____________________________________________________________________
-/**
- * @defgroup pwg2_forward_analysis_otherdata External data
- *
- * @ingroup pwg2_forward_analysis_scripts
- */
//____________________________________________________________________
/**
* Values used
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
enum {
+ UA5,
+ CMS,
+ ALICE,
+ PYTHIA,
+ INEL,
+ INELGt0,
+ NSD
+};
+enum {
+ /** Style used for UA5 data */
+ UA5Style = 21,
+ /** Style used for CMS data */
+ CMSStyle = 29,
+ /** Style used for ALICE published data */
+ ALICEStyle = 27,
+ /** Style used for Pythia data */
+ PYTHIAStyle = 28,
/** Color used for UA5 data */
UA5Color = kBlue+1,
+ /** Color used for Pytia data */
+ PYTHIAColor = kGray+2,
/** Color used for CMS data */
CMSColor = kGreen+1,
/** Color used for ALICE data */
- ALICEColor = kMagenta+1,
+ ALICEColor = kMagenta+1
+};
+enum {
/** Marker style INEL data */
- INELStyle = 20,
+ INELStyle = 22,
/** Marker style INEL>0 data */
- INELGtStyle= 22,
+ INELGt0Style= 29,
/** Marker style NSD data */
- NSDStyle = 21,
- /** Colour offset for mirror data */
+ NSDStyle = 23,
+ /** Color used for UA5 data */
+ INELColor = kBlue+1,
+ /** Color used for CMS data */
+ INELGt0Color = kGreen+1,
+ /** Color used for ALICE data */
+ NSDColor = kMagenta+1
+};
+enum {
+ /** Style offset for mirror data */
MirrorOff = 4
};
//____________________________________________________________________
/**
- * Set graph attributes
+ * Set graph attributes based on trigger type and experiment.
*
* @param g Graph
- * @param marker Marker style
- * @param color Marker and line color
+ * @param trig Trigger (INEL, INEL>0, NSD)
+ * @param exp Experiment
+ * @param mirror True if mirrored data
* @param name Name of graph
* @param title Title of graph
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
void
-SetGraphAttributes(TGraph* g, Int_t marker, Int_t color,
+SetGraphAttributes(TGraph* g, Int_t trig, Int_t exp, bool mirror,
const Char_t* name, const Char_t* title)
{
+ Int_t color = 0;
+ switch (exp) {
+ case UA5: color = UA5Color; break;
+ case CMS: color = CMSColor; break;
+ case ALICE: color = ALICEColor; break;
+ case PYTHIA: color = PYTHIAColor; break;
+ }
+ Int_t style = 0;
+ switch (exp) {
+ case UA5: style = UA5Style; break;
+ case CMS: style = CMSStyle; break;
+ case ALICE: style = ALICEStyle; break;
+ case PYTHIA: style = PYTHIAStyle; break;
+ }
+ Float_t size = g->GetMarkerSize();
+ switch (style) {
+ case 21:
+ case 25: size *= 0.8; break;
+ case 27: size *= 1.4; break;
+ }
+
+ if (mirror) style += MirrorOff;
+
g->SetName(name);
g->SetTitle(title);
- g->SetMarkerStyle(marker);
+ g->SetMarkerStyle(style);
+ g->SetMarkerSize(size);
g->SetMarkerColor(color);
g->SetLineColor(color);
g->SetFillColor(0);
g->GetHistogram()->SetYTitle("#frac{1}{N} #frac{dN_{ch}}{#eta}");
}
+//____________________________________________________________________
+TGraphAsymmErrors*
+Pythia900INEL()
+{
+
+ TGraphAsymmErrors *gre = new TGraphAsymmErrors(100);
+ SetGraphAttributes(gre, INEL, PYTHIA, false, "pythia900Inel",
+ "Pythia INEL");
+ gre->SetPoint(0,-3.95,1.78199);
+ gre->SetPointError(0, 0, 0, 0.0145305, 0.0145305);
+ gre->SetPoint(1,-3.85,1.85486);
+ gre->SetPointError(1,0,0,0.0148246,0.0148246);
+ gre->SetPoint(2,-3.75,1.93886);
+ gre->SetPointError(2,0,0,0.0151566,0.0151566);
+ gre->SetPoint(3,-3.65,1.96055);
+ gre->SetPointError(3,0,0,0.0152411,0.0152411);
+ gre->SetPoint(4,-3.55,1.98756);
+ gre->SetPointError(4,0,0,0.0153458,0.0153458);
+ gre->SetPoint(5,-3.45,2.02844);
+ gre->SetPointError(5,0,0,0.0155028,0.0155028);
+ gre->SetPoint(6,-3.35,2.09585);
+ gre->SetPointError(6,0,0,0.0157583,0.0157583);
+ gre->SetPoint(7,-3.25,2.13732);
+ gre->SetPointError(7,0,0,0.0159134,0.0159134);
+ gre->SetPoint(8,-3.15,2.1686);
+ gre->SetPointError(8,0,0,0.0160295,0.0160295);
+ gre->SetPoint(9,-3.05,2.25296);
+ gre->SetPointError(9,0,0,0.0163383,0.0163383);
+ gre->SetPoint(10,-2.95,2.29265);
+ gre->SetPointError(10,0,0,0.0164815,0.0164815);
+ gre->SetPoint(11,-2.85,2.34799);
+ gre->SetPointError(11,0,0,0.0166792,0.0166792);
+ gre->SetPoint(12,-2.75,2.35652);
+ gre->SetPointError(12,0,0,0.0167095,0.0167095);
+ gre->SetPoint(13,-2.65,2.40545);
+ gre->SetPointError(13,0,0,0.0168821,0.0168821);
+ gre->SetPoint(14,-2.55,2.43934);
+ gre->SetPointError(14,0,0,0.0170006,0.0170006);
+ gre->SetPoint(15,-2.45,2.45735);
+ gre->SetPointError(15,0,0,0.0170633,0.0170633);
+ gre->SetPoint(16,-2.35,2.48945);
+ gre->SetPointError(16,0,0,0.0171744,0.0171744);
+ gre->SetPoint(17,-2.25,2.51635);
+ gre->SetPointError(17,0,0,0.0172669,0.0172669);
+ gre->SetPoint(18,-2.15,2.55047);
+ gre->SetPointError(18,0,0,0.0173836,0.0173836);
+ gre->SetPoint(19,-2.05,2.58021);
+ gre->SetPointError(19,0,0,0.0174846,0.0174846);
+ gre->SetPoint(20,-1.95,2.58732);
+ gre->SetPointError(20,0,0,0.0175087,0.0175087);
+ gre->SetPoint(21,-1.85,2.60095);
+ gre->SetPointError(21,0,0,0.0175547,0.0175547);
+ gre->SetPoint(22,-1.75,2.59941);
+ gre->SetPointError(22,0,0,0.0175495,0.0175495);
+ gre->SetPoint(23,-1.65,2.63021);
+ gre->SetPointError(23,0,0,0.0176532,0.0176532);
+ gre->SetPoint(24,-1.55,2.61043);
+ gre->SetPointError(24,0,0,0.0175867,0.0175867);
+ gre->SetPoint(25,-1.45,2.61363);
+ gre->SetPointError(25,0,0,0.0175975,0.0175975);
+ gre->SetPoint(26,-1.35,2.60829);
+ gre->SetPointError(26,0,0,0.0175795,0.0175795);
+ gre->SetPoint(27,-1.25,2.61434);
+ gre->SetPointError(27,0,0,0.0175999,0.0175999);
+ gre->SetPoint(28,-1.15,2.61327);
+ gre->SetPointError(28,0,0,0.0175963,0.0175963);
+ gre->SetPoint(29,-1.05,2.57145);
+ gre->SetPointError(29,0,0,0.0174549,0.0174549);
+ gre->SetPoint(30,-0.95,2.55723);
+ gre->SetPointError(30,0,0,0.0174066,0.0174066);
+ gre->SetPoint(31,-0.85,2.57879);
+ gre->SetPointError(31,0,0,0.0174798,0.0174798);
+ gre->SetPoint(32,-0.75,2.516);
+ gre->SetPointError(32,0,0,0.0172657,0.0172657);
+ gre->SetPoint(33,-0.65,2.53709);
+ gre->SetPointError(33,0,0,0.0173379,0.0173379);
+ gre->SetPoint(34,-0.55,2.51197);
+ gre->SetPointError(34,0,0,0.0172519,0.0172519);
+ gre->SetPoint(35,-0.45,2.44052);
+ gre->SetPointError(35,0,0,0.0170047,0.0170047);
+ gre->SetPoint(36,-0.35,2.44882);
+ gre->SetPointError(36,0,0,0.0170336,0.0170336);
+ gre->SetPoint(37,-0.25,2.45308);
+ gre->SetPointError(37,0,0,0.0170484,0.0170484);
+ gre->SetPoint(38,-0.15,2.4622);
+ gre->SetPointError(38,0,0,0.0170801,0.0170801);
+ gre->SetPoint(39,-0.05,2.45735);
+ gre->SetPointError(39,0,0,0.0170633,0.0170633);
+ gre->SetPoint(40,0.05,2.49254);
+ gre->SetPointError(40,0,0,0.017185,0.017185);
+ gre->SetPoint(41,0.15,2.49479);
+ gre->SetPointError(41,0,0,0.0171928,0.0171928);
+ gre->SetPoint(42,0.25,2.49289);
+ gre->SetPointError(42,0,0,0.0171862,0.0171862);
+ gre->SetPoint(43,0.35,2.4628);
+ gre->SetPointError(43,0,0,0.0170822,0.0170822);
+ gre->SetPoint(44,0.45,2.51422);
+ gre->SetPointError(44,0,0,0.0172596,0.0172596);
+ gre->SetPoint(45,0.55,2.51268);
+ gre->SetPointError(45,0,0,0.0172543,0.0172543);
+ gre->SetPoint(46,0.65,2.51066);
+ gre->SetPointError(46,0,0,0.0172474,0.0172474);
+ gre->SetPoint(47,0.75,2.53661);
+ gre->SetPointError(47,0,0,0.0173363,0.0173363);
+ gre->SetPoint(48,0.85,2.54479);
+ gre->SetPointError(48,0,0,0.0173642,0.0173642);
+ gre->SetPoint(49,0.95,2.55391);
+ gre->SetPointError(49,0,0,0.0173953,0.0173953);
+ gre->SetPoint(50,1.05,2.5872);
+ gre->SetPointError(50,0,0,0.0175083,0.0175083);
+ gre->SetPoint(51,1.15,2.60344);
+ gre->SetPointError(51,0,0,0.0175631,0.0175631);
+ gre->SetPoint(52,1.25,2.60616);
+ gre->SetPointError(52,0,0,0.0175723,0.0175723);
+ gre->SetPoint(53,1.35,2.62156);
+ gre->SetPointError(53,0,0,0.0176242,0.0176242);
+ gre->SetPoint(54,1.45,2.61173);
+ gre->SetPointError(54,0,0,0.0175911,0.0175911);
+ gre->SetPoint(55,1.55,2.60415);
+ gre->SetPointError(55,0,0,0.0175655,0.0175655);
+ gre->SetPoint(56,1.65,2.60723);
+ gre->SetPointError(56,0,0,0.0175759,0.0175759);
+ gre->SetPoint(57,1.75,2.60427);
+ gre->SetPointError(57,0,0,0.0175659,0.0175659);
+ gre->SetPoint(58,1.85,2.56765);
+ gre->SetPointError(58,0,0,0.017442,0.017442);
+ gre->SetPoint(59,1.95,2.58602);
+ gre->SetPointError(59,0,0,0.0175043,0.0175043);
+ gre->SetPoint(60,2.05,2.55936);
+ gre->SetPointError(60,0,0,0.0174138,0.0174138);
+ gre->SetPoint(61,2.15,2.54858);
+ gre->SetPointError(61,0,0,0.0173771,0.0173771);
+ gre->SetPoint(62,2.25,2.5205);
+ gre->SetPointError(62,0,0,0.0172811,0.0172811);
+ gre->SetPoint(63,2.35,2.49491);
+ gre->SetPointError(63,0,0,0.0171932,0.0171932);
+ gre->SetPoint(64,2.45,2.42773);
+ gre->SetPointError(64,0,0,0.0169601,0.0169601);
+ gre->SetPoint(65,2.55,2.42879);
+ gre->SetPointError(65,0,0,0.0169638,0.0169638);
+ gre->SetPoint(66,2.65,2.39372);
+ gre->SetPointError(66,0,0,0.0168409,0.0168409);
+ gre->SetPoint(67,2.75,2.38412);
+ gre->SetPointError(67,0,0,0.0168071,0.0168071);
+ gre->SetPoint(68,2.85,2.31896);
+ gre->SetPointError(68,0,0,0.0165758,0.0165758);
+ gre->SetPoint(69,2.95,2.26209);
+ gre->SetPointError(69,0,0,0.0163713,0.0163713);
+ gre->SetPoint(70,3.05,2.24313);
+ gre->SetPointError(70,0,0,0.0163026,0.0163026);
+ gre->SetPoint(71,3.15,2.20403);
+ gre->SetPointError(71,0,0,0.0161599,0.0161599);
+ gre->SetPoint(72,3.25,2.12855);
+ gre->SetPointError(72,0,0,0.0158808,0.0158808);
+ gre->SetPoint(73,3.35,2.13104);
+ gre->SetPointError(73,0,0,0.01589,0.01589);
+ gre->SetPoint(74,3.45,2.06339);
+ gre->SetPointError(74,0,0,0.0156358,0.0156358);
+ gre->SetPoint(75,3.55,1.9846);
+ gre->SetPointError(75,0,0,0.0153343,0.0153343);
+ gre->SetPoint(76,3.65,1.95391);
+ gre->SetPointError(76,0,0,0.0152153,0.0152153);
+ gre->SetPoint(77,3.75,1.87998);
+ gre->SetPointError(77,0,0,0.0149247,0.0149247);
+ gre->SetPoint(78,3.85,1.86256);
+ gre->SetPointError(78,0,0,0.0148554,0.0148554);
+ gre->SetPoint(79,3.95,1.77239);
+ gre->SetPointError(79,0,0,0.0144913,0.0144913);
+ gre->SetPoint(80,4.05,1.72855);
+ gre->SetPointError(80,0,0,0.014311,0.014311);
+ gre->SetPoint(81,4.15,1.69479);
+ gre->SetPointError(81,0,0,0.0141705,0.0141705);
+ gre->SetPoint(82,4.25,1.64147);
+ gre->SetPointError(82,0,0,0.0139459,0.0139459);
+ gre->SetPoint(83,4.35,1.58116);
+ gre->SetPointError(83,0,0,0.0136873,0.0136873);
+ gre->SetPoint(84,4.45,1.55735);
+ gre->SetPointError(84,0,0,0.0135838,0.0135838);
+ gre->SetPoint(85,4.55,1.48815);
+ gre->SetPointError(85,0,0,0.0132786,0.0132786);
+ gre->SetPoint(86,4.65,1.40853);
+ gre->SetPointError(86,0,0,0.0129185,0.0129185);
+ gre->SetPoint(87,4.75,1.36979);
+ gre->SetPointError(87,0,0,0.0127396,0.0127396);
+ gre->SetPoint(88,4.85,1.32666);
+ gre->SetPointError(88,0,0,0.0125374,0.0125374);
+ gre->SetPoint(89,4.95,1.29763);
+ gre->SetPointError(89,0,0,0.0123995,0.0123995);
+ gre->SetPoint(90,5.05,1.25533);
+ gre->SetPointError(90,0,0,0.0121957,0.0121957);
+ gre->SetPoint(91,5.15,1.20912);
+ gre->SetPointError(91,0,0,0.0119692,0.0119692);
+ gre->SetPoint(92,5.25,1.18839);
+ gre->SetPointError(92,0,0,0.0118661,0.0118661);
+ gre->SetPoint(93,5.35,1.15948);
+ gre->SetPointError(93,0,0,0.0117209,0.0117209);
+ gre->SetPoint(94,5.45,1.1141);
+ gre->SetPointError(94,0,0,0.0114892,0.0114892);
+ gre->SetPoint(95,5.55,1.06315);
+ gre->SetPointError(95,0,0,0.0112235,0.0112235);
+ gre->SetPoint(96,5.65,1.05213);
+ gre->SetPointError(96,0,0,0.0111651,0.0111651);
+ gre->SetPoint(97,5.75,1.02476);
+ gre->SetPointError(97,0,0,0.011019,0.011019);
+ gre->SetPoint(98,5.85,0.984834);
+ gre->SetPointError(98,0,0,0.0108022,0.0108022);
+ gre->SetPoint(99,5.95,0.952844);
+ gre->SetPointError(99,0,0,0.0106253,0.0106253);
+
+ return gre;
+}
+
+//____________________________________________________________________
+TGraphAsymmErrors*
+Pythia900NSD()
+{
+
+ TGraphAsymmErrors *gre = new TGraphAsymmErrors(100);
+ SetGraphAttributes(gre, NSD, PYTHIA, false, "pythia900NSD",
+ "Pythia NSD");
+
+ gre->SetPoint(0,-3.95,2.11766);
+ gre->SetPointError(0,0,0,0.0179417,0.0179417);
+ gre->SetPoint(1,-3.85,2.20415);
+ gre->SetPointError(1,0,0,0.0183045,0.0183045);
+ gre->SetPoint(2,-3.75,2.30949);
+ gre->SetPointError(2,0,0,0.0187368,0.0187368);
+ gre->SetPoint(3,-3.65,2.34582);
+ gre->SetPointError(3,0,0,0.0188836,0.0188836);
+ gre->SetPoint(4,-3.55,2.38322);
+ gre->SetPointError(4,0,0,0.0190335,0.0190335);
+ gre->SetPoint(5,-3.45,2.43353);
+ gre->SetPointError(5,0,0,0.0192334,0.0192334);
+ gre->SetPoint(6,-3.35,2.51106);
+ gre->SetPointError(6,0,0,0.0195373,0.0195373);
+ gre->SetPoint(7,-3.25,2.56578);
+ gre->SetPointError(7,0,0,0.0197491,0.0197491);
+ gre->SetPoint(8,-3.15,2.60515);
+ gre->SetPointError(8,0,0,0.0199,0.0199);
+ gre->SetPoint(9,-3.05,2.7105);
+ gre->SetPointError(9,0,0,0.0202984,0.0202984);
+ gre->SetPoint(10,-2.95,2.77008);
+ gre->SetPointError(10,0,0,0.0205203,0.0205203);
+ gre->SetPoint(11,-2.85,2.83332);
+ gre->SetPointError(11,0,0,0.0207532,0.0207532);
+ gre->SetPoint(12,-2.75,2.84715);
+ gre->SetPointError(12,0,0,0.0208038,0.0208038);
+ gre->SetPoint(13,-2.65,2.91693);
+ gre->SetPointError(13,0,0,0.0210571,0.0210571);
+ gre->SetPoint(14,-2.55,2.95797);
+ gre->SetPointError(14,0,0,0.0212048,0.0212048);
+ gre->SetPoint(15,-2.45,2.97499);
+ gre->SetPointError(15,0,0,0.0212657,0.0212657);
+ gre->SetPoint(16,-2.35,3.01345);
+ gre->SetPointError(16,0,0,0.0214027,0.0214027);
+ gre->SetPoint(17,-2.25,3.04659);
+ gre->SetPointError(17,0,0,0.0215201,0.0215201);
+ gre->SetPoint(18,-2.15,3.09341);
+ gre->SetPointError(18,0,0,0.0216848,0.0216848);
+ gre->SetPoint(19,-2.05,3.13187);
+ gre->SetPointError(19,0,0,0.0218192,0.0218192);
+ gre->SetPoint(20,-1.95,3.13917);
+ gre->SetPointError(20,0,0,0.0218446,0.0218446);
+ gre->SetPoint(21,-1.85,3.16911);
+ gre->SetPointError(21,0,0,0.0219485,0.0219485);
+ gre->SetPoint(22,-1.75,3.15665);
+ gre->SetPointError(22,0,0,0.0219053,0.0219053);
+ gre->SetPoint(23,-1.65,3.19693);
+ gre->SetPointError(23,0,0,0.0220446,0.0220446);
+ gre->SetPoint(24,-1.55,3.17002);
+ gre->SetPointError(24,0,0,0.0219517,0.0219517);
+ gre->SetPoint(25,-1.45,3.18538);
+ gre->SetPointError(25,0,0,0.0220048,0.0220048);
+ gre->SetPoint(26,-1.35,3.18066);
+ gre->SetPointError(26,0,0,0.0219885,0.0219885);
+ gre->SetPoint(27,-1.25,3.19754);
+ gre->SetPointError(27,0,0,0.0220467,0.0220467);
+ gre->SetPoint(28,-1.15,3.18021);
+ gre->SetPointError(28,0,0,0.0219869,0.0219869);
+ gre->SetPoint(29,-1.05,3.13111);
+ gre->SetPointError(29,0,0,0.0218165,0.0218165);
+ gre->SetPoint(30,-0.95,3.12153);
+ gre->SetPointError(30,0,0,0.0217831,0.0217831);
+ gre->SetPoint(31,-0.85,3.14798);
+ gre->SetPointError(31,0,0,0.0218752,0.0218752);
+ gre->SetPoint(32,-0.75,3.07912);
+ gre->SetPointError(32,0,0,0.0216347,0.0216347);
+ gre->SetPoint(33,-0.65,3.10207);
+ gre->SetPointError(33,0,0,0.0217151,0.0217151);
+ gre->SetPoint(34,-0.55,3.06346);
+ gre->SetPointError(34,0,0,0.0215796,0.0215796);
+ gre->SetPoint(35,-0.45,2.97651);
+ gre->SetPointError(35,0,0,0.0212711,0.0212711);
+ gre->SetPoint(36,-0.35,2.98715);
+ gre->SetPointError(36,0,0,0.0213091,0.0213091);
+ gre->SetPoint(37,-0.25,2.98548);
+ gre->SetPointError(37,0,0,0.0213032,0.0213032);
+ gre->SetPoint(38,-0.15,3.00555);
+ gre->SetPointError(38,0,0,0.0213746,0.0213746);
+ gre->SetPoint(39,-0.05,3.01193);
+ gre->SetPointError(39,0,0,0.0213973,0.0213973);
+ gre->SetPoint(40,0.05,3.04385);
+ gre->SetPointError(40,0,0,0.0215104,0.0215104);
+ gre->SetPoint(41,0.15,3.04933);
+ gre->SetPointError(41,0,0,0.0215297,0.0215297);
+ gre->SetPoint(42,0.25,3.04659);
+ gre->SetPointError(42,0,0,0.0215201,0.0215201);
+ gre->SetPoint(43,0.35,3.00813);
+ gre->SetPointError(43,0,0,0.0213838,0.0213838);
+ gre->SetPoint(44,0.45,3.06666);
+ gre->SetPointError(44,0,0,0.0215908,0.0215908);
+ gre->SetPoint(45,0.55,3.07167);
+ gre->SetPointError(45,0,0,0.0216085,0.0216085);
+ gre->SetPoint(46,0.65,3.0659);
+ gre->SetPointError(46,0,0,0.0215881,0.0215881);
+ gre->SetPoint(47,0.75,3.09159);
+ gre->SetPointError(47,0,0,0.0216784,0.0216784);
+ gre->SetPoint(48,0.85,3.10846);
+ gre->SetPointError(48,0,0,0.0217375,0.0217375);
+ gre->SetPoint(49,0.95,3.11925);
+ gre->SetPointError(49,0,0,0.0217752,0.0217752);
+ gre->SetPoint(50,1.05,3.15558);
+ gre->SetPointError(50,0,0,0.0219016,0.0219016);
+ gre->SetPoint(51,1.15,3.16911);
+ gre->SetPointError(51,0,0,0.0219485,0.0219485);
+ gre->SetPoint(52,1.25,3.17246);
+ gre->SetPointError(52,0,0,0.0219601,0.0219601);
+ gre->SetPoint(53,1.35,3.19146);
+ gre->SetPointError(53,0,0,0.0220258,0.0220258);
+ gre->SetPoint(54,1.45,3.17458);
+ gre->SetPointError(54,0,0,0.0219675,0.0219675);
+ gre->SetPoint(55,1.55,3.16866);
+ gre->SetPointError(55,0,0,0.0219469,0.0219469);
+ gre->SetPoint(56,1.65,3.16592);
+ gre->SetPointError(56,0,0,0.0219375,0.0219375);
+ gre->SetPoint(57,1.75,3.16394);
+ gre->SetPointError(57,0,0,0.0219306,0.0219306);
+ gre->SetPoint(58,1.85,3.11956);
+ gre->SetPointError(58,0,0,0.0217762,0.0217762);
+ gre->SetPoint(59,1.95,3.14646);
+ gre->SetPointError(59,0,0,0.02187,0.02187);
+ gre->SetPoint(60,2.05,3.10147);
+ gre->SetPointError(60,0,0,0.021713,0.021713);
+ gre->SetPoint(61,2.15,3.09356);
+ gre->SetPointError(61,0,0,0.0216853,0.0216853);
+ gre->SetPoint(62,2.25,3.05328);
+ gre->SetPointError(62,0,0,0.0215437,0.0215437);
+ gre->SetPoint(63,2.35,3.01953);
+ gre->SetPointError(63,0,0,0.0214243,0.0214243);
+ gre->SetPoint(64,2.45,2.9373);
+ gre->SetPointError(64,0,0,0.0211305,0.0211305);
+ gre->SetPoint(65,2.55,2.92772);
+ gre->SetPointError(65,0,0,0.0210961,0.0210961);
+ gre->SetPoint(66,2.65,2.89154);
+ gre->SetPointError(66,0,0,0.0209653,0.0209653);
+ gre->SetPoint(67,2.75,2.87619);
+ gre->SetPointError(67,0,0,0.0209096,0.0209096);
+ gre->SetPoint(68,2.85,2.78924);
+ gre->SetPointError(68,0,0,0.0205911,0.0205911);
+ gre->SetPoint(69,2.95,2.72159);
+ gre->SetPointError(69,0,0,0.0203399,0.0203399);
+ gre->SetPoint(70,3.05,2.69089);
+ gre->SetPointError(70,0,0,0.0202248,0.0202248);
+ gre->SetPoint(71,3.15,2.64939);
+ gre->SetPointError(71,0,0,0.0200682,0.0200682);
+ gre->SetPoint(72,3.25,2.55545);
+ gre->SetPointError(72,0,0,0.0197092,0.0197092);
+ gre->SetPoint(73,3.35,2.56745);
+ gre->SetPointError(73,0,0,0.0197555,0.0197555);
+ gre->SetPoint(74,3.45,2.47503);
+ gre->SetPointError(74,0,0,0.0193967,0.0193967);
+ gre->SetPoint(75,3.55,2.36741);
+ gre->SetPointError(75,0,0,0.0189703,0.0189703);
+ gre->SetPoint(76,3.65,2.33412);
+ gre->SetPointError(76,0,0,0.0188364,0.0188364);
+ gre->SetPoint(77,3.75,2.2385);
+ gre->SetPointError(77,0,0,0.0184466,0.0184466);
+ gre->SetPoint(78,3.85,2.21768);
+ gre->SetPointError(78,0,0,0.0183606,0.0183606);
+ gre->SetPoint(79,3.95,2.1055);
+ gre->SetPointError(79,0,0,0.0178901,0.0178901);
+ gre->SetPoint(80,4.05,2.05047);
+ gre->SetPointError(80,0,0,0.0176548,0.0176548);
+ gre->SetPoint(81,4.15,2.00486);
+ gre->SetPointError(81,0,0,0.0174574,0.0174574);
+ gre->SetPoint(82,4.25,1.94573);
+ gre->SetPointError(82,0,0,0.017198,0.017198);
+ gre->SetPoint(83,4.35,1.87064);
+ gre->SetPointError(83,0,0,0.0168629,0.0168629);
+ gre->SetPoint(84,4.45,1.83735);
+ gre->SetPointError(84,0,0,0.0167122,0.0167122);
+ gre->SetPoint(85,4.55,1.75314);
+ gre->SetPointError(85,0,0,0.0163247,0.0163247);
+ gre->SetPoint(86,4.65,1.65828);
+ gre->SetPointError(86,0,0,0.0158769,0.0158769);
+ gre->SetPoint(87,4.75,1.60751);
+ gre->SetPointError(87,0,0,0.015632,0.015632);
+ gre->SetPoint(88,4.85,1.56312);
+ gre->SetPointError(88,0,0,0.0154146,0.0154146);
+ gre->SetPoint(89,4.95,1.52117);
+ gre->SetPointError(89,0,0,0.0152064,0.0152064);
+ gre->SetPoint(90,5.05,1.46553);
+ gre->SetPointError(90,0,0,0.0149257,0.0149257);
+ gre->SetPoint(91,5.15,1.42038);
+ gre->SetPointError(91,0,0,0.014694,0.014694);
+ gre->SetPoint(92,5.25,1.38816);
+ gre->SetPointError(92,0,0,0.0145263,0.0145263);
+ gre->SetPoint(93,5.35,1.35046);
+ gre->SetPointError(93,0,0,0.0143277,0.0143277);
+ gre->SetPoint(94,5.45,1.30075);
+ gre->SetPointError(94,0,0,0.0140616,0.0140616);
+ gre->SetPoint(95,5.55,1.24025);
+ gre->SetPointError(95,0,0,0.0137307,0.0137307);
+ gre->SetPoint(96,5.65,1.21806);
+ gre->SetPointError(96,0,0,0.0136073,0.0136073);
+ gre->SetPoint(97,5.75,1.19435);
+ gre->SetPointError(97,0,0,0.0134742,0.0134742);
+ gre->SetPoint(98,5.85,1.14175);
+ gre->SetPointError(98,0,0,0.0131741,0.0131741);
+ gre->SetPoint(99,5.95,1.09235);
+ gre->SetPointError(99,0,0,0.012886,0.012886);
+
+ return gre;
+}
+
//____________________________________________________________________
/**
* Get the UA5 NSD data for pp at @f$ \sqrt{s} = 900GeV@f$
*
* @return graph of data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TGraphAsymmErrors* UA5Nsd(Bool_t mirrored=false)
{
0.07, 0.07, 0.07, 0.07, 0.08, 0.08, 0.09, 0.09, 0.1, 0.13 };
double eyp[] = { 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07,
0.07, 0.07, 0.07, 0.07, 0.08, 0.08, 0.09, 0.09, 0.1, 0.13 };
- const int np = 20;
+ const int np = 19;
double xm[np];
- for (int i = 0; i < np; i++) xm[i] = -x[i];
+ double exmm[np];
+ double expm[np];
+ double ym[np];
+ double eymm[np];
+ double eypm[np];
+ for (int i = 0; i < np; i++) {
+ int j = np-1-i;
+ xm[i] = -x[j];
+ exmm[i] = exm[j];
+ expm[i] = exp[j];
+ ym[i] = y[j];
+ eymm[i] = eym[j];
+ eypm[i] = eyp[j];
+ }
- TGraphAsymmErrors* g = new TGraphAsymmErrors(19,x, y,exm,exp,eym,eyp);
- TGraphAsymmErrors* gm = new TGraphAsymmErrors(19,xm,y,exm,exp,eym,eyp);
- SetGraphAttributes(g, NSDStyle, UA5Color,"ua5_nsd", "UA5 NSD");
- SetGraphAttributes(gm, NSDStyle+MirrorOff, UA5Color,"ua5_nsd_mirrored",
+ TGraphAsymmErrors* g = new TGraphAsymmErrors(19,x, y, exm, exp, eym, eyp);
+ TGraphAsymmErrors* gm = new TGraphAsymmErrors(19,xm,ym,exmm,expm,eymm,eypm);
+ SetGraphAttributes(g, NSD, UA5, false,"ua5_nsd", "UA5 NSD");
+ SetGraphAttributes(gm, NSD, UA5, true,"ua5_nsd_mirrored",
"UA5 NSD (mirrored)");
return (mirrored ? gm : g);
*
* @return graph of data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TGraphAsymmErrors* UA5Inel(Bool_t mirrored=false)
{
0.07, 0.07, 0.07, 0.07, 0.08, 0.08, 0.09, 0.09, 0.1, 0.13 };
const int np = 19;
double xm[np];
- for (int i = 0; i < np; i++) xm[i] = -x[i];
- TGraphAsymmErrors* g = new TGraphAsymmErrors(np,x, y,exm,exp,eym,eyp);
- TGraphAsymmErrors* gm = new TGraphAsymmErrors(np,xm,y,exm,exp,eym,eyp);
+ double exmm[np];
+ double expm[np];
+ double ym[np];
+ double eymm[np];
+ double eypm[np];
+ for (int i = 0; i < np; i++) {
+ int j = np-1-i;
+ xm[i] = -x[j];
+ exmm[i] = exm[j];
+ expm[i] = exp[j];
+ ym[i] = y[j];
+ eymm[i] = eym[j];
+ eypm[i] = eyp[j];
+ }
+ TGraphAsymmErrors* g = new TGraphAsymmErrors(np,x, y, exm, exp, eym, eyp);
+ TGraphAsymmErrors* gm = new TGraphAsymmErrors(np,xm,ym,exmm,expm,eymm,eypm);
- SetGraphAttributes(g, INELStyle, UA5Color, "ua5_inel", "UA5 INEL");
- SetGraphAttributes(gm, INELStyle+MirrorOff, UA5Color, "ua5_inel_mirrored",
+ SetGraphAttributes(g, INEL, UA5, false, "ua5_inel", "UA5 INEL");
+ SetGraphAttributes(gm, INEL, UA5, true, "ua5_inel_mirrored",
"UA5 INEL (mirrored)");
return (mirrored ? gm : g);
*
* @return graph of data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TGraphAsymmErrors* AliceCentralInel900()
{
eyp[i] += 0.02;
}
g = new TGraphAsymmErrors(np, x, y, exm, exp, eym, eyp);
- SetGraphAttributes(g, INELStyle, ALICEColor, "alice_inel",
+ SetGraphAttributes(g, INEL, ALICE, false, "alice_inel",
"ALICE INEL (publ.)");
return g;
*
* @return graph of data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TGraphAsymmErrors* AliceCentralInelGt900()
{
}
TGraphAsymmErrors* g = new TGraphAsymmErrors(np, x, y, exm, exp, eym, eyp);
- SetGraphAttributes(g, INELGtStyle, ALICEColor, "alice_inelgt900",
+ SetGraphAttributes(g, INELGt0, ALICE, false, "alice_inelgt900",
"ALICE INEL>0 (publ.)");
return g;
*
* @return graph of data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TGraphAsymmErrors* AliceCentralInelGt2360()
{
}
TGraphAsymmErrors* g = new TGraphAsymmErrors(np, x, y, exm, exp, eym, eyp);
- SetGraphAttributes(g, INELGtStyle, ALICEColor, "alice_inelgt2360",
+ SetGraphAttributes(g, INELGt0, ALICE, false, "alice_inelgt2360",
"ALICE INEL>0 (publ.)");
return g;
}
*
* @return graph of data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TGraphAsymmErrors* AliceCentralInelGt7000()
{
}
TGraphAsymmErrors* g = new TGraphAsymmErrors(np, x, y, exm, exp, eym, eyp);
- SetGraphAttributes(g, INELGtStyle, ALICEColor, "alice_inelgt7000",
+ SetGraphAttributes(g, INELGt0, ALICE, false, "alice_inelgt7000",
"ALICE INEL>0 (publ.)");
return g;
}
*
* @return graph of data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TGraphAsymmErrors* AliceCentralNsd900()
{
}
TGraphAsymmErrors* g = new TGraphAsymmErrors(np, x, y, exm, exp, eym, eyp);
- SetGraphAttributes(g, NSDStyle, ALICEColor, "alice_nsd", "ALICE NSD (publ.)");
+ SetGraphAttributes(g, NSD, ALICE, false, "alice_nsd", "ALICE NSD (publ.)");
return g;
}
*
* @return graph of data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TGraphAsymmErrors* AliceCentralInel2360()
{
}
TGraphAsymmErrors* g = new TGraphAsymmErrors(np, x, y, exm, exp, eym, eyp);
- SetGraphAttributes(g, NSDStyle, ALICEColor, "alice_inel2360",
+ SetGraphAttributes(g, NSD, ALICE, false, "alice_inel2360",
"ALICE INEL (publ.)");
return g;
}
*
* @return graph of data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TGraphAsymmErrors* AliceCentralNsd2360()
{
}
TGraphAsymmErrors* g = new TGraphAsymmErrors(np, x, y, exm, exp, eym, eyp);
- SetGraphAttributes(g, NSDStyle, ALICEColor, "alice_nsd2360",
+ SetGraphAttributes(g, NSD, ALICE, false, "alice_nsd2360",
"ALICE NSD (publ.)");
return g;
}
*
* @return graph of data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TGraphAsymmErrors* CMSNsd900()
{
double eyp[] = { 0.13, 0.14, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.14, 0.13 };
const int np = 10;
TGraphAsymmErrors* g = new TGraphAsymmErrors(np, x, y, exm, exp, eym, eyp);
- SetGraphAttributes(g, NSDStyle, CMSColor, "cms_nsd900", "CMS NSD");
+ SetGraphAttributes(g, NSD, CMS, false, "cms_nsd900", "CMS NSD");
return g;
}
*
* @return graph of data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TGraphAsymmErrors* CMSNsd2360()
{
double eyp[] = { 0.17, 0.18, 0.17, 0.17, 0.16, 0.16, 0.17, 0.17, 0.18, 0.17 };
const int np = 10;
TGraphAsymmErrors* g = new TGraphAsymmErrors(np, x, y, exm, exp, eym, eyp);
- SetGraphAttributes(g, NSDStyle, CMSColor, "cms_nsd2360", "CMS NSD");
+ SetGraphAttributes(g, NSD, CMS, false, "cms_nsd2360", "CMS NSD");
return g;
}
*
* @return graph of data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TGraphAsymmErrors* CMSNsd7000()
{
double eyp[] = { 0.25, 0.25, 0.24, 0.24, 0.23, 0.23, 0.24, 0.24, 0.25, 0.25 };
const int np = 10;
TGraphAsymmErrors* g = new TGraphAsymmErrors(np, x, y, exm, exp, eym, eyp);
- SetGraphAttributes(g, NSDStyle, CMSColor, "cms_nsd7000", "CMS NSD");
+ SetGraphAttributes(g, NSD, CMS, false, "cms_nsd7000", "CMS NSD");
return g;
}
/**
* Get a multi graph of data for a given energy and trigger type
*
+ * @param sys Collision system (1: pp, 2: PbPb)
* @param energy Energy in GeV (900, 2360, 7000)
* @param type Bit pattern of trigger type
* - 0x1 INEL
* - 0x2 INEL>0
* - 0x4 NSD
+ * @param centLow Low centrality cut (only for PbPB)
+ * @param centHigh High centrality cut (only for PbPB)
+ * @param aliceOnly Only return other ALICE data
*
* @return A multi graph with the selected data.
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
TMultiGraph*
-GetData(Int_t energy, Int_t type)
+GetData(UShort_t sys,
+ UShort_t energy,
+ UShort_t type=0x1,
+ UShort_t centLow=0,
+ UShort_t centHigh=0,
+ bool aliceOnly=false)
{
- TMultiGraph* mp = new TMultiGraph(Form("dndeta_%dGeV_%d", energy, type),"");
+ TMultiGraph* mp = new TMultiGraph(Form("dndeta_%dGeV_%d_%03d_%03d",
+ energy, type, centLow, centHigh),"");
TString tn;
TString en;
- if (TMath::Abs(energy-900) < 10) {
- en.Append(" #sqrt{s}=900GeV");
- if (type & 0x1) {
- tn.Append(" INEL");
- mp->Add(UA5Inel(false));
- mp->Add(UA5Inel(true));
- mp->Add(AliceCentralInel900());
- }
- if (type & 0x4) {
- tn.Append(" NSD");
- mp->Add(UA5Nsd(false));
- mp->Add(UA5Nsd(true));
- mp->Add(AliceCentralNsd900());
- mp->Add(CMSNsd900());
- }
- if (type & 0x2) {
- tn.Append(" INEL>0");
- mp->Add(AliceCentralInelGt900());
- }
- }
- if (TMath::Abs(energy-2360) < 10) {
- en.Append(" #sqrt{s}=2.36TeV");
- if (type & 0x1) {
- tn.Append(" INEL");
- mp->Add(AliceCentralInel2360());
+ TString sn;
+ TString cn;
+ if (sys == 1) {
+ sn = ", pp(p#bar{p})";
+ if (energy < 1000)
+ en = Form(", #sqrt{s}=%dGeV", energy);
+ else
+ en = Form(", #sqrt{s}=%f4.2TeV", float(energy)/1000);
+ if (!(type & 0x7))
+ Warning("GetData", "Unknown trigger mask 0x%x", type);
+
+ if (TMath::Abs(energy-900) < 10) {
+ if (type & 0x1) {
+ tn.Append(" INEL");
+ if (!aliceOnly) mp->Add(Pythia900INEL());
+ if (!aliceOnly) mp->Add(UA5Inel(false));
+ if (!aliceOnly) mp->Add(UA5Inel(true));
+ mp->Add(AliceCentralInel900());
+ }
+ if (type & 0x4) {
+ tn.Append(" NSD");
+ if (!aliceOnly) mp->Add(Pythia900NSD());
+ if (!aliceOnly) mp->Add(UA5Nsd(false));
+ if (!aliceOnly) mp->Add(UA5Nsd(true));
+ mp->Add(AliceCentralNsd900());
+ if (!aliceOnly) mp->Add(CMSNsd900());
+ }
+ if (type & 0x2) {
+ tn.Append(" INEL>0");
+ mp->Add(AliceCentralInelGt900());
+ }
}
- if (type & 0x4) {
- tn.Append(" NSD");
- mp->Add(AliceCentralNsd2360());
- mp->Add(CMSNsd2360());
+ else if (TMath::Abs(energy-2360) < 10) {
+ if (type & 0x1) {
+ tn.Append(" INEL");
+ mp->Add(AliceCentralInel2360());
+ }
+ if (type & 0x4) {
+ tn.Append(" NSD");
+ mp->Add(AliceCentralNsd2360());
+ if (!aliceOnly) mp->Add(CMSNsd2360());
+ }
+ if (type & 0x2) {
+ tn.Append(" INEL>0");
+ mp->Add(AliceCentralInelGt2360());
+ }
}
- if (type & 0x1) {
- tn.Append(" INEL>0");
- mp->Add(AliceCentralInelGt2360());
+ else if (TMath::Abs(energy-7000) < 10) {
+ if (type & 0x1) {
+ tn.Append(" INEL");
+ }
+ if (type & 0x4) {
+ tn.Append(" NSD");
+ if (!aliceOnly) mp->Add(CMSNsd7000());
+ }
+ if (type & 0x2) {
+ tn.Append(" INEL>0");
+ mp->Add(AliceCentralInelGt7000());
+ }
}
+ else
+ Warning("GetData", "No other results for sys=%d, energy=%d",
+ sys, energy);
}
- if (TMath::Abs(energy-7000) < 10) {
- en.Append(" #sqrt{s}=7TeV");
- if (type & 0x1) {
- tn.Append(" INEL");
- }
- if (type & 0x4) {
- tn.Append(" NSD");
- mp->Add(CMSNsd7000());
- }
- if (type & 0x1) {
- tn.Append(" INEL>0");
- mp->Add(AliceCentralInelGt7000());
- }
+ else if (sys == 2) {
+ // Nothing for PbPb so far
+ cn = Form(", %d%%-%d%% central", centLow, centHigh);
+ sn = ", PbPb";
+ if (energy < 1000)
+ en = Form(", #sqrt{s_{NN}}=%dGeV", energy);
+ else
+ en = Form(", #sqrt{s_{NN}}=%f4.2TeV", float(energy)/1000);
+ Warning("GetData", "No other data for PbP b yet");
+ }
+ else
+ Warning("GetData", "Unknown system %d", sys);
+ TString tit(Form("1/N dN_{ch}/d#eta%s%s%s%s",
+ sn.Data(), en.Data(), tn.Data(), cn.Data()));
+ mp->SetTitle(tit.Data());
+ if (!mp->GetListOfGraphs() || mp->GetListOfGraphs()->GetEntries() <= 0) {
+ delete mp;
+ mp = 0;
}
- mp->SetTitle(Form("1/N dN_{ch}/d#eta, pp(p#bar{p}), %s, %s",
- en.Data(), tn.Data()));
-
return mp;
}
* Plot external data for a given selection of energy and trigger type
* (see GetData)
*
- * @param energy Energy in GeV
- * @param type Trigger type bit mask
+ * @param sys Collision system (1: pp, 2: PbPb)
+ * @param energy Energy in GeV (900, 2360, 7000)
+ * @param type Bit pattern of trigger type
+ * - 0x1 INEL
+ * - 0x2 INEL>0
+ * - 0x4 NSD
+ * @param centLow Low centrality cut (only for PbPB)
+ * @param centHigh High centrality cut (only for PbPB)
+ * @param aliceOnly Only return other ALICE data
*
- * @ingroup pwg2_forward_analysis_otherdata
+ * @ingroup pwg2_forward_otherdata
*/
void
-OtherData(Int_t energy=900, Int_t type=0x1)
+OtherData(UShort_t sys=1,
+ UShort_t energy=900,
+ UShort_t type=0x1,
+ UShort_t centLow=0,
+ UShort_t centHigh=5,
+ bool aliceOnly=false)
{
+ TMultiGraph* mp = GetData(sys, energy, type, centLow, centHigh, aliceOnly);
+ if (!mp) return;
+
gStyle->SetTitleX(0.1);
gStyle->SetTitleY(1.0);
gStyle->SetTitleW(0.85);
c->SetRightMargin(0.05);
c->SetTopMargin(0.05);
- TMultiGraph* mp = GetData(energy, type);
+
mp->SetMinimum(0);
mp->Draw("ap");
if (mp->GetXaxis())