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

#include <MMT_Diamond.h>

Inheritance diagram for MMT_Diamond:
Collaboration diagram for MMT_Diamond:

Public Member Functions

 MMT_Diamond (const MuonGM::MuonDetectorManager *detManager)
 
void clearEvent ()
 
void createRoads_fillHits (const unsigned int iterator, std::vector< hitData_entry > &hitDatas, const MuonGM::MuonDetectorManager *detManager, std::shared_ptr< MMT_Parameters > par, const int phi)
 
void findDiamonds (const unsigned int iterator, const int event)
 
double phiShift (const int n, const double phi, const char side) const
 
const std::vector< diamond_t > & getDiamondVector () const
 
diamond_t getDiamond (const unsigned int iterator) const
 
const std::vector< double > & getHitSlopes () const
 
std::vector< std::shared_ptr< MMT_Hit > > getHitVector (const unsigned int iterator) const
 
std::vector< slope_tgetSlopeVector (const unsigned int iterator) const
 
unsigned int getDiamondSize () const
 
int getUVfactor () const
 
void resetSlopes ()
 
void setTrapezoidalShape (bool flag)
 
void setUVfactor (int factor)
 
bool isTrapezoidalShape () const
 
int getStationPhi () const
 
int getRoadSize () const
 
void setRoadSize (int size)
 
int getRoadSizeUpX () const
 
void setRoadSizeUpX (int sizeUp)
 
int getRoadSizeDownX () const
 
void setRoadSizeDownX (int sizeDown)
 
int getRoadSizeUpUV () const
 
void setRoadSizeUpUV (int sizeUpUV)
 
int getRoadSizeDownUV () const
 
void setRoadSizeDownUV (int sizeDownUV)
 
char getSector () const
 
unsigned int getXthreshold () const
 
void setXthreshold (int threshold)
 
bool getUV () const
 
void setUV (bool flag)
 
unsigned int getUVthreshold () const
 
void setUVthreshold (int threshold)
 
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...
 
bool m_trapflag {}
 
int m_uvfactor {}
 
bool m_uvflag {}
 
int m_roadSize {}
 
int m_roadSizeUpX {}
 
int m_roadSizeDownX {}
 
int m_roadSizeUpUV {}
 
int m_roadSizeDownUV {}
 
int m_xthr {}
 
int m_uvthr {}
 
int m_phi {}
 
char m_sector {}
 
std::vector< diamond_tm_diamonds
 
std::vector< double > m_hitslopes
 
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 53 of file MMT_Diamond.h.

Constructor & Destructor Documentation

◆ MMT_Diamond()

MMT_Diamond::MMT_Diamond ( const MuonGM::MuonDetectorManager detManager)

Definition at line 7 of file MMT_Diamond.cxx.

7  : AthMessaging(Athena::getMessageSvc(), "MMT_Diamond") {
8  m_detManager = detManager;
9 }

Member Function Documentation

◆ clearEvent()

void MMT_Diamond::clearEvent ( )

Definition at line 11 of file MMT_Diamond.cxx.

11  {
12  if (!m_diamonds.empty()) {
13  for (auto &diam : m_diamonds) {
14  if (!diam.ev_roads.empty()) diam.ev_roads.clear();
15  if (!diam.ev_hits.empty()) diam.ev_hits.clear();
16  diam.slopes.clear();
17  }
18  m_diamonds.clear();
19  }
20 }

◆ createRoads_fillHits()

void MMT_Diamond::createRoads_fillHits ( const unsigned int  iterator,
std::vector< hitData_entry > &  hitDatas,
const MuonGM::MuonDetectorManager detManager,
std::shared_ptr< MMT_Parameters par,
const int  phi 
)

Definition at line 22 of file MMT_Diamond.cxx.

