1 |
|
//-------------------------------------------------------------------------------------------------- |
2 |
|
// $Id$ |
3 |
|
// |
4 |
< |
// Composite Particle |
4 |
> |
// CompositeParticle |
5 |
|
// |
6 |
|
// A composite particle class that holds other (daughter) particles. |
7 |
|
// |
8 |
< |
// Authors: J.Bendavid, C.Loizides |
8 |
> |
// Authors: J.Bendavid, C.Loizides, C.Paus |
9 |
|
//-------------------------------------------------------------------------------------------------- |
10 |
|
|
11 |
|
#ifndef MITANA_DATATREE_COMPOSITEPARTICLE_H |
12 |
|
#define MITANA_DATATREE_COMPOSITEPARTICLE_H |
13 |
|
|
14 |
– |
#include "MitAna/DataTree/interface/Types.h" |
14 |
|
#include "MitAna/DataTree/interface/Particle.h" |
15 |
|
#include "MitAna/DataCont/interface/RefArray.h" |
16 |
|
|
21 |
|
public: |
22 |
|
CompositeParticle() {} |
23 |
|
|
24 |
< |
void AddDaughter(const Particle *p) |
24 |
> |
void AddDaughter (const Particle *p) |
25 |
|
{ fDaughters.Add(p); ClearMom(); ClearCharge(); } |
26 |
< |
void Clear(Option_t *opt="") |
26 |
> |
void Clear (Option_t *opt="") |
27 |
|
{ fDaughters.Clear(opt); ClearMom(); ClearCharge(); } |
28 |
< |
const Particle *Daughter(UInt_t i) const { return fDaughters.At(i); } |
29 |
< |
UInt_t NDaughters() const { return fDaughters.Entries(); } |
30 |
< |
Bool_t HasDaughter(const Particle *p) const; |
28 |
> |
const Particle *Daughter (UInt_t i) const { return fDaughters.At(i); } |
29 |
> |
UInt_t NDaughters () const { return fDaughters.Entries(); } |
30 |
> |
Bool_t HasDaughter (const Particle *p) const; |
31 |
|
Bool_t HasCommonDaughter(const CompositeParticle *p) const; |
32 |
< |
Bool_t HasSameDaughters(const CompositeParticle *p) const; |
33 |
< |
EObjType ObjType() const { return kCompositeParticle; } |
32 |
> |
Bool_t HasSameDaughters (const CompositeParticle *p) const; |
33 |
> |
EObjType ObjType () const |
34 |
> |
{ return kCompositeParticle; } |
35 |
> |
|
36 |
> |
// Some structural tools |
37 |
> |
void Mark() const; |
38 |
|
|
39 |
|
protected: |
40 |
|
Double_t GetCharge() const; |
47 |
|
} |
48 |
|
|
49 |
|
//-------------------------------------------------------------------------------------------------- |
50 |
+ |
inline void mithep::CompositeParticle::Mark() const |
51 |
+ |
{ |
52 |
+ |
// mark myself |
53 |
+ |
mithep::DataObject::Mark(); |
54 |
+ |
// mark my dependencies if they are there |
55 |
+ |
for (UInt_t i=0; i<NDaughters(); i++) |
56 |
+ |
fDaughters.At(i)->Mark(); |
57 |
+ |
} |
58 |
+ |
|
59 |
+ |
//-------------------------------------------------------------------------------------------------- |
60 |
|
inline Double_t mithep::CompositeParticle::GetCharge() const |
61 |
|
{ |
62 |
|
// Return sum of charge of daughter particles. |