PandaRoot
PhotosBranch.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //****************************************************************************
14 //* This file is part of PandaRoot. *
15 //* *
16 //* PandaRoot is distributed under the terms of the *
17 //* GNU General Public License (GPL) version 3, *
18 //* copied verbatim in the file "LICENSE". *
19 //* *
20 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
21 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
22 //* The authors are listed in the file "AUTHORS". *
23 //****************************************************************************
24 
25 #ifndef _PhotosBranch_h_included_
26 #define _PhotosBranch_h_included_
27 
40 #include <vector>
41 #include "PhotosParticle.h"
42 using std::vector;
43 
44 namespace Photospp {
45 
46 class PhotosBranch {
47  public:
50 
52  PhotosParticle *getDecayingParticle() { return particle; }
53 
55  vector<PhotosParticle *> getMothers() { return mothers; }
56 
58  vector<PhotosParticle *> getDaughters() { return daughters; }
59 
61  vector<PhotosParticle *> getParticles();
62 
64  int getSuppressionStatus() { return suppression; }
65 
67  int getForcingStatus() { return forcing; }
68 
72 
74  void process();
75 
77  static vector<PhotosBranch *> createBranches(vector<PhotosParticle *> particles);
78 
79  private:
81  int checkSuppressionLevel() { return checkList(false); }
82 
84  int checkForcingLevel() { return checkList(true); }
85 
87  int checkList(bool forceOrSuppress);
88 
89  private:
91  int suppression;
93  int forcing;
95  PhotosParticle *particle;
97  vector<PhotosParticle *> mothers;
99  vector<PhotosParticle *> daughters;
100 };
101 
102 } // namespace Photospp
103 #endif
vector< PhotosParticle * > getDaughters()
Definition: PhotosBranch.h:58
vector< PhotosParticle * > getMothers()
Definition: PhotosBranch.h:55
PhotosParticle * getDecayingParticle()
Definition: PhotosBranch.h:52
static vector< PhotosBranch * > createBranches(vector< PhotosParticle *> particles)
Definition: Log.h:54
PhotosBranch(PhotosParticle *p)
vector< PhotosParticle * > getParticles()