22  {
23  ATH_MSG_DEBUG("createRoads_fillHits: Feeding hitDatas Start");
24 
26  entry.wedgeCounter = iterator;
27  entry.sector = par->getSector();
28  entry.stationPhi = (par->getSector() == 'S') ? phi*2-1 : phi*2-2;
29 
30  std::string sector = (par->getSector() == 'L') ? "MML" : "MMS";
31 
32  /*
33  * The following for-loop merges all plane global coordinates in one single shot:
34  * X & Y are constant in all layers, for a given phi (Not used at the moment)
35  * Z (layer coordinates) changes only for Small and Large sectors --> USED and working!
36  */
37  std::vector<ROOT::Math::XYZVector> planeCoordinates{};
38  planeCoordinates.reserve(8);
39  for (unsigned int iphi = 0; iphi < 8; iphi++) {
40  Amg::Vector3D globalPos(0.0, 0.0, 0.0);
41  int multilayer = (iphi < 4) ? 1 : 2;
42  int gasgap = ((iphi+1)%4 == 0) ? 4 : (iphi+1)%4;
43  /*
44  * Strip 100 (or 200) chosen as good compromise, considering offline strips.
45  * channelMin() function (https://acode-browser1.usatlas.bnl.gov/lxr/source/athena/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/MmIdHelper.h?v=21.3#0123)
46  * could be used, instead of hardcoding the strip id, but it returns (always?) as initialized in level ranges
47  */
48  int strip = (iphi > 1 && iphi < 6) ? par->getMissedBottomStereoStrips()+1 : par->getMissedBottomEtaStrips()+1;
49  Identifier strip_id = detManager->mmIdHelper()->channelID(sector, 1, iphi+1, multilayer, gasgap, strip);
50  const MuonGM::MMReadoutElement* readout = detManager->getMMReadoutElement(strip_id);
51 
52  ROOT::Math::XYZVector coord(0.,0.,0.);
53  if (readout->stripGlobalPosition(strip_id, globalPos)) coord.SetXYZ(globalPos.x(), globalPos.y(), globalPos.z());
54  else ATH_MSG_WARNING("Wedge " << sector << " phi: " << iphi << " mult. " << multilayer << " gas " << gasgap << " | Unable to retrieve global positions");
55  planeCoordinates.push_back(coord);
56  }
57 
58  int nroad = 8192/this->getRoadSize();
59  static const double B = (1./std::tan(1.5/180.*M_PI));
60  int uvfactor = std::round( par->getlWidth() / (B * 0.4 * 2.)/this->getRoadSize() ); // full wedge has to be considered, i.e. S(L/M)2
61  this->setUVfactor(uvfactor);
62 
63  for (const auto &hit_entry : hitDatas) {
64  auto myhit = std::make_shared<MMT_Hit>(hit_entry, detManager, par, planeCoordinates);
65  if (myhit->verifyHit()) {
66  m_hitslopes.push_back(myhit->getRZSlope());
67  entry.ev_hits.push_back(myhit);
68  }
69  }
70  entry.side = (std::all_of(entry.ev_hits.begin(), entry.ev_hits.end(), [] (const auto &hit) { return hit->getStationEta() < 0; })) ? 'C' : 'A';
71 
72  for (int i = 0; i < nroad; i++) {
73  auto myroad = std::make_shared<MMT_Road>(sector[2], m_roadSize, m_roadSizeUpX, m_roadSizeDownX, m_roadSizeUpUV, m_roadSizeDownUV,
74  m_xthr, m_uvthr, i);
75  entry.ev_roads.push_back(myroad);
76 
77  int nuv = (this->getUV()) ? this->getUVfactor() : 0;
78  for (int uv = 1; uv <= nuv; uv++) {
79  if (i-uv < 0) continue;
80 
81  auto myroad_0 = std::make_shared<MMT_Road>(sector[2], m_roadSize, m_roadSizeUpX, m_roadSizeDownX, m_roadSizeUpUV, m_roadSizeDownUV,
82  m_xthr, m_uvthr, i, i+uv, i-uv);
83  entry.ev_roads.push_back(myroad_0);
84 
85  auto myroad_1 = std::make_shared<MMT_Road>(sector[2], m_roadSize, m_roadSizeUpX, m_roadSizeDownX, m_roadSizeUpUV, m_roadSizeDownUV,
86  m_xthr, m_uvthr, i, i-uv, i+uv);
87  entry.ev_roads.push_back(myroad_1);
88 
89  auto myroad_2 = std::make_shared<MMT_Road>(sector[2], m_roadSize, m_roadSizeUpX, m_roadSizeDownX, m_roadSizeUpUV, m_roadSizeDownUV,
90  m_xthr, m_uvthr, i, i+uv-1, i-uv);
91  entry.ev_roads.push_back(myroad_2);
92 
93  auto myroad_3 = std::make_shared<MMT_Road>(sector[2], m_roadSize, m_roadSizeUpX, m_roadSizeDownX, m_roadSizeUpUV, m_roadSizeDownUV,
94  m_xthr, m_uvthr, i, i-uv, i+uv-1);
95  entry.ev_roads.push_back(myroad_3);
96 
97  auto myroad_4 = std::make_shared<MMT_Road>(sector[2], m_roadSize, m_roadSizeUpX, m_roadSizeDownX, m_roadSizeUpUV, m_roadSizeDownUV,
98  m_xthr, m_uvthr, i, i-uv+1, i+uv);
99  entry.ev_roads.push_back(myroad_4);
100 
101  auto myroad_5 = std::make_shared<MMT_Road>(sector[2], m_roadSize, m_roadSizeUpX, m_roadSizeDownX, m_roadSizeUpUV, m_roadSizeDownUV,
102  m_xthr, m_uvthr, i, i+uv, i-uv+1);
103  entry.ev_roads.push_back(myroad_5);
104  }
105  }
106  m_diamonds.push_back(entry);
107  ATH_MSG_DEBUG("CreateRoadsAndFillHits: Feeding hitDatas Ended");
108 }

