ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
MMLoadVariables Class Reference

#include <MMLoadVariables.h>

Inheritance diagram for MMLoadVariables:
Collaboration diagram for MMLoadVariables:

Public Member Functions

 MMLoadVariables (const MuonGM::MuonDetectorManager *detManager, const MmIdHelper *idhelper)
 
StatusCode getMMDigitsInfo (const EventContext &ctx, const McEventCollection *truthContainer, const TrackRecordCollection *trackRecordCollection, const MmDigitContainer *nsw_MmDigitContainer, std::map< std::pair< int, unsigned int >, std::vector< digitWrapper > > &entries, std::map< std::pair< int, unsigned int >, std::vector< hitData_entry > > &Hits_Data_Set_Time, std::map< std::pair< int, unsigned int >, evInf_entry > &Event_Info, histogramDigitVariables &histDigVars) const
 
bool msgLvl (const MSG::Level lvl) const
 Test the output level. More...
 
MsgStream & msg () const
 The standard message stream. More...
 
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream. More...
 
void setLevel (MSG::Level lvl)
 Change the current logging level. More...
 

Private Member Functions

void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Private Attributes

const MuonGM::MuonDetectorManagerm_detManager
 MuonDetectorManager. More...
 
const MmIdHelperm_MmIdHelper
 MM offline Id helper. More...
 
std::string m_nm
 Message source name. More...
 
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels) More...
 
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer. More...
 
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level. More...
 
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging) More...
 

Detailed Description

Definition at line 49 of file MMLoadVariables.h.

Constructor & Destructor Documentation

◆ MMLoadVariables()

MMLoadVariables::MMLoadVariables ( const MuonGM::MuonDetectorManager detManager,
const MmIdHelper idhelper 
)

Definition at line 8 of file MMLoadVariables.cxx.

8  :
9  AthMessaging(Athena::getMessageSvc(), "MMLoadVariables") {
10  m_detManager = detManager;
11  m_MmIdHelper = idhelper;
12 }

Member Function Documentation

◆ getMMDigitsInfo()

StatusCode MMLoadVariables::getMMDigitsInfo ( const EventContext &  ctx,
const McEventCollection truthContainer,
const TrackRecordCollection trackRecordCollection,
const MmDigitContainer nsw_MmDigitContainer,
std::map< std::pair< int, unsigned int >, std::vector< digitWrapper > > &  entries,
std::map< std::pair< int, unsigned int >, std::vector< hitData_entry > > &  Hits_Data_Set_Time,
std::map< std::pair< int, unsigned int >, evInf_entry > &  Event_Info,
histogramDigitVariables histDigVars 
) const

Definition at line 14 of file MMLoadVariables.cxx.

