For five years now, PHOTOS Monte Carlo for bremsstrahlung in the decay of particles and resonances has been available with an interface to the C++ HepMC event record. The main purpose of the present paper is to document the technical aspects of the PHOTOS Monte Carlo installation and present version use. A multitude of test results and examples are distributed together with the program code.The PHOTOS C++ physics precision is better than its FORTRAN predecessor and more convenient steering options are also available. An algorithm for the event record interface necessary for process dependent photon emission kernel is implemented. It is used in Z and W decays for kernels of complete first order matrix elements of the decays. Additional emission of final state lepton pairs is also available.Physics assumptions used in the program and properties of the solution are reviewed. In particular, it is explained how the second order matrix elements were used in design and validation of the program iteration procedure. Also, it is explained that the phase space parameterization used in the program is exact. Program summaryProgram title: Photos++Catalogue identifier: AEYF_v1_0Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEYF_v1_0.htmlProgram obtainable from: CPC Program Library, Queen’s University, Belfast, N. IrelandLicensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.htmlNo. of lines in distributed program, including test data, etc.: 53720No. of bytes in distributed program, including test data, etc.: 1297747Distribution format: tar.gzProgramming language: C++.Computer: PC.Operating system: Linux, MacOS.RAM: Bytes. Libraries take less than 2 MB. Memory complexity is O(n) with around 2–4 MB for events with 10 k particles.Classification: 11.1, 11.2.Nature of problem: Algorithm described in this paper can be used to add final state radiation to the event generated by external software using selected event record format. It can also be used on a sample of events loaded from data file. User can define parts of the decay tree on which algorithm can be invoked. The influence of the next-to-leading-order corrections, along with other options regarding electron–positron pair, muon pair and photon emission, can be studied.Solution method: The event record is traversed and a list of all decaying particles is created. Decays where program is not supposed to act and decays excluded by the user are removed from the list. The photon and pair adding algorithm is invoked separately on each remaining decay. If one or more particle is added to the decay, the kinematic of the whole decay tree is updated.Restrictions: Application of the algorithm strongly depends on the content on the event record. Insufficient precision or missing information may deteriorate quality of the results of the algorithm or prevent algorithm from working on the event or its parts. See Section 2 for more details.Running time: 10-30 s per 100k events for small events (less than 1k particles). The complexity strongly depends on the event content and user selection of excluded decays. The theoretical pessimistic complexity of the algorithm is O(n2). However, such cases are highly unrealistic. In our tests, the average complexity is around O(n1.2).