◆ findDiamonds()

void MMT_Diamond::findDiamonds ( const unsigned int  iterator,
const int  event 
)

Definition at line 110 of file MMT_Diamond.cxx.

110  {
111  if (m_diamonds[iterator].ev_hits.empty()) return;
112 
114  int bc_start = 999999;
115  int bc_end = -1;
116  int bc_wind = 4; // fixed time window (in bunch crossings) during which the algorithm collects ART hits
117  unsigned int ibc = 0;
118 
119  m_diamonds[iterator].slopes.clear();
120 
121  // Comparison with lambda function (easier to implement)
122  std::sort(m_diamonds[iterator].ev_hits.begin(), m_diamonds[iterator].ev_hits.end(), [](const auto &h1, const auto &h2){ return h1->getBC() < h2->getBC(); });
123  bc_start = m_diamonds[iterator].ev_hits.front()->getBC();
124  bc_end = m_diamonds[iterator].ev_hits.front()->getBC() + 16;
125  ATH_MSG_DEBUG("Window Start: " << bc_start << " - Window End: " << bc_end);
126 
127  for (const auto &road : m_diamonds[iterator].ev_roads) road->reset();
128 
129  std::vector<std::shared_ptr<MMT_Hit> > hits_now = {};
130  std::vector< std::pair<int, float> > vmm_same = {};
131  std::vector< std::pair<int, int> > addc_same = {};
132  std::vector<int> to_erase = {};
133  int n_addc = 4;
134  int n_vmm = 128;
135 
136  // each road makes independent triggers, evaluated on each BC
137  for (int bc = m_diamonds[iterator].ev_hits.front()->getBC(); bc < bc_end; bc++) {
138  // Cleaning stuff
139  hits_now.clear();
140 
141  for (unsigned int j = ibc; j < m_diamonds[iterator].ev_hits.size(); j++) {
142  if (m_diamonds[iterator].ev_hits[j]->getBC() == bc) hits_now.push_back(m_diamonds[iterator].ev_hits[j]);
143  else if (m_diamonds[iterator].ev_hits[j]->getBC() > bc) {
144  ibc = j;
145  break;
146  }
147  }
148 
149  // Simulate harware filters: ART hits + ADDC filter
150  for (unsigned int ib = 0; ib < 8; ib++) { //loop on plane from 0 to 7
151  // VMM-ART-hit filter
152  for (int j = 0; j < n_vmm; j++) {
153  vmm_same.clear();
154  unsigned int k = 0;
155  for (auto hit_pointer: hits_now) {
156  if (static_cast<unsigned int>(hit_pointer->getPlane()) != ib) continue;
157  if (hit_pointer->getVMM() == j){
158  vmm_same.push_back( std::make_pair(k, hit_pointer->getTime()) );
159  }
160  k++;
161  }
162  if (vmm_same.size() > 1) {
163  to_erase.clear();
164  std::sort(vmm_same.begin(), vmm_same.end(), [](const std::pair<int, float>& p1, const std::pair<int, float>& p2) { return p1.second < p2.second; });
165  for (auto pair: vmm_same) to_erase.push_back(pair.first);
166  // reverse and erase
167  std::sort(to_erase.rbegin(), to_erase.rend());
168  to_erase.pop_back(); //removes the hit with the earliest time
169  for (auto l : to_erase) {
170  hits_now.erase(hits_now.begin() + l);
171  }
172  }
173  }
174  // ADDC-like filter
175  for (int ia = 0; ia < n_addc; ia++) { // From 0 to 3 (local index of the ART ASIC in the layer)
176  addc_same.clear();
177  for (unsigned int k = 0; k < hits_now.size(); k++) {
178  if ((unsigned int)(hits_now[k]->getPlane()) != ib) continue;
179  int istrip = (std::abs(hits_now[k]->getStationEta())-1) * (64*8*10) + hits_now[k]->getChannel(); //needed the global strip index on the sector layer (getChannel returns chamber's local strip index)
180  if (hits_now[k]->getART() == ia) addc_same.emplace_back(k, istrip);
181  }
182 
183  if (addc_same.size() > 8) {
184  // priority encode the hits by channel number; remember hits 8+
185  to_erase.clear();
186 
187  std::sort(addc_same.begin(), addc_same.end(), [](const std::pair<int, int>& p1, const std::pair<int, int>& p2) { return p1.second < p2.second; });
188  for (unsigned int it = 8; it < addc_same.size(); it++) to_erase.push_back(addc_same[it].first);
189 
190  // reverse and erase
191  std::sort(to_erase.rbegin(), to_erase.rend());
192  for (auto l : to_erase) {
193  hits_now.erase(hits_now.begin() + l);
194  }
195  }
196  }
197  } // loop on plane for VMM and ART ASIC filter
198 
199  for (auto &road : m_diamonds[iterator].ev_roads) {
200  road->incrementAge(bc_wind);
201  if (!hits_now.empty()) road->addHits(hits_now);
202 
203  if (road->checkCoincidences(bc_wind) && bc >= (bc_start - 1)) {
204 
205  ATH_MSG_DEBUG("------------------------------------------------------------------");
206  ATH_MSG_DEBUG("Coincidence FOUND @BC: " << bc);
207  ATH_MSG_DEBUG("Road (x, u, v, count): (" << road->iRoadx() << ", " << road->iRoadu() << ", " << road->iRoadv() << ", " << road->countHits() << ")");
208  ATH_MSG_DEBUG("------------------------------------------------------------------");
209 
210  std::vector<int> bcidVec;
211  for (const auto &hit: road->getHitVector()) {
212  bcidVec.push_back(hit->getBC());
213  }
214  std::sort(bcidVec.begin(), bcidVec.end());
215 
216  // evaluating mode of the BCID of the hits in the diamond
217  // default setting in the firmware is the mode of the hits's bcid in the diamond
218  int bcidVal=bcidVec.at(0), bcidCount=1, modeCount=1, bcidMode=bcidVec.at(0);
219  for (unsigned int i=1; i<bcidVec.size(); i++){
220  if (bcidVec.at(i) == bcidVal){
221  bcidCount++;
222  } else {
223  bcidCount = 1;
224  bcidVal = bcidVec.at(i);
225  }
226  if (bcidCount > modeCount) {
227  modeCount = bcidCount;
228  bcidMode = bcidVal;
229  }
230  }
231 
232  slope_t slope;
233  slope.event = event;
234  slope.BC = bcidMode;
235  slope.totalCount = road->countHits();
236  slope.realCount = road->countRealHits();
237  slope.iRoad = road->iRoadx();
238  slope.iRoadu = road->iRoadu();
239  slope.iRoadv = road->iRoadv();
240  slope.uvbkg = road->countUVHits(true); // the bool in the following 4 functions refers to background/noise hits
241  slope.xbkg = road->countXHits(true);
242  slope.uvmuon = road->countUVHits(false);
243  slope.xmuon = road->countXHits(false);
244  slope.age = slope.BC - bc_start;
245  slope.mxl = road->mxl();
246  slope.my = road->avgSofX(); // defined as my in ATL-COM-UPGRADE-2015-033
247  slope.uavg = road->avgSofUV(2,4);
248  slope.vavg = road->avgSofUV(3,5);
249  static const double tan_stereo_angle = std::tan(0.02618); // The stereo angle is fixed and can be hardcoded
250  slope.mx = (slope.uavg-slope.vavg)/(2.*tan_stereo_angle);
251  double theta = std::atan(std::sqrt(std::pow(slope.mx,2) + std::pow(slope.my,2)));
252  slope.theta = (slope.my > 0.) ? theta : M_PI - theta;
253  slope.eta = -1.*std::log(std::tan(slope.theta/2.));
254  slope.dtheta = (slope.mxl - slope.my)/(1. + slope.mxl*slope.my);
255  slope.side = (slope.my > 0.) ? 'A' : 'C';
256  double phi = std::atan(slope.mx/slope.my);
257  double phiShifted = this->phiShift(this->getDiamond(iterator).stationPhi, phi, slope.side);
258  slope.phi = phi;
259  slope.phiShf = phiShifted;
260  slope.lowRes = road->evaluateLowRes();
261 
262  m_diamonds[iterator].slopes.push_back(slope);
263  }
264  }
265  }
267  ATH_MSG_DEBUG("Processing roads took " << std::chrono::duration_cast<std::chrono::milliseconds>(t1 - t0).count() << " ms");
268 }

