ATLAS Offline Software
IConstraintFit.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // $Id: IConstraintFit.h 670486 2015-05-28 09:29:21Z schaffer $
9 //
10 // Z mass constraint fit
11 //
12 // original version by:
13 // Konstantinos Nikolopoulos
14 // Univ. of Athens
15 //
17 #ifndef ZMASSCONSTRAINT_ICONSTRAINTFIT_H
18 #define ZMASSCONSTRAINT_ICONSTRAINTFIT_H
19 
20 // Framework include(s):
21 #include "AsgTools/IAsgTool.h"
22 
23 // EDM includes
24 #include "xAODBase/IParticle.h"
25 #include "xAODMuon/Muon.h"
26 #include "xAODEgamma/Electron.h"
27 
28 // ZMassConstraint I/O includes
31 
32 namespace ZMassConstraint
33 {
34 
36  isCombMCMT, // 0
37  isID_MCMT, // 1
38  isMS_MCMT // 2
39  };
40 
41  class IConstraintFit : public virtual asg::IAsgTool
42  {
45 
46  public:
47 
51 
53  virtual double getMassError (const ConstraintFitInput& firstInput,
54  const ConstraintFitInput& secondInput = ConstraintFitInput()) = 0;
55 
58  virtual double getMassError (const ConstraintFitOutput& fitOutput,
59  const ConstraintFitInput& extraInput = ConstraintFitInput()) = 0;
60 
62  virtual double getMassError (const ConstraintFitOutput& fitOutput,
63  const ConstraintFitOutput& secondFitOutput) = 0;
64 
66  virtual void addParticle (const xAOD::Muon& mu,
68  MassConstraintMuonType muonType = isCombMCMT) = 0;
69 
71  virtual void addParticle (const xAOD::Electron& el,
72  float elEnergyRes,
74 
78  // The four vector is used in the mass fit and comes from the FsrTool
79  virtual void addFSRParticle(const xAOD::IParticle & part,
80  const TLorentzVector& fsr4Vec,
82 
83  };
84 
85 } // namespace ZMassConstraint
86 
87 #endif // ZMASSCONSTRAINT_ICONSTRAINTFIT_H
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
ZMassConstraint::IConstraintFit
Definition: IConstraintFit.h:42
IParticle.h
ZMassConstraint::IConstraintFit::getMassError
virtual double getMassError(const ConstraintFitOutput &fitOutput, const ConstraintFitInput &extraInput=ConstraintFitInput())=0
Calculate the mass error with the result of fit and possible additional input (4-vecs/cov mat) that h...
Muon.h
ZMassConstraint::isID_MCMT
@ isID_MCMT
Definition: IConstraintFit.h:37
ZMassConstraint::ConstraintFitOutput
Definition: ConstraintFitOutput.h:13
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
ZMassConstraint::IConstraintFit::addFSRParticle
virtual void addFSRParticle(const xAOD::IParticle &part, const TLorentzVector &fsr4Vec, ConstraintFitInput &input)=0
Add in FSR photon to input, must provide BOTH the IParticle AND 4vec of FSR photon The IParticle is u...
ZMassConstraint::isMS_MCMT
@ isMS_MCMT
Definition: IConstraintFit.h:38
ConstraintFitInput.h
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
ZMassConstraint::MassConstraintMuonType
MassConstraintMuonType
Definition: IConstraintFit.h:35
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
ZMassConstraint::ConstraintFitInput
Definition: ConstraintFitInput.h:12
ZMassConstraint
Definition: ConstraintFit.cxx:12
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
ZMassConstraint::isCombMCMT
@ isCombMCMT
Definition: IConstraintFit.h:36
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
ZMassConstraint::IConstraintFit::getMassError
virtual double getMassError(const ConstraintFitOutput &fitOutput, const ConstraintFitOutput &secondFitOutput)=0
Calculate the mass error with the result of two mass fits
IAsgTool.h
ZMassConstraint::IConstraintFit::getMassError
virtual double getMassError(const ConstraintFitInput &firstInput, const ConstraintFitInput &secondInput=ConstraintFitInput())=0
Calculate the mass error without fit - use just the inputs.
merge.output
output
Definition: merge.py:17
ConstraintFitOutput.h
xAOD::Electron_v1
Definition: Electron_v1.h:34
ZMassConstraint::IConstraintFit::addParticle
virtual void addParticle(const xAOD::Electron &el, float elEnergyRes, ConstraintFitInput &input)=0
Add electron to input, must provide the electron energy resolution.
ZMassConstraint::IConstraintFit::addParticle
virtual void addParticle(const xAOD::Muon &mu, ConstraintFitInput &input, MassConstraintMuonType muonType=isCombMCMT)=0
Add muon to input, must provide the resolution Scale Factor.
Electron.h
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
ZMassConstraint::IConstraintFit::doMassFit
virtual StatusCode doMassFit(const ConstraintFitInput &input, ConstraintFitOutput &output)=0
Declare the interface that the class provides.