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" }
 
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 28 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 31 of file SegmentDriftCircleAssValidation.cxx.

31  :
32  AthAlgorithm(name,pSvcLocator),
33  m_nprint (0),
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 42 of file SegmentDriftCircleAssValidation.h.

42 {}

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 186 of file SegmentDriftCircleAssValidation.cxx.

187 {
188  out<<std::endl;
189  if(m_nprint) return dumpevent(out);
190  return dumptools(out);
191 }

◆ dump() [2/2]

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

Definition at line 271 of file SegmentDriftCircleAssValidation.cxx.

272 {
273  return out;
274 }

◆ dumpevent()

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

Definition at line 248 of file SegmentDriftCircleAssValidation.cxx.

249 {
250  out<<"|---------------------------------------------------------------------|"
251  <<std::endl;
252  out<<"| TRT Drift Circles | "
253  <<std::setw(12)<<m_ncircles
254  <<" |"<<std::endl;
255  out<<"| Good TRT particles size | "
256  <<std::setw(12)<<m_particles.size()
257  <<" |"<<std::endl;
258  out<<"| Number good kine segments | "
259  <<std::setw(12)<<m_nqsegments
260  <<" |"<<std::endl;
261  out<<"|---------------------------------------------------------------------|"
262  <<std::endl;
263 
264  return out;
265 }

◆ dumptools()

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

Definition at line 197 of file SegmentDriftCircleAssValidation.cxx.

198 {
199  int n;
200 
201  out<<"|----------------------------------------------------------------"
202  <<"----------------------------------------------------|"
203  <<std::endl;
204  n = 65-m_origtrackKey.key().size();
205  std::string s1; for(int i=0; i<n; ++i) s1.append(" "); s1.append("|");
206  n = 65-m_circlesTRTKey.key().size();
207  std::string s2; for(int i=0; i<n; ++i) s2.append(" "); s2.append("|");
208  n = 65-m_PRDTruthTRTKey.key().size();
209  std::string s3; for(int i=0; i<n; ++i) s3.append(" "); s3.append("|");
210 
211  out<<"| Location of input segmentss | "<<m_origtrackKey.key() <<s1
212  <<std::endl;
213  out<<"| TRT clusters | "<<m_circlesTRTKey.key() <<s2
214  <<std::endl;
215  out<<"| Truth location for trt | "<<m_PRDTruthTRTKey.key() <<s3
216  <<std::endl;
217  out<<"| pT cut | "
218  <<std::setw(14)<<std::setprecision(5)<<m_pTmin
219  <<" |"
220  <<std::endl;
221  out<<"| rapidity cut | "
222  <<std::setw(14)<<std::setprecision(5)<<m_rapcut
223  <<" |"
224  <<std::endl;
225  out<<"| min Radius | "
226  <<std::setw(14)<<std::setprecision(5)<<m_rmin
227  <<" |"
228  <<std::endl;
229  out<<"| max Radius | "
230  <<std::setw(14)<<std::setprecision(5)<<m_rmax
231  <<" |"
232  <<std::endl;
233  out<<"| Min. number drift circles for generated segment | "
234  <<std::setw(14)<<std::setprecision(5)<<m_dccut
235  <<" |"
236  <<std::endl;
237  out<<"|----------------------------------------------------------------"
238  <<"----------------------------------------------------|"
239  <<std::endl;
240 
241  return out;
242 }

◆ efficiencyReconstruction()

void InDet::SegmentDriftCircleAssValidation::efficiencyReconstruction ( )
protected

Definition at line 435 of file SegmentDriftCircleAssValidation.cxx.

436 {
437  if(m_particles.empty()) return;
439 
440  for (auto k: m_particles) {
441 
443  int n = (*im).second;
444 
445  int m = 0;
446  t = m_tracks.find(k);
447  for(; t!=te; ++t) { //* check if reaching the end of the multimap instead
448  if((*t).first!=k) break;
449  if((*t).second > m) m = (*t).second;
450  }
451  int d = 0;
452  double rd = (double)m/n; if(rd>0.9) d = 0;
453  else if(rd > 0.75) d=1;
454  else if(rd > 0.50) d=2;
455  else if(rd > 0.25) d=3;
456  else if(rd <= 0.25) d=4;
457  ++m_efficiency[d]; ++m_events;
458  }
459 
460 }

◆ 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 88 of file SegmentDriftCircleAssValidation.cxx.