◆ getDiamond()

diamond_t MMT_Diamond::getDiamond ( const unsigned int  iterator) const
inline

Definition at line 62 of file MMT_Diamond.h.

62 { return m_diamonds.at(iterator); }

◆ getDiamondSize()

unsigned int MMT_Diamond::getDiamondSize ( ) const
inline

Definition at line 66 of file MMT_Diamond.h.

66 { return m_diamonds.size(); }

◆ getDiamondVector()

const std::vector<diamond_t>& MMT_Diamond::getDiamondVector ( ) const
inline

Definition at line 61 of file MMT_Diamond.h.

61 { return m_diamonds; }

◆ getHitSlopes()

const std::vector<double>& MMT_Diamond::getHitSlopes ( ) const
inline

Definition at line 63 of file MMT_Diamond.h.

63 { return m_hitslopes; }

◆ getHitVector()

std::vector<std::shared_ptr<MMT_Hit> > MMT_Diamond::getHitVector ( const unsigned int  iterator) const
inline

Definition at line 64 of file MMT_Diamond.h.

64 { return m_diamonds.at(iterator).ev_hits; }

◆ getRoadSize()

int MMT_Diamond::getRoadSize ( ) const
inline

Definition at line 74 of file MMT_Diamond.h.

74 { return m_roadSize; }

