ATLAS Offline Software
MMT_struct.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MM_STRUCT_H
6 #define MM_STRUCT_H
7 
10 #include "GaudiKernel/SystemOfUnits.h"
15 
16 #include <Math/Vector2D.h>
17 #include <Math/Vector3D.h>
18 #include <Math/Vector4D.h>
19 
20 #include <stdexcept>
21 #include <utility>
22 #include <cmath>
23 
24 class MMT_Parameters : public AthMessaging {
25  public:
26  MMT_Parameters(std::string layerSetup, char wedgeSize, const MuonGM::MuonDetectorManager* detManager);
27  std::vector<ROOT::Math::XYZVector> MM_firststrip_positions(const MuonGM::MuonDetectorManager* detManager, const std::string& wedge, int eta) const;
28 
29  // start counting at 1 to be consistent with mmIdHelper.
30  bool is_x(int plane) const {
31  static const std::set<unsigned int> planes_x{1, 2, 7, 8};
32  return planes_x.count(plane);
33  }
34  bool is_u(int plane) const {
35  static const std::set<unsigned int> planes_u {3, 5};
36  return planes_u.count(plane);
37  }
38  bool is_v(int plane) const {
39  static const std::set<unsigned int> planes_v{4, 6};
40  return planes_v.count(plane);
41  }
42 
43  char getSector() const { return m_sector; }
44  double getlWidth() const { return m_lWidth; }
45  double getPitch() const { return m_pitch; }
46  double getLowerBoundEta1() const { return m_innerRadiusEta1; }
47  double getLowerBoundEta2() const { return m_innerRadiusEta2; }
48  double getMissedBottomEtaStrips() const { return m_missedBottomEta; }
50  double getYbase(int plane, int eta) const { return m_ybases[plane][eta]; }
51 
52  private:
53  std::array<std::array<float, 2>, 8> m_ybases; // Fixed layout: 8 layers and 2 station eta
54  char m_sector;
57 };
58 
59 struct evInf_entry{
60  evInf_entry(int event=0,int pdg=0,double e=0,double p=0,double ieta=0,double peta=0,double eeta=0,double iphi=0,double pphi=0,double ephi=0,
61  double ithe=0,double pthe=0,double ethe=0,double dth=0,int trn=0,int mun=0,const ROOT::Math::XYZVector& tex=ROOT::Math::XYZVector());
62 
66  ROOT::Math::XYZVector vertex;
67 };
68 
70  hitData_entry(int ev=0, double gt=0, double q=0, int vmm=0, int mmfe=0, int pl=0, int st=0, int est=0, int phi=0, int mult=0, int gg=0, double locX=0, double tr_the=0, double tru_phi=0,
71  bool q_tbg=0, int bct=0, const ROOT::Math::XYZVector& tru=ROOT::Math::XYZVector(), const ROOT::Math::XYZVector& rec=ROOT::Math::XYZVector());
72 
73  int event;
74  double gtime,charge;
77  bool truth_nbg;
78  int BC_time;
79  ROOT::Math::XYZVector truth,recon;
80 };
81 
82 struct digitWrapper{
83  digitWrapper(const MmDigit* digit=0,
84  const std::string& stationName=std::string(),
85  double tmpGTime=0,
86  const ROOT::Math::XYZVector& truthLPos=ROOT::Math::XYZVector(),
87  const ROOT::Math::XYZVector& stripLPos=ROOT::Math::XYZVector(),
88  const ROOT::Math::XYZVector& stripGPos=ROOT::Math::XYZVector());
89 
90  const MmDigit* digit;
91  std::string stName;
92  double gTime;
93 
94  ROOT::Math::XYZVector truth_lpos;
95  ROOT::Math::XYZVector strip_lpos;
96  ROOT::Math::XYZVector strip_gpos;
97 
98  inline Identifier id() const { return digit->identify(); };
99 };
100 #endif
evInf_entry::pt
double pt
Definition: MMT_struct.h:64
evInf_entry::mu_n
int mu_n
Definition: MMT_struct.h:65
hitData_entry::charge
double charge
Definition: MMT_struct.h:74
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
hitData_entry::plane
int plane
Definition: MMT_struct.h:75
digitWrapper::digitWrapper
digitWrapper(const MmDigit *digit=0, const std::string &stationName=std::string(), double tmpGTime=0, const ROOT::Math::XYZVector &truthLPos=ROOT::Math::XYZVector(), const ROOT::Math::XYZVector &stripLPos=ROOT::Math::XYZVector(), const ROOT::Math::XYZVector &stripGPos=ROOT::Math::XYZVector())
Definition: MMT_struct.cxx:191
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
getMessageSvc.h
singleton-like access to IMessageSvc via open function and helper
Trk::locX
@ locX
Definition: ParamDefs.h:43
hitData_entry::multiplet
int multiplet
Definition: MMT_struct.h:75
evInf_entry::athena_event
int athena_event
Definition: MMT_struct.h:63
hitData_entry::truth
ROOT::Math::XYZVector truth
Definition: MMT_struct.h:79
evInf_entry::truth_n
int truth_n
Definition: MMT_struct.h:65
digitWrapper::truth_lpos
ROOT::Math::XYZVector truth_lpos
Definition: MMT_struct.h:94
dumpTgcDigiDeadChambers.stationName
dictionary stationName
Definition: dumpTgcDigiDeadChambers.py:30
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
evInf_entry::theta_pos
double theta_pos
Definition: MMT_struct.h:64
MMT_Parameters::MMT_Parameters
MMT_Parameters(std::string layerSetup, char wedgeSize, const MuonGM::MuonDetectorManager *detManager)
Definition: MMT_struct.cxx:11
digitWrapper::gTime
double gTime
Definition: MMT_struct.h:92
MMT_Parameters::m_sector
char m_sector
Definition: MMT_struct.h:54
hitData_entry::hitData_entry
hitData_entry(int ev=0, double gt=0, double q=0, int vmm=0, int mmfe=0, int pl=0, int st=0, int est=0, int phi=0, int mult=0, int gg=0, double locX=0, double tr_the=0, double tru_phi=0, bool q_tbg=0, int bct=0, const ROOT::Math::XYZVector &tru=ROOT::Math::XYZVector(), const ROOT::Math::XYZVector &rec=ROOT::Math::XYZVector())
Definition: MMT_struct.cxx:187
MMT_Parameters::m_missedBottomEta
double m_missedBottomEta
Definition: MMT_struct.h:56
evInf_entry::phi_pos
double phi_pos
Definition: MMT_struct.h:64
hitData_entry::truth_nbg
bool truth_nbg
Definition: MMT_struct.h:77
evInf_entry::E
double E
Definition: MMT_struct.h:64
hitData_entry::gtime
double gtime
Definition: MMT_struct.h:74
MmDigit
Definition: MmDigit.h:20
hitData_entry::gasgap
int gasgap
Definition: MMT_struct.h:75
MMT_Parameters::getLowerBoundEta1
double getLowerBoundEta1() const
Definition: MMT_struct.h:46
hitData_entry::recon
ROOT::Math::XYZVector recon
Definition: MMT_struct.h:79
evInf_entry::eta_ent
double eta_ent
Definition: MMT_struct.h:64
MMT_Parameters::getMissedBottomEtaStrips
double getMissedBottomEtaStrips() const
Definition: MMT_struct.h:48
digitWrapper::stName
std::string stName
Definition: MMT_struct.h:91
MmDigit.h
MMT_Parameters::m_pitch
double m_pitch
Definition: MMT_struct.h:55
MMT_Parameters
Definition: MMT_struct.h:24
hitData_entry::localX
double localX
Definition: MMT_struct.h:76
MMReadoutElement.h
hitData_entry::VMM_chip
int VMM_chip
Definition: MMT_struct.h:75
ev
int ev
Definition: globals.cxx:25
evInf_entry::pdg_id
int pdg_id
Definition: MMT_struct.h:63
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
evInf_entry::theta_ent
double theta_ent
Definition: MMT_struct.h:64
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
evInf_entry::dtheta
double dtheta
Definition: MMT_struct.h:64
hitData_entry::tru_theta_ip
double tru_theta_ip
Definition: MMT_struct.h:76
MMT_Parameters::m_missedBottomStereo
double m_missedBottomStereo
Definition: MMT_struct.h:56
MMT_Parameters::getPitch
double getPitch() const
Definition: MMT_struct.h:45
MMT_Parameters::getYbase
double getYbase(int plane, int eta) const
Definition: MMT_struct.h:50
evInf_entry::vertex
ROOT::Math::XYZVector vertex
Definition: MMT_struct.h:66
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
MMT_Parameters::getSector
char getSector() const
Definition: MMT_struct.h:43
MMT_Parameters::is_v
bool is_v(int plane) const
Definition: MMT_struct.h:38
hitData_entry::BC_time
int BC_time
Definition: MMT_struct.h:78
MMT_Parameters::getlWidth
double getlWidth() const
Definition: MMT_struct.h:44
evInf_entry
Definition: MMT_struct.h:59
MMT_Parameters::m_lWidth
double m_lWidth
Definition: MMT_struct.h:55
hitData_entry::MMFE_VMM
int MMFE_VMM
Definition: MMT_struct.h:75
evInf_entry::theta_ip
double theta_ip
Definition: MMT_struct.h:64
hitData_entry::strip
int strip
Definition: MMT_struct.h:75
hitData_entry::tru_phi_ip
double tru_phi_ip
Definition: MMT_struct.h:76
digitWrapper::strip_lpos
ROOT::Math::XYZVector strip_lpos
Definition: MMT_struct.h:95
MMT_Parameters::m_ybases
std::array< std::array< float, 2 >, 8 > m_ybases
Definition: MMT_struct.h:53
MMSimHitCollection.h
MuonDetectorManager.h
MMT_Parameters::MM_firststrip_positions
std::vector< ROOT::Math::XYZVector > MM_firststrip_positions(const MuonGM::MuonDetectorManager *detManager, const std::string &wedge, int eta) const
Definition: MMT_struct.cxx:148
MMT_Parameters::is_u
bool is_u(int plane) const
Definition: MMT_struct.h:34
MuonDigit::identify
Identifier identify() const
Definition: MuonDigit.h:30
MMT_Parameters::getMissedBottomStereoStrips
double getMissedBottomStereoStrips() const
Definition: MMT_struct.h:49
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
evInf_entry::eta_ip
double eta_ip
Definition: MMT_struct.h:64
hitData_entry::station_eta
int station_eta
Definition: MMT_struct.h:75
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:49
AthMessaging.h
hitData_entry::event
int event
Definition: MMT_struct.h:73
digitWrapper::digit
const MmDigit * digit
Definition: MMT_struct.h:90
MMT_Parameters::m_innerRadiusEta2
double m_innerRadiusEta2
Definition: MMT_struct.h:55
hitData_entry
Definition: MMT_struct.h:69
MMT_Parameters::m_innerRadiusEta1
double m_innerRadiusEta1
Definition: MMT_struct.h:55
extractSporadic.q
list q
Definition: extractSporadic.py:98
evInf_entry::eta_pos
double eta_pos
Definition: MMT_struct.h:64
evInf_entry::phi_ent
double phi_ent
Definition: MMT_struct.h:64
MMT_Parameters::is_x
bool is_x(int plane) const
Definition: MMT_struct.h:30
hitData_entry::station_phi
int station_phi
Definition: MMT_struct.h:75
digitWrapper::id
Identifier id() const
Definition: MMT_struct.h:98
evInf_entry::phi_ip
double phi_ip
Definition: MMT_struct.h:64
digitWrapper
Definition: MMT_struct.h:82
digitWrapper::strip_gpos
ROOT::Math::XYZVector strip_gpos
Definition: MMT_struct.h:96
evInf_entry::evInf_entry
evInf_entry(int event=0, int pdg=0, double e=0, double p=0, double ieta=0, double peta=0, double eeta=0, double iphi=0, double pphi=0, double ephi=0, double ithe=0, double pthe=0, double ethe=0, double dth=0, int trn=0, int mun=0, const ROOT::Math::XYZVector &tex=ROOT::Math::XYZVector())
Definition: MMT_struct.cxx:181
MMT_Parameters::getLowerBoundEta2
double getLowerBoundEta2() const
Definition: MMT_struct.h:47