89 {
90  msg(MSG::DEBUG) << " InDetSegmentDriftCircleAssValidation execute()" << endmsg;
91 
93 
94  if( !origColTracks.isValid() ){
95  msg(MSG::FATAL) << "No TRT tracks with name " << m_origtrackKey.key() << " found in StoreGate!" << endmsg;
96  return StatusCode::FAILURE;
97  }else{
98  msg(MSG::DEBUG) << "Found TRT trak collection " << m_origtrackKey.key() << " in StoreGate!" << endmsg;
99  }
100 
102 
103  if ( !prdCollection.isValid() ){
104  msg(MSG::FATAL) << "TRT PRD_MultiTruthCollection " << m_PRDTruthTRTKey.key() << " NOT found!" << endmsg;
105  return StatusCode::FAILURE;
106  } else {
107  msg(MSG::DEBUG) << "Got TRT PRD_MultiTruthCollection " << m_PRDTruthTRTKey.key() << endmsg;
108  }
109 
110  newCirclesEvent( prdCollection.cptr() );
112 
113  tracksComparison( origColTracks.cptr(), prdCollection.cptr() );
114 
115  if(m_particles.size() > 0) {
116 
118 
119  }
120 
121  if(msgLvl(MSG::DEBUG)){m_nprint=1; msg(MSG::DEBUG) << (*this) << endmsg;}
122 
123  return StatusCode::SUCCESS;
124 }

◆ 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 130 of file SegmentDriftCircleAssValidation.cxx.

130  {
131 
132  if(m_events<=0) return StatusCode::SUCCESS;
133 
134  std::cout<<"|-----------------------------------------------------------------------------------|"
135  <<std::endl;
136  std::cout<<"| TrackSegmentValidation statistics"<<std::endl;
137 
138  double ne = double(m_events);
139  double ef[5]; for(int i=0; i!=5; ++i) ef[i] = double(m_efficiency[i])/ne;
140 
141  std::cout<<"|-----------------------------------------------------------------------------------|"
142  <<std::endl;
143  std::cout<<"| TRT Particles >0.9 >0.75 >0.50 >0.25 <=0.25 |"
144  <<std::endl;
145  std::cout<<"|-----------------------------------------------------------------------------------|"
146  <<std::endl;
147 
148  std::cout<<"| "
149  <<std::setw(6)<<m_events<<" "
150  <<std::setw(13)<<std::setprecision(5)<<ef[0]
151  <<std::setw(13)<<std::setprecision(5)<<ef[1]
152  <<std::setw(13)<<std::setprecision(5)<<ef[2]
153  <<std::setw(13)<<std::setprecision(5)<<ef[3]
154  <<std::setw(13)<<std::setprecision(5)<<ef[4]<<" |"
155  <<std::endl;
156  std::cout<<"|-----------------------------------------------------------------------------------|"
157  <<std::endl;
158 
159  return StatusCode::SUCCESS;
160 }

◆ 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 582 of file SegmentDriftCircleAssValidation.cxx.

583 {
584  Q = true;
585  std::list<PRD_MultiTruthCollection::const_iterator> mc;
586  if (d) {
587  auto r = prdCollection->equal_range(d->identify());
588  for( auto i = r.first; i != r.second && i != prdCollection->end(); ++i){
589  mc.push_back(i);
590  }
591  }
592  if (mc.empty()) Q = false;
593 
594  return mc;
595 }

◆ 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  // Erase statistics information
71  //
72  m_events = 0 ;
73 
74  for(int i=0; i!=5; ++i) m_efficiency[i] = 0;
75 
76  // Initialize ReadHandleKey
77  ATH_CHECK( m_origtrackKey.initialize() );
80 
81  return sc;
82 }

◆ 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 566 of file SegmentDriftCircleAssValidation.cxx.

568 {
570  for(; k!=m_kinecircle.end(); ++k) {
571 
572  if((*k).first!= K) return false;
573  if(d->detectorElement()==(*k).second->detectorElement()) return true;
574  }
575  return false;
576 }

◆ kine()

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

Definition at line 466 of file SegmentDriftCircleAssValidation.cxx.

