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