◆ getRoadSizeDownUV()

int MMT_Diamond::getRoadSizeDownUV ( ) const
inline

Definition at line 82 of file MMT_Diamond.h.

82 { return m_roadSizeDownUV; }

◆ getRoadSizeDownX()

int MMT_Diamond::getRoadSizeDownX ( ) const
inline

Definition at line 78 of file MMT_Diamond.h.

78 { return m_roadSizeDownX; }

◆ getRoadSizeUpUV()

int MMT_Diamond::getRoadSizeUpUV ( ) const
inline

Definition at line 80 of file MMT_Diamond.h.

80 { return m_roadSizeUpUV; }

◆ getRoadSizeUpX()

int MMT_Diamond::getRoadSizeUpX ( ) const
inline

Definition at line 76 of file MMT_Diamond.h.

76 { return m_roadSizeUpX; }

◆ getSector()

char MMT_Diamond::getSector ( ) const
inline

Definition at line 84 of file MMT_Diamond.h.

84 { return m_sector; }

◆ getSlopeVector()

std::vector<slope_t> MMT_Diamond::getSlopeVector ( const unsigned int  iterator) const
inline

Definition at line 65 of file MMT_Diamond.h.

65 { return m_diamonds.at(iterator).slopes; }

◆ getStationPhi()

int MMT_Diamond::getStationPhi ( ) const
inline

Definition at line 73 of file MMT_Diamond.h.

73 { return m_phi; }

◆ getUV()

bool MMT_Diamond::getUV ( ) const
inline

Definition at line 87 of file MMT_Diamond.h.

87 { return m_uvflag; }

◆ getUVfactor()

int MMT_Diamond::getUVfactor ( ) const
inline

Definition at line 67 of file MMT_Diamond.h.

67 { return m_uvfactor; }

◆ getUVthreshold()

unsigned int MMT_Diamond::getUVthreshold ( ) const
inline

Definition at line 89 of file MMT_Diamond.h.

