ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
InDet::SegmentDriftCircleAssValidation Class Reference

#include <SegmentDriftCircleAssValidation.h>

Inheritance diagram for InDet::SegmentDriftCircleAssValidation:
Collaboration diagram for InDet::SegmentDriftCircleAssValidation:

Public Member Functions

 SegmentDriftCircleAssValidation (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual ~SegmentDriftCircleAssValidation ()
 
StatusCode initialize ()
 
StatusCode execute ()
 
StatusCode finalize ()
 
MsgStream & dump (MsgStream &out) const
 
std::ostream & dump (std::ostream &out) const
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void newCirclesEvent (const PRD_MultiTruthCollection *)
 
void tracksComparison (const Trk::SegmentCollection *, const PRD_MultiTruthCollection *)
 
void efficiencyReconstruction ()
 
int QualityTracksSelection ()
 
std::list< int > kine (const InDet::TRT_DriftCircle *, const PRD_MultiTruthCollection *prdCollection)
 
std::list< PRD_MultiTruthCollection::const_iterator > kinpart (const InDet::TRT_DriftCircle *, const PRD_MultiTruthCollection *)
 
bool isTheSameStrawElement (int, const Trk::PrepRawData *)
 
std::list< PRD_MultiTruthCollection::const_iterator > findTruth (const InDet::TRT_DriftCircle *, bool &, const PRD_MultiTruthCollection *)
 
MsgStream & dumptools (MsgStream &out) const
 
MsgStream & dumpevent (MsgStream &out) const
 
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Protected Attributes

int m_nprint
 
SG::ReadHandleKey< Trk::SegmentCollectionm_origtrackKey { this, "OrigTracksLocation", "TRTSegments", "TRT Segments collection name" }
 
const HepPDT::ParticleDataTable * m_particleDataTable
 
SG::ReadHandleKey< PRD_MultiTruthCollectionm_PRDTruthTRTKey { this, "TruthNameTRT", "PRD_MultiTruthTRT", "PRD Multitruth collection name" }
 
SG::ReadHandleKey< TRT_DriftCircleContainerm_circlesTRTKey { this, "TRT_DriftCirclesName", "TRT_DriftCircles", "TRT Driftcircle container name" }
 
double m_pTmin
 
double m_tcut
 
double m_rapcut
 
int m_dccut
 
double m_rmin
 
double m_rmax
 
int m_events
 
int m_ncircles
 
std::multimap< int, const Trk::PrepRawData * > m_kinecircle
 
std::list< int > m_allBarcodes
 
int m_nqsegments
 
std::list< int > m_particles
 
std::multimap< int, int > m_allParticles
 
std::multimap< int, int > m_tracks
 
int m_efficiency [5] {}
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

DataObjIDColl m_extendedExtraObjects
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 29 of file SegmentDriftCircleAssValidation.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ SegmentDriftCircleAssValidation()

InDet::SegmentDriftCircleAssValidation::SegmentDriftCircleAssValidation ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 30 of file SegmentDriftCircleAssValidation.cxx.

30  :
31  AthAlgorithm(name,pSvcLocator),
32  m_nprint (0),
33  m_particleDataTable (nullptr),
34  m_tcut (0.),
35  m_events (0),
36  m_ncircles (0),
37  m_nqsegments (0)
38 {
39 
40  // SegmentDriftCircleAssValidation steering parameters
41  //
42  m_pTmin = 500. ;
43  m_rapcut = 2.1 ;
44  m_dccut = 10 ;
45  m_rmin = 0. ;
46  m_rmax = 20. ;
47 
48  declareProperty("pTmin", m_pTmin );
49  declareProperty("Pseudorapidity", m_rapcut );
50  declareProperty("MinNumberDCs" , m_dccut );
51  declareProperty("RadiusMin", m_rmin );
52  declareProperty("RadiusMax", m_rmax );
53 }

◆ ~SegmentDriftCircleAssValidation()

virtual InDet::SegmentDriftCircleAssValidation::~SegmentDriftCircleAssValidation ( )
inlinevirtual

Definition at line 43 of file SegmentDriftCircleAssValidation.h.

43 {}

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ dump() [1/2]

MsgStream & InDet::SegmentDriftCircleAssValidation::dump ( MsgStream &  out) const

Definition at line 203 of file SegmentDriftCircleAssValidation.cxx.

204 {
205  out<<std::endl;
206  if(m_nprint) return dumpevent(out);
207  return dumptools(out);
208 }

◆ dump() [2/2]

std::ostream & InDet::SegmentDriftCircleAssValidation::dump ( std::ostream &  out) const

Definition at line 288 of file SegmentDriftCircleAssValidation.cxx.

289 {
290  return out;
291 }

◆ dumpevent()

MsgStream & InDet::SegmentDriftCircleAssValidation::dumpevent ( MsgStream &  out) const
protected

Definition at line 265 of file SegmentDriftCircleAssValidation.cxx.

266 {
267  out<<"|---------------------------------------------------------------------|"
268  <<std::endl;
269  out<<"| TRT Drift Circles | "
270  <<std::setw(12)<<m_ncircles
271  <<" |"<<std::endl;
272  out<<"| Good TRT particles size | "
273  <<std::setw(12)<<m_particles.size()
274  <<" |"<<std::endl;
275  out<<"| Number good kine segments | "
276  <<std::setw(12)<<m_nqsegments
277  <<" |"<<std::endl;
278  out<<"|---------------------------------------------------------------------|"
279  <<std::endl;
280 
281  return out;
282 }

◆ dumptools()

MsgStream & InDet::SegmentDriftCircleAssValidation::dumptools ( MsgStream &  out) const
protected

Definition at line 214 of file SegmentDriftCircleAssValidation.cxx.

215 {
216  int n;
217 
218  out<<"|----------------------------------------------------------------"
219  <<"----------------------------------------------------|"
220  <<std::endl;
221  n = 65-m_origtrackKey.key().size();
222  std::string s1; for(int i=0; i<n; ++i) s1.append(" "); s1.append("|");
223  n = 65-m_circlesTRTKey.key().size();
224  std::string s2; for(int i=0; i<n; ++i) s2.append(" "); s2.append("|");
225  n = 65-m_PRDTruthTRTKey.key().size();
226  std::string s3; for(int i=0; i<n; ++i) s3.append(" "); s3.append("|");
227 
228  out<<"| Location of input segmentss | "<<m_origtrackKey.key() <<s1
229  <<std::endl;
230  out<<"| TRT clusters | "<<m_circlesTRTKey.key() <<s2
231  <<std::endl;
232  out<<"| Truth location for trt | "<<m_PRDTruthTRTKey.key() <<s3
233  <<std::endl;
234  out<<"| pT cut | "
235  <<std::setw(14)<<std::setprecision(5)<<m_pTmin
236  <<" |"
237  <<std::endl;
238  out<<"| rapidity cut | "
239  <<std::setw(14)<<std::setprecision(5)<<m_rapcut
240  <<" |"
241  <<std::endl;
242  out<<"| min Radius | "
243  <<std::setw(14)<<std::setprecision(5)<<m_rmin
244  <<" |"
245  <<std::endl;
246  out<<"| max Radius | "
247  <<std::setw(14)<<std::setprecision(5)<<m_rmax
248  <<" |"
249  <<std::endl;
250  out<<"| Min. number drift circles for generated segment | "
251  <<std::setw(14)<<std::setprecision(5)<<m_dccut
252  <<" |"
253  <<std::endl;
254  out<<"|----------------------------------------------------------------"
255  <<"----------------------------------------------------|"
256  <<std::endl;
257 
258  return out;
259 }

◆ efficiencyReconstruction()

void InDet::SegmentDriftCircleAssValidation::efficiencyReconstruction ( )
protected

Definition at line 452 of file SegmentDriftCircleAssValidation.cxx.

453 {
454  if(m_particles.empty()) return;
456 
457  for (auto k: m_particles) {
458 
460  int n = (*im).second;
461 
462  int m = 0;
463  t = m_tracks.find(k);
464  for(; t!=te; ++t) { //* check if reaching the end of the multimap instead
465  if((*t).first!=k) break;
466  if((*t).second > m) m = (*t).second;
467  }
468  int d = 0;
469  double rd = (double)m/n; if(rd>0.9) d = 0;
470  else if(rd > 0.75) d=1;
471  else if(rd > 0.50) d=2;
472  else if(rd > 0.25) d=3;
473  else if(rd <= 0.25) d=4;
474  ++m_efficiency[d]; ++m_events;
475  }
476 
477 }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode InDet::SegmentDriftCircleAssValidation::execute ( )

Definition at line 105 of file SegmentDriftCircleAssValidation.cxx.

106 {
107  msg(MSG::DEBUG) << " InDetSegmentDriftCircleAssValidation execute()" << endmsg;
108 
110 
111  if( !origColTracks.isValid() ){
112  msg(MSG::FATAL) << "No TRT tracks with name " << m_origtrackKey.key() << " found in StoreGate!" << endmsg;
113  return StatusCode::FAILURE;
114  }else{
115  msg(MSG::DEBUG) << "Found TRT trak collection " << m_origtrackKey.key() << " in StoreGate!" << endmsg;
116  }
117 
119 
120  if ( !prdCollection.isValid() ){
121  msg(MSG::FATAL) << "TRT PRD_MultiTruthCollection " << m_PRDTruthTRTKey.key() << " NOT found!" << endmsg;
122  return StatusCode::FAILURE;
123  } else {
124  msg(MSG::DEBUG) << "Got TRT PRD_MultiTruthCollection " << m_PRDTruthTRTKey.key() << endmsg;
125  }
126 
127  newCirclesEvent( prdCollection.cptr() );
129 
130  tracksComparison( origColTracks.cptr(), prdCollection.cptr() );
131 
132  if(m_particles.size() > 0) {
133 
135 
136  }
137 
138  if(msgLvl(MSG::DEBUG)){m_nprint=1; msg(MSG::DEBUG) << (*this) << endmsg;}
139 
140  return StatusCode::SUCCESS;
141 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ finalize()

StatusCode InDet::SegmentDriftCircleAssValidation::finalize ( )

Definition at line 147 of file SegmentDriftCircleAssValidation.cxx.

147  {
148 
149  if(m_events<=0) return StatusCode::SUCCESS;
150 
151  std::cout<<"|-----------------------------------------------------------------------------------|"
152  <<std::endl;
153  std::cout<<"| TrackSegmentValidation statistics"<<std::endl;
154 
155  double ne = double(m_events);
156  double ef[5]; for(int i=0; i!=5; ++i) ef[i] = double(m_efficiency[i])/ne;
157 
158  std::cout<<"|-----------------------------------------------------------------------------------|"
159  <<std::endl;
160  std::cout<<"| TRT Particles >0.9 >0.75 >0.50 >0.25 <=0.25 |"
161  <<std::endl;
162  std::cout<<"|-----------------------------------------------------------------------------------|"
163  <<std::endl;
164 
165  std::cout<<"| "
166  <<std::setw(6)<<m_events<<" "
167  <<std::setw(13)<<std::setprecision(5)<<ef[0]
168  <<std::setw(13)<<std::setprecision(5)<<ef[1]
169  <<std::setw(13)<<std::setprecision(5)<<ef[2]
170  <<std::setw(13)<<std::setprecision(5)<<ef[3]
171  <<std::setw(13)<<std::setprecision(5)<<ef[4]<<" |"
172  <<std::endl;
173  std::cout<<"|-----------------------------------------------------------------------------------|"
174  <<std::endl;
175 
176  return StatusCode::SUCCESS;
177 }

◆ findTruth()

std::list< PRD_MultiTruthCollection::const_iterator > InDet::SegmentDriftCircleAssValidation::findTruth ( const InDet::TRT_DriftCircle d,
bool &  Q,
const PRD_MultiTruthCollection prdCollection 
)
protected

Definition at line 599 of file SegmentDriftCircleAssValidation.cxx.

600 {
601  Q = true;
602  std::list<PRD_MultiTruthCollection::const_iterator> mc;
603  if (d) {
604  auto r = prdCollection->equal_range(d->identify());
605  for( auto i = r.first; i != r.second && i != prdCollection->end(); ++i){
606  mc.push_back(i);
607  }
608  }
609  if (mc.empty()) Q = false;
610 
611  return mc;
612 }

◆ initialize()

StatusCode InDet::SegmentDriftCircleAssValidation::initialize ( )

Definition at line 59 of file SegmentDriftCircleAssValidation.cxx.

60 {
61 
62  StatusCode sc;
63 
64  m_tcut = 1./tan(2.*atan(exp(-m_rapcut)));
65 
66  // Get output print level
67  //
68  if(msgLvl(MSG::DEBUG)){m_nprint=0; msg(MSG::DEBUG) << (*this) << endmsg;}
69 
70  // get the Particle Properties Service
71  //
72  IPartPropSvc* partPropSvc = nullptr;
73  sc = service("PartPropSvc", partPropSvc, true);
74  if (sc.isFailure()) {
75  msg(MSG::FATAL) << " Could not initialize Particle Properties Service" << endmsg;
76  return StatusCode::FAILURE;
77  }
78 
79  // Particle Data Table
80  //
81  m_particleDataTable = partPropSvc->PDT();
82  if(!m_particleDataTable) {
83  msg(MSG::FATAL) << " Could not initialize Particle Properties Service" << endmsg;
84  return StatusCode::FAILURE;
85  }
86 
87  // Erase statistics information
88  //
89  m_events = 0 ;
90 
91  for(int i=0; i!=5; ++i) m_efficiency[i] = 0;
92 
93  // Initialize ReadHandleKey
94  ATH_CHECK( m_origtrackKey.initialize() );
97 
98  return sc;
99 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ isTheSameStrawElement()

bool InDet::SegmentDriftCircleAssValidation::isTheSameStrawElement ( int  K,
const Trk::PrepRawData d 
)
protected

Definition at line 583 of file SegmentDriftCircleAssValidation.cxx.

585 {
587  for(; k!=m_kinecircle.end(); ++k) {
588 
589  if((*k).first!= K) return false;
590  if(d->detectorElement()==(*k).second->detectorElement()) return true;
591  }
592  return false;
593 }

◆ kine()

std::list< int > InDet::SegmentDriftCircleAssValidation::kine ( const InDet::TRT_DriftCircle d,
const PRD_MultiTruthCollection prdCollection 
)
protected

Definition at line 483 of file SegmentDriftCircleAssValidation.cxx.

485 {
486  std::list<int> lk;
487  bool find;
488  std::list<PRD_MultiTruthCollection::const_iterator> mc = findTruth(d,find, prdCollection );
489  if(!find) return lk;
491  for(imc=mc.begin();imc!=imce;++imc){
492  int k = (*imc)->second.barcode(); if(k<=0) continue;
493 
494  HepMC::ConstGenParticlePtr pa = (*imc)->second.cptr();
495  if(!pa || !pa->production_vertex()) continue;
496 
497  // Charge != 0 test
498  //
499  int pdg = pa->pdg_id();
500  const HepPDT::ParticleData* pd = m_particleDataTable->particle(abs(pdg));
501  if(!pd || std::abs(pd->charge()) < .5) continue;
502 
503  // pT cut
504  //
505  double pt = pa->momentum().perp();
506  if( pt < m_pTmin ) continue;
507 
508  // Rapidity cut
509  //
510  double t = std::abs(pa->momentum().pz())/pt;
511  if( t > m_tcut ) continue;
512 
513  // Radius cut
514  //
515  Point3D<double> v(pa->production_vertex()->position().x(),
516  pa->production_vertex()->position().y(),
517  pa->production_vertex()->position().z());
518  double r = sqrt(v.x()*v.x()+v.y()*v.y());
519  if( r < m_rmin || r > m_rmax) continue;
520 
521  lk.push_back(k);
522  }
523 
524  return lk;
525 }

◆ kinpart()

std::list< PRD_MultiTruthCollection::const_iterator > InDet::SegmentDriftCircleAssValidation::kinpart ( const InDet::TRT_DriftCircle d,
const PRD_MultiTruthCollection prdCollection 
)
protected

Definition at line 531 of file SegmentDriftCircleAssValidation.cxx.

533 {
534 
535  std::list<PRD_MultiTruthCollection::const_iterator> lk;
536  bool find;
537  std::list<PRD_MultiTruthCollection::const_iterator> mc = findTruth(d,find, prdCollection );
538  if(!find) return lk;
539 
541  for(imc=mc.begin();imc!=imce;++imc){
542 
543  int k = (*imc)->second.barcode(); if(k<=0) continue;
544 
545  HepMC::ConstGenParticlePtr pa = (*imc)->second.cptr();
546  if(!pa || !pa->production_vertex()) continue;
547 
548  // Charge != 0 test
549  //
550  int pdg = pa->pdg_id();
551  const HepPDT::ParticleData* pd = m_particleDataTable->particle(abs(pdg));
552  if(!pd || std::abs(pd->charge()) < .5) continue;
553 
554  // pT cut
555  //
556  double pt = pa->momentum().perp();
557  if( pt < m_pTmin ) continue;
558 
559 
560  // Rapidity cut
561  //
562  double t = std::abs(pa->momentum().pz())/pt;
563  if( t > m_tcut ) continue;
564 
565  // Radius cut
566  //
567  Point3D<double> v(pa->production_vertex()->position().x(),
568  pa->production_vertex()->position().y(),
569  pa->production_vertex()->position().z());
570  double r = sqrt(v.x()*v.x()+v.y()*v.y());
571  if( r < m_rmin || r > m_rmax) continue;
572 
573  lk.push_back((*imc));
574  }
575 
576  return lk;
577 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ newCirclesEvent()

void InDet::SegmentDriftCircleAssValidation::newCirclesEvent ( const PRD_MultiTruthCollection prdCollection)
protected

Definition at line 297 of file SegmentDriftCircleAssValidation.cxx.

298 {
299  m_ncircles = 0;
300  m_kinecircle.clear();
301  m_allBarcodes.clear();
302 
303  // Get Drift Circles container
304  //
306 
307  // Loop through all pixel clusters
308  //
309  if( trtcontainer.isValid() ) {
310 
311  InDet::TRT_DriftCircleContainer::const_iterator w = trtcontainer->begin();
312  InDet::TRT_DriftCircleContainer::const_iterator we = trtcontainer->end ();
313 
314  for(; w!=we; ++w) {
315 
316  InDet::TRT_DriftCircleCollection::const_iterator c = (*w)->begin();
317  InDet::TRT_DriftCircleCollection::const_iterator ce = (*w)->end ();
318 
319  for(; c!=ce; ++c) {
320 
321  ++m_ncircles;
322 
323  std::list<int> lk = kine((*c), prdCollection );
324  if(int(lk.size())==0) continue;
325  std::list<int>::iterator ik,ike=lk.end();
326  for(ik=lk.begin();ik!=ike;++ik){
327  if(!isTheSameStrawElement((*ik),(*c))) {
328  m_kinecircle.insert(std::make_pair((*ik),(*c)));
329  bool isThere = false;
331  for(ii=m_allBarcodes.begin();ii!=iie;++ii) {
332  if((*ik)==(*ii)) isThere = true;
333  }
334  if(!isThere) m_allBarcodes.push_back((*ik));
335  }
336  }
337  }
338  }
339  }
340 }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ QualityTracksSelection()

int InDet::SegmentDriftCircleAssValidation::QualityTracksSelection ( )
protected

Definition at line 346 of file SegmentDriftCircleAssValidation.cxx.

347 {
348  m_particles.clear();
349  m_allParticles.clear();
350 
351  if (m_kinecircle.empty()) return 0;
352 
354  for(ii=m_allBarcodes.begin();ii!=iie;++ii) {
355  int ndc = 0;
357  for(; dc!=m_kinecircle.end(); ++dc) {
358  if((*ii)==(*dc).first) ndc++;
359  }
360  m_allParticles.insert(std::make_pair((*ii),ndc));
361  }
362 
363  int t = 0;
365  for(im=m_allParticles.begin(); im!=ime; ++im) {
366  if((*im).second>=m_dccut){
367  m_particles.push_back((*im).first);
368  ++t;
369  }else{
370  m_kinecircle.erase((*im).first);
371  }
372  }
373 
374  return t;
375 }

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ tracksComparison()

void InDet::SegmentDriftCircleAssValidation::tracksComparison ( const Trk::SegmentCollection origColTracks,
const PRD_MultiTruthCollection prdCollection 
)
protected

Get the track segment

Definition at line 381 of file SegmentDriftCircleAssValidation.cxx.

382 {
383  if(!m_nqsegments) return;
384 
385  m_tracks.clear();
386 
387  int KINE[200],NKINE[200];
388  for(int i=0;i<200;++i){
389  KINE[i] =0; NKINE[i] = 0;
390  }
391 
392  Trk::SegmentCollection::const_iterator iseg = origColTracks->begin();
393  Trk::SegmentCollection::const_iterator isegEnd = origColTracks->end();
394  for(; iseg != isegEnd; ++ iseg) {
395 
397  const Trk::TrackSegment *tS = dynamic_cast<const Trk::TrackSegment*>(*iseg);
398  if(!tS) continue;
399 
400  int NK = 0;
401 
402  for(int it=0; it<int(tS->numberOfMeasurementBases()); ++it){
403  //test if it is a pseudo measurement
404  if ( dynamic_cast<const Trk::PseudoMeasurementOnTrack*>(tS->measurement(it)) ) continue;
405 
406  const InDet::TRT_DriftCircleOnTrack* trtcircle = dynamic_cast<const InDet::TRT_DriftCircleOnTrack*>(tS->measurement(it));
407  if(!trtcircle) continue;
408 
409  const InDet::TRT_DriftCircle* RawDataClus=dynamic_cast<const InDet::TRT_DriftCircle*>(trtcircle->prepRawData());
410  if(!RawDataClus) continue;
411 
412  std::list<PRD_MultiTruthCollection::const_iterator> lk = kinpart(RawDataClus, prdCollection );
413  if (int(lk.size())==0) continue;
415 
416  //* looping over the returned list of genParticles
417  for(ik=lk.begin(); ik!=ike; ++ik){
418  int k = (*ik)->second.barcode();
419  if (k<=0) continue;
420  int m = -1;
421 
422  for(int n=0; n!=NK; ++n) {
423  if(k==KINE[n]) {
424  ++NKINE[n];
425  m=n;
426  break;
427  }
428  }
429 
430  if(m<0) {
431  KINE[NK] = k;
432  NKINE[NK] = 1;
433  if(NK < 200) ++NK;
434  }
435  }
436  }
437  int nm = 0, m = 0;
438  for(int n=0; n!=NK; ++n) {
439  if(NKINE[n] > m) {
440  nm = n;
441  m=NKINE[n];
442  }
443  }
444  m_tracks.insert(std::make_pair(KINE[nm],m) ); //* if m=0, the KINE[nm] will be set to the previous one
445  }
446 }

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_allBarcodes

std::list<int> InDet::SegmentDriftCircleAssValidation::m_allBarcodes
protected

Definition at line 76 of file SegmentDriftCircleAssValidation.h.

◆ m_allParticles

std::multimap<int,int> InDet::SegmentDriftCircleAssValidation::m_allParticles
protected

Definition at line 79 of file SegmentDriftCircleAssValidation.h.

◆ m_circlesTRTKey

SG::ReadHandleKey<TRT_DriftCircleContainer> InDet::SegmentDriftCircleAssValidation::m_circlesTRTKey { this, "TRT_DriftCirclesName", "TRT_DriftCircles", "TRT Driftcircle container name" }
protected

Definition at line 65 of file SegmentDriftCircleAssValidation.h.

◆ m_dccut

int InDet::SegmentDriftCircleAssValidation::m_dccut
protected

Definition at line 69 of file SegmentDriftCircleAssValidation.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_efficiency

int InDet::SegmentDriftCircleAssValidation::m_efficiency[5] {}
protected

Definition at line 81 of file SegmentDriftCircleAssValidation.h.

◆ m_events

int InDet::SegmentDriftCircleAssValidation::m_events
protected

Definition at line 73 of file SegmentDriftCircleAssValidation.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_kinecircle

std::multimap<int,const Trk::PrepRawData*> InDet::SegmentDriftCircleAssValidation::m_kinecircle
protected

Definition at line 75 of file SegmentDriftCircleAssValidation.h.

◆ m_ncircles

int InDet::SegmentDriftCircleAssValidation::m_ncircles
protected

Definition at line 74 of file SegmentDriftCircleAssValidation.h.

◆ m_nprint

int InDet::SegmentDriftCircleAssValidation::m_nprint
protected

Definition at line 61 of file SegmentDriftCircleAssValidation.h.

◆ m_nqsegments

int InDet::SegmentDriftCircleAssValidation::m_nqsegments
protected

Definition at line 77 of file SegmentDriftCircleAssValidation.h.

◆ m_origtrackKey

SG::ReadHandleKey<Trk::SegmentCollection> InDet::SegmentDriftCircleAssValidation::m_origtrackKey { this, "OrigTracksLocation", "TRTSegments", "TRT Segments collection name" }
protected

Definition at line 62 of file SegmentDriftCircleAssValidation.h.

◆ m_particleDataTable

const HepPDT::ParticleDataTable* InDet::SegmentDriftCircleAssValidation::m_particleDataTable
protected

Definition at line 63 of file SegmentDriftCircleAssValidation.h.

◆ m_particles

std::list<int> InDet::SegmentDriftCircleAssValidation::m_particles
protected

Definition at line 78 of file SegmentDriftCircleAssValidation.h.

◆ m_PRDTruthTRTKey

SG::ReadHandleKey<PRD_MultiTruthCollection> InDet::SegmentDriftCircleAssValidation::m_PRDTruthTRTKey { this, "TruthNameTRT", "PRD_MultiTruthTRT", "PRD Multitruth collection name" }
protected

Definition at line 64 of file SegmentDriftCircleAssValidation.h.

◆ m_pTmin

double InDet::SegmentDriftCircleAssValidation::m_pTmin
protected

Definition at line 66 of file SegmentDriftCircleAssValidation.h.

◆ m_rapcut

double InDet::SegmentDriftCircleAssValidation::m_rapcut
protected

Definition at line 68 of file SegmentDriftCircleAssValidation.h.

◆ m_rmax

double InDet::SegmentDriftCircleAssValidation::m_rmax
protected

Definition at line 71 of file SegmentDriftCircleAssValidation.h.

◆ m_rmin

double InDet::SegmentDriftCircleAssValidation::m_rmin
protected

Definition at line 70 of file SegmentDriftCircleAssValidation.h.

◆ m_tcut

double InDet::SegmentDriftCircleAssValidation::m_tcut
protected

Definition at line 67 of file SegmentDriftCircleAssValidation.h.

◆ m_tracks

std::multimap<int,int> InDet::SegmentDriftCircleAssValidation::m_tracks
protected

Definition at line 80 of file SegmentDriftCircleAssValidation.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
beamspotman.r
def r
Definition: beamspotman.py:676
ReadCellNoiseFromCoolCompare.s1
s1
Definition: ReadCellNoiseFromCoolCompare.py:378
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
InDet::TRT_DriftCircleOnTrack::prepRawData
virtual const TRT_DriftCircle * prepRawData() const override final
returns the PrepRawData - is a TRT_DriftCircle in this scope
Definition: TRT_DriftCircleOnTrack.h:202
InDet::SegmentDriftCircleAssValidation::m_ncircles
int m_ncircles
Definition: SegmentDriftCircleAssValidation.h:74
InDet::SegmentDriftCircleAssValidation::m_events
int m_events
Definition: SegmentDriftCircleAssValidation.h:73
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
InDet::SegmentDriftCircleAssValidation::m_rmax
double m_rmax
Definition: SegmentDriftCircleAssValidation.h:71
InDet::SegmentDriftCircleAssValidation::m_origtrackKey
SG::ReadHandleKey< Trk::SegmentCollection > m_origtrackKey
Definition: SegmentDriftCircleAssValidation.h:62
InDet::SegmentDriftCircleAssValidation::m_dccut
int m_dccut
Definition: SegmentDriftCircleAssValidation.h:69
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
InDet::SegmentDriftCircleAssValidation::m_rapcut
double m_rapcut
Definition: SegmentDriftCircleAssValidation.h:68
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDet::SegmentDriftCircleAssValidation::dumptools
MsgStream & dumptools(MsgStream &out) const
Definition: SegmentDriftCircleAssValidation.cxx:214
hist_file_dump.d
d
Definition: hist_file_dump.py:137
InDet::SegmentDriftCircleAssValidation::findTruth
std::list< PRD_MultiTruthCollection::const_iterator > findTruth(const InDet::TRT_DriftCircle *, bool &, const PRD_MultiTruthCollection *)
Definition: SegmentDriftCircleAssValidation.cxx:599
skel.it
it
Definition: skel.GENtoEVGEN.py:423
test_pyathena.pt
pt
Definition: test_pyathena.py:11
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
python.atlas_oh.im
im
Definition: atlas_oh.py:167
AthCommonMsg< Algorithm >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
InDet::SegmentDriftCircleAssValidation::m_pTmin
double m_pTmin
Definition: SegmentDriftCircleAssValidation.h:66
InDet::SegmentDriftCircleAssValidation::kine
std::list< int > kine(const InDet::TRT_DriftCircle *, const PRD_MultiTruthCollection *prdCollection)
Definition: SegmentDriftCircleAssValidation.cxx:484
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::TrackSegment
Definition: TrackSegment.h:56
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
InDet::SegmentDriftCircleAssValidation::isTheSameStrawElement
bool isTheSameStrawElement(int, const Trk::PrepRawData *)
Definition: SegmentDriftCircleAssValidation.cxx:584
InDet::TRT_DriftCircleOnTrack
Definition: TRT_DriftCircleOnTrack.h:53
InDet::SegmentDriftCircleAssValidation::dumpevent
MsgStream & dumpevent(MsgStream &out) const
Definition: SegmentDriftCircleAssValidation.cxx:265
InDet::TRT_DriftCircle
Definition: TRT_DriftCircle.h:32
InDet::SegmentDriftCircleAssValidation::m_particleDataTable
const HepPDT::ParticleDataTable * m_particleDataTable
Definition: SegmentDriftCircleAssValidation.h:63
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
InDet::SegmentDriftCircleAssValidation::m_tracks
std::multimap< int, int > m_tracks
Definition: SegmentDriftCircleAssValidation.h:80
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
Trk::Segment::numberOfMeasurementBases
unsigned int numberOfMeasurementBases() const
Return the number of contained Trk::MeasurementBase (s)
Definition: TrkEvent/TrkSegment/TrkSegment/Segment.h:193
InDet::SegmentDriftCircleAssValidation::newCirclesEvent
void newCirclesEvent(const PRD_MultiTruthCollection *)
Definition: SegmentDriftCircleAssValidation.cxx:297
InDet::SegmentDriftCircleAssValidation::QualityTracksSelection
int QualityTracksSelection()
Definition: SegmentDriftCircleAssValidation.cxx:346
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
InDet::SegmentDriftCircleAssValidation::m_nqsegments
int m_nqsegments
Definition: SegmentDriftCircleAssValidation.h:77
InDet::SegmentDriftCircleAssValidation::m_particles
std::list< int > m_particles
Definition: SegmentDriftCircleAssValidation.h:78
Trk::PseudoMeasurementOnTrack
Class to handle pseudo-measurements in fitters and on track objects.
Definition: PseudoMeasurementOnTrack.h:44
mc
Definition: mc.PG_single_nu_valid.py:1
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
InDet::SegmentDriftCircleAssValidation::m_nprint
int m_nprint
Definition: SegmentDriftCircleAssValidation.h:61
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
lumiFormat.i
int i
Definition: lumiFormat.py:92
beamspotman.n
n
Definition: beamspotman.py:731
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDet::SegmentDriftCircleAssValidation::m_rmin
double m_rmin
Definition: SegmentDriftCircleAssValidation.h:70
Trk::Segment::measurement
const MeasurementBase * measurement(unsigned int) const
returns the Trk::MeasurementBase objects depending on the integer
Definition: TrkEvent/TrkSegment/TrkSegment/Segment.h:184
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
InDet::SegmentDriftCircleAssValidation::efficiencyReconstruction
void efficiencyReconstruction()
Definition: SegmentDriftCircleAssValidation.cxx:452
InDet::SegmentDriftCircleAssValidation::kinpart
std::list< PRD_MultiTruthCollection::const_iterator > kinpart(const InDet::TRT_DriftCircle *, const PRD_MultiTruthCollection *)
Definition: SegmentDriftCircleAssValidation.cxx:532
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
HepMC::ConstGenParticlePtr
const GenParticle * ConstGenParticlePtr
Definition: GenParticle.h:38
ReadCellNoiseFromCoolCompare.s3
s3
Definition: ReadCellNoiseFromCoolCompare.py:380
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
InDet::SegmentDriftCircleAssValidation::m_efficiency
int m_efficiency[5]
Definition: SegmentDriftCircleAssValidation.h:81
InDet::SegmentDriftCircleAssValidation::tracksComparison
void tracksComparison(const Trk::SegmentCollection *, const PRD_MultiTruthCollection *)
Definition: SegmentDriftCircleAssValidation.cxx:381
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
python.PyAthena.v
v
Definition: PyAthena.py:157
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
InDet::SegmentDriftCircleAssValidation::m_kinecircle
std::multimap< int, const Trk::PrepRawData * > m_kinecircle
Definition: SegmentDriftCircleAssValidation.h:75
InDet::SegmentDriftCircleAssValidation::m_allBarcodes
std::list< int > m_allBarcodes
Definition: SegmentDriftCircleAssValidation.h:76
a
TList * a
Definition: liststreamerinfos.cxx:10
CalibCoolCompareRT.nm
nm
Definition: CalibCoolCompareRT.py:110
h
InDet::SegmentDriftCircleAssValidation::m_PRDTruthTRTKey
SG::ReadHandleKey< PRD_MultiTruthCollection > m_PRDTruthTRTKey
Definition: SegmentDriftCircleAssValidation.h:64
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DEBUG
#define DEBUG
Definition: page_access.h:11
ReadCellNoiseFromCoolCompare.s2
s2
Definition: ReadCellNoiseFromCoolCompare.py:379
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
InDet::SegmentDriftCircleAssValidation::m_circlesTRTKey
SG::ReadHandleKey< TRT_DriftCircleContainer > m_circlesTRTKey
Definition: SegmentDriftCircleAssValidation.h:65
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
covarianceTool.mc
mc
Definition: covarianceTool.py:554
python.compressB64.c
def c
Definition: compressB64.py:93
InDet::SegmentDriftCircleAssValidation::m_tcut
double m_tcut
Definition: SegmentDriftCircleAssValidation.h:67
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
InDet::SegmentDriftCircleAssValidation::m_allParticles
std::multimap< int, int > m_allParticles
Definition: SegmentDriftCircleAssValidation.h:79
LheEventFiller_Common.ef
ef
Definition: SFGen_i/share/common/LheEventFiller_Common.py:7
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >