1 #ifndef _PhotosBranch_h_included_
2 #define _PhotosBranch_h_included_
7 * @brief Single branching point
9 * Contains information about daughters and mothers of a single branch.
10 * Each branch will be converted to HEPEVT and processed by photos.
12 * @author Tomasz Przedzinski
17 #include "PhotosParticle.h"
26 /** Create branch out of decaying particle */
27 PhotosBranch(PhotosParticle* p);
29 /** Return decaying particle. NULL if branching does not have mid-particle */
30 PhotosParticle* getDecayingParticle() { return particle; }
32 /** Get list of mothers */
33 vector<PhotosParticle *> getMothers() { return mothers; }
35 /** Get list of daughters */
36 vector<PhotosParticle *> getDaughters() { return daughters; }
38 /** Get list of all particles used by branch */
39 vector<PhotosParticle *> getParticles();
41 /** Check if branch is suppressed */
42 int getSuppressionStatus() { return suppression; }
44 /** Check if branch is forced */
45 int getForcingStatus() { return forcing; }
47 /** Checks momentum conservation of decaying particle.
48 If it does not exist, checks momentum of first mother passed to photos */
49 bool checkMomentumConservation();
51 /** Process single branch */
54 /** Create branches from particles list */
55 static vector<PhotosBranch *> createBranches(vector<PhotosParticle *> particles);
57 /** Checks if branching is suppressed by PHOTOS. */
58 int checkSuppressionLevel() { return checkList(false); }
60 /** Checks if branching is forced by PHOTOS. */
61 int checkForcingLevel() { return checkList(true); }
63 /** Algorithm used for suppression/forcing check */
64 int checkList(bool forceOrSuppress);
66 /** State of branching suppression*/
68 /** State of branching forcing*/
70 /** Decaying particle */
71 PhotosParticle *particle;
72 /** List of mothers */
73 vector<PhotosParticle *> mothers;
74 /** List of daughters */
75 vector<PhotosParticle *> daughters;
78 } // namespace Photospp