ATLAS Offline Software
Loading...
Searching...
No Matches
IParticleHandleBase.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5
7// //
8// Header file for class IParticleHandleBase //
9// //
10// Description: Base class for IParticle xAOD. //
11// //
12// Author: E. Moyse //
13// //
15
16#ifndef IPARTICLEHANDLEBASE_H
17#define IPARTICLEHANDLEBASE_H
18
20
21#include <QStringList>
22#include <QTreeWidgetItem>
23#include <vector>
24#include <set>
25#include <QList>
26#include <QFlags>
27#include "AODHandleBase.h"
28
33class SoMaterial;
34class SoNode;
35
36namespace xAOD {
37 class IParticle;
38}
39
41
43public:
45 virtual ~IParticleHandleBase();
46
47 // AODHandle base methods
48 SoMaterial * determineMaterial();
49 virtual QStringList baseInfo() const;
50
51 // IParticle specific methods
52 virtual Amg::Vector3D momentum() const { return Amg::Vector3D(0,0,0); }
53
54 virtual const xAOD::IParticle& iParticle() const =0;
55
56 virtual double charge() const =0 ;
57 virtual double mass() const;
58
59 bool hasCharge() const { return charge()!=unknown(); }
60 bool hasMass() const { return mass()!=unknown(); }
61
62protected:
63
64private:
65
66 // It is illegal to copy/assign a IParticleHandleBase:
69
70 class Imp;
72};
73
74
75#endif
static double unknown()
AODHandleBase(AODCollHandleBase *)
Base class for collections holding AOD objects of iParticle type Handles pt etc cuts Local data:
IParticleHandleBase(IParticleCollHandleBase *)
virtual double mass() const
Returns unknown() in case of trouble.
SoMaterial * determineMaterial()
Should be implemented by children, in order to change the material depending on the interface etc.
virtual const xAOD::IParticle & iParticle() const =0
IParticleHandleBase(const IParticleHandleBase &)
virtual Amg::Vector3D momentum() const
virtual double charge() const =0
IParticleHandleBase & operator=(const IParticleHandleBase &)
virtual QStringList baseInfo() const
Class providing the definition of the 4-vector interface.
Eigen::Matrix< double, 3, 1 > Vector3D
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.