ATLAS Offline Software
Loading...
Searching...
No Matches
MuonSimuTrack.cxx
Go to the documentation of this file.
1/* // -*- C++ -*- */
2
3/*
4 Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
5*/
6
7
8#include <math.h>
9#include <iostream>
10#include <iomanip>
11
13
15RPCtrigDataObject(number,"SimulatedMuonTrack")
16{
17 this->m_event_number = data.event_number;
18 this->m_vertex_number = data.vertex_number;
19 this->m_track_number = data.track_number;
20
21 this->m_Px = data.Px;
22 this->m_Py = data.Py;
23 this->m_Pz = data.Pz;
24 this->m_Energy = data.Energy;
25}
26
28RPCtrigDataObject(muon.number(),muon.name())
29{
30 this->m_event_number = muon.event_number();
31 this->m_vertex_number = muon.vertex_number();
32 this->m_track_number = muon.track_number();
33
34 this->m_Px = muon.Px();
35 this->m_Py = muon.Py();
36 this->m_Pz = muon.Pz();
37 this->m_Energy = muon.Energy();
38}
39
41{
42 static_cast<RPCtrigDataObject&>(*this) =
43 static_cast<const RPCtrigDataObject&>(muon);
44 this->m_event_number = muon.event_number();
45 this->m_vertex_number = muon.vertex_number();
46 this->m_track_number = muon.track_number();
47
48 this->m_Px = muon.Px();
49 this->m_Py = muon.Py();
50 this->m_Pz = muon.Pz();
51 this->m_Energy = muon.Energy();
52
53 return *this;
54}
55
56float MuonSimuTrack::Pt(void) const
57{
58 return sqrt(m_Px * m_Px + m_Py * m_Py);
59}
60
62{
63 return atan(this->Pt()/fabsf(this->m_Pz));
64}
65
67{
68 float eta = -log(tan(this->generation_theta()/2.));
69 return (this->m_Pz > 0.)? eta : -eta;
70}
71
73{
74 return atan2(this->m_Py,this->m_Px);
75}
76
77void MuonSimuTrack::Print(std::ostream& stream,bool detail) const
78{
79 unsigned int upper = 17;
80 unsigned int lower = 19;
81
82 for(int i=0;i<61;++i) stream << (char) upper;
83 stream << std::endl;
84
85 stream << " Muon track number " << track_number() <<
86 " from vertex n. " << vertex_number() <<
87 ", belonging to event " << event_number() <<
88 ":" << std::endl;
89 stream << " generation eta = " << std::setw(6) << generation_eta() <<
90 " generation phi = " << std::setw(6) << generation_phi() <<
91 std::endl;
92
93 if (detail)
94 {
95 stream << " Px = " << std::setw(7) << Px() <<
96 ", Py = " << std::setw(7) << Py() <<
97 ", Pz = " << std::setw(7) << Pz() <<
98 ", Energy = " << std::setw(7) << Energy() << std::endl;
99 }
100
101 for(int i=0;i<61;++i) stream << (char) lower;
102 stream << std::endl;
103}
Scalar eta() const
pseudorapidity method
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
int upper(int c)
const std::string & name() const
Definition BaseObject.h:23
float generation_phi(void) const
int vertex_number(void) const
float Pz(void) const
int event_number(void) const
int track_number(void) const
MuonSimuTrack operator=(const MuonSimuTrack &)
float Py(void) const
void Print(std::ostream &, bool) const
MuonSimuTrack(int, const SimuTrackData &)
float Pt(void) const
float generation_theta(void) const
float Energy(void) const
float generation_eta(void) const
float Px(void) const
int number(void) const
RPCtrigDataObject(int, const std::string &)