21  {
22  //*******Following MuonPRD code to access all the variables**********
23  std::vector<ROOT::Math::PtEtaPhiEVector> truthParticles, truthParticles_ent, truthParticles_pos;
24  std::vector<int> pdg;
25  std::vector<ROOT::Math::XYZVector> vertex;
26  float phiEntry_tmp = 0;
27  float phiPosition_tmp = 0;
28  float etaEntry_tmp = 0;
29  float etaPosition_tmp = 0;
30  int pdg_tmp = 0;
31  ROOT::Math::XYZVector vertex_tmp(0.,0.,0.);
32 
33  ROOT::Math::PtEtaPhiEVector thePart, theInfo;
34  auto MuEntry_Particle_n = (trackRecordCollection!=nullptr)?trackRecordCollection->size():0;
35  int j=0; // iteration of particle entries
36  if( truthContainer != nullptr ){
37  for(const auto it : *truthContainer) {
38  const HepMC::GenEvent *subEvent = it;
39  for(const auto& particle : *subEvent){
40  const HepMC::FourVector momentum = particle->momentum();
41  if( HepMC::generations(particle) < 1 && std::abs(particle->pdg_id())==13){
42  thePart.SetCoordinates(momentum.perp(),momentum.eta(),momentum.phi(),momentum.e());
43  if(trackRecordCollection!=nullptr){
44  for(const auto & mit : *trackRecordCollection ) {
45  const CLHEP::Hep3Vector mumomentum = mit.GetMomentum();
46  const CLHEP::Hep3Vector muposition = mit.GetPosition();
47  if(!trackRecordCollection->empty() && HepMC::barcode(particle) == mit.barcode()) { // FIXME barcode-based
48  pdg_tmp = particle->pdg_id();
49  phiEntry_tmp = mumomentum.getPhi();
50  etaEntry_tmp = mumomentum.getEta();
51  phiPosition_tmp = muposition.getPhi();
52  etaPosition_tmp = muposition.getEta();
53  }
54  }//muentry loop
55  } // trackRecordCollection is not null
56 #ifdef HEPMC3
57  vertex_tmp = subEvent->vertices().front()->position();
58 #else
59  int l=0;
60  for(const auto vit : subEvent->vertex_range())
61  {
62  if(l!=0){break;}//get first vertex of iteration, may want to change this
63  l++;
64  const HepMC::GenVertex *vertex1 = vit;
65  const HepMC::FourVector& position = vertex1->position();
66  vertex_tmp.SetXYZ(position.x(),position.y(),position.z());
67  }//end vertex loop
68 #endif
69  }
70  j++;
71 
72  if(thePart.Pt() > 0. && HepMC::generations(particle) < 1){
73  bool addIt = true;
74  for(unsigned int ipart=0; ipart < truthParticles.size(); ipart++){
75  if( std::abs(thePart.Pt()-truthParticles[ipart].Pt()) < 0.001 ||
76  std::abs(thePart.Eta()-truthParticles[ipart].Eta()) < 0.001 ||
77  std::abs(xAOD::P4Helpers::deltaPhi(thePart.Phi(), truthParticles[ipart].Phi())) < 0.001 ||
78  std::abs(thePart.E()-truthParticles[ipart].E()) < 0.001 ) addIt = false;
79  }
80  if(addIt){
81  truthParticles.push_back(thePart);
82  //new stuff
83  vertex.push_back(vertex_tmp);
84  pdg.push_back(pdg_tmp);
85  truthParticles_ent.push_back(ROOT::Math::PtEtaPhiEVector(momentum.perp(),etaEntry_tmp ,phiEntry_tmp ,momentum.e()));
86  truthParticles_pos.push_back(ROOT::Math::PtEtaPhiEVector(momentum.perp(),etaPosition_tmp,phiPosition_tmp,momentum.e()));
87  }
88  }
89 
90  } //end particle loop
91  } //end truth container loop (should be only 1 container per event)
92  } // if truth container is not null
93 
94  int event = ctx.eventID().event_number();
95  int TruthParticle_n = j;
96  unsigned int digit_particles = 0;
97  for(auto digitCollectionIter : *nsw_MmDigitContainer) {
98  // a digit collection is instanciated for each container, i.e. holds all digits of a multilayer
99  const MmDigitCollection* digitCollection = digitCollectionIter;
100  // loop on all digits inside a collection, i.e. multilayer
101  std::vector<digitWrapper> entries_tmp;
102 
103  for (const auto item:*digitCollection) {
104  // get specific digit and identify it
105  const MmDigit* digit = item;
106  Identifier id = digit->identify();
107  if (!m_MmIdHelper->is_mm(id)) continue;
108 
109  std::string stName = m_MmIdHelper->stationNameString(m_MmIdHelper->stationName(id));
113  int multiplet = m_MmIdHelper->multilayer(id);
114  int gas_gap = m_MmIdHelper->gasGap(id);
115  int channel = m_MmIdHelper->channel(id);
116 
118 
119  std::vector<float> time{digit->stripResponseTime()};
120  std::vector<float> charge{digit->stripResponseCharge()};
121  std::vector<int> stripPosition{channel};
122  std::vector<int> MMFE_VMM{channel};
123  std::vector<int> VMM{channel};
124 
125  bool isValid = false;
126  histDigVars.NSWMM_dig_stationName.push_back(stName);
127  histDigVars.NSWMM_dig_stationEta.push_back(stationEta);
128  histDigVars.NSWMM_dig_stationPhi.push_back(stationPhi);
129  histDigVars.NSWMM_dig_multiplet.push_back(multiplet);
130  histDigVars.NSWMM_dig_gas_gap.push_back(gas_gap);
131  histDigVars.NSWMM_dig_channel.push_back(channel);
132 
133  std::vector<double> localPosX;
134  std::vector<double> localPosY;
135  std::vector<double> globalPosX;
136  std::vector<double> globalPosY;
137  std::vector<double> globalPosZ;
138 
139  int nstrip = 0; //counter of the number of firing strips
140  for (const auto &i: stripPosition) {
141 
142  isValid = false; //reset
143  // take strip index form chip information
144  int cr_strip = i;
145  localPosX.push_back (0.);
146  localPosY.push_back (0.);
147  globalPosX.push_back(0.);
148  globalPosY.push_back(0.);
149  globalPosZ.push_back(0.);
150  ++nstrip;
151 
152  Identifier cr_id = m_MmIdHelper->channelID(stationName, stationEta, stationPhi, multiplet, gas_gap, cr_strip, isValid);
153  if (!isValid) {
154  ATH_MSG_WARNING("MicroMegas digitization: failed to create a valid ID for (chip response) strip n. " << cr_strip
155  << "; associated positions will be set to 0.0.");
156  } else {
157  // asking the detector element to get local position of strip
158  Amg::Vector2D cr_strip_pos(0., 0.);
159  if ( !rdoEl->stripPosition(cr_id,cr_strip_pos) ) {
160  ATH_MSG_WARNING("MicroMegas digitization: failed to associate a valid local position for (chip response) strip n. " << cr_strip
161  << "; associated positions will be set to 0.0.");
162  } else {
163  localPosX[nstrip-1] = cr_strip_pos.x();
164  localPosY[nstrip-1] = cr_strip_pos.y();
165  }
166 
167  // asking the detector element to transform this local to the global position
168  Amg::Vector3D cr_strip_gpos(0., 0., 0.);
169  rdoEl->surface(cr_id).localToGlobal(cr_strip_pos, Amg::Vector3D(0., 0., 0.), cr_strip_gpos);
170  globalPosX[nstrip-1] = cr_strip_gpos[0];
171  globalPosY[nstrip-1] = cr_strip_gpos[1];
172  globalPosZ[nstrip-1] = cr_strip_gpos[2];
173  }
174  }//end of strip position loop
175 
176  //NTUPLE FILL DIGITS
177  histDigVars.NSWMM_dig_time.push_back(time);
178  histDigVars.NSWMM_dig_charge.push_back(charge);
179  histDigVars.NSWMM_dig_stripPosition.push_back(stripPosition);
180  histDigVars.NSWMM_dig_stripLposX.push_back(localPosX);
181  histDigVars.NSWMM_dig_stripLposY.push_back(localPosY);
182  histDigVars.NSWMM_dig_stripGposX.push_back(globalPosX);
183  histDigVars.NSWMM_dig_stripGposY.push_back(globalPosY);
184  histDigVars.NSWMM_dig_stripGposZ.push_back(globalPosZ);
185  if(globalPosY.empty()) continue;
186 
187  if (!time.empty()) entries_tmp.push_back(
188  digitWrapper(digit, stName, -1.,
189  ROOT::Math::XYZVector(-999, -999, -999),
190  ROOT::Math::XYZVector(localPosX[0], localPosY[0], -999),
191  ROOT::Math::XYZVector(globalPosX[0], globalPosY[0], globalPosZ[0] )
192  ) );
193  } //end iterator digit loop
194 
195  if (!entries_tmp.empty()) {
196  std::vector<std::string> stNames;
197  for(const auto &dW : entries_tmp) stNames.push_back(dW.stName);
198  if(std::all_of(stNames.begin(), stNames.end(), [&] (const std::string & name) { return name == stNames[0]; })) {
199  entries[std::make_pair(event,digit_particles)]=entries_tmp;
200  digit_particles++;
201  } else {
202  ATH_MSG_WARNING("Digits belonging to different stations, skipping items");
203  }
204  stNames.clear();
205  }
206  } // end digit container loop
207 
208  for(unsigned int i=0; i<truthParticles.size(); i++) {
209  evInf_entry particle_info(event, pdg[i],
210  truthParticles[i].E(), truthParticles[i].Pt(),
211  truthParticles[i].Eta(), truthParticles_pos[i].Eta(), truthParticles_ent[i].Eta(),
212  truthParticles[i].Phi(), truthParticles_pos[i].Phi(), truthParticles_ent[i].Phi(),
213  truthParticles[i].Theta(), truthParticles_pos[i].Theta(), truthParticles_ent[i].Theta(), truthParticles_ent[i].Theta()-truthParticles_pos[i].Theta(),
214  TruthParticle_n,MuEntry_Particle_n,vertex[i]);
215  Event_Info[std::make_pair(event,i)] = particle_info;
216  }
217 
218  //Loop over entries, which has digitization info for each event
219  unsigned int ient=0;
220  for (auto it=entries.begin(); it!=entries.end(); it++){
221 
222  /* Identifying the wedge from digits:
223  * now the digit is associated with the corresponding station, so lambda function can be exploited to check if they are all the same
224  */
225  double tru_phi = -999, tru_theta = -999;
226  std::pair<int, unsigned int> pair (event,ient);
227  auto tru_it = Event_Info.find(pair);
228  if (tru_it != Event_Info.end()) {
229  tru_phi = tru_it->second.phi_pos;
230  tru_theta = tru_it->second.theta_pos;
231  }
232 
233  std::string station = it->second[0].stName;
234  std::vector<hitData_entry> hit_info;
235  hit_info.reserve(it->second.size());
236 
237  //Now we need to loop on digits
238  for (const auto &dW : it->second) {
239  Identifier tmpID = dW.id();
240  int thisMultiplet = m_MmIdHelper->multilayer( tmpID );
241  int thisGasGap = m_MmIdHelper->gasGap( tmpID );
242  int thisTime = dW.digit->stripResponseTime();
243  int thisCharge = 2; //dW.digit->stripChargeForTrigger().at(0);
244  int thisStripPosition = m_MmIdHelper->channel(tmpID);
245  double thisLocalPosX = dW.strip_lpos.X();
246  int thisVMM = m_MmIdHelper->channel( tmpID);
247  int thisMMFE_VMM = m_MmIdHelper->channel( tmpID);
248  int thisStationEta = m_MmIdHelper->stationEta( tmpID );
249  int thisStationPhi = m_MmIdHelper->stationPhi( tmpID );
250  int thisPlane = (thisMultiplet-1)*4+thisGasGap-1;
251  int BC_id = std::ceil( thisTime / 25. );
252  ROOT::Math::XYZVector mazin_check(
253  dW.strip_gpos.X(),
254  dW.strip_gpos.Y(),
255  dW.strip_gpos.Z()
256  );
257 
258  hitData_entry hit_entry(event,
259  thisTime,
260  thisCharge,
261  thisVMM,
262  thisMMFE_VMM,
263  thisPlane,
264  thisStripPosition,
265  thisStationEta,
266  thisStationPhi,
267  thisMultiplet,
268  thisGasGap,
269  thisLocalPosX,
270  tru_theta,
271  tru_phi,
272  true,
273  BC_id,
274  mazin_check,
275  mazin_check);
276 
277  hit_info.push_back(hit_entry);
278  ATH_MSG_DEBUG("Done filling hit_info structure");
279  }//end digit wrapper loop
280 
281  Hits_Data_Set_Time[std::make_pair(event,ient)] = hit_info;
282  ient++;
283  }
284  return StatusCode::SUCCESS;
285 }

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40 {
42  m_lvl = m_imsg ?
43  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
44  MSG::INFO;
45 }

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 164 of file AthMessaging.h.