468 {
469  std::list<int> lk;
470  bool find;
471  std::list<PRD_MultiTruthCollection::const_iterator> mc = findTruth(d,find, prdCollection );
472  if(!find) return lk;
474  for(imc=mc.begin();imc!=imce;++imc){
475  const int uniqueID = HepMC::uniqueID((*imc)->second); if(uniqueID<=0) continue;
476 
477  HepMC::ConstGenParticlePtr pa = (*imc)->second.cptr();
478  if(!pa || !pa->production_vertex()) continue;
479 
480  // Charge != 0 test
481  //
482  int pdg = pa->pdg_id();
483  if (MC::isNucleus(pdg)) continue; // ignore nuclei from hadronic interactions
484  if(std::abs(MC::charge(pdg)) < .5) continue;
485 
486  // pT cut
487  //
488  double pt = pa->momentum().perp();
489  if( pt < m_pTmin ) continue;
490 
491  // Rapidity cut
492  //
493  double t = std::abs(pa->momentum().pz())/pt;
494  if( t > m_tcut ) continue;
495 
496  // Radius cut
497  //
498  Point3D<double> v(pa->production_vertex()->position().x(),
499  pa->production_vertex()->position().y(),
500  pa->production_vertex()->position().z());
501  double r = sqrt(v.x()*v.x()+v.y()*v.y());
502  if( r < m_rmin || r > m_rmax) continue;
503 
504  lk.push_back(uniqueID);
505  }
506 
507  return lk;
508 }

◆ kinpart()

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

Definition at line 514 of file SegmentDriftCircleAssValidation.cxx.

516 {
517 
518  std::list<PRD_MultiTruthCollection::const_iterator> lk;
519  bool find;
520  std::list<PRD_MultiTruthCollection::const_iterator> mc = findTruth(d,find, prdCollection );
521  if(!find) return lk;
522 
524  for(imc=mc.begin();imc!=imce;++imc){
525 
526  const int uniqueID = HepMC::uniqueID((*imc)->second); if(uniqueID<=0) continue;
527 
528  HepMC::ConstGenParticlePtr pa = (*imc)->second.cptr();
529  if(!pa || !pa->production_vertex()) continue;
530 
531  // Charge != 0 test
532  //
533  int pdg = pa->pdg_id();
534  if (MC::isNucleus(pdg)) continue; // ignore nuclei from hadronic interactions
535  if (std::abs(MC::charge(pdg)) < .5) continue;
536 
537  // pT cut
538  //
539  double pt = pa->momentum().perp();
540  if( pt < m_pTmin ) continue;
541 
542 
543  // Rapidity cut
544  //
545  double t = std::abs(pa->momentum().pz())/pt;
546  if( t > m_tcut ) continue;
547 
548  // Radius cut
549  //
550  Point3D<double> v(pa->production_vertex()->position().x(),
551  pa->production_vertex()->position().y(),
552  pa->production_vertex()->position().z());
553  double r = sqrt(v.x()*v.x()+v.y()*v.y());
554  if( r < m_rmin || r > m_rmax) continue;
555 
556  lk.push_back((*imc));
557  }
558 
559  return lk;
560 }

◆ 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 280 of file SegmentDriftCircleAssValidation.cxx.

281 {
282  m_ncircles = 0;
283  m_kinecircle.clear();
284  m_allBarcodes.clear();
285 
286  // Get Drift Circles container
287  //
289 
290  // Loop through all pixel clusters
291  //
292  if( trtcontainer.isValid() ) {
293 
294  InDet::TRT_DriftCircleContainer::const_iterator w = trtcontainer->begin();
295  InDet::TRT_DriftCircleContainer::const_iterator we = trtcontainer->end ();
296 
297  for(; w!=we; ++w) {
298 
299  InDet::TRT_DriftCircleCollection::const_iterator c = (*w)->begin();
300  InDet::TRT_DriftCircleCollection::const_iterator ce = (*w)->end ();
301 
302  for(; c!=ce; ++c) {
303 
304  ++m_ncircles;
305 
306  std::list<int> lk = kine((*c), prdCollection );
307  if(int(lk.size())==0) continue;
308  std::list<int>::iterator ik,ike=lk.end();
309  for(ik=lk.begin();ik!=ike;++ik){
310  if(!isTheSameStrawElement((*ik),(*c))) {
311  m_kinecircle.insert(std::make_pair((*ik),(*c)));
312  bool isThere = false;
314  for(ii=m_allBarcodes.begin();ii!=iie;++ii) {
315  if((*ik)==(*ii)) isThere = true;
316  }
317  if(!isThere) m_allBarcodes.push_back((*ik));
318  }
319  }
320  }
321  }
322  }
323 }

◆ 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 329 of file SegmentDriftCircleAssValidation.cxx.

330 {
331  m_particles.clear();
332  m_allParticles.clear();
333 
334  if (m_kinecircle.empty()) return 0;
335 
337  for(ii=m_allBarcodes.begin();ii!=iie;++ii) {
338  int ndc = 0;
340  for(; dc!=m_kinecircle.end(); ++dc) {
341  if((*ii)==(*dc).first) ndc++;
342  }
343  m_allParticles.insert(std::make_pair((*ii),ndc));
344  }
345 
346  int t = 0;
348  for(im=m_allParticles.begin(); im!=ime; ++im) {
349  if((*im).second>=m_dccut){
350  m_particles.push_back((*im).first);
351  ++t;
352  }else{
353  m_kinecircle.erase((*im).first);
354  }
355  }
356 
357  return t;
358 }

