Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
KFMCParticle.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file KFMCParticle.h
1 /*
2  * This file is part of KFParticle package
3  * Copyright (C) 2007-2019 FIAS Frankfurt Institute for Advanced Studies
4  * 2007-2019 Goethe University of Frankfurt
5  * 2007-2019 Ivan Kisel <I.Kisel@compeng.uni-frankfurt.de>
6  * 2007-2019 Maksym Zyzak
7  *
8  * KFParticle is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * KFParticle is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <https://www.gnu.org/licenses/>.
20  */
21 
22 #ifndef _KFMCParticle_h_
23 #define _KFMCParticle_h_
24 
25 #include <vector>
26 
27 #ifdef HLTCA_STANDALONE
28 #include "RootTypesDef.h"
29 #else
30 #include "TObject.h"
31 #endif
32 
48 class KFMCParticle :public TObject
49 {
50  public:
51  KFMCParticle();
52  ~KFMCParticle();
53 
54  void AddDaughter( int i );
55  int NDaughters() const { return fDaughterIds.size(); }
56  const std::vector<int>& GetDaughterIds() const { return fDaughterIds; }
57  void CleanDaughters() { fDaughterIds.resize(0); }
58 
59  void SetPDG(int pdg) {fPDG = pdg;}
60  void SetMCTrackID(int id) {fMCTrackID = id;}
61  void SetMotherId(int id) {fMotherId = id;}
62 
63  int GetMCTrackID() const {return fMCTrackID;}
64  int GetMotherId() const {return fMotherId;}
65  int GetPDG() const {return fPDG;}
66 
67  bool IsReconstructable(int i) const {return fIsReconstructable[i];}
69 
70  bool IsReconstructableV0(int i) const {return fIsV0[i];}
71  void SetAsReconstructableV0(int i) { fIsV0[i] = 1;}
72 
74  int InitialParticleId() const {return fInitialParticleId;}
75  private: //data
76  std::vector<int> fDaughterIds;
77  int fMCTrackID;
78  int fMotherId;
79  int fPDG;
80 
100  bool fIsV0[3];
101 
106 #ifndef KFParticleStandalone
107  ClassDef( KFMCParticle, 1 )
108 #endif
109 };
110 
111 #endif
112