rivet is hosted by Hepforge, IPPP Durham
LHCB_2010_S8758301.cc
Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/Projections/UnstableFinalState.hh"
00004 #include "Rivet/Math/Constants.hh"
00005 #include "Rivet/Math/Units.hh"
00006 #include "HepMC/GenEvent.h"
00007 #include "HepMC/GenParticle.h"
00008 #include "HepMC/GenVertex.h"
00009 #include "HepMC/SimpleVector.h"
00010 
00011 namespace Rivet {
00012 
00013 using namespace HepMC;
00014 using namespace std;
00015 
00016   // Lifetime cut: longest living ancestor ctau < 10^-11 [m]
00017   namespace {
00018     const double MAX_CTAU = 1.0E-11; // [m]
00019     const double MIN_PT = 0.0001; // [GeV/c]
00020   }
00021 
00022 
00023   class LHCB_2010_S8758301 : public Analysis {
00024   public:
00025     /// @name Constructors etc.
00026     //@{
00027     /// Constructor
00028     LHCB_2010_S8758301()
00029       : Analysis("LHCB_2010_S8758301"),
00030       sumKs0_30(0.0), sumKs0_35(0.0),
00031       sumKs0_40(0.0), sumKs0_badnull(0),
00032       sumKs0_badlft(0), sumKs0_all(0),
00033       sumKs0_outup(0), sumKs0_outdwn(0),
00034       sum_low_pt_loss(0), sum_high_pt_loss(0)
00035     {  }
00036 
00037 
00038     //@}
00039     /// @name Analysis methods
00040     //@{
00041     /// Book histograms and initialise projections before the run
00042     void init() {
00043       MSG_DEBUG("Initializing analysis!");
00044       fillMap(partLftMap);
00045       _h_K0s_pt_30    = bookHisto1D(1,1,1);
00046       _h_K0s_pt_35    = bookHisto1D(1,1,2);
00047       _h_K0s_pt_40    = bookHisto1D(1,1,3);
00048       _h_K0s_pt_y_30  = bookHisto1D(2,1,1);
00049       _h_K0s_pt_y_35  = bookHisto1D(2,1,2);
00050       _h_K0s_pt_y_40  = bookHisto1D(2,1,3);
00051       _h_K0s_pt_y_all = bookHisto1D(3,1,1);
00052       addProjection(UnstableFinalState(), "UFS");
00053     }
00054 
00055 
00056     /// Perform the per-event analysis
00057     void analyze(const Event& event) {
00058       int id;
00059       double y, pT;
00060       const double weight = event.weight();
00061       const UnstableFinalState& ufs = applyProjection<UnstableFinalState>(event, "UFS");
00062       double ancestor_lftime;
00063       foreach (const Particle& p, ufs.particles()) {
00064         id = p.pdgId();
00065         if ((id != 310) && (id != -310)) continue;
00066         sumKs0_all ++;
00067         ancestor_lftime = 0.;
00068         const GenParticle* long_ancestor = getLongestLivedAncestor(p, ancestor_lftime);
00069         if ( !(long_ancestor) ) {
00070           sumKs0_badnull ++;
00071           continue;
00072         }
00073         if ( ancestor_lftime > MAX_CTAU ) {
00074           sumKs0_badlft ++;
00075           MSG_DEBUG("Ancestor " << long_ancestor->pdg_id() << ", ctau: " << ancestor_lftime << " [m]");
00076           continue;
00077         }
00078         const FourMomentum& qmom = p.momentum();
00079         y = 0.5 * log((qmom.E() + qmom.pz())/(qmom.E() - qmom.pz()));
00080         pT = sqrt((qmom.px() * qmom.px()) + (qmom.py() * qmom.py()));
00081         if (pT < MIN_PT) {
00082           sum_low_pt_loss ++;
00083           MSG_DEBUG("Small pT K^0_S: " << pT << " GeV/c.");
00084         }
00085         if (pT > 1.6) {
00086           sum_high_pt_loss ++;
00087         }
00088         if (y > 2.5 && y < 4.0) {
00089           _h_K0s_pt_y_all->fill(pT, weight);
00090           if (y > 2.5 && y < 3.0) {
00091             _h_K0s_pt_y_30->fill(pT, weight);
00092             _h_K0s_pt_30->fill(pT, weight);
00093             sumKs0_30 += weight;
00094           } else if (y > 3.0 && y < 3.5) {
00095             _h_K0s_pt_y_35->fill(pT, weight);
00096             _h_K0s_pt_35->fill(pT, weight);
00097             sumKs0_35 += weight;
00098           } else if (y > 3.5 && y < 4.0) {
00099             _h_K0s_pt_y_40->fill(pT, weight);
00100             _h_K0s_pt_40->fill(pT, weight);
00101             sumKs0_40 += weight;
00102           }
00103         } else if (y < 2.5) {
00104           sumKs0_outdwn ++;
00105         } else if (y > 4.0) {
00106           sumKs0_outup ++;
00107         }
00108       }
00109     }
00110 
00111 
00112     /// Normalise histograms etc., after the run
00113     void finalize() {
00114       MSG_DEBUG("Total number Ks0: " << sumKs0_all << endl
00115                 << "Sum of weights: " << sumOfWeights() << endl
00116                 << "Weight Ks0 (2.5 < y < 3.0): " <<  sumKs0_30 << endl
00117                 << "Weight Ks0 (3.0 < y < 3.5): " << sumKs0_35 << endl
00118                 << "Weight Ks0 (3.5 < y < 4.0): " << sumKs0_40 << endl
00119                 << "Nb. unprompt Ks0 [null mother]: " << sumKs0_badnull << endl
00120                 << "Nb. unprompt Ks0 [mother lifetime exceeded]: " << sumKs0_badlft << endl
00121                 << "Nb. Ks0 (y > 4.0): " << sumKs0_outup << endl
00122                 << "Nb. Ks0 (y < 2.5): " << sumKs0_outdwn << endl
00123                 << "Nb. Ks0 (pT < " << (MIN_PT/MeV) << " MeV/c): " << sum_low_pt_loss << endl
00124                 << "Nb. Ks0 (pT > 1.6 GeV/c): " << sum_high_pt_loss << endl
00125                 << "Cross-section [mb]: " << crossSection()/millibarn << endl
00126                 << "Nb. events: " << numEvents());
00127       // Compute cross-section; multiply by bin width for correct scaling
00128       // cross-section given by Rivet in pb
00129       double xsection_factor = crossSection()/sumOfWeights();
00130       // Multiply bin width for correct scaling, xsection in mub
00131       scale(_h_K0s_pt_30, 0.2*xsection_factor/microbarn);
00132       scale(_h_K0s_pt_35, 0.2*xsection_factor/microbarn);
00133       scale(_h_K0s_pt_40, 0.2*xsection_factor/microbarn);
00134       // Divide by dy (rapidity window width), xsection in mb
00135       scale(_h_K0s_pt_y_30, xsection_factor/0.5/millibarn);
00136       scale(_h_K0s_pt_y_35, xsection_factor/0.5/millibarn);
00137       scale(_h_K0s_pt_y_40, xsection_factor/0.5/millibarn);
00138       scale(_h_K0s_pt_y_all, xsection_factor/1.5/millibarn);
00139     }
00140 
00141     //@}
00142 
00143 
00144   private:
00145 
00146     /// Get particle lifetime from hardcoded data
00147     double getLifeTime(int pid) {
00148       double lft = -1.0;
00149       if (pid < 0) pid = - pid;
00150       // Correct Pythia6 PIDs for f0(980), f0(1370) mesons
00151       if (pid == 10331) pid = 30221;
00152       if (pid == 10221) pid = 9010221;
00153       map<int, double>::iterator pPartLft = partLftMap.find(pid);
00154       // search stable particle list
00155       if (pPartLft == partLftMap.end()) {
00156         if (pid <= 100) return 0.0;
00157         for (unsigned int i=0; i < sizeof(stablePDGIds)/sizeof(unsigned int); i++ ) {
00158           if (pid == stablePDGIds[i]) { lft = 0.0; break; }
00159         }
00160       } else {
00161         lft = (*pPartLft).second;
00162       }
00163       if (lft < 0.0)
00164         MSG_ERROR("Could not determine lifetime for particle with PID " << pid
00165                   << "... This K_s^0 will be considered unprompt!");
00166       return lft;
00167     }
00168 
00169     const GenParticle* getLongestLivedAncestor(const Particle& p, double& lifeTime) {
00170       const GenParticle* ret = NULL;
00171       lifeTime = 1.;
00172       if (p.genParticle() == NULL) return NULL;
00173       const GenParticle* pmother = p.genParticle();
00174       double longest_ctau = 0.;
00175       double mother_ctau;
00176       int mother_pid, n_inparts;
00177       GenVertex* ivertex = pmother->production_vertex();
00178       while (ivertex) {
00179         n_inparts = ivertex->particles_in_size();
00180         if (n_inparts < 1) {ret = NULL; break;}    // error: should never happen!
00181         const HepMC::GenVertex::particles_in_const_iterator iPart_invtx = ivertex->particles_in_const_begin();
00182         pmother = (*iPart_invtx);                   // first mother particle
00183         mother_pid = pmother->pdg_id();
00184         ivertex = pmother->production_vertex();     // get next vertex
00185         if ( (mother_pid == 2212) || (mother_pid <= 100) ) {
00186           if (ret == NULL) ret = pmother;
00187           continue;
00188         }
00189         mother_ctau = getLifeTime(mother_pid);
00190         if (mother_ctau < 0.) { ret= NULL; break; }   // error:should never happen!
00191         if (mother_ctau > longest_ctau) {
00192           longest_ctau = mother_ctau;
00193           ret = pmother;
00194         }
00195       }
00196       if (ret) lifeTime = longest_ctau * c_light;
00197       return ret;
00198     }
00199 
00200     // Fill the PDG Id to Lifetime[seconds] map
00201     // Data was extract from LHCb Particle Table using ParticleSvc
00202     bool fillMap(map<int, double> &m) {
00203       m[6] =  4.707703E-25;  m[11] =  1.E+16;  m[12] =  1.E+16;
00204       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;
00205       m[23] =  2.637914E-25;  m[24] =  3.075758E-25;  m[25] =  9.4E-26;  m[35] =  9.4E-26;
00206       m[36] =  9.4E-26;  m[37] =  9.4E-26;  m[84] =  3.335641E-13;  m[85] =  1.290893E-12;
00207       m[111] =  8.4E-17;  m[113] =  4.405704E-24;  m[115] =  6.151516E-24;  m[117] =  4.088275E-24;
00208       m[119] =  2.102914E-24;  m[130] =  5.116E-08;  m[150] =  1.525E-12;  m[211] =  2.6033E-08;
00209       m[213] =  4.405704E-24;  m[215] =  6.151516E-24;  m[217] =  4.088275E-24;  m[219] =  2.102914E-24;
00210       m[221] =  5.063171E-19;  m[223] =  7.752794E-23;  m[225] =  3.555982E-24;  m[227] =  3.91793E-24;
00211       m[229] =  2.777267E-24;  m[310] =  8.953E-11;  m[313] =  1.308573E-23;  m[315] =  6.038644E-24;
00212       m[317] =  4.139699E-24;  m[319] =  3.324304E-24;  m[321] =  1.238E-08;  m[323] =  1.295693E-23;
00213       m[325] =  6.682357E-24;  m[327] =  4.139699E-24;  m[329] =  3.324304E-24;  m[331] =  3.210791E-21;
00214       m[333] =  1.545099E-22;  m[335] =  9.016605E-24;  m[337] =  7.565657E-24;  m[350] =  1.407125E-12;
00215       m[411] =  1.04E-12;  m[413] =  6.856377E-21;  m[415] =  1.778952E-23;  m[421] =  4.101E-13;
00216       m[423] =  1.000003E-19;  m[425] =  1.530726E-23;  m[431] =  5.E-13;  m[433] =  1.000003E-19;
00217       m[435] =  3.291061E-23;  m[441] =  2.465214E-23;  m[443] =  7.062363E-21;  m[445] =  3.242425E-22;
00218       m[510] =  1.525E-12;  m[511] =  1.525E-12;  m[513] =  1.000019E-19;  m[515] =  1.31E-23;
00219       m[521] =  1.638E-12;  m[523] =  1.000019E-19;  m[525] =  1.31E-23;  m[530] =  1.536875E-12;
00220       m[531] =  1.472E-12;  m[533] =  1.E-19;  m[535] =  1.31E-23;  m[541] =  4.5E-13;
00221       m[553] =  1.218911E-20;  m[1112] =  4.539394E-24;  m[1114] =  5.578069E-24;  m[1116] =  1.994582E-24;
00222       m[1118] =  2.269697E-24;  m[1212] =  4.539394E-24;  m[1214] =  5.723584E-24;  m[1216] =  1.994582E-24;
00223       m[1218] =  1.316424E-24;  m[2112] =  8.857E+02;  m[2114] =  5.578069E-24;  m[2116] =  4.388081E-24;
00224       m[2118] =  2.269697E-24;  m[2122] =  4.539394E-24;  m[2124] =  5.723584E-24;  m[2126] =  1.994582E-24;
00225       m[2128] =  1.316424E-24;  m[2212] =  1.E+16;  m[2214] =  5.578069E-24;  m[2216] =  4.388081E-24;
00226       m[2218] =  2.269697E-24;  m[2222] =  4.539394E-24;  m[2224] =  5.578069E-24;  m[2226] =  1.994582E-24;
00227       m[2228] =  2.269697E-24;  m[3112] =  1.479E-10;  m[3114] =  1.670589E-23;  m[3116] =  5.485102E-24;
00228       m[3118] =  3.656734E-24;  m[3122] =  2.631E-10;  m[3124] =  4.219309E-23;  m[3126] =  8.227653E-24;
00229       m[3128] =  3.291061E-24;  m[3212] =  7.4E-20;  m[3214] =  1.828367E-23;  m[3216] =  5.485102E-24;
00230       m[3218] =  3.656734E-24;  m[3222] =  8.018E-11;  m[3224] =  1.838582E-23;  m[3226] =  5.485102E-24;
00231       m[3228] =  3.656734E-24;  m[3312] =  1.639E-10;  m[3314] =  6.648608E-23;  m[3322] =  2.9E-10;
00232       m[3324] =  7.233101E-23;  m[3334] =  8.21E-11;  m[4112] =  2.991874E-22;  m[4114] =  4.088274E-23;
00233       m[4122] =  2.E-13;  m[4132] =  1.12E-13;  m[4212] =  3.999999E-22;  m[4214] =  3.291061E-22;
00234       m[4222] =  2.951624E-22;  m[4224] =  4.417531E-23;  m[4232] =  4.42E-13;  m[4332] =  6.9E-14;
00235       m[4412] =  3.335641E-13;  m[4422] =  3.335641E-13;  m[4432] =  3.335641E-13;  m[5112] =  1.E-19;
00236       m[5122] =  1.38E-12;  m[5132] =  1.42E-12;  m[5142] =  1.290893E-12;  m[5212] =  1.E-19;
00237       m[5222] =  1.E-19;  m[5232] =  1.42E-12;  m[5242] =  1.290893E-12;  m[5312] =  1.E-19;
00238       m[5322] =  1.E-19;  m[5332] =  1.55E-12;  m[5342] =  1.290893E-12;  m[5442] =  1.290893E-12;
00239       m[5512] =  1.290893E-12;  m[5522] =  1.290893E-12;  m[5532] =  1.290893E-12;  m[5542] =  1.290893E-12;
00240       m[10111] =  2.48382E-24;  m[10113] =  4.635297E-24;  m[10115] =  2.54136E-24;  m[10211] =  2.48382E-24;
00241       m[10213] =  4.635297E-24;  m[10215] =  2.54136E-24;  m[10223] =  1.828367E-24;  m[10225] =  3.636531E-24;
00242       m[10311] =  2.437823E-24;  m[10313] =  7.313469E-24;  m[10315] =  3.538775E-24;
00243       m[10321] =  2.437823E-24;  m[10323] =  7.313469E-24;  m[10325] =  3.538775E-24;
00244       m[10331] =  4.804469E-24;  m[10411] =  4.38E-24;  m[10413] =  3.29E-23;  m[10421] =  4.38E-24;
00245       m[10423] =  3.22653E-23;  m[10431] =  6.5821E-22;  m[10433] =  6.5821E-22;  m[10441] =  6.453061E-23;
00246       m[10511] =  4.39E-24;  m[10513] =  1.65E-23;  m[10521] =  4.39E-24;  m[10523] =  1.65E-23;
00247       m[10531] =  4.39E-24;  m[10533] =  1.65E-23;  m[11114] =  2.194041E-24;  m[11116] =  1.828367E-24;
00248       m[11212] =  1.880606E-24;  m[11216] =  1.828367E-24;  m[12112] =  2.194041E-24;
00249       m[12114] =  2.194041E-24;  m[12116] =  5.063171E-24;  m[12126] =  1.828367E-24;
00250       m[12212] =  2.194041E-24;  m[12214] =  2.194041E-24;  m[12216] =  5.063171E-24;
00251       m[12224] =  2.194041E-24;  m[12226] =  1.828367E-24;  m[13112] =  6.582122E-24;  m[13114] =  1.09702E-23;
00252       m[13116] =  5.485102E-24;  m[13122] =  1.316424E-23;  m[13124] =  1.09702E-23;  m[13126] =  6.928549E-24;
00253       m[13212] =  6.582122E-24;  m[13214] =  1.09702E-23;  m[13216] =  5.485102E-24;  m[13222] =  6.582122E-24;
00254       m[13224] =  1.09702E-23;   m[13226] =  5.485102E-24;
00255       m[13312] =  4.135667E-22;  m[13314] =  2.742551E-23;
00256       m[13324] =  2.742551E-23;  m[14122] =  1.828367E-22;  m[20022] =  1.E+16;  m[20113] =  1.567172E-24;
00257       m[20213] =  1.567172E-24;  m[20223] =  2.708692E-23;  m[20313] =  3.782829E-24;
00258       m[20315] =  2.384827E-24;  m[20323] =  3.782829E-24;  m[20325] =  2.384827E-24;
00259       m[20333] =  1.198929E-23;  m[20413] =  2.63E-24;  m[20423] =  2.63E-24;  m[20433] =  6.5821E-22;
00260       m[20443] =  7.395643E-22;  m[20513] =  2.63E-24;  m[20523] =  2.63E-24;  m[20533] =  2.63E-24;
00261       m[21112] =  2.632849E-24;  m[21114] =  3.291061E-24;  m[21212] =  2.632849E-24;
00262       m[21214] =  6.582122E-24;  m[22112] =  4.388081E-24;  m[22114] =  3.291061E-24;
00263       m[22122] =  2.632849E-24;  m[22124] =  6.582122E-24;  m[22212] =  4.388081E-24;
00264       m[22214] =  3.291061E-24;  m[22222] =  2.632849E-24;  m[22224] =  3.291061E-24;
00265       m[23112] =  7.313469E-24;  m[23114] =  2.991874E-24;  m[23122] =  4.388081E-24;
00266       m[23124] =  6.582122E-24;  m[23126] =  3.291061E-24;  m[23212] =  7.313469E-24;
00267       m[23214] =  2.991874E-24;  m[23222] =  7.313469E-24;  m[23224] =  2.991874E-24;
00268       m[30113] =  2.632849E-24;  m[30213] =  2.632849E-24;  m[30221] =  1.880606E-24;
00269       m[30223] =  2.089563E-24;  m[30313] =  2.056913E-24;  m[30323] =  2.056913E-24;
00270       m[30443] =  2.419898E-23;  m[31114] =  1.880606E-24;  m[31214] =  3.291061E-24;
00271       m[32112] =  3.989164E-24;  m[32114] =  1.880606E-24;  m[32124] =  3.291061E-24;
00272       m[32212] =  3.989164E-24;  m[32214] =  1.880606E-24;  m[32224] =  1.880606E-24;
00273       m[33122] =  1.880606E-23;  m[42112] =  6.582122E-24;  m[42212] =  6.582122E-24;
00274       m[43122] =  2.194041E-24;  m[53122] =  4.388081E-24;  m[100111] =  1.645531E-24;
00275       m[100113] =  1.64553E-24;  m[100211] =  1.645531E-24;  m[100213] =  1.64553E-24;
00276       m[100221] =  1.196749E-23;  m[100223] =  3.061452E-24;  m[100313] =  2.837122E-24;
00277       m[100323] =  2.837122E-24;  m[100331] =  4.459432E-25;  m[100333] =  4.388081E-24;
00278       m[100441] =  4.701516E-23;  m[100443] =  2.076379E-21;  m[100553] =  2.056913E-20;
00279       m[200553] =  3.242425E-20;  m[300553] =  3.210791E-23;  m[9000111] =  8.776163E-24;
00280       m[9000211] =  8.776163E-24;  m[9000443] =  8.227652E-24;  m[9000553] =  5.983747E-24;
00281       m[9010111] =  3.164482E-24;  m[9010211] =  3.164482E-24;  m[9010221] =  9.403031E-24;
00282       m[9010443] =  8.438618E-24;  m[9010553] =  8.3318E-24;
00283       m[9020221] =  8.093281E-23;  m[9020443] =  1.061633E-23;
00284       m[9030221] =  6.038644E-24;  m[9042413] =  2.07634E-21;  m[9050225] =  1.394517E-24;
00285       m[9060225] =  3.291061E-24;  m[9080225] =  4.388081E-24;  m[9090225] =  2.056913E-24;
00286       m[9910445] =  2.07634E-21;  m[9920443] =  2.07634E-21;
00287       return true;
00288     }
00289 
00290     /// @name Histograms
00291     //@{
00292     Histo1DPtr _h_K0s_pt_y_30;         // histogram for 2.5 < y < 3.0 (d2sigma)
00293     Histo1DPtr _h_K0s_pt_y_35;         // histogram for 3.0 < y < 3.5 (d2sigma)
00294     Histo1DPtr _h_K0s_pt_y_40;         // histogram for 3.5 < y < 4.0 (d2sigma)
00295     Histo1DPtr _h_K0s_pt_30;           // histogram for 2.5 < y < 3.0 (sigma)
00296     Histo1DPtr _h_K0s_pt_35;           // histogram for 3.0 < y < 3.5 (sigma)
00297     Histo1DPtr _h_K0s_pt_40;           // histogram for 3.5 < y < 4.0 (sigma)
00298     Histo1DPtr _h_K0s_pt_y_all;        // histogram for 2.5 < y < 4.0 (d2sigma)
00299     double sumKs0_30;                           // Sum of weights 2.5 < y < 3.0
00300     double sumKs0_35;                           // Sum of weights 3.0 < y < 3.5
00301     double sumKs0_40;                           // Sum of weights 3.5 < y < 4.0
00302     // Various counters mainly for debugging and comparisons between different generators
00303     size_t sumKs0_badnull;                      // Nb of particles for which mother could not be identified
00304     size_t sumKs0_badlft;                       // Nb of mesons with long lived mothers
00305     size_t sumKs0_all;                          // Nb of all Ks0 generated
00306     size_t sumKs0_outup;                        // Nb of mesons with y > 4.0
00307     size_t sumKs0_outdwn;                       // Nb of mesons with y < 2.5
00308     size_t sum_low_pt_loss;                     // Nb of mesons with very low pT (indicates when units are mixed-up)
00309     size_t sum_high_pt_loss;                    // Nb of mesons with pT > 1.6 GeV/c
00310     // Map between PDG id and particle lifetimes in seconds
00311     std::map<int, double> partLftMap;
00312     // Set of PDG Ids for stable particles (PDG Id <= 100 are considered stable)
00313     static const int stablePDGIds[205];
00314     //@}
00315   };
00316 
00317 
00318   // Actual initialization according to ISO C++ requirements
00319   const int LHCB_2010_S8758301::stablePDGIds[205]  = {
00320     311, 543, 545, 551, 555, 557, 1103, 2101, 2103, 2203, 3101, 3103, 3201, 3203, 3303,
00321     4101, 4103, 4124, 4201, 4203, 4301, 4303, 4312, 4314, 4322, 4324, 4334, 4403, 4414,
00322     4424, 4434, 4444, 5101, 5103, 5114, 5201, 5203, 5214, 5224, 5301, 5303, 5314, 5324,
00323     5334, 5401, 5403, 5412, 5414, 5422, 5424, 5432, 5434, 5444, 5503, 5514, 5524, 5534,
00324     5544, 5554, 10022, 10333, 10335, 10443, 10541, 10543, 10551, 10553, 10555, 11112,
00325     12118, 12122, 12218, 12222, 13316, 13326, 20543, 20553, 20555, 23314, 23324, 30343,
00326     30353, 30363, 30553, 33314, 33324, 41214, 42124, 52114, 52214, 100311, 100315, 100321,
00327     100325, 100411, 100413, 100421, 100423, 100551, 100555, 100557, 110551, 110553, 110555,
00328     120553, 120555, 130553, 200551, 200555, 210551, 210553, 220553, 1000001, 1000002,
00329     1000003, 1000004, 1000005, 1000006, 1000011, 1000012, 1000013, 1000014, 1000015,
00330     1000016, 1000021, 1000022, 1000023, 1000024, 1000025, 1000035, 1000037, 1000039,
00331     2000001, 2000002, 2000003, 2000004, 2000005, 2000006, 2000011, 2000012, 2000013,
00332     2000014, 2000015, 2000016, 3000111, 3000113, 3000211, 3000213, 3000221, 3000223,
00333     3000331, 3100021, 3100111, 3100113, 3200111, 3200113, 3300113, 3400113, 4000001,
00334     4000002, 4000011, 4000012, 5000039, 9000221, 9900012, 9900014, 9900016, 9900023,
00335     9900024, 9900041, 9900042};
00336 
00337 
00338   // Hook for the plugin system
00339   DECLARE_RIVET_PLUGIN(LHCB_2010_S8758301);
00340 
00341 }