◆ 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 364 of file SegmentDriftCircleAssValidation.cxx.

365 {
366  if(!m_nqsegments) return;
367 
368  m_tracks.clear();
369 
370  int KINE[200],NKINE[200];
371  for(int i=0;i<200;++i){
372  KINE[i] =0; NKINE[i] = 0;
373  }
374 
375  Trk::SegmentCollection::const_iterator iseg = origColTracks->begin();
376  Trk::SegmentCollection::const_iterator isegEnd = origColTracks->end();
377  for(; iseg != isegEnd; ++ iseg) {
378 
380  const Trk::TrackSegment *tS = dynamic_cast<const Trk::TrackSegment*>(*iseg);
381  if(!tS) continue;
382 
383  int NK = 0;
384 
385  for(int it=0; it<int(tS->numberOfMeasurementBases()); ++it){
386  //test if it is a pseudo measurement
387  if ( dynamic_cast<const Trk::PseudoMeasurementOnTrack*>(tS->measurement(it)) ) continue;
388 
389  const InDet::TRT_DriftCircleOnTrack* trtcircle = dynamic_cast<const InDet::TRT_DriftCircleOnTrack*>(tS->measurement(it));
390  if(!trtcircle) continue;
391 
392  const InDet::TRT_DriftCircle* RawDataClus=dynamic_cast<const InDet::TRT_DriftCircle*>(trtcircle->prepRawData());
393  if(!RawDataClus) continue;
394 
395  std::list<PRD_MultiTruthCollection::const_iterator> lk = kinpart(RawDataClus, prdCollection );
396  if (int(lk.size())==0) continue;
398 
399  //* looping over the returned list of genParticles
400  for(ik=lk.begin(); ik!=ike; ++ik){
401  const int uniqueID = HepMC::uniqueID((*ik)->second);
402  if (uniqueID<=0) continue;
403  int m = -1;
404 
405  for(int n=0; n!=NK; ++n) {
406  if(uniqueID==KINE[n]) {
407  ++NKINE[n];
408  m=n;
409  break;
410  }
411  }
412 
413  if(m<0) {
414  KINE[NK] = uniqueID;
415  NKINE[NK] = 1;
416  if(NK < 200) ++NK;
417  }
418  }
419  }
420  int nm = 0, m = 0;
421  for(int n=0; n!=NK; ++n) {
422  if(NKINE[n] > m) {
423  nm = n;
424  m=NKINE[n];
425  }
426  }
427  m_tracks.insert(std::make_pair(KINE[nm],m) ); //* if m=0, the KINE[nm] will be set to the previous one
428  }
429 }

◆ 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 74 of file SegmentDriftCircleAssValidation.h.

◆ m_allParticles

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

Definition at line 77 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 63 of file SegmentDriftCircleAssValidation.h.

◆ m_dccut

int InDet::SegmentDriftCircleAssValidation::m_dccut
protected

Definition at line 67 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 79 of file SegmentDriftCircleAssValidation.h.

◆ m_events

int InDet::SegmentDriftCircleAssValidation::m_events
protected

Definition at line 71 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 73 of file SegmentDriftCircleAssValidation.h.

◆ m_ncircles

int InDet::SegmentDriftCircleAssValidation::m_ncircles
protected

Definition at line 72 of file SegmentDriftCircleAssValidation.h.

◆ m_nprint

int InDet::SegmentDriftCircleAssValidation::m_nprint
protected

Definition at line 60 of file SegmentDriftCircleAssValidation.h.

◆ m_nqsegments

int InDet::SegmentDriftCircleAssValidation::m_nqsegments
protected

Definition at line 75 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 61 of file SegmentDriftCircleAssValidation.h.

◆ m_particles

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

Definition at line 76 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 62 of file SegmentDriftCircleAssValidation.h.

◆ m_pTmin

double InDet::SegmentDriftCircleAssValidation::m_pTmin
protected

Definition at line 64 of file SegmentDriftCircleAssValidation.h.

◆ m_rapcut

double InDet::SegmentDriftCircleAssValidation::m_rapcut
protected

Definition at line 66 of file SegmentDriftCircleAssValidation.h.

◆ m_rmax

double InDet::SegmentDriftCircleAssValidation::m_rmax
protected

Definition at line 69 of file SegmentDriftCircleAssValidation.h.

◆ m_rmin

double InDet::SegmentDriftCircleAssValidation::m_rmin
protected

