ATLAS Offline Software
VP1TriggerHandleEF.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /***********************************************************************************
6  * @Package : VP1TriggerSystems
7  * @Class : VP1TriggerHandleEF
8  *
9  * @brief : EF Trigger Data Handle
10  *
11  * @author : Manuel Proissl <mproissl@cern.ch> - University of Edinburgh
12  ***********************************************************************************/
13 
14 //Local includes
16 
17 //EF includes
30 
31 //Other includes
32 #include <math.h>
33 
34 //Trigger data vectors
35 std::vector<QString> h_type, h_source, h_id; //header data
36 std::vector<std::vector<QString> > t_data; //track data
37 
38 //Data structure settings
39 //--- Note: When making changes, do adapt vector ---
40 //--- loading order in loadTrackContainer() ---
41 const int HWIDTH = 3; //header width
42 const int TYPIDX = 0; //h_type index
43 const int SRCIDX = 1; //h_source index
44 const int TIDIDX = 2; //h_id index
45 
46 //MuonEF and MuGirl count
48 
49 //Muon Track Info: Instant holders
52 
53 //Muon Track Info: Names
54 std::string muonTrackName[18] =
55  {
56  "Charge", //ID: 0
57  "iPt", //ID: 1
58  "Theta", //ID: 2
59  "Phi", //ID: 3
60  "m", //ID: 4
61  "chi2", //ID: 5
62  "chi2prob", //ID: 6
63  "posX", //ID: 7
64  "posY", //ID: 8
65  "posZ", //ID: 9
66  "NCscHitsEta", //ID: 10
67  "NCscHitsPhi", //ID: 11
68  "NTgcHitsEta", //ID: 12
69  "NTgcHitsPhi", //ID: 13
70  "NRpcHitsEta", //ID: 14
71  "NRpcHitsPhi", //ID: 15
72  "d0", //ID: 16
73  "z0" //ID: 17
74  };
75 
76 
77 //Muon Track Info: Data
78 //_____________________________________________________________________________________________
80 {
81  double data=-101;
82 
83  if(type=="s_mef" || type=="s_mg" || type=="e_mef" || type=="e_mg") {
84  switch(id)
85  {
86  case 0: data = muonEFTrack->Charge(); break;
87  case 1: data = muonEFTrack->iPt(); break;
88  case 2: data = muonEFTrack->cotTh(); break;
89  case 3: data = muonEFTrack->phi(); break;
90  case 4: data = muonEFTrack->m(); break;
91  case 5: data = muonEFTrack->chi2(); break;
92  case 6: data = muonEFTrack->chi2prob(); break;
93  case 7: data = muonEFTrack->posX(); break;
94  case 8: data = muonEFTrack->posY(); break;
95  case 9: data = muonEFTrack->posZ(); break;
96  case 10: data = muonEFTrack->NCscHitsEta(); break;
97  case 11: data = muonEFTrack->NCscHitsPhi(); break;
98  case 12: data = muonEFTrack->NTgcHitsEta(); break;
99  case 13: data = muonEFTrack->NTgcHitsPhi(); break;
100  case 14: data = muonEFTrack->NRpcHitsEta(); break;
101  case 15: data = muonEFTrack->NRpcHitsPhi(); break;
102  case 16: data = muonEFTrack->d0(); break;
103  case 17: data = muonEFTrack->z0(); break;
104  default: data = -102;
105  }
106  } else if(type=="c_mef" || type=="c_mg") {
107  switch(id)
108  {
109  case 0: data = muonEFCbTrack->Charge(); break;
110  case 1: data = muonEFCbTrack->iPt(); break;
111  case 2: data = muonEFCbTrack->cotTh(); break;
112  case 3: data = muonEFCbTrack->phi(); break;
113  case 4: data = muonEFCbTrack->m(); break;
114  case 5: data = muonEFCbTrack->chi2(); break;
115  case 6: data = muonEFCbTrack->chi2prob(); break;
116  case 7: data = muonEFCbTrack->posX(); break;
117  case 8: data = muonEFCbTrack->posY(); break;
118  case 9: data = muonEFCbTrack->posZ(); break;
119  case 10: data = muonEFCbTrack->NCscHitsEta(); break;
120  case 11: data = muonEFCbTrack->NCscHitsPhi(); break;
121  case 12: data = muonEFCbTrack->NTgcHitsEta(); break;
122  case 13: data = muonEFCbTrack->NTgcHitsPhi(); break;
123  case 14: data = muonEFCbTrack->NRpcHitsEta(); break;
124  case 15: data = muonEFCbTrack->NRpcHitsPhi(); break;
125  case 16: data = muonEFCbTrack->d0(); break;
126  case 17: data = muonEFCbTrack->z0(); break;
127  default: data = -103;
128  }
129  }
130  else
131  log_error("muonTrackData(): invalid type!");
132 
133  return data;
134 }//END: muonTrackData
135 
136 
137 //Query TrackContainer and via loadMuonTrack() store track info to corresponding vectors
138 //_____________________________________________________________________________________________
140 {
141  //VARs
142  int mt=0; //muon flag: type id
143  QString type="_"; //muon flag: type name
144  int trackNo=0;
145 
146  //Resets
147  h_type.clear();
148  h_source.clear();
149  h_id.clear();
150  t_data.clear();
151  m_trigData.clear();
152  count_mef=0;
153  count_mg=0;
154 
155  if(m_containerEF->hasTrack()) { //Muon in RoI
156  const TrigMuonEFInfoTrackContainer *tc = m_containerEF->TrackContainer(); //TrackContainer: more than one muon in RoI
158 
159  for(TrackItr = tc->begin(); TrackItr!=tc->end(); ++TrackItr) {
160  const TrigMuonEFInfoTrack* muonInfo = (*TrackItr);
161  mt = int(muonInfo->MuonType()); //<1> MuonEF, <2> MuGirl
162 
163  //Safety check
164  if(mt!=1 && mt!=2) {
165  log_error("loadTrackContainer(): invalid muon type flag found: "+VP1String::str(mt));
166  return false;
167  }
168 
169  //-----------------------------------------------------------------------
170  muonEFTrack = muonInfo->SpectrometerTrack();
171  if(mt==1) type="s_mef"; //-> (S)pec. (M)uon(EF)
172  else if(mt==2) type="s_mg"; //-> (S)pec. (M)u(G)irl
173 
174  if(muonEFTrack)
175  loadMuonTrack(trackNo++,type);
176  else
177  log_info("loadTrackContainer(): no SpectrometerTrack found");
178 
179  //-----------------------------------------------------------------------
180  muonEFTrack = muonInfo->ExtrapolatedTrack();
181  if(mt==1) type="e_mef"; //-> (E)xtra. (M)uon(EF)
182  else if(mt==2) type="e_mg"; //-> (E)xtra. (M)u(G)irl
183 
184  if(muonEFTrack)
185  loadMuonTrack(trackNo++,type);
186  else
187  log_info("loadTrackContainer(): no ExtrapolatedTrack found");
188 
189  //-----------------------------------------------------------------------
190  muonEFCbTrack = muonInfo->CombinedTrack();
191  if(mt==1) type="c_mef"; //-> (C)omb. (M)uon(EF)
192  else if(mt==2) type="c_mg"; //-> (C)omb. (M)u(G)irl
193 
194  if(muonEFCbTrack)
195  loadMuonTrack(trackNo++,type);
196  else
197  log_info("loadTrackContainer(): no CombinedTrack found");
198  }//loop
199 
200  //ASSIGN DATA STRUCTURE AND EXPORT TO EF TRIGGER HANDLE DATA VECTOR ------->
201  /*************************************************************
202  < HEADER > < TRACK DATA ... >
203  | | | | |
204  TYPE SOURCE ID DATA - DATA - ...
205 
206  TYPE: MuonEF, MuGirl
207  [y-y correspondence to SOURCE]
208  SOURCE: SpectrometerTrack, ExtrapolatedTrack, CombinedTrack
209  [y-x correspondence to DATA]
210  ID: Charge, iPT, etc.
211  [y-y correspondence to DATA]
212  DATA: values corresponding to ID
213  *************************************************************/
214  if(int(h_type.size())!=0 && int(h_source.size())!=0 && int(h_id.size())!=0 && int(t_data.size())!=0 && int(m_trigData.size())==0) {
215  if(int(h_type.size())==int(h_source.size()) && int(h_source.size())==int(t_data.size())) {
216  m_trigData.push_back(h_type);
217  m_trigData.push_back(h_source);
218  m_trigData.push_back(h_id);
219  for(int q=0; q<int(t_data.size()); ++q)
220  m_trigData.push_back(t_data[q]);
221  return true;
222  }//size match
223  }//data available
224  //-------------------------------------------------------------------------<
225  return false;
226  }//hasTrack
227  else
228  log_warning("loadTrackContainer(): no tracks found in EF container.");
229  return false;
230 }//END: loadTrackContainer
231 
232 
233 //Load Muon Track data to corresponding vectors
234 //_____________________________________________________________________________________________
236 {
237  //PROCESS TRACK DATA AND STORE IN TEMP. VECTOR ---------------------------->
238  std::vector<QString> data;
239 
240  for(int i=0; i < int(sizeof muonTrackName/sizeof(std::string)); ++i) {
241  if(trackNo==0) h_id.push_back(QString::fromStdString(muonTrackName[i]));
242  if(muonTrackName[i]=="Theta") {
243  double cotTh = muonTrackData(type,i);
244  if(cotTh!=0) data.push_back(QString::number((M_PI_2)-std::atan(1/cotTh)));
245  else data.push_back(QString::number((M_PI_2)-std::atan(10^10)));
246  }
247  else {
248  data.push_back(QString::number(muonTrackData(type,i)));
249  }
250  }
251  //-------------------------------------------------------------------------<
252 
253  //LOAD HEADER TYPE, SOURCE AND DATA TO TEMP. VECTORS ---------------------->
254  if(int(data.size())!=0) {
255  if(type=="s_mef") { //SpectrometerTrack - MuonEF
256  //Header Update
257  h_type.push_back("MuonEF");
258  h_source.push_back("SpectrometerTrack");
259  //Track Update
260  t_data.push_back(data);
261  ++count_mef;
262  }
263  else if(type=="s_mg") { //SpectrometerTrack - MuGirl
264  //Header Update
265  h_type.push_back("MuGirl");
266  h_source.push_back("SpectrometerTrack");
267  //Track Update
268  t_data.push_back(data);
269  ++count_mg;
270  }
271  else if(type=="e_mef") { //ExtrapolatedTrack - MuonEF
272  //Header Update
273  h_type.push_back("MuonEF");
274  h_source.push_back("ExtrapolatedTrack");
275  //Track Update
276  t_data.push_back(data);
277  ++count_mef;
278  }
279  else if(type=="e_mg") { //ExtrapolatedTrack - MuGirl
280  //Header Update
281  h_type.push_back("MuGirl");
282  h_source.push_back("ExtrapolatedTrack");
283  //Track Update
284  t_data.push_back(data);
285  ++count_mg;
286  }
287  else if(type=="c_mef") { //CombinedTrack - MuonEF
288  //Header Update
289  h_type.push_back("MuonEF");
290  h_source.push_back("CombinedTrack");
291  //Track Update
292  t_data.push_back(data);
293  ++count_mef;
294  }
295  else if(type=="c_mg") { //CombinedTrack - MuGirl
296  //Header Update
297  h_type.push_back("MuGirl");
298  h_source.push_back("CombinedTrack");
299  //Track Update
300  t_data.push_back(data);
301  ++count_mg;
302  }
303  else
304  log_error("loadMuonTrack(): invalid type!");
305  }//data available
306  else
307  log_error("loadMuonTrack(): no data available!");
308  //-------------------------------------------------------------------------<
309 }//END: loadMuonTrack
310 
311 
312 //Processes EF data item with storage in QTreeWidgetItem and returns processing success/failure
313 //_____________________________________________________________________________________________
315 {
316  //Query TrackContainer and store
317  //data to corresponding vectors
318  bool status = loadTrackContainer();
319 
320  if(status) {
321  //VARs
322  m_qtrigData = new QTreeWidgetItem(0);
323  m_qtrigData->setText(0, QString(m_trigID));
324  int avail=0;
325 
326  //DEFs
327  QString sep = " = ";
328  int TWIDTH = int(m_trigData.size())-HWIDTH;
329 
330  if(int(m_trigData.size())>HWIDTH) {
331  if(int(m_trigData[TYPIDX].size())==int(m_trigData[SRCIDX].size()) && int(m_trigData[SRCIDX].size())==TWIDTH) {
332 
333  //### chainIDs ### >>>
334  if(!(m_chainIDs.isEmpty())) {
335  QTreeWidgetItem* chain = new QTreeWidgetItem(m_qtrigData);
336  chain->setText(0, QString("Passed Triggers"));
337  QList<QTreeWidgetItem *> chainItems;
338  for(int i=0; i < int(m_chainIDs.size()); ++i)
339  chainItems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(m_chainIDs[i])));
340  chain->insertChildren(0, chainItems);
341  }//chain data available
342 
343  //### EF ### >>>>
344  if(count_mef!=0) {
345  QTreeWidgetItem* eftree = new QTreeWidgetItem(m_qtrigData);
346  eftree->setText(0, QString("Muon Type 1 -> EF"));
347 
348  for(int i=0; i<TWIDTH; ++i) {
349  if(m_trigData[TYPIDX][i].contains("MuonEF") && m_trigData[SRCIDX][i].contains("Spectrometer")) {
350  QTreeWidgetItem* eftree_s = new QTreeWidgetItem(eftree);
351  eftree_s->setText(0, QString("Spectrometer Track-")+QString::number(i+1));
352  QList<QTreeWidgetItem *> efitem_s;
353  for(int j=0; j < int(m_trigData[i+HWIDTH].size()); ++j) {
354  efitem_s.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(m_trigData[TIDIDX][j]+sep+m_trigData[i+HWIDTH][j])));
355  }
356  eftree_s->insertChildren(0, efitem_s);
357  }
358  }//loop
359 
360  for(int i=0; i<TWIDTH; ++i) {
361  if(m_trigData[TYPIDX][i].contains("MuonEF") && m_trigData[SRCIDX][i].contains("Extrapolated")) {
362  QTreeWidgetItem* eftree_e = new QTreeWidgetItem(eftree);
363  eftree_e->setText(0, QString("Extrapolated Track-")+QString::number(i+1));
364  QList<QTreeWidgetItem *> efitem_e;
365  for(int j=0; j < int(m_trigData[i+HWIDTH].size()); ++j) {
366  efitem_e.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(m_trigData[TIDIDX][j]+sep+m_trigData[i+HWIDTH][j])));
367  }
368  eftree_e->insertChildren(0, efitem_e);
369  }
370  }//loop
371 
372  for(int i=0; i<TWIDTH; ++i) {
373  if(m_trigData[TYPIDX][i].contains("MuonEF") && m_trigData[SRCIDX][i].contains("Combined")) {
374  QTreeWidgetItem* eftree_c = new QTreeWidgetItem(eftree);
375  eftree_c->setText(0, QString("Combined Track-")+QString::number(i+1));
376  QList<QTreeWidgetItem *> efitem_c;
377  for(int j=0; j < int(m_trigData[i+HWIDTH].size()); ++j) {
378  efitem_c.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(m_trigData[TIDIDX][j]+sep+m_trigData[i+HWIDTH][j])));
379  }
380  eftree_c->insertChildren(0, efitem_c);
381  }
382  }//loop
383  ++avail;
384  }//mef data available
385 
386  //### MuonGirl ### >>>
387  if(count_mg!=0) {
388  QTreeWidgetItem* mgtree = new QTreeWidgetItem(m_qtrigData);
389  mgtree->setText(0, QString("Muon Type 2 -> MuGirl"));
390 
391  for(int i=0; i<TWIDTH; ++i) {
392  if(m_trigData[TYPIDX][i].contains("MuGirl") && m_trigData[SRCIDX][i].contains("Spectrometer")) {
393  QTreeWidgetItem* mgtree_s = new QTreeWidgetItem(mgtree);
394  mgtree_s->setText(0, QString("Spectrometer Track-")+QString::number(i+1));
395  QList<QTreeWidgetItem *> mgitem_s;
396  for(int j=0; j < int(m_trigData[i+HWIDTH].size()); ++j) {
397  mgitem_s.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(m_trigData[TIDIDX][j]+sep+m_trigData[i+HWIDTH][j])));
398  }
399  mgtree_s->insertChildren(0, mgitem_s);
400  }
401  }//loop
402 
403  for(int i=0; i<TWIDTH; ++i) {
404  if(m_trigData[TYPIDX][i].contains("MuGirl") && m_trigData[SRCIDX][i].contains("Extrapolated")) {
405  QTreeWidgetItem* mgtree_e = new QTreeWidgetItem(mgtree);
406  mgtree_e->setText(0, QString("Extrapolated Track-")+QString::number(i+1));
407  QList<QTreeWidgetItem *> mgitem_e;
408  for(int j=0; j < int(m_trigData[i+HWIDTH].size()); ++j) {
409  mgitem_e.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(m_trigData[TIDIDX][j]+sep+m_trigData[i+HWIDTH][j])));
410  }
411  mgtree_e->insertChildren(0, mgitem_e);
412  }
413  }//loop
414 
415  for(int i=0; i<TWIDTH; ++i) {
416  if(m_trigData[TYPIDX][i].contains("MuGirl") && m_trigData[SRCIDX][i].contains("Combined")) {
417  QTreeWidgetItem* mgtree_c = new QTreeWidgetItem(mgtree);
418  mgtree_c->setText(0, QString("Combined Track-")+QString::number(i+1));
419  QList<QTreeWidgetItem *> mgitem_c;
420  for(int j=0; j < int(m_trigData[i+HWIDTH].size()); ++j) {
421  mgitem_c.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(m_trigData[TIDIDX][j]+sep+m_trigData[i+HWIDTH][j])));
422  }
423  mgtree_c->insertChildren(0, mgitem_c);
424  }
425  }//loop
426  ++avail;
427  }// mg data available
428 
429  }//size match check
430  }//simple size check
431 
432  //Data available
433  if(avail>0) m_qtrigstatus=true;
434  else {
435  log_error("processQTrigItem(): EF data not available!");
436  m_qtrigstatus=false;
437  }
438 
439  }//status
440  else
441  m_qtrigstatus=false;
442 
443  return m_qtrigstatus;
444 }//END: processQTrigItem
445 
446 
447 //Processes EF data item with storage in Vector and returns processing success/failure
448 //_____________________________________________________________________________________________
450 {
451  //Query TrackContainer and store
452  //data to corresponding vectors
453  bool status = loadTrackContainer();
454 
455  if(status) {
456  if(int(m_trigData.size())>3 && int(m_trigData[0].size())==int(m_trigData[1].size()) && int(m_trigData[1].size())==(int(m_trigData.size())-3))
457  m_vtrigstatus=true;
458  }
459  else
460  m_vtrigstatus=false;
461 
462  return m_vtrigstatus;
463 }//END: processVTrigItem
TrigMuonEFTrack::NRpcHitsEta
unsigned short int NRpcHitsEta() const
Definition: TrigMuonEFTrack.h:159
TileTrackMuFeatureContainer.h
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
TrigMuonEFTrack::posX
double posX() const
Definition: TrigMuonEFTrack.h:98
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
runLayerRecalibration.chain
chain
Definition: runLayerRecalibration.py:175
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
VP1Trig::VP1TriggerHandleEF::processVTrigItem
bool processVTrigItem()
Definition: VP1TriggerHandleEF.cxx:449
count_mef
int count_mef
Definition: VP1TriggerHandleEF.cxx:47
t_data
std::vector< std::vector< QString > > t_data
Definition: VP1TriggerHandleEF.cxx:36
TrigMuonEFIsolationContainer.h
TrigMuonEFTrack
Definition: TrigMuonEFTrack.h:27
h_source
std::vector< QString > h_source
Definition: VP1TriggerHandleEF.cxx:35
VP1TriggerHandleEF.h
TrigMuonEFInfoContainer.h
TrigMuonEFTrack::Charge
double Charge() const
Definition: TrigMuonEFTrack.h:51
TrigMuonEFCbTrack.h
TrigMuonEFTrack::d0
double d0() const
Definition: TrigMuonEFTrack.h:59
TrigMuonEFTrack.h
TYPIDX
const int TYPIDX
Definition: VP1TriggerHandleEF.cxx:42
muonTrackName
std::string muonTrackName[18]
Definition: VP1TriggerHandleEF.cxx:54
h_id
std::vector< QString > h_id
Definition: VP1TriggerHandleEF.cxx:35
VP1String::str
static QString str(const QString &s)
Definition: VP1String.h:49
TrigMuonEFInfoTrack.h
SRCIDX
const int SRCIDX
Definition: VP1TriggerHandleEF.cxx:43
MuonFeature.h
muonEFTrack
const TrigMuonEFTrack * muonEFTrack
Definition: VP1TriggerHandleEF.cxx:50
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
CombinedMuonFeatureContainer.h
TrigMuonEFInfo.h
TrigMuonEFTrack::posY
double posY() const
Definition: TrigMuonEFTrack.h:108
count_mg
int count_mg
Definition: VP1TriggerHandleEF.cxx:47
TrigMuonEFInfoTrack::CombinedTrack
TrigMuonEFCbTrack * CombinedTrack()
Definition: TrigMuonEFInfoTrack.h:52
lumiFormat.i
int i
Definition: lumiFormat.py:92
TrigMuonEFInfoTrack::SpectrometerTrack
TrigMuonEFTrack * SpectrometerTrack()
Definition: TrigMuonEFInfoTrack.h:50
muonEFCbTrack
const TrigMuonEFCbTrack * muonEFCbTrack
Definition: VP1TriggerHandleEF.cxx:51
TrigMuonEFTrack::NRpcHitsPhi
unsigned short int NRpcHitsPhi() const
Definition: TrigMuonEFTrack.h:129
contains
bool contains(const std::string &s, const std::string &regx)
does a string contain the substring
Definition: hcg.cxx:111
TrigMuonEFTrack::NTgcHitsEta
unsigned short int NTgcHitsEta() const
Definition: TrigMuonEFTrack.h:169
TrigMuonEFInfoTrackContainer
Definition: TrigMuonEFInfoTrackContainer.h:27
VP1Trig::VP1TriggerHandleEF::loadTrackContainer
bool loadTrackContainer()
Definition: VP1TriggerHandleEF.cxx:139
TileMuFeatureContainer.h
VP1Trig::Logger::log_error
void log_error(const QString &msg)
Definition: graphics/VP1/VP1Systems/VP1TriggerSystems/src/Logger.cxx:46
h_type
std::vector< QString > h_type
Definition: VP1TriggerHandleEF.cxx:35
P4IPtCotThPhiM::phi
virtual double phi() const
get phi data member
Definition: P4IPtCotThPhiM.h:106
TrigMuonEFTrack::NTgcHitsPhi
unsigned short int NTgcHitsPhi() const
Definition: TrigMuonEFTrack.h:139
TrigMuonEFInfoTrack::ExtrapolatedTrack
TrigMuonEFTrack * ExtrapolatedTrack()
Definition: TrigMuonEFInfoTrack.h:51
VP1Trig::VP1TriggerHandleEF::processQTrigItem
bool processQTrigItem()
Definition: VP1TriggerHandleEF.cxx:314
VP1Trig::VP1TriggerHandleEF::muonTrackData
double muonTrackData(QString type, int id)
Definition: VP1TriggerHandleEF.cxx:79
grepfile.sep
sep
Definition: grepfile.py:38
TrigMuonEFTrack::NCscHitsEta
unsigned short int NCscHitsEta() const
Definition: TrigMuonEFTrack.h:179
python.selection.number
number
Definition: selection.py:20
TrigMuonEFInfoTrack::MuonType
unsigned short int MuonType() const
Definition: TrigMuonEFInfoTrack.h:58
TrigMuonEFCbTrack
Definition: TrigMuonEFCbTrack.h:28
TrigMuonEFTrack::posZ
double posZ() const
Definition: TrigMuonEFTrack.h:118
TrigMuonEFTrack::chi2
double chi2() const
Definition: TrigMuonEFTrack.h:79
TrigMuonEFTrack::chi2prob
double chi2prob() const
Definition: TrigMuonEFTrack.h:89
TIDIDX
const int TIDIDX
Definition: VP1TriggerHandleEF.cxx:44
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
TrigMuonEFInfoTrack
Definition: TrigMuonEFInfoTrack.h:22
TrigMuonEFTrack::z0
double z0() const
Definition: TrigMuonEFTrack.h:69
TrigMuonEFInfoTrackContainer.h
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
P4IPtCotThPhiM::m
virtual double m() const
get m data member
Definition: P4IPtCotThPhiM.h:109
HWIDTH
const int HWIDTH
Definition: VP1TriggerHandleEF.cxx:41
extractSporadic.q
list q
Definition: extractSporadic.py:98
P4IPtCotThPhiM::iPt
virtual double iPt() const
get inverse pT data member
Definition: P4IPtCotThPhiM.h:100
merge.status
status
Definition: merge.py:17
TrigMuonEFContainer.h
TrigMuonEFTrack::NCscHitsPhi
unsigned short int NCscHitsPhi() const
Definition: TrigMuonEFTrack.h:149
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
VP1Trig::VP1TriggerHandleEF::loadMuonTrack
void loadMuonTrack(int trackNo, QString type)
Definition: VP1TriggerHandleEF.cxx:235
P4IPtCotThPhiM::cotTh
virtual double cotTh() const
get cot(theta) data member
Definition: P4IPtCotThPhiM.h:103