File indexing completed on 2026-09-27 09:20:26
0001 #ifndef _PhotosBranch_h_included_
0002 #define _PhotosBranch_h_included_
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include <vector>
0017 #include "PhotosParticle.h"
0018 using std::vector;
0019
0020 namespace Photospp
0021 {
0022
0023 class PhotosBranch
0024 {
0025 public:
0026
0027 PhotosBranch(PhotosParticle* p);
0028
0029
0030 PhotosParticle* getDecayingParticle() { return particle; }
0031
0032
0033 vector<PhotosParticle *> getMothers() { return mothers; }
0034
0035
0036 vector<PhotosParticle *> getDaughters() { return daughters; }
0037
0038
0039 vector<PhotosParticle *> getParticles();
0040
0041
0042 int getSuppressionStatus() { return suppression; }
0043
0044
0045 int getForcingStatus() { return forcing; }
0046
0047
0048
0049 bool checkMomentumConservation();
0050
0051
0052 void process();
0053
0054
0055 static vector<PhotosBranch *> createBranches(vector<PhotosParticle *> particles);
0056 private:
0057
0058 int checkSuppressionLevel() { return checkList(false); }
0059
0060
0061 int checkForcingLevel() { return checkList(true); }
0062
0063
0064 int checkList(bool forceOrSuppress);
0065 private:
0066
0067 int suppression;
0068
0069 int forcing;
0070
0071 PhotosParticle *particle;
0072
0073 vector<PhotosParticle *> mothers;
0074
0075 vector<PhotosParticle *> daughters;
0076 };
0077
0078 }
0079 #endif