Chang, CH (reprint author), Chinese Acad Sci, Inst Theoret Phys, State Key Lab Theoret Phys, POB 2735, Beijing 100080, Peoples R China.
A newly upgraded version of the BCVEGPY, a generator for hadronic production of the meson Be and its excited states, is available. In comparison with the previous one (Chang et al., 2006), the new version is to apply an improved hit-and-miss technology to generating the un-weighted events much more efficiently under various simulation environments. The codes for production of 2S-wave B-c states are also given here. New version program summary Title of program: BCVEGPY2.2 Catalogue identifier: ADTJ_v2_3 Program obtained from: CPC Program Library, Queen's University, Belfast, N. Ireland Licensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.html No. of lines in distributed program, including test data, etc.: 323731 No. of bytes in distributed program, including test data, etc.: 4498602 Distribution format: tar.gz Computer: Any LINUX based on PC with FORTRAN 77 or FORTRAN 90 and GNU C compiler as well Operating systems: LINUX Programming language used: FORTRAN 77/90 Memory required to execute with typical data: About 2.0 MB Classification: 11.2, 11.5 Catalogue identifier of previous version: ADTJ_v2_2 Journal reference of previous version: Comput. Phys. Commun. 183 (2012) 442 Does the new version supersede the old version?: Yes Nature of physical problem: Hadronic Production of B-c meson and its excited states. Method of solution: To generate un-weighted events of B-c meson and its excited states by using an improved hit-and-miss technology. Reasons for new version: Responding to the feedback from users, such as those from CMS and LHCb groups, we create a new hit-and-miss algorithm for generating the un-weighted events. Furthermore, the relevant codes for generating the 2S-excited state of B-c meson are added, because the excited state production may be sizable in the new LHC run. Typical running time: it depends on which option is chosen to match PYTHIA when generating the full events and also on which state of B-c meson, either its ground state or its excited states, is to be generated. Typically on a 2.27GHz Intel Xeon E5520 processor machine, for producing the B-c meson ground state: I) If setting [IDWTUP=3 and unwght =.true.], it shall adopt the new hit-and-miss technology to generate the un-weighted events, and to generate 10(5) events takes 30 minutes; II) If setting [IDWTUP=3 and unwght =.false.] or [IDWTUP=1 and IGENERATE=0], it shall generate the weighted events, and to generate 105 events takes 2 minutes only (the fastest way, for theoretical purpose only); Ill) As a comparison, if setting [IDWTUP=1 and IGENERATE=1], it shall, as the same as the previous version, adopt the PYTHIA inner hit-and-miss technology to generate the un-weighted events, and to generate 1000 events takes about 22 hours. Thus, the efficiency (and accuracy also) for generating the un-weighted events obviously is greatly increased. Keywords: Event generator; Hadronic production; B-c meson; Un-weighted events Summary of revisions: 1). We improve the approach for generating un-weighted events. 2). Responding to the feedback from users, we adjust part of the codes to make it work more user-friendly. More specifically, we explain main changes in the following : Event generation. If each simulated event comes with a weight, it will make the data analysis much more complicated. Thus the un-weighted events are usually adopted for Monte Carlo simulations. As an external process of PYTHIA, the generator BCVEGPY [1-4] shall call the PYTHIA inner hit-and-miss mechanism to generate the un-weighted events by setting IDWGTUP=1 and IGENERATE=1 , i.e. the Von Neumann method is used for generating the un-weighted B-c events. Every events bearing a weight (xwgtup) respectively, when inputting them to PYTHIA, they are suffered from being accepted or rejected, all the fully generated events at the output become to have a common weight. The Von Neumann method states that the event should be accepted by the PYTHIA subroutine PYEVNT with a probability R = xwgtup/xmaxup. This can be achieved by comparing R with a random number that is uniformly distributed within the region of [0, 1]. Namely if R is bigger than such a random number then the event is accepted, otherwise it should be rejected. Here xmaxup stands for the maximum event weight. The von Neumann method works effectively for the cases when all the weights of input events are moderate in the whole phase-space. However if the input events' weights vary greatly, such as varying logarithmically, thee its efficiency shall be greatly depressed, since too much time shall be wasted for calculating xwgtup of the rejected events. Thus it is helpful to find a new method for generating unweighted events. We will adopt the new hit-and-miss strategy suggested by Ref. to do the Bc meson un-weight simulation. Extra switches for calling this new technology are added to BCVEGPY, e.g. the new hit-and-miss technology shall be called by setting IDWTUP=3 and unwght =.true.. Details for this new technology can be found in Ref. . For self-consistency, we repeat its main idea here. To be different from previous versions, BCVEGPY2.2 uses the VEGAS  and the MINT  as a combined way to generate the un-weighted events. The whole phase space shall be separated to a multidimensional phase-space grid. The main purpose of VEGAS  is to perform the adaptive Monte Carlo multi-dimensional integration, which uses the importance-sampling method to improve the integration efficiency. Each event shall generally result in a different weight, recorded by xwgtup, and the maximum weight within each grid shall be simultaneously recorded into the importance-sampling grid file (with the suffix.grid). Then following the idea of MINT, the Von Neumann method is used in each phase-space grid. Within this small grid region, the von Neumann algorithm works effectively, thus the efficiency for generating un-weighted events are greatly increased. To implement the new hit-and-miss algorithm into BCVEGPY2.2, we change the original VEGAS subroutine as vegas (fxn, ndim, ncall, itmx, nprn, xint xmax, imode) Three new variables xint, xmax and imode are added in the VEGAS subroutine. The xmax array is used to record the maximum weights in all cells and mode is a flag. xint stands for the output cross-section when setting imode=0, which shall be used to initialize the xmax array when setting imode=1. For convenience, the generated xmax array will be stored in the same grid file in which the importance sampling function is stored. In the initialization stage, the VEGAS subroutine shall be called by the subroutine evntinit twice by setting imode=0 and imode=1 respectively to generate both the upper bound grid xmax for all cells and the importance sampling function. A subroutine gem (fxn, ndim, Xmax, i mode) is defined in the file vegas. F with the purpose to generate the un-weighted events. Three options for calling gem subroutine are defined: jmode=0 is to initializes the parameter; jmode=3 is to print the generation statistics; jmode=1 is the key option, which is to use the new hit-and-miss technology to generate the un-weighted events. More explicitly, by calling gen (fxn, ndim,mmax, jmode=1), three steps shall be executed: 1. Call the phase_gen subroutine to generate a random phase-space point and to calculate its weight xwgtup. 2. Judge the point locates in which cell and read from the xmax array and get the upper bound value xmaxup for this particular cell. 3. Judge whether such point be kept or not by using the Von Neumann method with the help of the probability xwgtup/xmaxup. To be more flexible, we add one parameter igenmode for generating or using the existed. grid files. When setting igenmode=1, the VEGAS subroutine shall be called to generate the. grid files. When setting igenmode=2, the VEGAS subroutine shall be called to generate more accurate. grid files from the existed. grid files. When setting igenmode=3, one can directly use the existed. grid files to generate events without running VEGAS. Importantly, before using the existed. grid files, one must ensure all the parameters be the same as the previous generation. A script for setting the parameters and a cross-check of the un-weighted events. We put an additional file, bcvegpy_set_par.nam, in the new version for setting the parameters. This way the user does not need to compile the program again if only the parameter values are changed. [GRAPHICS] Fig. 1. Comparison of the normalized B-c transverse momentum (PT) and rapidity (y) distributions derived by setting unwght=.true. (events) and unwght=.false. (differential distributions), which are represented by solid and dotted lines, respectively. As a cross-check of the new technology, we compare the un-weighted Bc event distributions derived by setting unwght=.true. with the weighted Bc differential distributions derived by setting unwght=.false.. The results are shown in Fig. 1. Those two distributions after proper normalization agree well with each other, that shows our present scheme for un-weighted events is correct. Bc(2S) generation. In 2014 the ATLAS collaboration reported an observation about an excited state of Bc meson, which most probably is Bc (2S) state . With more data being collected at LHC detectors, it is hopeful that more observations on the excited Bc states will be issued. Therefore in addition to the production via color-singlet B-c(1S), B-c(1P) and color-octet B-c(1S) states, the B-c(2S) production is involved in BCVEGPY2.2. It is achieved by replacing the 1S-wave bound-state parameters pmb, pmc and fbc with those of the 2S-wave one. Here pmb, pmc and fbc are for b-quark mass, c-quark mass and the radial wave function at the zero (vertical bar R(0)1), respectively. For the 2S-wave case, their default values are set as pmb =5.234 GeV, pmc =1.633 GeV and fbc =0.991 GeV3/2  if the mass of the 2S-wave Bc state is 6.867 GeV. More explicitly, two new values for ibcstate are added: ibcstate =9 is to generate 2(1)S(0) state and ibcstate =10 is to generate 2(3)S(1) state. Detailed technologies for deriving the production properties of all the mentioned ten Bc meson states can be found in Refs.[11-13]. Furthermore, the values for mix_type are rearranged. mix_type=1 is to generate the mixing events for all mentioned states. mix_type=2 is to generate the mixing events for 1(1)S(0) and 1(3)S(1) states. mix_type=3 is to generate the mixing events for the four 1P-wave states and the two color-octet 1(1)S(0) and 1(3)S(1) states. mix_type=4 is to generate the mixing events for 2(1)S(0) and 2(3)S(1) states. (C) 2015 Elsevier B.V. All rights reserved.
National Basic Research Program of China (973 program) [2013CB932804]
; Natural Science Foundation of China [11275243, 11747001, 11275280]
; Fundamental Research Funds for the Central Universities [CDJZR305513]