3 |
|
// |
4 |
|
// DaughterData |
5 |
|
// |
6 |
< |
// Additional information on a daughter which is specific to a particular decay |
6 |
> |
// Daughter decay information: Keep reference to original particle. |
7 |
|
// |
8 |
– |
// |
8 |
|
// Authors: J.Bendavid |
9 |
|
//-------------------------------------------------------------------------------------------------- |
10 |
|
|
13 |
|
|
14 |
|
#include "MitAna/DataTree/interface/Particle.h" |
15 |
|
#include "MitAna/DataTree/interface/Types.h" |
16 |
+ |
#include "MitAna/DataCont/interface/Ref.h" |
17 |
|
|
18 |
|
namespace mithep |
19 |
|
{ |
21 |
|
{ |
22 |
|
public: |
23 |
|
DaughterData() {} |
24 |
< |
DaughterData(Particle *orig) : fOriginal(orig) {} |
25 |
< |
virtual ~DaughterData() {} |
24 |
> |
DaughterData(const Particle *orig) : fOriginal(orig) {} |
25 |
> |
~DaughterData() {} |
26 |
|
|
27 |
< |
Double_t Charge() const { return Original()->Charge(); } |
28 |
< |
|
29 |
< |
const Particle *Original() const; |
27 |
> |
Double_t Charge() const { return Original()->Charge(); } |
28 |
> |
Bool_t HasOriginal() const { return fOriginal.IsValid(); } |
29 |
> |
Bool_t HasOriginal(const Particle *p) const { return fOriginal.RefsObject(p); } |
30 |
> |
EObjType ObjType() const { return kDaughterData; } |
31 |
> |
const Particle *Original() const { return fOriginal.Obj(); } |
32 |
|
|
33 |
|
protected: |
34 |
< |
TRef fOriginal; //TRef to original particle |
34 |
> |
Ref<Particle> fOriginal; //reference to original particle |
35 |
|
|
36 |
< |
ClassDef(DaughterData, 1) // Stable daughter class |
36 |
> |
ClassDef(DaughterData, 1) // Daughter data class |
37 |
|
}; |
38 |
|
} |
37 |
– |
|
38 |
– |
inline const mithep::Particle *mithep::DaughterData::Original() const |
39 |
– |
{ |
40 |
– |
// Return global combined track. |
41 |
– |
|
42 |
– |
return static_cast<const Particle*>(fOriginal.GetObject()); |
43 |
– |
} |
39 |
|
#endif |