Definition at line 68 of file SegmentDriftCircleAssValidation.h.

◆ m_tcut

double InDet::SegmentDriftCircleAssValidation::m_tcut
protected

Definition at line 65 of file SegmentDriftCircleAssValidation.h.

◆ m_tracks

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

Definition at line 78 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
isNucleus
bool isNucleus(const T &p)
PDG rule 16: Nuclear codes are given as 10-digit numbersĀ±10LZZZAAAI.
Definition: AtlasPID.h:583
InDet::SegmentDriftCircleAssValidation::m_ncircles
int m_ncircles
Definition: SegmentDriftCircleAssValidation.h:72
InDet::SegmentDriftCircleAssValidation::m_events
int m_events
Definition: SegmentDriftCircleAssValidation.h:71
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
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:69
InDet::SegmentDriftCircleAssValidation::m_origtrackKey
SG::ReadHandleKey< Trk::SegmentCollection > m_origtrackKey
Definition: SegmentDriftCircleAssValidation.h:61
InDet::SegmentDriftCircleAssValidation::m_dccut
int m_dccut
Definition: SegmentDriftCircleAssValidation.h:67
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
InDet::SegmentDriftCircleAssValidation::m_rapcut
double m_rapcut
Definition: SegmentDriftCircleAssValidation.h:66
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:197
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:582
skel.it
it
Definition: skel.GENtoEVGEN.py:396
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:64
InDet::SegmentDriftCircleAssValidation::kine
std::list< int > kine(const InDet::TRT_DriftCircle *, const PRD_MultiTruthCollection *prdCollection)
Definition: SegmentDriftCircleAssValidation.cxx:467
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:567
InDet::TRT_DriftCircleOnTrack
Definition: TRT_DriftCircleOnTrack.h:53
InDet::SegmentDriftCircleAssValidation::dumpevent
MsgStream & dumpevent(MsgStream &out) const
Definition: SegmentDriftCircleAssValidation.cxx:248
InDet::TRT_DriftCircle
Definition: TRT_DriftCircle.h:32
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
InDet::SegmentDriftCircleAssValidation::m_tracks
std::multimap< int, int > m_tracks
Definition: SegmentDriftCircleAssValidation.h:78
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
Trk::Segment::numberOfMeasurementBases
unsigned int numberOfMeasurementBases() const
Return the number of contained Trk::MeasurementBase (s)
Definition: Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:193
InDet::SegmentDriftCircleAssValidation::newCirclesEvent
void newCirclesEvent(const PRD_MultiTruthCollection *)
Definition: SegmentDriftCircleAssValidation.cxx:280
InDet::SegmentDriftCircleAssValidation::QualityTracksSelection
int QualityTracksSelection()
Definition: SegmentDriftCircleAssValidation.cxx:329
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
InDet::SegmentDriftCircleAssValidation::m_nqsegments
int m_nqsegments
Definition: SegmentDriftCircleAssValidation.h:75
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
InDet::SegmentDriftCircleAssValidation::m_particles
std::list< int > m_particles
Definition: SegmentDriftCircleAssValidation.h:76
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
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
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:60
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:85
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:68
HepMC::uniqueID
int uniqueID(const T &p)
Definition: MagicNumbers.h:116
Trk::Segment::measurement
const MeasurementBase * measurement(unsigned int) const
returns the Trk::MeasurementBase objects depending on the integer
Definition: Tracking/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:435
InDet::SegmentDriftCircleAssValidation::kinpart
std::list< PRD_MultiTruthCollection::const_iterator > kinpart(const InDet::TRT_DriftCircle *, const PRD_MultiTruthCollection *)
Definition: SegmentDriftCircleAssValidation.cxx:515
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:228
charge
double charge(const T &p)
Definition: AtlasPID.h:756
InDet::SegmentDriftCircleAssValidation::m_efficiency
int m_efficiency[5]
Definition: SegmentDriftCircleAssValidation.h:79
InDet::SegmentDriftCircleAssValidation::tracksComparison
void tracksComparison(const Trk::SegmentCollection *, const PRD_MultiTruthCollection *)
Definition: SegmentDriftCircleAssValidation.cxx:364
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:154
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:73
InDet::SegmentDriftCircleAssValidation::m_allBarcodes
std::list< int > m_allBarcodes
Definition: SegmentDriftCircleAssValidation.h:74
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:62
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:623
InDet::SegmentDriftCircleAssValidation::m_circlesTRTKey
SG::ReadHandleKey< TRT_DriftCircleContainer > m_circlesTRTKey
Definition: SegmentDriftCircleAssValidation.h:63
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
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:65
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:77
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 >