ATLAS Offline Software
Loading...
Searching...
No Matches
CombinedMuonFeature.h
Go to the documentation of this file.
1// -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef TRIGMUONEVENT_COMBINED_MUON_FEATURE_H
8#define TRIGMUONEVENT_COMBINED_MUON_FEATURE_H
9
10// Gaudi/Athena include(s):
16#include "AthLinks/ElementLink.h"
18
19// STL include(s):
20#include <vector>
21#include <stdint.h>
22#include <map>
23#include <string>
24
25// Trigger include(s):
28
31 virtual public INavigable4Momentum {
32
33public:
35 CombinedMuonFeature(float ptsigned, float sigma_pt,
36 const ElementLink< MuonFeatureContainer>& muFastOutput,
37 const ElementLink< TrigInDetTrackCollection>& IdscanOutput);
38
39 CombinedMuonFeature(float ptsigned, float sigma_pt, int fs, int fe, int fm,
40 const ElementLink< MuonFeatureContainer>& muFastOutput,
41 const ElementLink< TrigInDetTrackCollection>& IdscanOutput);
42
43 CombinedMuonFeature(float pt, float sigma_pt, float q, int fs, int fe, int fm,
44 const ElementLink< MuonFeatureContainer>& muFastOutput,
45 const ElementLink< TrigInDetTrackCollection>& IdscanOutput);
46
47 CombinedMuonFeature(float pt, float sigma_pt, float q, int flag,
48 const ElementLink< MuonFeatureContainer>& muFastOutput,
49 const ElementLink< TrigInDetTrackCollection>& IdscanOutput);
50
51 CombinedMuonFeature(const CombinedMuonFeature* muon_feature);
52 CombinedMuonFeature(const CombinedMuonFeature& muon_feature);
53
54public:
56
57 double pt(void) const {return fabs(m_pt);}
58 double charge(void) const {return fabs(m_charge)>0?m_charge:(m_pt>0?1.0:-1.0);}
59 double ptq(void) const {return fabs(m_charge)>0?m_pt*m_charge:m_pt;}
60 double sigma_pt(void) const;
61 double sigma_pt_raw(void) const { return m_sigma_pt; }
62 int comb_strategy(void) const;
63 int comb_errorFlag(void) const;
64 int comb_matchFlag(void) const;
65 int getFlag(void) const { return m_flag; }
66 const MuonFeature* muFastTrack(void) const {return m_muFastTrack.isValid() ? *m_muFastTrack : 0;}
67 const TrigInDetTrack* IDTrack(void) const {return m_IDTrack.isValid() ? *m_IDTrack : 0;}
70
71 double eta(void) const;
72 double phi(void) const;
73 double m(void) const {return ParticleConstants::muonMassInMeV;}
74
75
76private:
77 float m_pt;
79 float m_charge;
80 int m_flag;
83};
84
86std::string str( const CombinedMuonFeature& d );
88MsgStream& operator<< ( MsgStream& m, const CombinedMuonFeature& d );
89
93inline bool operator!= ( const CombinedMuonFeature& a, const CombinedMuonFeature& b ) {
94 return !( a == b );
95}
96
98void diff( const CombinedMuonFeature& a, const CombinedMuonFeature& b,
99 std::map< std::string, double >& variableChange );
100
102CLASS_DEF( DataVector<CombinedMuonFeature> , 225396276 , 1 )
103
104#include "TrigMuonEvent/CombinedMuonFeatureContainer.h"
105
106#endif // TRIGMUONEVENT_COMBINED_MUON_FEATURE_H
void diff(const CombinedMuonFeature &a, const CombinedMuonFeature &b, std::map< std::string, double > &variableChange)
Comparison with feedback.
MsgStream & operator<<(MsgStream &m, const CombinedMuonFeature &d)
Helper operator for printing the object.
bool operator!=(const CombinedMuonFeature &a, const CombinedMuonFeature &b)
Operator comparing two CombinedMuonFeature objects for inequality.
bool operator==(const CombinedMuonFeature &a, const CombinedMuonFeature &b)
Operator comparing two CombinedMuonFeature objects for equality.
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
An STL vector of pointers that by default owns its pointed-to elements.
static Double_t a
static Double_t fs
A number of constexpr particle constants to avoid hardcoding them directly in various places.
const ElementLink< MuonFeatureContainer > & muFastTrackLink(void) const
CombinedMuonFeature & operator=(const CombinedMuonFeature &muon_feature)
double charge(void) const
double ptq(void) const
const MuonFeature * muFastTrack(void) const
double m(void) const
mass
const ElementLink< TrigInDetTrackCollection > & IDTrackLink(void) const
ElementLink< MuonFeatureContainer > m_muFastTrack
double pt(void) const
transverse momentum
double sigma_pt(void) const
double eta(void) const
pseudo rapidity
ElementLink< TrigInDetTrackCollection > m_IDTrack
const TrigInDetTrack * IDTrack(void) const
double sigma_pt_raw(void) const
double phi(void) const
phi in [-pi,pi[
int comb_strategy(void) const
Derived DataVector<T>.
Definition DataVector.h:795
P4PtEtaPhiMBase is a base class for classes with 4-momentum behavior, for which pt,...
represents a LVL2 ID track
constexpr double muonMassInMeV
the mass of the muon (in MeV)