1 |
//--------------------------------------------------------------------------------------------------
|
2 |
// $Id: DaughterData.h,v 1.9 2012/03/28 12:15:34 paus Exp $
|
3 |
//
|
4 |
// DaughterData
|
5 |
//
|
6 |
// Daughter decay information: Keep reference to original particle.
|
7 |
//
|
8 |
// Authors: J.Bendavid
|
9 |
//--------------------------------------------------------------------------------------------------
|
10 |
|
11 |
#ifndef MITANA_DATATREE_DAUGHTERDATA_H
|
12 |
#define MITANA_DATATREE_DAUGHTERDATA_H
|
13 |
|
14 |
#include "MitAna/DataTree/interface/Particle.h"
|
15 |
#include "MitAna/DataCont/interface/Ref.h"
|
16 |
|
17 |
namespace mithep
|
18 |
{
|
19 |
class DaughterData : public Particle
|
20 |
{
|
21 |
public:
|
22 |
DaughterData() {}
|
23 |
DaughterData(const Particle *orig) : fOriginal(orig) {}
|
24 |
|
25 |
Double_t Charge() const { return Original()->Charge(); }
|
26 |
Bool_t HasOriginal() const { return fOriginal.IsValid(); }
|
27 |
Bool_t HasOriginal(const Particle *p) const { return fOriginal.RefsObject(p); }
|
28 |
EObjType ObjType() const { return kDaughterData; }
|
29 |
const Particle *Original() const { return fOriginal.Obj(); }
|
30 |
|
31 |
// Some structural tools
|
32 |
void Mark(UInt_t i=1) const;
|
33 |
|
34 |
protected:
|
35 |
Ref<Particle> fOriginal; //reference to original particle
|
36 |
|
37 |
ClassDef(DaughterData, 1) // Daughter data class
|
38 |
};
|
39 |
}
|
40 |
|
41 |
//--------------------------------------------------------------------------------------------------
|
42 |
inline void mithep::DaughterData::Mark(UInt_t ib) const
|
43 |
{
|
44 |
// mark myself
|
45 |
mithep::DataObject::Mark(ib);
|
46 |
// mark my dependencies if they are there
|
47 |
if (fOriginal.IsValid())
|
48 |
fOriginal.Obj()->Mark(ib);
|
49 |
}
|
50 |
#endif
|