PhD thesis of Renata Kopečná Angular analysis of B+->K*+(K+pi0)mu+mu- decay with the LHCb experiment
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1553 lines
29 KiB

  1. % LHCb Bibtex file
  2. %
  3. % This file should be used for all LHCb publications. To report bugs,
  4. % suggest features or provide enhancements, contact Ulrik Egede.
  5. %
  6. %X History
  7. %X 9/30/85 (HWT) Original version, by Howard Trickey.
  8. %X 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashni% 7/97 Jacques Distler Collaboration and hyperref
  9. % 8/11 Ulrik Egede for the LHCb collaboration. Tweaked style and
  10. % added DOI hyperlinks for articles.
  11. % 01/12 Ulrik Egede Integrated mciteplus
  12. % 2019 Patrick Koppenburg integrated many minor features.
  13. %
  14. % The bibtex output produced by SPIRES, while far from perfect, is pretty
  15. % suitable for use with this style. Indeed, this style was designed with
  16. % SPIRES in mind.
  17. ENTRY
  18. { address
  19. author
  20. booktitle
  21. chapter
  22. edition
  23. editor
  24. howpublished
  25. institution
  26. journal
  27. key
  28. month
  29. note
  30. DOI
  31. url
  32. number
  33. organization
  34. pages
  35. publisher
  36. school
  37. series
  38. title
  39. type
  40. volume
  41. year
  42. archive
  43. eprint
  44. report
  45. collaboration
  46. extraPrefix
  47. extraVolume
  48. extraPages
  49. extraYear
  50. extraDoi
  51. extra2Prefix
  52. extra2Volume
  53. extra2Pages
  54. extra2Year
  55. extra2Doi
  56. }
  57. {}
  58. { label }
  59. INTEGERS { output.state before.all mid.sentence after.quote after.sentence
  60. after.quoted.block after.block article.inside}
  61. FUNCTION {init.state.consts}
  62. { #0 'before.all :=
  63. #1 'mid.sentence :=
  64. #2 'after.quote :=
  65. #3 'after.sentence :=
  66. #4 'after.quoted.block :=
  67. #5 'after.block :=
  68. #6 'article.inside :=
  69. }
  70. STRINGS { s t }
  71. FUNCTION {output.nonnull}
  72. { 's :=
  73. output.state mid.sentence =
  74. { ", " * write$ }
  75. { output.state article.inside =
  76. { write$ }
  77. { output.state after.quote =
  78. { " " * write$ }
  79. { output.state after.block =
  80. { add.period$ write$
  81. newline$
  82. "\newblock " write$
  83. }
  84. { output.state before.all =
  85. 'write$
  86. { output.state after.quoted.block =
  87. { write$
  88. newline$
  89. "\newblock " write$
  90. }
  91. { add.period$ " " * write$ }
  92. if$
  93. }
  94. if$
  95. }
  96. if$
  97. }
  98. if$
  99. mid.sentence 'output.state :=
  100. }
  101. if$
  102. }
  103. if$
  104. s
  105. }
  106. FUNCTION {output}
  107. { duplicate$ empty$
  108. 'pop$
  109. 'output.nonnull
  110. if$
  111. }
  112. FUNCTION {output.check}
  113. { 't :=
  114. duplicate$ empty$
  115. { pop$ "empty " t * " in " * cite$ * warning$ }
  116. 'output.nonnull
  117. if$
  118. }
  119. FUNCTION {output.bibitem}
  120. { newline$
  121. "\bibitem{" write$
  122. cite$ write$
  123. "}" write$
  124. newline$
  125. ""
  126. before.all 'output.state :=
  127. }
  128. FUNCTION {blank.sep}
  129. { after.quote 'output.state :=
  130. }
  131. FUNCTION {article.sep}
  132. { article.inside 'output.state :=
  133. }
  134. % mciteplus fin.entry
  135. %
  136. % pushes true (1), if add.period$ would add a period to the string on the stack
  137. % pushes false (0), otherwise
  138. % Uses text.length$ to avoid full string comparison and two copies of string.
  139. % Requires one copy of string on stack.
  140. INTEGERS {would.add.period.textlen}
  141. FUNCTION {would.add.period}
  142. { duplicate$
  143. add.period$
  144. text.length$
  145. 'would.add.period.textlen :=
  146. duplicate$
  147. text.length$
  148. would.add.period.textlen =
  149. { #0 }
  150. { #1 }
  151. if$
  152. }
  153. FUNCTION {fin.entry}
  154. { would.add.period
  155. { "\relax" * write$ newline$
  156. "\mciteBstWouldAddEndPuncttrue" write$ newline$
  157. "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}"
  158. write$ newline$
  159. "{\mcitedefaultendpunct}{\mcitedefaultseppunct}\relax"
  160. }
  161. { "\relax" * write$ newline$
  162. "\mciteBstWouldAddEndPunctfalse" write$ newline$
  163. "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}"
  164. write$ newline$
  165. "{}{\mcitedefaultseppunct}\relax"
  166. }
  167. if$
  168. write$
  169. newline$
  170. "\EndOfBibitem" write$
  171. }
  172. % end mciteplus fin.entry
  173. %FUNCTION {fin.entry}
  174. %{ output.state after.quoted.block =
  175. % 'skip$
  176. % 'add.period$
  177. % if$
  178. % write$
  179. % newline$
  180. %}
  181. FUNCTION {new.block}
  182. { output.state before.all =
  183. 'skip$
  184. { output.state after.quote =
  185. { after.quoted.block 'output.state := }
  186. { after.block 'output.state := }
  187. if$
  188. }
  189. if$
  190. }
  191. FUNCTION {new.sentence}
  192. { output.state after.block =
  193. 'skip$
  194. { output.state before.all =
  195. 'skip$
  196. { after.sentence 'output.state := }
  197. if$
  198. }
  199. if$
  200. }
  201. FUNCTION {not}
  202. { { #0 }
  203. { #1 }
  204. if$
  205. }
  206. FUNCTION {and}
  207. { 'skip$
  208. { pop$ #0 }
  209. if$
  210. }
  211. FUNCTION {or}
  212. { { pop$ #1 }
  213. 'skip$
  214. if$
  215. }
  216. FUNCTION {new.block.checka}
  217. { empty$
  218. 'skip$
  219. 'new.block
  220. if$
  221. }
  222. FUNCTION {new.block.checkb}
  223. { empty$
  224. swap$ empty$
  225. and
  226. 'skip$
  227. 'new.block
  228. if$
  229. }
  230. FUNCTION {new.sentence.checka}
  231. { empty$
  232. 'skip$
  233. 'new.sentence
  234. if$
  235. }
  236. FUNCTION {field.or.null}
  237. { duplicate$ empty$
  238. { pop$ "" }
  239. 'skip$
  240. if$
  241. }
  242. FUNCTION {emphasize}
  243. { duplicate$ empty$
  244. { pop$ "" }
  245. { "{\em " swap$ * "}" * }
  246. if$
  247. }
  248. INTEGERS{ l }
  249. FUNCTION{ string.length }
  250. {
  251. #1 'l :=
  252. {duplicate$ duplicate$ #1 l substring$ = not}
  253. {l #1 + 'l :=}
  254. while$
  255. pop$ l
  256. }
  257. STRINGS{replace find text}
  258. INTEGERS{find_length}
  259. FUNCTION{find.replace}
  260. { 'replace :=
  261. 'find :=
  262. 'text :=
  263. find string.length 'find_length :=
  264. ""
  265. { text empty$ not }
  266. { text #1 find_length substring$ find =
  267. {
  268. replace *
  269. text #1 find_length + global.max$ substring$ 'text :=
  270. }{
  271. text #1 #1 substring$ *
  272. text #2 global.max$ substring$ 'text :=
  273. }
  274. if$
  275. }
  276. while$
  277. }
  278. INTEGERS { nameptr namesleft numnames max.num.names.before.forced.et.al num.names.shown.with.forced.et.al }
  279. FUNCTION {format.names}
  280. { 's :=
  281. #1 'nameptr :=
  282. #4 'max.num.names.before.forced.et.al :=
  283. #1 'num.names.shown.with.forced.et.al :=
  284. s num.names$ 'numnames :=
  285. numnames 'namesleft :=
  286. { namesleft #0 > }
  287. { s ".\ " "." find.replace
  288. ". " "." find.replace
  289. ".-" "MAGIC" find.replace
  290. "." ".\ " find.replace
  291. "MAGIC" ".-" find.replace
  292. nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
  293. nameptr #1 >
  294. { nameptr num.names.shown.with.forced.et.al #1 + =
  295. numnames max.num.names.before.forced.et.al >
  296. and
  297. { "others" 't :=
  298. #1 'namesleft :=
  299. }
  300. { skip$ }
  301. if$
  302. namesleft #1 >
  303. { ", " * t * }
  304. { t "others" =
  305. { " " * "{\em et~al.}" * }
  306. { numnames #2 >
  307. { "," * }
  308. { skip$ }
  309. if$
  310. " and " * t *
  311. }
  312. if$
  313. }
  314. if$
  315. }
  316. 't
  317. if$
  318. nameptr #1 + 'nameptr :=
  319. namesleft #1 - 'namesleft :=
  320. }
  321. while$
  322. }
  323. FUNCTION {format.authors}
  324. { author empty$
  325. { "" }
  326. { author format.names }
  327. if$
  328. }
  329. FUNCTION {format.eprint.newarXivid}
  330. { eprint #1 #6 substring$ "arXiv:" =
  331. {"\href{http://arxiv.org/abs/" eprint #7 #10 substring$ * "}" *
  332. "{{\normalfont\ttfamily " * eprint #7 #10 substring$ * "}}" *}
  333. {"\href{http://arxiv.org/abs/" eprint #1 #10 substring$ * "}" *
  334. "{{\normalfont\ttfamily arXiv:" * eprint #1 #10 substring$ * "}}" *}
  335. if$
  336. }
  337. FUNCTION {format.eprint.oldarXivid}
  338. { archive empty$
  339. {"\href{http://arxiv.org/abs/" eprint * "}" *
  340. "{{\normalfont\ttfamily arXiv:" * eprint * "}}" *}
  341. {"\href{http://arxiv.org/abs/" archive * "/" * eprint * "}" *
  342. "{{\normalfont\ttfamily arXiv:" * archive * "/" * eprint * "}}" *}
  343. if$
  344. }
  345. FUNCTION {format.eprint}
  346. { eprint empty$
  347. { ""}
  348. { eprint #1 #6 substring$ "arXiv:" =
  349. eprint #5 #1 substring$ "." =
  350. or
  351. { format.eprint.newarXivid }
  352. { format.eprint.oldarXivid }
  353. if$
  354. }
  355. if$
  356. }
  357. FUNCTION {format.eprint.paren}
  358. { eprint missing$ { "" } { eprint empty$ { "" } {format.eprint}
  359. if$
  360. }
  361. if$
  362. }
  363. FUNCTION {format.lhcbid}
  364. { number
  365. "{" "" find.replace
  366. "}" "" find.replace
  367. 's :=
  368. s #6 #3 substring$ "ANA" =
  369. { "LHCb+Analysis+Notes" }
  370. { s #6 #3 substring$ "INT" =
  371. { "LHCb+Internal+Notes"}
  372. { s #6 #4 substring$ "CONF" =
  373. { "LHCb+Conference+Contributions"}
  374. { s #6 #3 substring$ "PUB" =
  375. { "LHCb+Notes"}
  376. { s #6 #5 substring$ "PAPER" =
  377. { "LHCb+Papers" }
  378. { s #6 #4 substring$ "PROC" =
  379. { "LHCb+Conference+Proceedings" }
  380. { s #6 #6 substring$ "FIGURE" =
  381. { "LHCb+Figures" }
  382. { s #6 #6 substring$ "THESIS" =
  383. { "LHCb+Theses" }
  384. { s #6 #4 substring$ "TALK" =
  385. { "LHCb+Talks" }
  386. { "LHCb"
  387. } if$
  388. } if$
  389. } if$
  390. } if$
  391. } if$
  392. } if$
  393. } if$
  394. } if$
  395. } if$
  396. "\href{http://cdsweb.cern.ch/search?p=" s *
  397. "&f=reportnumber&action_search=Search&c=" * swap$ * "} {" *
  398. s * "}" *
  399. }
  400. FUNCTION {format.DOI}
  401. { DOI empty$
  402. { ""}
  403. { "doi:~\href{https://doi.org/" doi * "}{" * doi * "}" *}
  404. if$
  405. }
  406. FUNCTION {format.report}
  407. { report empty$
  408. { ""}
  409. { report}
  410. if$
  411. }
  412. FUNCTION {format.editors}
  413. { editor empty$
  414. { "" }
  415. { editor format.names
  416. editor num.names$ #1 >
  417. { ", eds." * }
  418. { ", ed." * }
  419. if$
  420. }
  421. if$
  422. }
  423. % This is a hack for techreport to avoid double comma. I must be doing it wrong.
  424. FUNCTION {format.title.t}
  425. { title empty$
  426. { "" }
  427. { "\ifthenelse{\boolean{articletitles}}{\emph{" title "t" change.case$ * "}" * "}{}" * }
  428. if$
  429. }
  430. FUNCTION {format.title}
  431. { title empty$
  432. { "" }
  433. { "\ifthenelse{\boolean{articletitles}}{\emph{" title "t" change.case$ * "}, " * "}{}" * }
  434. if$
  435. }
  436. FUNCTION {format.title.p}
  437. { title empty$
  438. { "" }
  439. { "\emph{``" title "t" change.case$ * "''}, " * }
  440. if$
  441. }
  442. FUNCTION {n.dashify}
  443. { 't :=
  444. ""
  445. { t empty$ not }
  446. { t #1 #1 substring$ "-" =
  447. { t #1 #2 substring$ "--" = not
  448. { "--" *
  449. t #2 global.max$ substring$ 't :=
  450. }
  451. { { t #1 #1 substring$ "-" = }
  452. { "-" *
  453. t #2 global.max$ substring$ 't :=
  454. }
  455. while$
  456. }
  457. if$
  458. }
  459. { t #1 #1 substring$ *
  460. t #2 global.max$ substring$ 't :=
  461. }
  462. if$
  463. }
  464. while$
  465. }
  466. FUNCTION {format.date.old}
  467. { year empty$
  468. { month empty$
  469. { "" }
  470. { "there's a month but no year in " cite$ * warning$
  471. month
  472. }
  473. if$
  474. }
  475. { month empty$
  476. 'year
  477. { month ", " * year * }
  478. if$
  479. }
  480. if$
  481. }
  482. FUNCTION {format.date}
  483. { year empty$
  484. { "" }
  485. 'year
  486. if$
  487. }
  488. FUNCTION {format.date.paren}
  489. { year empty$
  490. { "" }
  491. {"(" year * ")" *}
  492. if$
  493. }
  494. FUNCTION {format.extraDate.paren}
  495. { extraYear empty$
  496. { "" }
  497. {"(" extraYear * ")" *}
  498. if$
  499. }
  500. FUNCTION {format.extra2Date.paren}
  501. { extra2Year empty$
  502. { "" }
  503. {"(" extra2Year * ")" *}
  504. if$
  505. }
  506. FUNCTION {format.collaboration}
  507. { collaboration empty$
  508. { "" }
  509. { collaboration }
  510. if$
  511. }
  512. FUNCTION {format.btitle}
  513. { title emphasize
  514. }
  515. FUNCTION {format.inbtitle}
  516. { "in " title emphasize *
  517. }
  518. FUNCTION {tie.or.space.connect}
  519. { duplicate$ text.length$ #3 <
  520. { "~" }
  521. { " " }
  522. if$
  523. swap$ * *
  524. }
  525. FUNCTION {either.or.check}
  526. { empty$
  527. 'pop$
  528. { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  529. if$
  530. }
  531. FUNCTION {format.bvolume}
  532. { volume empty$
  533. { "" }
  534. { "vol.~" volume *
  535. series empty$
  536. 'skip$
  537. { " of " * series emphasize * }
  538. if$
  539. "volume and number" number either.or.check
  540. }
  541. if$
  542. }
  543. FUNCTION {format.number.series}
  544. { volume empty$
  545. { number empty$
  546. { series field.or.null }
  547. { output.state mid.sentence =
  548. { "no.~" }
  549. { "No.~" }
  550. if$
  551. number *
  552. series empty$
  553. { "there's a number but no series in " cite$ * warning$ }
  554. { " in " * series * }
  555. if$
  556. }
  557. if$
  558. }
  559. { "" }
  560. if$
  561. }
  562. FUNCTION {format.edition}
  563. { edition empty$
  564. { "" }
  565. { edition "l" change.case$ "~ed." * }
  566. if$
  567. }
  568. INTEGERS { multiresult }
  569. FUNCTION {multi.page.check}
  570. { 't :=
  571. #0 'multiresult :=
  572. { multiresult not
  573. t empty$ not
  574. and
  575. }
  576. { t #1 #1 substring$
  577. duplicate$ "-" =
  578. swap$ duplicate$ "," =
  579. swap$ "+" =
  580. or or
  581. { #1 'multiresult := }
  582. { t #2 global.max$ substring$ 't := }
  583. if$
  584. }
  585. while$
  586. multiresult
  587. }
  588. FUNCTION {format.pages}
  589. { pages empty$
  590. { "" }
  591. { pages multi.page.check
  592. { "pp.~" pages n.dashify * }
  593. { "p.~" pages * }
  594. if$
  595. }
  596. if$
  597. }
  598. FUNCTION {format.pages.nopp}
  599. { pages empty$
  600. { "" }
  601. { pages multi.page.check
  602. { pages n.dashify }
  603. { pages }
  604. if$
  605. }
  606. if$
  607. }
  608. FUNCTION {first.page}
  609. { 't :=
  610. ""
  611. { t empty$ not t #1 #1 substring$ "-" = not and }
  612. { t #1 #1 substring$ *
  613. t #2 global.max$ substring$ 't :=
  614. }
  615. while$
  616. }
  617. FUNCTION {format.pages.norange}
  618. { pages empty$
  619. { "" }
  620. { pages first.page }
  621. if$
  622. }
  623. FUNCTION {format.extraPages.norange}
  624. { extraPages empty$
  625. { "" }
  626. { extraPages first.page }
  627. if$
  628. }
  629. FUNCTION {format.extra2Pages.norange}
  630. { extra2Pages empty$
  631. { "" }
  632. { extra2Pages first.page }
  633. if$
  634. }
  635. FUNCTION {format.volume}
  636. { volume empty$
  637. { "" }
  638. { "\textbf{" volume * "}" * }
  639. if$
  640. }
  641. FUNCTION {format.extraVolume}
  642. { extraVolume empty$
  643. { "" }
  644. { "\textbf{" extraVolume * "}" * }
  645. if$
  646. }
  647. FUNCTION {format.extra2Volume}
  648. { extra2Volume empty$
  649. { "" }
  650. { "\textbf{" extra2Volume * "}" * }
  651. if$
  652. }
  653. % This is not used any longer
  654. FUNCTION {format.number}
  655. { number empty$
  656. { "" }
  657. { "no.~" number * }
  658. if$
  659. }
  660. FUNCTION {format.chapter.pages}
  661. { chapter empty$
  662. 'format.pages
  663. { type empty$
  664. { "ch.~" chapter * }
  665. { type "l" change.case$ chapter tie.or.space.connect }
  666. if$
  667. pages empty$
  668. 'skip$
  669. { ", " * format.pages.nopp * }
  670. if$
  671. }
  672. if$
  673. }
  674. FUNCTION {format.in.ed.booktitle}
  675. { booktitle empty$
  676. { "" }
  677. { "in " booktitle emphasize *
  678. editor empty$
  679. 'skip$
  680. { " (" * format.editors * ")" * }
  681. if$
  682. }
  683. if$
  684. }
  685. FUNCTION {format.thesis.type}
  686. { type empty$
  687. 'skip$
  688. { pop$
  689. output.state after.block =
  690. { type "t" change.case$ }
  691. { type "l" change.case$ }
  692. if$
  693. }
  694. if$
  695. }
  696. FUNCTION {empty.misc.check}
  697. { author empty$ title empty$ howpublished empty$
  698. month empty$ year empty$ note empty$
  699. and and and and and
  700. { "all relevant fields are empty in " cite$ * warning$ }
  701. 'skip$
  702. if$
  703. }
  704. FUNCTION {format.tr.number}
  705. { type empty$
  706. { "" }
  707. 'type
  708. if$
  709. number empty$
  710. { "l" change.case$ }
  711. { url empty$
  712. { number tie.or.space.connect }
  713. { "\href{" url * "}{" * number * "}" * output.nonnull
  714. }
  715. if$
  716. }
  717. if$
  718. }
  719. FUNCTION {format.paddress}
  720. { address empty$
  721. { "" }
  722. { "(" address * ")" * }
  723. if$
  724. }
  725. FUNCTION {format.article.crossref}
  726. { key empty$
  727. { journal empty$
  728. { "need key or journal for " cite$ * " to crossref " * crossref *
  729. warning$
  730. ""
  731. }
  732. { "in { " journal * "\/}" * }
  733. if$
  734. }
  735. { "in " key * }
  736. if$
  737. " \cite{" * crossref * "}" *
  738. }
  739. FUNCTION {format.crossref.editor}
  740. { editor #1 "{vv~}{ll}" format.name$
  741. editor num.names$ duplicate$
  742. #2 >
  743. { pop$ " {\em et.~al.}" * }
  744. { #2 <
  745. 'skip$
  746. { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  747. { " {\em et.~al.}" * }
  748. { " and " * editor #2 "{vv~}{ll}" format.name$ * }
  749. if$
  750. }
  751. if$
  752. }
  753. if$
  754. }
  755. FUNCTION {format.book.crossref}
  756. { volume empty$
  757. { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  758. "In "
  759. }
  760. { "Vol.~" volume *
  761. " of " *
  762. }
  763. if$
  764. editor empty$
  765. editor field.or.null author field.or.null =
  766. or
  767. { key empty$
  768. { series empty$
  769. { "need editor, key, or series for " cite$ * " to crossref " *
  770. crossref * warning$
  771. "" *
  772. }
  773. { "{\em " * series * "\/}" * }
  774. if$
  775. }
  776. { key * }
  777. if$
  778. }
  779. { format.crossref.editor * }
  780. if$
  781. " \cite{" * crossref * "}" *
  782. }
  783. FUNCTION {format.incoll.inproc.crossref}
  784. { editor empty$
  785. editor field.or.null author field.or.null =
  786. or
  787. { key empty$
  788. { booktitle empty$
  789. { "need editor, key, or booktitle for " cite$ * " to crossref " *
  790. crossref * warning$
  791. ""
  792. }
  793. { "in {\em " booktitle * "\/}" * }
  794. if$
  795. }
  796. { "in " key * }
  797. if$
  798. }
  799. { "in " format.crossref.editor * }
  800. if$
  801. " \cite{" * crossref * "}" *
  802. }
  803. FUNCTION {format.articlenodoi}
  804. { output.bibitem
  805. format.collaboration output
  806. format.authors "author" output.check
  807. format.title.p "title" output.check
  808. article.sep
  809. crossref missing$
  810. { journal missing$
  811. { format.eprint output }
  812. { journal empty$ { format.eprint output } {
  813. journal ".\ " "." find.replace
  814. ". " "." find.replace
  815. "." ".\ " find.replace
  816. "journal" output.check
  817. blank.sep
  818. format.volume output
  819. blank.sep
  820. format.date.paren "year" output.check
  821. % month empty$ { format.number output }
  822. % 'skip$ if$
  823. blank.sep
  824. format.pages.norange output }
  825. if$
  826. eprint empty$
  827. { }
  828. { format.eprint.paren output }
  829. if$
  830. }
  831. if$
  832. eprint missing$ eprint empty$ or
  833. { blank.sep format.report output }
  834. { }
  835. if$
  836. }
  837. { format.article.crossref output.nonnull
  838. format.pages.nopp output
  839. format.eprint.paren output
  840. }
  841. if$
  842. mid.sentence 'output.state :=
  843. note output
  844. fin.entry
  845. }
  846. FUNCTION {format.articledoi}
  847. { output.bibitem
  848. format.collaboration output
  849. format.authors "author" output.check
  850. format.title.p "title" output.check
  851. article.sep
  852. crossref missing$
  853. { journal missing$
  854. { format.eprint output }
  855. { journal empty$ { format.eprint output } {
  856. "\href{https://doi.org/" doi * "}{" * "doi" output.check
  857. article.sep
  858. journal ".\ " "." find.replace
  859. ". " "." find.replace
  860. "." ".\ " find.replace
  861. "journal" output.check
  862. blank.sep
  863. format.volume output
  864. blank.sep
  865. format.date.paren "year" output.check
  866. % month empty$ { format.number output }
  867. % 'skip$ if$
  868. blank.sep
  869. format.pages.norange
  870. "}" *
  871. output
  872. extraPrefix missing$
  873. {}
  874. {extraPrefix " " *
  875. "\href{https://doi.org/" * extraDoi * "}{" * "doi" output.check
  876. article.sep
  877. "ibid.\ " output
  878. blank.sep
  879. format.extraVolume output
  880. blank.sep
  881. format.extraDate.paren "extraYear" output.check
  882. blank.sep
  883. format.extraPages.norange
  884. "}" *
  885. output
  886. }
  887. if$
  888. extra2Prefix missing$
  889. {}
  890. {extra2Prefix " " *
  891. "\href{https://doi.org/" * extra2Doi * "}{" * "doi" output.check
  892. article.sep
  893. "ibid.\ " output
  894. blank.sep
  895. format.extra2Volume output
  896. blank.sep
  897. format.extra2Date.paren "extra2Year" output.check
  898. blank.sep
  899. format.extra2Pages.norange
  900. "}" *
  901. output
  902. }
  903. if$
  904. }
  905. if$
  906. }
  907. if$
  908. eprint empty$
  909. { }
  910. { format.eprint.paren output }
  911. if$
  912. eprint missing$ eprint empty$ or
  913. { blank.sep format.report output }
  914. { }
  915. if$
  916. }
  917. { format.article.crossref output.nonnull
  918. format.pages.nopp output
  919. format.eprint.paren output
  920. }
  921. if$
  922. mid.sentence 'output.state :=
  923. note output
  924. fin.entry
  925. }
  926. FUNCTION {article}
  927. { DOI empty$
  928. { format.articlenodoi}
  929. { format.articledoi}
  930. if$
  931. }
  932. FUNCTION {format.booknodoi}
  933. { output.bibitem
  934. format.collaboration output
  935. author empty$
  936. { format.editors "author and editor" output.check }
  937. { format.authors output.nonnull
  938. crossref missing$
  939. { "author and editor" editor either.or.check }
  940. 'skip$
  941. if$
  942. }
  943. if$
  944. format.btitle "title" output.check
  945. crossref missing$
  946. { format.bvolume output
  947. % new.block
  948. format.number.series output
  949. % new.sentence
  950. publisher "publisher" output.check
  951. address output
  952. }
  953. { new.block
  954. format.book.crossref output.nonnull
  955. }
  956. if$
  957. format.edition output
  958. format.date "year" output.check
  959. new.block
  960. note output
  961. fin.entry
  962. }
  963. FUNCTION {format.bookdoi}
  964. { output.bibitem
  965. format.collaboration output
  966. author empty$
  967. { format.editors "author and editor" output.check }
  968. { format.authors output.nonnull
  969. crossref missing$
  970. { "author and editor" editor either.or.check }
  971. 'skip$
  972. if$
  973. }
  974. if$
  975. format.btitle "title" output.check
  976. "\href{https://doi.org/" doi * "}{" * "doi" output.check
  977. blank.sep % Ideally no sep
  978. crossref missing$
  979. { format.bvolume output
  980. % new.block
  981. format.number.series output
  982. % new.sentence
  983. publisher "publisher" output.check
  984. address output
  985. }
  986. { new.block
  987. format.book.crossref output.nonnull
  988. }
  989. if$
  990. format.edition output
  991. format.date "year" output.check
  992. "}" *
  993. new.block
  994. note output
  995. fin.entry
  996. }
  997. FUNCTION {book}
  998. { DOI empty$
  999. { format.booknodoi}
  1000. { format.bookdoi}
  1001. if$
  1002. }
  1003. FUNCTION {booklet}
  1004. { output.bibitem
  1005. format.collaboration output
  1006. format.authors output
  1007. title empty$
  1008. { "empty title in " cite$ * warning$
  1009. howpublished new.sentence.checka
  1010. }
  1011. { howpublished empty$ not
  1012. address empty$ month empty$ year empty$ and and
  1013. or
  1014. { format.title.p output.nonnull }
  1015. { format.title.p output.nonnull }
  1016. if$
  1017. blank.sep
  1018. }
  1019. if$
  1020. howpublished output
  1021. address output
  1022. format.date output
  1023. new.block
  1024. note output
  1025. format.DOI output
  1026. fin.entry
  1027. }
  1028. FUNCTION {format.inbooknodoi}
  1029. { output.bibitem
  1030. format.collaboration output
  1031. format.authors output
  1032. format.inbtitle "title" output.check
  1033. format.editors output
  1034. crossref missing$
  1035. { format.bvolume output
  1036. format.chapter.pages "chapter and pages" output.check
  1037. format.number.series output
  1038. publisher "publisher" output.check
  1039. address output
  1040. }
  1041. { format.chapter.pages "chapter and pages" output.check
  1042. format.book.crossref output.nonnull
  1043. }
  1044. if$
  1045. format.edition output
  1046. format.date "year" output.check
  1047. new.block
  1048. format.eprint output
  1049. new.block
  1050. note output
  1051. fin.entry
  1052. }
  1053. FUNCTION {format.inbookdoi}
  1054. { output.bibitem
  1055. format.collaboration output
  1056. format.authors output
  1057. format.inbtitle "title" output.check
  1058. format.editors output
  1059. "\href{https://doi.org/" doi * "}{" * "doi" output.check
  1060. blank.sep
  1061. crossref missing$
  1062. { format.bvolume output
  1063. format.chapter.pages "chapter and pages" output.check
  1064. format.number.series output
  1065. publisher "publisher" output.check
  1066. address output
  1067. }
  1068. { format.chapter.pages "chapter and pages" output.check
  1069. format.book.crossref output.nonnull
  1070. }
  1071. if$
  1072. "}" *
  1073. format.edition output
  1074. format.date "year" output.check
  1075. new.block
  1076. format.eprint output
  1077. new.block
  1078. note output
  1079. fin.entry
  1080. }
  1081. FUNCTION {inbook}
  1082. { DOI empty$
  1083. { format.inbooknodoi}
  1084. { format.inbookdoi}
  1085. if$
  1086. }
  1087. FUNCTION {incollection}
  1088. { output.bibitem
  1089. format.collaboration output
  1090. format.authors "author" output.check
  1091. format.title.p "title" output.check
  1092. blank.sep
  1093. crossref missing$
  1094. { format.in.ed.booktitle "booktitle" output.check
  1095. format.bvolume output
  1096. format.number.series output
  1097. format.chapter.pages output
  1098. new.block
  1099. publisher "publisher" output.check
  1100. address output
  1101. format.edition output
  1102. format.date "year" output.check
  1103. }
  1104. { format.incoll.inproc.crossref output.nonnull
  1105. format.chapter.pages output
  1106. }
  1107. if$
  1108. new.block
  1109. format.eprint output
  1110. new.block
  1111. note output
  1112. format.DOI output
  1113. fin.entry
  1114. }
  1115. FUNCTION {format.inproceedingsnodoi}
  1116. { output.bibitem
  1117. format.collaboration output
  1118. format.authors "author" output.check
  1119. format.title.p "title" output.check
  1120. blank.sep
  1121. crossref missing$
  1122. { format.in.ed.booktitle "booktitle" output.check
  1123. format.volume output
  1124. format.number.series output
  1125. format.paddress output
  1126. format.pages.nopp output
  1127. organization output
  1128. publisher output
  1129. format.date "year" output.check
  1130. }
  1131. { format.incoll.inproc.crossref output.nonnull
  1132. format.pages.nopp output
  1133. }
  1134. if$
  1135. format.eprint output
  1136. new.block
  1137. note output
  1138. fin.entry
  1139. }
  1140. FUNCTION {format.inproceedingsdoi}
  1141. { output.bibitem
  1142. format.collaboration output
  1143. format.authors "author" output.check
  1144. format.title.p "title" output.check
  1145. blank.sep
  1146. crossref missing$
  1147. { format.in.ed.booktitle "booktitle" output.check
  1148. "\href{https://doi.org/" doi * "}{" * "doi" output.check
  1149. article.sep
  1150. format.volume output
  1151. blank.sep
  1152. format.number.series output
  1153. format.paddress output
  1154. format.pages.nopp output
  1155. organization output
  1156. publisher output
  1157. format.date "year" output.check
  1158. "}" *
  1159. }
  1160. { format.incoll.inproc.crossref output.nonnull
  1161. format.pages.nopp output
  1162. }
  1163. if$
  1164. format.eprint output
  1165. new.block
  1166. note output
  1167. fin.entry
  1168. }
  1169. FUNCTION {inproceedings}
  1170. { DOI empty$
  1171. { format.inproceedingsnodoi}
  1172. { format.inproceedingsdoi}
  1173. if$
  1174. }
  1175. FUNCTION {conference} { inproceedings }
  1176. FUNCTION {manual}
  1177. { output.bibitem
  1178. format.collaboration output
  1179. author empty$
  1180. { organization empty$
  1181. 'skip$
  1182. { organization output.nonnull
  1183. address output
  1184. }
  1185. if$
  1186. }
  1187. { format.authors output.nonnull }
  1188. if$
  1189. format.btitle "title" output.check
  1190. author empty$
  1191. { organization empty$
  1192. { address new.block.checka
  1193. address output
  1194. }
  1195. 'skip$
  1196. if$
  1197. }
  1198. { organization address new.block.checkb
  1199. organization output
  1200. address output
  1201. }
  1202. if$
  1203. format.edition output
  1204. format.date output
  1205. new.block
  1206. note output
  1207. format.DOI output
  1208. fin.entry
  1209. }
  1210. FUNCTION {mastersthesis}
  1211. { output.bibitem
  1212. format.authors "author" output.check
  1213. format.title.p "title" output.check
  1214. blank.sep
  1215. "Master's thesis" format.thesis.type output.nonnull
  1216. school "school" output.check
  1217. address output
  1218. format.date "year" output.check
  1219. new.block
  1220. note output
  1221. format.DOI output
  1222. fin.entry
  1223. }
  1224. FUNCTION {misc}
  1225. { output.bibitem
  1226. format.collaboration output
  1227. format.authors output
  1228. title empty$
  1229. { howpublished new.sentence.checka }
  1230. { howpublished empty$ not
  1231. month empty$ year empty$ and
  1232. or
  1233. { format.title.p output.nonnull }
  1234. { format.title.p output.nonnull }
  1235. if$
  1236. blank.sep
  1237. }
  1238. if$
  1239. howpublished output
  1240. format.date output
  1241. new.block
  1242. note output
  1243. format.DOI output
  1244. fin.entry
  1245. empty.misc.check
  1246. }
  1247. FUNCTION {phdthesis}
  1248. { output.bibitem
  1249. format.authors "author" output.check
  1250. format.btitle "title" output.check
  1251. "PhD thesis" format.thesis.type output.nonnull
  1252. school "school" output.check
  1253. address output
  1254. format.date "year" output.check
  1255. format.eprint output
  1256. note output
  1257. format.DOI output
  1258. fin.entry
  1259. }
  1260. FUNCTION {proceedings}
  1261. { output.bibitem
  1262. editor empty$
  1263. { organization output }
  1264. { format.editors output.nonnull }
  1265. if$
  1266. format.btitle "title" output.check
  1267. format.bvolume output
  1268. format.number.series output
  1269. format.paddress output
  1270. editor empty$
  1271. 'skip$
  1272. { organization output }
  1273. if$
  1274. publisher output
  1275. format.date "year" output.check
  1276. new.block
  1277. note output
  1278. format.DOI output
  1279. fin.entry
  1280. }
  1281. FUNCTION {techreport}
  1282. { output.bibitem
  1283. format.collaboration output
  1284. format.authors "author" output.check
  1285. format.title.p "title" output.check
  1286. blank.sep
  1287. format.tr.number output.nonnull
  1288. institution "institution" output.check
  1289. address output
  1290. format.date "year" output.check
  1291. new.block
  1292. note output
  1293. format.DOI output
  1294. fin.entry
  1295. }
  1296. FUNCTION {lhcbreport}
  1297. { output.bibitem
  1298. format.collaboration output
  1299. format.authors "author" output.check
  1300. format.title.p "title" output.check
  1301. blank.sep
  1302. format.lhcbid output.nonnull
  1303. format.date "year" output.check
  1304. note output
  1305. fin.entry
  1306. }
  1307. FUNCTION {unpublished}
  1308. { output.bibitem
  1309. format.collaboration output
  1310. format.authors "author" output.check
  1311. format.title.p "title" output.check
  1312. blank.sep
  1313. note "note" output.check
  1314. format.date output
  1315. fin.entry
  1316. }
  1317. FUNCTION {default.type} { misc }
  1318. MACRO {jan} {"Jan."}
  1319. MACRO {feb} {"Feb."}
  1320. MACRO {mar} {"Mar."}
  1321. MACRO {apr} {"Apr."}
  1322. MACRO {may} {"May"}
  1323. MACRO {jun} {"June"}
  1324. MACRO {jul} {"July"}
  1325. MACRO {aug} {"Aug."}
  1326. MACRO {sep} {"Sept."}
  1327. MACRO {oct} {"Oct."}
  1328. MACRO {nov} {"Nov."}
  1329. MACRO {dec} {"Dec."}
  1330. MACRO {nup} {"Nucl. Phys."}
  1331. MACRO {cmp} {"Comm. Math. Phys."}
  1332. MACRO {prl} {"Phys. Rev. Lett."}
  1333. MACRO {pl} {"Phys. Lett."}
  1334. MACRO {rmp} {"Rev. Mod. Phys."}
  1335. MACRO {ijmp} {"Int. Jour. Mod. Phys."}
  1336. MACRO {mpl} {"Mod. Phys. Lett."}
  1337. MACRO {pr} {"Phys. Rev."}
  1338. READ
  1339. STRINGS { longest.label }
  1340. INTEGERS { number.label longest.label.width }
  1341. FUNCTION {initialize.longest.label}
  1342. { "" 'longest.label :=
  1343. #1 'number.label :=
  1344. #0 'longest.label.width :=
  1345. }
  1346. FUNCTION {longest.label.pass}
  1347. { number.label int.to.str$ 'label :=
  1348. number.label #1 + 'number.label :=
  1349. label width$ longest.label.width >
  1350. { label 'longest.label :=
  1351. label width$ 'longest.label.width :=
  1352. }
  1353. 'skip$
  1354. if$
  1355. }
  1356. EXECUTE {initialize.longest.label}
  1357. ITERATE {longest.label.pass}
  1358. % FUNCTION {begin.bib}
  1359. % { preamble$ empty$
  1360. % 'skip$
  1361. % { preamble$ write$ newline$ }
  1362. % if$
  1363. % "\providecommand{\href}[2]{#2}"
  1364. % "\begingroup\raggedright\begin{thebibliography}{" * longest.label *
  1365. % "}" * write$ newline$ }
  1366. FUNCTION {begin.bib}
  1367. { preamble$ empty$
  1368. 'skip$
  1369. { preamble$ write$ newline$ }
  1370. if$
  1371. "\ifx\mcitethebibliography\mciteundefinedmacro"
  1372. write$ newline$
  1373. "\PackageError{LHCb.bst}{mciteplus.sty has not been loaded}"
  1374. write$ newline$
  1375. "{This bibstyle requires the use of the mciteplus package.}\fi"
  1376. write$ newline$
  1377. "\providecommand{\href}[2]{#2}"
  1378. write$ newline$
  1379. "\begin{mcitethebibliography}{" longest.label * "}" * write$ newline$
  1380. "\mciteSetBstSublistMode{n}"
  1381. write$ newline$
  1382. "\mciteSetBstMaxWidthForm{subitem}{\alph{mcitesubitemcount})}"
  1383. write$ newline$
  1384. "\mciteSetBstSublistLabelBeginEnd{\mcitemaxwidthsubitemform\space}"
  1385. write$ newline$
  1386. "{\relax}{\relax}"
  1387. write$ newline$
  1388. }
  1389. EXECUTE {begin.bib}
  1390. EXECUTE {init.state.consts}
  1391. ITERATE {call.type$}
  1392. % FUNCTION {end.bib}
  1393. % { newline$
  1394. % "\end{thebibliography}\endgroup" write$ newline$
  1395. % }
  1396. FUNCTION {end.bib}
  1397. { newline$
  1398. "\end{mcitethebibliography}" write$ newline$
  1399. }
  1400. EXECUTE {end.bib}