165 {
166  MsgStream* ms = m_msg_tls.get();
167  if (!ms) {
168  if (!m_initialized.test_and_set()) initMessaging();
169  ms = new MsgStream(m_imsg,m_nm);
170  m_msg_tls.reset( ms );
171  }
172 
173  ms->setLevel (m_lvl);
174  return *ms;
175 }

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level  lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 179 of file AthMessaging.h.

180 { return msg() << lvl; }

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152 {
153  if (!m_initialized.test_and_set()) initMessaging();
154  if (m_lvl <= lvl) {
155  msg() << lvl;
156  return true;
157  } else {
158  return false;
159  }
160 }

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level  lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29 {
30  m_lvl = lvl;
31 }

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_detManager

const MuonGM::MuonDetectorManager* MMLoadVariables::m_detManager
private

MuonDetectorManager.

Definition at line 64 of file MMLoadVariables.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

◆ m_MmIdHelper

const MmIdHelper* MMLoadVariables::m_MmIdHelper
private

MM offline Id helper.

Definition at line 65 of file MMLoadVariables.h.

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.


The documentation for this class was generated from the following files:
MmDigitCollection
Definition: MmDigitCollection.h:18
MuonGM::MMReadoutElement::stripPosition
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const override final
strip position – local or global If the strip number is outside the range of valid strips,...
Definition: MMReadoutElement.h:209
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
Muon::nsw::STGTPSegments::moduleIDBits::stationPhi
constexpr uint8_t stationPhi
station Phi 1 to 8
Definition: NSWSTGTPDecodeBitmaps.h:129
Trk::VKContraintType::Theta
@ Theta
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
histogramDigitVariables::NSWMM_dig_stripLposY
std::vector< std::vector< double > > NSWMM_dig_stripLposY
Definition: MMLoadVariables.h:42
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
dumpTgcDigiDeadChambers.stationName
dictionary stationName
Definition: dumpTgcDigiDeadChambers.py:30
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
histogramDigitVariables::NSWMM_dig_channel
std::vector< int > NSWMM_dig_channel
Definition: MMLoadVariables.h:36
skel.it
it
Definition: skel.GENtoEVGEN.py:423
histogramDigitVariables::NSWMM_dig_multiplet
std::vector< int > NSWMM_dig_multiplet
Definition: MMLoadVariables.h:34
histogramDigitVariables::NSWMM_dig_stripGposX
std::vector< std::vector< double > > NSWMM_dig_stripGposX
Definition: MMLoadVariables.h:43
MmDigit
Definition: MmDigit.h:20
xAOD::P4Helpers::deltaPhi
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[
Definition: xAODP4Helpers.h:69
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
Phi
@ Phi
Definition: RPCdef.h:8
MuonIdHelper::stationName
int stationName(const Identifier &id) const
Definition: MuonIdHelper.cxx:804
isValid
bool isValid(const T &p)
Definition: AtlasPID.h:214
checkRpcDigits.digit
digit
Definition: checkRpcDigits.py:186
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
MuonGM::MuonClusterReadoutElement::surface
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
Definition: MuonClusterReadoutElement.h:123
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
histogramDigitVariables::NSWMM_dig_stripGposY
std::vector< std::vector< double > > NSWMM_dig_stripGposY
Definition: MMLoadVariables.h:44
histogramDigitVariables::NSWMM_dig_stationEta
std::vector< int > NSWMM_dig_stationEta
Definition: MMLoadVariables.h:32
MmIdHelper::multilayer
int multilayer(const Identifier &id) const
Definition: MmIdHelper.cxx:796
PyPoolBrowser.item
item
Definition: PyPoolBrowser.py:129
histogramDigitVariables::NSWMM_dig_stripPosition
std::vector< std::vector< int > > NSWMM_dig_stripPosition
Definition: MMLoadVariables.h:40
AthMessaging::AthMessaging
AthMessaging()
Default constructor:
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
ParticleGun_EoverP_Config.momentum
momentum
Definition: ParticleGun_EoverP_Config.py:63
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
lumiFormat.i
int i
Definition: lumiFormat.py:92
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
MMLoadVariables::m_detManager
const MuonGM::MuonDetectorManager * m_detManager
MuonDetectorManager.
Definition: MMLoadVariables.h:64
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
evInf_entry
Definition: MMT_struct.h:59
histogramDigitVariables::NSWMM_dig_stationName
std::vector< std::string > NSWMM_dig_stationName
Definition: MMLoadVariables.h:31
histogramDigitVariables::NSWMM_dig_stationPhi
std::vector< int > NSWMM_dig_stationPhi
Definition: MMLoadVariables.h:33
MuonIdHelper::is_mm
bool is_mm(const Identifier &id) const
Definition: MuonIdHelper.cxx:801
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
MMLoadVariables::m_MmIdHelper
const MmIdHelper * m_MmIdHelper
MM offline Id helper.
Definition: MMLoadVariables.h:65
MuonIdHelper::stationPhi
int stationPhi(const Identifier &id) const
Definition: MuonIdHelper.cxx:814
MuonIdHelper::stationNameString
const std::string & stationNameString(const int &index) const
Definition: MuonIdHelper.cxx:858
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
charge
double charge(const T &p)
Definition: AtlasPID.h:494
MuonIdHelper::stationEta
int stationEta(const Identifier &id) const
Definition: MuonIdHelper.cxx:809
item
Definition: ItemListSvc.h:43
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
histogramDigitVariables::NSWMM_dig_gas_gap
std::vector< int > NSWMM_dig_gas_gap
Definition: MMLoadVariables.h:35
histogramDigitVariables::NSWMM_dig_stripGposZ
std::vector< std::vector< double > > NSWMM_dig_stripGposZ
Definition: MMLoadVariables.h:45
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
Prompt::Def::Pt
@ Pt
Definition: VarHolder.h:76
MmIdHelper::channel
int channel(const Identifier &id) const override
Definition: MmIdHelper.cxx:800
MmIdHelper::gasGap
int gasGap(const Identifier &id) const override
get the hashes
Definition: MmIdHelper.cxx:798
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
histogramDigitVariables::NSWMM_dig_stripLposX
std::vector< std::vector< double > > NSWMM_dig_stripLposX
Definition: MMLoadVariables.h:41
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
MuonGM::MuonDetectorManager::getMMReadoutElement
const MMReadoutElement * getMMReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:255
MuonGM::MMReadoutElement
An MMReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station con...
Definition: MMReadoutElement.h:23
entries
double entries
Definition: listroot.cxx:49
hitData_entry
Definition: MMT_struct.h:69
histogramDigitVariables::NSWMM_dig_charge
std::vector< std::vector< float > > NSWMM_dig_charge
Definition: MMLoadVariables.h:39
AtlasHitsVector::size
size_type size() const
Definition: AtlasHitsVector.h:143
histogramDigitVariables::NSWMM_dig_time
std::vector< std::vector< float > > NSWMM_dig_time
Definition: MMLoadVariables.h:38
AthMessaging::initMessaging
void initMessaging() const
Initialize our message level and MessageSvc.
Definition: AthMessaging.cxx:39
Muon::nsw::STGTPSegments::moduleIDBits::stationEta
constexpr uint8_t stationEta
1 to 3
Definition: NSWSTGTPDecodeBitmaps.h:127
Trk::PlaneSurface::localToGlobal
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final
Specified for PlaneSurface: LocalToGlobal method without dynamic memory allocation.
Definition: PlaneSurface.cxx:204
HepMC::generations
int generations(const T &p)
Method to return how many interactions a particle has undergone during simulation (TODO migrate to be...
Definition: MagicNumbers.h:302
AthMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
Definition: AthMessaging.h:132
MmIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int channel) const
Definition: MmIdHelper.cxx:736
Eta
@ Eta
Definition: RPCdef.h:8
digitWrapper
Definition: MMT_struct.h:82