89 { return m_uvthr; }

◆ getXthreshold()

unsigned int MMT_Diamond::getXthreshold ( ) const
inline

Definition at line 85 of file MMT_Diamond.h.

85 { return m_xthr; }

◆ 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 }

◆ isTrapezoidalShape()

bool MMT_Diamond::isTrapezoidalShape ( ) const
inline

Definition at line 71 of file MMT_Diamond.h.

71 { return m_trapflag; }

◆ 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 }

◆ phiShift()

double MMT_Diamond::phiShift ( const int  n,
const double  phi,
const char  side 
) const

Definition at line 270 of file MMT_Diamond.cxx.

270  {
271  double Phi = (side == 'A') ? -phi : phi;
272  double shift = (n > 8) ? (16-n)*M_PI/8. : n*M_PI/8.;
273  if (n < 8) return (Phi + shift);
274  else if (n == 8) return (Phi + ((Phi > 0.) ? -1. : 1.)*shift);
275  else return (Phi - shift);
276 }

◆ resetSlopes()

void MMT_Diamond::resetSlopes ( )

Definition at line 278 of file MMT_Diamond.cxx.

278  {
279  if (!m_hitslopes.empty()) m_hitslopes.clear();
280 }

◆ 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 }

◆ setRoadSize()

void MMT_Diamond::setRoadSize ( int  size)
inline

Definition at line 75 of file MMT_Diamond.h.

75 { m_roadSize = size; }

◆ setRoadSizeDownUV()

void MMT_Diamond::setRoadSizeDownUV ( int  sizeDownUV)
inline

Definition at line 83 of file MMT_Diamond.h.

83 { m_roadSizeDownUV = sizeDownUV; }

◆ setRoadSizeDownX()

void MMT_Diamond::setRoadSizeDownX ( int  sizeDown)
inline

Definition at line 79 of file MMT_Diamond.h.

79 { m_roadSizeDownX = sizeDown; }

◆ setRoadSizeUpUV()

void MMT_Diamond::setRoadSizeUpUV ( int  sizeUpUV)
inline

Definition at line 81 of file MMT_Diamond.h.

81 { m_roadSizeUpUV = sizeUpUV; }

◆ setRoadSizeUpX()

void MMT_Diamond::setRoadSizeUpX ( int  sizeUp)
inline

Definition at line 77 of file MMT_Diamond.h.

77 { m_roadSizeUpX = sizeUp; }

◆ setTrapezoidalShape()

void MMT_Diamond::setTrapezoidalShape ( bool  flag)
inline

Definition at line 69 of file MMT_Diamond.h.

69 { m_trapflag = flag; }

◆ setUV()

void MMT_Diamond::setUV ( bool  flag)
inline

Definition at line 88 of file MMT_Diamond.h.

88 { m_uvflag = flag; }

◆ setUVfactor()

void MMT_Diamond::setUVfactor ( int  factor)
inline

Definition at line 70 of file MMT_Diamond.h.

70 { m_uvfactor = factor; }

◆ setUVthreshold()

void MMT_Diamond::setUVthreshold ( int  threshold)
inline

Definition at line 90 of file MMT_Diamond.h.

90 { m_uvthr = threshold; }

◆ setXthreshold()

void MMT_Diamond::setXthreshold ( int  threshold)
inline

Definition at line 86 of file MMT_Diamond.h.

86 { m_xthr = threshold; }

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* MMT_Diamond::m_detManager {}
private

MuonDetectorManager.

Definition at line 93 of file MMT_Diamond.h.

◆ m_diamonds

std::vector<diamond_t> MMT_Diamond::m_diamonds
private

Definition at line 102 of file MMT_Diamond.h.

◆ m_hitslopes

std::vector<double> MMT_Diamond::m_hitslopes
private

Definition at line 103 of file MMT_Diamond.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_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.

◆ m_phi

int MMT_Diamond::m_phi {}
private

Definition at line 99 of file MMT_Diamond.h.

◆ m_roadSize

int MMT_Diamond::m_roadSize {}
private

Definition at line 97 of file MMT_Diamond.h.

◆ m_roadSizeDownUV

int MMT_Diamond::m_roadSizeDownUV {}
private

Definition at line 97 of file MMT_Diamond.h.

◆ m_roadSizeDownX

