Rivet analyses referenceLHCB_2011_I917009$V^0$ production ratios in $pp$ collisions at $\sqrt{s}= 0.9$ and 7 TeV at LHCbExperiment: LHCb (LHC) Inspire ID: 917009 Status: VALIDATED Authors:
Beam energies: (450.0, 450.0); (3500.0, 3500.0) GeV Run details:
This paper presents the production ratios for $\bar{\Lambda}/\Lambda$ and $\bar{\Lambda}/K_{s}^{0}$ measured by LHCb detector in 2010 at $\sqrt{s} = 0.9$ TeV and 7 TeV as functions of the transverse momentum $p_\perp$ and the rapidity $y$ in the ranges $0.15 < p_\perp < 2.50 \text{GeV}/c$ and $2.0 < y < 4.5$, respectively. The results for the two energies are merged and represented as a function of rapidity loss $\Delta y = y_{\mathrm{beam}} - y$. Beam energy must be specified as analysis option "ENERGY" when rivet-merging samples. Source code: LHCB_2011_I917009.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/UnstableParticles.hh"
4
5namespace Rivet {
6
7
8 class LHCB_2011_I917009 : public Analysis {
9 public:
10
11 /// Constructor
12 LHCB_2011_I917009()
13 : Analysis("LHCB_2011_I917009"),
14 rap_beam(0.0), pt_min(0.0),
15 pt1_edge(0.65), pt2_edge(1.0),
16 pt3_edge(2.5), rap_min(2.),
17 rap_max(0.0), dsShift(0)
18 { }
19
20 /// @name Analysis methods
21 /// @{
22
23 /// Book histograms and initialise projections before the run
24 void init() {
25 int y_nbins = 4;
26 fillMap(partLftMap);
27 if (isCompatibleWithSqrtS(900*GeV)) {
28 rap_beam = 6.87;
29 rap_max = 4.;
30 pt_min = 0.25;
31 } else if (isCompatibleWithSqrtS(7000*GeV)) {
32 rap_beam = 8.92;
33 rap_max = 4.5;
34 pt_min = 0.15;
35 y_nbins = 5;
36 dsShift = 8;
37 } else {
38 MSG_ERROR("Incompatible beam energy!");
39 }
40
41 // Create the sets of temporary histograms that will be used to make the ratios in the finalize()
42 for (size_t i = 0; i < 12; ++i) book(_tmphistos[i], "TMP/"+to_str(i), y_nbins, rap_min, rap_max);
43 for (size_t i = 12; i < 15; ++i) book(_tmphistos[i], "TMP/"+to_str(i), refData(dsShift+5, 1, 1));
44 for (size_t i = 15; i < 18; ++i) book(_tmphistos[i], "TMP/"+to_str(i), y_nbins, rap_beam - rap_max, rap_beam - rap_min);
45
46 int dsId = dsShift + 1;
47 for (size_t j = 0; j < 3; ++j) {
48 book(s1[j], dsId, 1, j+1);
49 book(s2[j], dsId+1, 1, j+1);
50 }
51 dsId += 2;
52 for (size_t j = 3; j < 6; ++j) {
53 book(s3[j-3], dsId, 1, 1);
54 dsId += 1;
55 book(s4[j-3], dsId, 1, 1);
56 dsId += 1;
57 }
58
59 declare(UnstableParticles(), "UFS");
60 }
61
62
63 /// Perform the per-event analysis
64 void analyze(const Event& event) {
65 const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
66 double ancestor_lftsum = 0.0;
67 double y, pT;
68 int id;
69 int partIdx = -1;
70 for (const Particle& p : ufs.particles()) {
71 id = p.pid();
72 // continue if particle not a K0s nor (anti-)Lambda
73 if ( (id == 310) || (id == -310) ) {
74 partIdx = 2;
75 } else if ( id == 3122 ) {
76 partIdx = 1;
77 } else if ( id == -3122 ) {
78 partIdx = 0;
79 } else {
80 continue;
81 }
82 ancestor_lftsum = getMotherLifeTimeSum(p);
83 // Lifetime cut: ctau sum of all particle ancestors < 10^-9 m according to the paper (see eq. 5)
84 const double MAX_CTAU = 1.0E-9; // [m]
85 if ( (ancestor_lftsum < 0.0) || (ancestor_lftsum > MAX_CTAU) ) continue;
86 const FourMomentum& qmom = p.momentum();
87 y = log((qmom.E() + qmom.pz())/(qmom.E() - qmom.pz()))/2.;
88 // skip this particle if it has too high or too low rapidity (extremely rare cases when E = +- pz)
89 if ( std::isnan(y) || std::isinf(y) ) continue;
90 y = fabs(y);
91 if (!inRange(y, rap_min, rap_max)) continue;
92 pT = sqrt((qmom.px() * qmom.px()) + (qmom.py() * qmom.py()));
93 if (!inRange(pT, pt_min, pt3_edge)) continue;
94 // Filling corresponding temporary histograms for pT intervals
95 if (inRange(pT, pt_min, pt1_edge)) _tmphistos[partIdx*3]->fill(y);
96 if (inRange(pT, pt1_edge, pt2_edge)) _tmphistos[partIdx*3+1]->fill(y);
97 if (inRange(pT, pt2_edge, pt3_edge)) _tmphistos[partIdx*3+2]->fill(y);
98 // Fill histo in rapidity for whole pT interval
99 _tmphistos[partIdx+9]->fill(y);
100 // Fill histo in pT for whole rapidity interval
101 _tmphistos[partIdx+12]->fill(pT);
102 // Fill histo in rapidity loss for whole pT interval
103 _tmphistos[partIdx+15]->fill(rap_beam - y);
104 }
105 }
106
107
108 // Generate the ratio histograms
109 void finalize() {
110 for (size_t j = 0; j < 3; ++j) {
111 divide(_tmphistos[j], _tmphistos[3+j], s1[j]);
112 divide(_tmphistos[j], _tmphistos[6+j], s2[j]);
113 }
114 for (size_t j = 3; j < 6; ++j) {
115 divide(_tmphistos[3*j], _tmphistos[3*j+1], s3[j-3]);
116 divide(_tmphistos[3*j], _tmphistos[3*j+2], s4[j-3]);
117 }
118 }
119
120 /// @}
121
122
123
124 private:
125
126 // Get particle lifetime from hardcoded data
127 double getLifeTime(int pid) {
128 double lft = -1.0;
129 if (pid < 0) pid = - pid;
130 // Correct Pythia6 PIDs for f0(980), f0(1370) mesons
131 if (pid == 10331) pid = 30221;
132 if (pid == 10221) pid = 9010221;
133 map<int, double>::iterator pPartLft = partLftMap.find(pid);
134 // search stable particle list
135 if (pPartLft == partLftMap.end()) {
136 if (pid <= 100) return 0.0;
137 for (size_t i=0; i < sizeof(stablePDGIds)/sizeof(unsigned int); i++) {
138 if (pid == stablePDGIds[i]) { lft = 0.0; break; }
139 }
140 } else {
141 lft = (*pPartLft).second;
142 }
143 if (lft < 0.0 && PID::isHadron(pid)) {
144 MSG_ERROR("Could not determine lifetime for particle with PID " << pid
145 << "... This V^0 will be considered unprompt!");
146 }
147 return lft;
148 }
149
150 // Data members like post-cuts event weight counters go here
151 double getMotherLifeTimeSum(const Particle& p) {
152 if (p.genParticle() == nullptr) return -1.;
153 double lftSum = 0.;
154 double plft = 0.;
155 ConstGenParticlePtr part = p.genParticle();
156 ConstGenVertexPtr ivtx = part->production_vertex();
157 while (ivtx) {
158
159 vector<ConstGenParticlePtr> part_in = HepMCUtils::particles(ivtx, Relatives::PARENTS);
160
161 if (part_in.size() < 1) { lftSum = -1.; break; };
162 ConstGenParticlePtr part = part_in.at(0);//(*iPart_invtx);
163 if ( !(part) ) { lftSum = -1.; break; };
164 ivtx = part->production_vertex();
165 if ( (part->pdg_id() == 2212) || !(ivtx) ) break; //reached beam
166 plft = getLifeTime(part->pdg_id());
167 if (plft < 0.) { lftSum = -1.; break; };
168 lftSum += plft;
169 };
170 return (lftSum * c_light);
171 }
172
173 /// @name Private variables
174 /// @{
175
176 // The rapidity of the beam according to the selected beam energy
177 double rap_beam;
178
179 // The edges of the intervals of transverse momentum
180 double pt_min, pt1_edge, pt2_edge, pt3_edge;
181
182 // The limits of the rapidity window
183 double rap_min;
184 double rap_max;
185
186 // Indicates which set of histograms will be output to yoda file (according to beam energy)
187 int dsShift;
188
189 // Map between PDG id and particle lifetimes in seconds
190 map<int, double> partLftMap;
191
192 // Set of PDG Ids for stable particles (PDG Id <= 100 are considered stable)
193 static const int stablePDGIds[205];
194
195 /// @}
196
197 /// @name Helper histograms
198 /// @{
199 /// Histograms are defined in the following order: anti-Lambda, Lambda and K0s.
200 /// First 3 suites of 3 histograms correspond to each particle in bins of y for the 3 pT intervals. (9 histos)
201 /// Next 3 histograms contain the particles in y bins for the whole pT interval (3 histos)
202 /// Next 3 histograms contain the particles in y_loss bins for the whole pT interval (3 histos)
203 /// Last 3 histograms contain the particles in pT bins for the whole rapidity (y) interval (3 histos)
204 Histo1DPtr _tmphistos[18];
205 array<Estimate1DPtr,3> s1,s2,s3,s4;
206 /// @}
207
208 // Fill the PDG ID to Lifetime[seconds] map
209 // Data was extracted from LHCb Particle Table through LHCb::ParticlePropertySvc
210 bool fillMap(map<int, double>& m) {
211 m[6] = 4.707703E-25; m[11] = 1.E+16; m[12] = 1.E+16;
212 m[13] = 2.197019E-06; m[14] = 1.E+16; m[15] = 2.906E-13; m[16] = 1.E+16; m[22] = 1.E+16;
213 m[23] = 2.637914E-25; m[24] = 3.075758E-25; m[25] = 9.4E-26; m[35] = 9.4E-26;
214 m[36] = 9.4E-26; m[37] = 9.4E-26; m[84] = 3.335641E-13; m[85] = 1.290893E-12;
215 m[111] = 8.4E-17; m[113] = 4.405704E-24; m[115] = 6.151516E-24; m[117] = 4.088275E-24;
216 m[119] = 2.102914E-24; m[130] = 5.116E-08; m[150] = 1.525E-12; m[211] = 2.6033E-08;
217 m[213] = 4.405704E-24; m[215] = 6.151516E-24; m[217] = 4.088275E-24; m[219] = 2.102914E-24;
218 m[221] = 5.063171E-19; m[223] = 7.752794E-23; m[225] = 3.555982E-24; m[227] = 3.91793E-24;
219 m[229] = 2.777267E-24; m[310] = 8.953E-11; m[313] = 1.308573E-23; m[315] = 6.038644E-24;
220 m[317] = 4.139699E-24; m[319] = 3.324304E-24; m[321] = 1.238E-08; m[323] = 1.295693E-23;
221 m[325] = 6.682357E-24; m[327] = 4.139699E-24; m[329] = 3.324304E-24; m[331] = 3.210791E-21;
222 m[333] = 1.545099E-22; m[335] = 9.016605E-24; m[337] = 7.565657E-24; m[350] = 1.407125E-12;
223 m[411] = 1.04E-12; m[413] = 6.856377E-21; m[415] = 1.778952E-23; m[421] = 4.101E-13;
224 m[423] = 1.000003E-19; m[425] = 1.530726E-23; m[431] = 5.E-13; m[433] = 1.000003E-19;
225 m[435] = 3.291061E-23; m[441] = 2.465214E-23; m[443] = 7.062363E-21; m[445] = 3.242425E-22;
226 m[510] = 1.525E-12; m[511] = 1.525E-12; m[513] = 1.000019E-19; m[515] = 1.31E-23;
227 m[521] = 1.638E-12; m[523] = 1.000019E-19; m[525] = 1.31E-23; m[530] = 1.536875E-12;
228 m[531] = 1.472E-12; m[533] = 1.E-19; m[535] = 1.31E-23; m[541] = 4.5E-13;
229 m[553] = 1.218911E-20; m[1112] = 4.539394E-24; m[1114] = 5.578069E-24; m[1116] = 1.994582E-24;
230 m[1118] = 2.269697E-24; m[1212] = 4.539394E-24; m[1214] = 5.723584E-24; m[1216] = 1.994582E-24;
231 m[1218] = 1.316424E-24; m[2112] = 8.857E+02; m[2114] = 5.578069E-24; m[2116] = 4.388081E-24;
232 m[2118] = 2.269697E-24; m[2122] = 4.539394E-24; m[2124] = 5.723584E-24; m[2126] = 1.994582E-24;
233 m[2128] = 1.316424E-24; m[2212] = 1.E+16; m[2214] = 5.578069E-24; m[2216] = 4.388081E-24;
234 m[2218] = 2.269697E-24; m[2222] = 4.539394E-24; m[2224] = 5.578069E-24; m[2226] = 1.994582E-24;
235 m[2228] = 2.269697E-24; m[3112] = 1.479E-10; m[3114] = 1.670589E-23; m[3116] = 5.485102E-24;
236 m[3118] = 3.656734E-24; m[3122] = 2.631E-10; m[102134] = 4.219309E-23; m[3126] = 8.227653E-24;
237 m[3128] = 3.291061E-24; m[3212] = 7.4E-20; m[3214] = 1.828367E-23; m[3216] = 5.485102E-24;
238 m[3218] = 3.656734E-24; m[3222] = 8.018E-11; m[3224] = 1.838582E-23; m[3226] = 5.485102E-24;
239 m[3228] = 3.656734E-24; m[3312] = 1.639E-10; m[3314] = 6.648608E-23; m[3322] = 2.9E-10;
240 m[3324] = 7.233101E-23; m[3334] = 8.21E-11; m[4112] = 2.991874E-22; m[4114] = 4.088274E-23;
241 m[4122] = 2.E-13; m[4132] = 1.12E-13; m[4212] = 3.999999E-22; m[4214] = 3.291061E-22;
242 m[4222] = 2.951624E-22; m[4224] = 4.417531E-23; m[4232] = 4.42E-13; m[4332] = 6.9E-14;
243 m[4412] = 3.335641E-13; m[4422] = 3.335641E-13; m[4432] = 3.335641E-13; m[5112] = 1.E-19;
244 m[5122] = 1.38E-12; m[5132] = 1.42E-12; m[5142] = 1.290893E-12; m[5212] = 1.E-19;
245 m[5222] = 1.E-19; m[5232] = 1.42E-12; m[5242] = 1.290893E-12; m[5312] = 1.E-19;
246 m[5322] = 1.E-19; m[5332] = 1.55E-12; m[5342] = 1.290893E-12; m[5442] = 1.290893E-12;
247 m[5512] = 1.290893E-12; m[5522] = 1.290893E-12; m[5532] = 1.290893E-12; m[5542] = 1.290893E-12;
248 m[10111] = 2.48382E-24; m[10113] = 4.635297E-24; m[10115] = 2.54136E-24; m[10211] = 2.48382E-24;
249 m[10213] = 4.635297E-24; m[10215] = 2.54136E-24; m[10223] = 1.828367E-24; m[10225] = 3.636531E-24;
250 m[10311] = 2.437823E-24; m[10313] = 7.313469E-24; m[10315] = 3.538775E-24;
251 m[10321] = 2.437823E-24; m[10323] = 7.313469E-24; m[10325] = 3.538775E-24;
252 m[10331] = 4.804469E-24; m[10411] = 4.38E-24; m[10413] = 3.29E-23; m[10421] = 4.38E-24;
253 m[10423] = 3.22653E-23; m[10431] = 6.5821E-22; m[10433] = 6.5821E-22; m[10441] = 6.453061E-23;
254 m[10511] = 4.39E-24; m[10513] = 1.65E-23; m[10521] = 4.39E-24; m[10523] = 1.65E-23;
255 m[10531] = 4.39E-24; m[10533] = 1.65E-23; m[11114] = 2.194041E-24; m[11116] = 1.828367E-24;
256 m[11212] = 1.880606E-24; m[11216] = 1.828367E-24; m[12112] = 2.194041E-24;
257 m[12114] = 2.194041E-24; m[12116] = 5.063171E-24; m[12126] = 1.828367E-24;
258 m[12212] = 2.194041E-24; m[12214] = 2.194041E-24; m[12216] = 5.063171E-24;
259 m[12224] = 2.194041E-24; m[12226] = 1.828367E-24; m[13112] = 6.582122E-24; m[13114] = 1.09702E-23;
260 m[13116] = 5.485102E-24; m[13122] = 1.316424E-23; m[13124] = 1.09702E-23; m[13126] = 6.928549E-24;
261 m[13212] = 6.582122E-24; m[13214] = 1.09702E-23; m[13216] = 5.485102E-24; m[13222] = 6.582122E-24;
262 m[13224] = 1.09702E-23; m[13226] = 5.485102E-24; m[13314] = 2.742551E-23;
263 m[13324] = 2.742551E-23; m[102142] = 1.828367E-22; m[20022] = 1.E+16; m[20113] = 1.567172E-24;
264 m[20213] = 1.567172E-24; m[20223] = 2.708692E-23; m[20313] = 3.782829E-24;
265 m[20315] = 2.384827E-24; m[20323] = 3.782829E-24; m[20325] = 2.384827E-24;
266 m[20333] = 1.198929E-23; m[20413] = 2.63E-24; m[20423] = 2.63E-24; m[20433] = 6.5821E-22;
267 m[20443] = 7.395643E-22; m[20513] = 2.63E-24; m[20523] = 2.63E-24; m[20533] = 2.63E-24;
268 m[21112] = 2.632849E-24; m[21114] = 3.291061E-24; m[21212] = 2.632849E-24;
269 m[21214] = 6.582122E-24; m[22112] = 4.388081E-24; m[22114] = 3.291061E-24;
270 m[22122] = 2.632849E-24; m[22124] = 6.582122E-24; m[22212] = 4.388081E-24;
271 m[22214] = 3.291061E-24; m[22222] = 2.632849E-24; m[22224] = 3.291061E-24;
272 m[23112] = 7.313469E-24; m[23114] = 2.991874E-24; m[23122] = 4.388081E-24;
273 m[23124] = 6.582122E-24; m[23126] = 3.291061E-24; m[23212] = 7.313469E-24;
274 m[23214] = 2.991874E-24; m[23222] = 7.313469E-24; m[23224] = 2.991874E-24;
275 m[30113] = 2.632849E-24; m[30213] = 2.632849E-24; m[30221] = 1.880606E-24;
276 m[30223] = 2.089563E-24; m[30313] = 2.056913E-24; m[30323] = 2.056913E-24;
277 m[30443] = 2.419898E-23; m[31114] = 1.880606E-24; m[31214] = 3.291061E-24;
278 m[32112] = 3.989164E-24; m[32114] = 1.880606E-24; m[32124] = 3.291061E-24;
279 m[32212] = 3.989164E-24; m[32214] = 1.880606E-24; m[32224] = 1.880606E-24;
280 m[33122] = 1.880606E-23; m[42112] = 6.582122E-24; m[42212] = 6.582122E-24;
281 m[43122] = 2.194041E-24; m[53122] = 4.388081E-24; m[100111] = 1.645531E-24;
282 m[100113] = 1.64553E-24; m[100211] = 1.645531E-24; m[100213] = 1.64553E-24;
283 m[100221] = 1.196749E-23; m[100223] = 3.061452E-24; m[100313] = 2.837122E-24;
284 m[100323] = 2.837122E-24; m[100331] = 4.459432E-25; m[100333] = 4.388081E-24;
285 m[100441] = 4.701516E-23; m[100443] = 2.076379E-21; m[100553] = 2.056913E-20;
286 m[200553] = 3.242425E-20; m[300553] = 3.210791E-23; m[9000111] = 8.776163E-24;
287 m[9000211] = 8.776163E-24; m[9000443] = 8.227652E-24; m[9000553] = 5.983747E-24;
288 m[9010111] = 3.164482E-24; m[9010211] = 3.164482E-24; m[9010221] = 9.403031E-24;
289 m[9010443] = 8.438618E-24; m[9010553] = 8.3318E-24; m[9020443] = 1.061633E-23;
290 m[9030221] = 6.038644E-24; m[9042413] = 2.07634E-21; m[9050225] = 1.394517E-24;
291 m[9060225] = 3.291061E-24; m[9080225] = 4.388081E-24; m[9090225] = 2.056913E-24;
292 m[9910445] = 2.07634E-21; m[9920443] = 2.07634E-21;
293 return true;
294 }
295
296 };
297
298
299 const int LHCB_2011_I917009::stablePDGIds[205] = {
300 311, 543, 545, 551, 555, 557, 1103, 2101, 2103, 2203, 3101, 3103, 3201, 3203, 3303,
301 4101, 4103, 102144, 4201, 4203, 4301, 4303, 4312, 4314, 4322, 4324, 4334, 4403, 4414,
302 4424, 4434, 4444, 5101, 5103, 5114, 5201, 5203, 5214, 5224, 5301, 5303, 5314, 5324,
303 5334, 5401, 5403, 5412, 5414, 5422, 5424, 5432, 5434, 5444, 5503, 5514, 5524, 5534,
304 5544, 5554, 10022, 10333, 10335, 10443, 10541, 10543, 10551, 10553, 10555, 11112,
305 12118, 12122, 12218, 12222, 13316, 13326, 20543, 20553, 20555, 23314, 23324, 30343,
306 30353, 30363, 30553, 33314, 33324, 41214, 42124, 52114, 52214, 100311, 100315, 100321,
307 100325, 100411, 100413, 100421, 100423, 100551, 100555, 100557, 110551, 110553, 110555,
308 120553, 120555, 130553, 200551, 200555, 210551, 210553, 220553, 1000001, 1000002,
309 1000003, 1000004, 1000005, 1000006, 1000011, 1000012, 1000013, 1000014, 1000015,
310 1000016, 1000021, 1000022, 1000023, 1000024, 1000025, 1000035, 1000037, 1000039,
311 2000001, 2000002, 2000003, 2000004, 2000005, 2000006, 2000011, 2000012, 2000013,
312 2000014, 2000015, 2000016, 3000111, 3000113, 3000211, 3000213, 3000221, 3000223,
313 3000331, 3100021, 3100111, 3100113, 3200111, 3200113, 3300113, 3400113, 4000001,
314 4000002, 4000011, 4000012, 5000039, 9000221, 9900012, 9900014, 9900016, 9900023,
315 9900024, 9900041, 9900042 };
316
317
318 RIVET_DECLARE_PLUGIN(LHCB_2011_I917009);
319
320}
|