ATLAS Offline Software
Loading...
Searching...
No Matches
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
32namespace ZMassConstraint
33{
34
40
41 class IConstraintFit : public virtual asg::IAsgTool
42 {
45
46 public:
47
49 virtual StatusCode doMassFit (const ConstraintFitInput& input,
50 ConstraintFitOutput& output) = 0;
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,
67 ConstraintFitInput& input,
68 MassConstraintMuonType muonType = isCombMCMT) = 0;
69
71 virtual void addParticle (const xAOD::Electron& el,
72 float elEnergyRes,
73 ConstraintFitInput& input) = 0;
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,
81 ConstraintFitInput& input) = 0;
82
83 };
84
85} // namespace ZMassConstraint
86
87#endif // ZMASSCONSTRAINT_ICONSTRAINTFIT_H
#define ASG_TOOL_INTERFACE(CLASSNAME)
virtual void addParticle(const xAOD::Electron &el, float elEnergyRes, ConstraintFitInput &input)=0
Add electron to input, must provide the electron energy resolution.
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...
virtual void addParticle(const xAOD::Muon &mu, ConstraintFitInput &input, MassConstraintMuonType muonType=isCombMCMT)=0
Add muon to input, must provide the resolution Scale Factor.
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...
virtual double getMassError(const ConstraintFitInput &firstInput, const ConstraintFitInput &secondInput=ConstraintFitInput())=0
Calculate the mass error without fit - use just the inputs.
virtual double getMassError(const ConstraintFitOutput &fitOutput, const ConstraintFitOutput &secondFitOutput)=0
Calculate the mass error with the result of two mass fits.
virtual StatusCode doMassFit(const ConstraintFitInput &input, ConstraintFitOutput &output)=0
Declare the interface that the class provides.
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
Class providing the definition of the 4-vector interface.
Muon_v1 Muon
Reference the current persistent version:
Electron_v1 Electron
Definition of the current "egamma version".