int MMT_Diamond::m_roadSizeDownX {}
private

Definition at line 97 of file MMT_Diamond.h.

◆ m_roadSizeUpUV

int MMT_Diamond::m_roadSizeUpUV {}
private

Definition at line 97 of file MMT_Diamond.h.

◆ m_roadSizeUpX

int MMT_Diamond::m_roadSizeUpX {}
private

Definition at line 97 of file MMT_Diamond.h.

◆ m_sector

char MMT_Diamond::m_sector {}
private

Definition at line 100 of file MMT_Diamond.h.

◆ m_trapflag

bool MMT_Diamond::m_trapflag {}
private

Definition at line 94 of file MMT_Diamond.h.

◆ m_uvfactor

int MMT_Diamond::m_uvfactor {}
private

Definition at line 95 of file MMT_Diamond.h.

◆ m_uvflag

bool MMT_Diamond::m_uvflag {}
private

Definition at line 96 of file MMT_Diamond.h.

◆ m_uvthr

int MMT_Diamond::m_uvthr {}
private

Definition at line 98 of file MMT_Diamond.h.

◆ m_xthr

int MMT_Diamond::m_xthr {}
private

Definition at line 98 of file MMT_Diamond.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
slope_t::eta
double eta
Definition: MMT_Diamond.h:35
Muon::nsw::STGTPSegments::moduleIDBits::stationPhi
constexpr uint8_t stationPhi
station Phi 1 to 8
Definition: NSWSTGTPDecodeBitmaps.h:161
SiliconTech::strip
@ strip
slope_t::BC
int BC
Definition: MMT_Diamond.h:18
MMT_Diamond::getRoadSize
int getRoadSize() const
Definition: MMT_Diamond.h:74
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
slope_t::uavg
double uavg
Definition: MMT_Diamond.h:31
slope_t::my
double my
Definition: MMT_Diamond.h:30
slope_t::xmuon
unsigned int xmuon
Definition: MMT_Diamond.h:27
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:75
MuonGM::round
float round(const float toRound, const unsigned int decimals)
Definition: Mdt.cxx:27
ALFA_EventTPCnv_Dict::t0
std::vector< ALFA_RawData_p1 > t0
Definition: ALFA_EventTPCnvDict.h:42
TRTCalib_cfilter.p1
p1
Definition: TRTCalib_cfilter.py:130
ALFA_EventTPCnv_Dict::t1
std::vector< ALFA_RawDataCollection_p1 > t1
Definition: ALFA_EventTPCnvDict.h:43
skel.it
it
Definition: skel.GENtoEVGEN.py:396
M_PI
#define M_PI
Definition: ActiveFraction.h:11
MMT_Diamond::m_uvfactor
int m_uvfactor
Definition: MMT_Diamond.h:95
PlotCalibFromCool.ib
ib
Definition: PlotCalibFromCool.py:419
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
slope_t::iRoadu
int iRoadu
Definition: MMT_Diamond.h:22
Phi
@ Phi
Definition: RPCdef.h:8
MMT_Diamond::m_uvthr
int m_uvthr
Definition: MMT_Diamond.h:98
MuonGM::MuonDetectorManager::mmIdHelper
const MmIdHelper * mmIdHelper() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:244
slope_t::totalCount
unsigned int totalCount
Definition: MMT_Diamond.h:19
MMT_Diamond::getDiamond
diamond_t getDiamond(const unsigned int iterator) const
Definition: MMT_Diamond.h:62
read_hist_ntuple.h1
h1
Definition: read_hist_ntuple.py:21
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
slope_t::vavg
double vavg
Definition: MMT_Diamond.h:32
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
MMT_Diamond::m_sector
char m_sector
Definition: MMT_Diamond.h:100
MMT_Diamond::getUV
bool getUV() const
Definition: MMT_Diamond.h:87
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
MMT_Diamond::phiShift
double phiShift(const int n, const double phi, const char side) const
Definition: MMT_Diamond.cxx:270
TRT::Hit::side
@ side
Definition: HitInfo.h:83
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
slope_t::side
char side
Definition: MMT_Diamond.h:37
TRTCalib_cfilter.p2
p2
Definition: TRTCalib_cfilter.py:131
AthMessaging::AthMessaging
AthMessaging()
Default constructor:
python.handimod.now
now
Definition: handimod.py:675
MMT_Diamond::m_roadSizeDownX
int m_roadSizeDownX
Definition: MMT_Diamond.h:97
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
slope_t::dtheta
double dtheta
Definition: MMT_Diamond.h:36
lumiFormat.i
int i
Definition: lumiFormat.py:85
MMT_Diamond::m_roadSizeUpUV
int m_roadSizeUpUV
Definition: MMT_Diamond.h:97
beamspotman.n
n
Definition: beamspotman.py:731
slope_t::phiShf
double phiShf
Definition: MMT_Diamond.h:39
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
MuonGM::MMReadoutElement::stripGlobalPosition
bool stripGlobalPosition(const Identifier &id, Amg::Vector3D &gpos) const
Definition: MMReadoutElement.h:280
slope_t::theta
double theta
Definition: MMT_Diamond.h:34
master.flag
bool flag
Definition: master.py:29
slope_t::mx
double mx
Definition: MMT_Diamond.h:33
MMT_Diamond::m_roadSize
int m_roadSize
Definition: MMT_Diamond.h:97
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
MMT_Diamond::m_trapflag
bool m_trapflag
Definition: MMT_Diamond.h:94
slope_t::iRoad
int iRoad
Definition: MMT_Diamond.h:21
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
slope_t::iRoadv
int iRoadv
Definition: MMT_Diamond.h:23
MMT_Diamond::m_roadSizeUpX
int m_roadSizeUpX
Definition: MMT_Diamond.h:97
MMT_Diamond::m_uvflag
bool m_uvflag
Definition: MMT_Diamond.h:96
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
diamond_t
Definition: MMT_Diamond.h:43
MMT_Diamond::m_xthr
int m_xthr
Definition: MMT_Diamond.h:98
dqt_zlumi_alleff_HIST.B
B
Definition: dqt_zlumi_alleff_HIST.py:110
MMT_Diamond::m_hitslopes
std::vector< double > m_hitslopes
Definition: MMT_Diamond.h:103
slope_t::age
int age
Definition: MMT_Diamond.h:28
slope_t::realCount
unsigned int realCount
Definition: MMT_Diamond.h:20
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
JetVoronoiDiagramHelpers::coord
double coord
Definition: JetVoronoiDiagramHelpers.h:45
MMT_Diamond::m_diamonds
std::vector< diamond_t > m_diamonds
Definition: MMT_Diamond.h:102
MMT_Diamond::m_roadSizeDownUV
int m_roadSizeDownUV
Definition: MMT_Diamond.h:97
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
MMT_Diamond::getUVfactor
int getUVfactor() const
Definition: MMT_Diamond.h:67
slope_t::lowRes
bool lowRes
Definition: MMT_Diamond.h:40
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
slope_t::phi
double phi
Definition: MMT_Diamond.h:38
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
slope_t::mxl
double mxl
Definition: MMT_Diamond.h:29
MMT_Diamond::m_phi
int m_phi
Definition: MMT_Diamond.h:99
MuonGM::MMReadoutElement
An MMReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station con...
Definition: MMReadoutElement.h:25
slope_t::xbkg
unsigned int xbkg
Definition: MMT_Diamond.h:25
AthMessaging::initMessaging
void initMessaging() const
Initialize our message level and MessageSvc.
Definition: AthMessaging.cxx:39
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
slope_t
Definition: MMT_Diamond.h:13
pow
constexpr int pow(int base, int exp) noexcept
Definition: ap_fixedTest.cxx:15
MmIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int channel) const
Definition: MmIdHelper.cxx:736
dumpTgcDigiThreshold.threshold
list threshold
Definition: dumpTgcDigiThreshold.py:34
slope_t::event
unsigned int event
Definition: MMT_Diamond.h:17
MMT_Diamond::setUVfactor
void setUVfactor(int factor)
Definition: MMT_Diamond.h:70
slope_t::uvbkg
unsigned int uvbkg
Definition: MMT_Diamond.h:24
MMT_Diamond::m_detManager
const MuonGM::MuonDetectorManager * m_detManager
MuonDetectorManager.
Definition: MMT_Diamond.h:93
fitman.k
k
Definition: fitman.py:528
slope_t::uvmuon
unsigned int uvmuon
Definition: MMT_Diamond.h:26
Identifier
Definition: IdentifierFieldParser.cxx:14