ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
IDScanZFinder Class Reference

#include <IDScanZFinder.h>

Inheritance diagram for IDScanZFinder:
Collaboration diagram for IDScanZFinder:

Public Member Functions

 IDScanZFinder (const std::string &, const std::string &, const IInterface *)
 
virtual ~IDScanZFinder ()
 
virtual StatusCode initialize () override
 
virtual TrigVertexCollectionfindZ (const std::vector< const TrigSiSpacePoint * > &spVec, const IRoiDescriptor &roi) override
 
void initializeInternal (long maxLayers, long lastBarrel)
 
std::vector< vertex > * findZInternal (const std::vector< const TrigSiSpacePoint * > &spVec, const IRoiDescriptor &roi)
 
const std::vector< std::vector< long > > * GetnHisto ()
 
const std::vector< std::vector< double > > * GetzHisto ()
 
long GetNMax ()
 
void setLayers (long maxLayers, long lastBarrelLayer)
 
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 sysInitialize () override
 Perform system initialization for an algorithm. 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
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Public Attributes

ToolHandle< ITrigL2LayerNumberToolm_numberingTool
 no private data members - all inherited from the IDScanZFinderInternal class NB: BE CAREFUL !!! Nothing set with a job option should EVER be changed inside the ZFinderInternal code
More...
 

Protected Member Functions

long fillVectors (const std::vector< const TrigSiSpacePoint * > &spVec, const IRoiDescriptor &roi, std::vector< double > &phi, std::vector< double > &rho, std::vector< double > &zed, std::vector< long > &lyr, std::vector< long > &filledLayers)
 
const std::string & getType () const
 
const std::string & getName () const
 
const std::string & getVersion () const
 
int GetInternalStatus () const
 
int SetInternalStatus (int s)
 
double computeZV (double r1, double z1, double r2, double z2) const
 
double computeZV (double r1, double p1, double z1, double r2, double p2, double z2) const
 
void SetReturnValue (double d)
 
double GetReturnValue () 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

long m_IdScan_MaxNumLayers
 maximum number of layers and last barrel layer More...
 
long m_IdScan_LastBrlLayer
 
double m_invPhiSliceSize
 
long m_NumPhiSlices
 
double m_phiBinSize
 
bool m_forcePhiBinSize
 
double m_usedphiBinSize
 
double m_ROIphiWidth
 
double m_usedROIphiWidth
 
double m_minZBinSize
 
double m_zBinSizeEtaCoeff
 
long m_numberOfPeaks
 
bool m_pixOnly
 
std::string m_Type
 
std::string m_Name
 
int m_Status
 
bool m_chargeAware
 
bool m_zHistoPerPhi
 
double m_dphideta
 
double m_neighborMultiplier
 
std::vector< std::vector< long > > m_extraPhi
 
std::vector< std::vector< long > > m_nHisto [2]
 
std::vector< std::vector< double > > m_zHisto [2]
 
long m_NMax
 
int m_nFirstLayers
 
double m_vrtxDistCut
 
double m_vrtxMixing
 
int m_nvrtxSeparation
 
bool m_preferCentralZ
 
bool m_trustSPprovider
 
double m_returnval
 
bool m_fullScanMode
 
int m_tripletMode
 
double m_tripletDZ
 
double m_tripletDK
 
double m_halfTripletDK
 
double m_tripletDP
 
double m_weightThreshold
 to apply a hreshold to the found vertex candidates More...
 

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

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 40 of file IDScanZFinder.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ IDScanZFinder()

IDScanZFinder::IDScanZFinder ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 30 of file IDScanZFinder.cxx.

30  :
32  m_numberingTool("TrigL2LayerNumberTool")
33 {
34  declareInterface< ITrigRun1ZFinder >( this );
35 
36  declareProperty( "PhiBinSize", m_phiBinSize = 0.2 );
37  declareProperty( "UseOnlyPixels", m_pixOnly = false );
38  declareProperty( "MinZBinSize", m_minZBinSize = 0.2 );
39  declareProperty( "nFirstLayers", m_nFirstLayers = 3 );
40  declareProperty( "ZBinSizeEtaCoeff", m_zBinSizeEtaCoeff = 0.1 );
41  declareProperty( "DPhiDEta", m_dphideta = -0.02 );
42  declareProperty( "NeighborMultiplier", m_neighborMultiplier = 1.);
43  declareProperty( "NumberOfPeaks", m_numberOfPeaks = 1 );
44  declareProperty( "ChargeAware", m_chargeAware = false );
45  declareProperty( "ZHistoPerPhi", m_zHistoPerPhi = false );
46  declareProperty( "VrtxDistCut", m_vrtxDistCut = 0. );
47  declareProperty( "nVrtxSeparation", m_nvrtxSeparation = 0 );
48  declareProperty( "VrtxMixing", m_vrtxMixing = 0. );
49  declareProperty( "PreferCentralZ", m_preferCentralZ = true );
50  declareProperty( "TrustSPProvider", m_trustSPprovider = true );
51  declareProperty( "FullScanMode", m_fullScanMode = false );
52  declareProperty( "TripletMode", m_tripletMode = 0 );
53  declareProperty( "TripletDZ", m_tripletDZ = 25. );
54  declareProperty( "TripletDK", m_tripletDK = 0.005 );
55  declareProperty( "TripletDP", m_tripletDP = 0.05 );
56  declareProperty( "WeightThreshold", m_weightThreshold = 0 );
57 }

◆ ~IDScanZFinder()

virtual IDScanZFinder::~IDScanZFinder ( )
inlinevirtual

Definition at line 45 of file IDScanZFinder.h.

45 {};

Member Function Documentation

◆ computeZV() [1/2]

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::computeZV ( double  r1,
double  p1,
double  z1,
double  r2,
double  p2,
double  z2 
) const
protectedinherited

Definition at line 85 of file IDScanZFinderInternal.h.

321  {
322  double x1, y1, x2, y2;
323  //sincos( p1, &y1, &x1 ); x1 *= r1; y1 *= r1;
324  //sincos( p2, &y2, &x2 ); x2 *= r2; y2 *= r2;
325  x1 = r1 * cos(p1);
326  x2 = r2 * cos(p2);
327  y1 = r1 * sin(p1);
328  y2 = r2 * sin(p2);
329 
330 #define _COMPUTEX0_
331 #ifdef _COMPUTEX0_
332  double slope = (y2-y1)/(x2-x1);
333  double invslope = 1./slope;
334  double x0 = (slope*x1-y1)/(slope+invslope);
335  //double y0 = -1*x0*invslope;
336  double d0sqr = x0*x0*(1+invslope*invslope);
337  // s1 and s2 are the track lengths from the point of closest approach
338  double s1 = sqrt(r1*r1-d0sqr);
339  double s2 = sqrt(r2*r2-d0sqr); // or s1*(x1-x0)/(x2-x0)
340 #else
341  double inv_dels = 1./sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) );
342  double dotrr = x1*x2 + y1*y2;
343  double s1 = ( dotrr - r1*r1 ) * inv_dels;
344  double s2 = ( r2*r2 - dotrr ) * inv_dels;
345 #endif
346 
347  return (z2*s1-z1*s2)/(s1-s2);
348 }

◆ computeZV() [2/2]

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::computeZV ( double  r1,
double  z1,
double  r2,
double  z2 
) const
protectedinherited

Definition at line 84 of file IDScanZFinderInternal.h.

315  {
316  return (z2*r1-z1*r2)/(r1-r2);
317 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::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

◆ fillVectors()

long Run1::IDScanZFinderInternal< TrigSiSpacePoint >::fillVectors ( const std::vector< const TrigSiSpacePoint * > &  spVec,
const IRoiDescriptor roi,
std::vector< double > &  phi,
std::vector< double > &  rho,
std::vector< double > &  zed,
std::vector< long > &  lyr,
std::vector< long > &  filledLayers 
)
protectedinherited

get from roi now

DOES NOT span the phi=pi boundary

DOES span the phi=pi boundary

resize excluding points outside the RoI

Definition at line 73 of file IDScanZFinderInternal.h.

358 {
359  std::vector<bool> lcount( m_IdScan_MaxNumLayers, false );
360 
361  // full scan check
362  typename std::vector<const SpacePoint *>::const_iterator SpItr( spVec.begin() );
363 
364  long nSPs = spVec.size();
365 
366  // to shift the phi of space points as if the RoI starts at phi~0
367  // assumes that RoI->phi0() and the SPs are in range [-pi,+pi]
368  //
369  double roiPhiMin, roiPhiMax;
370 
371  if ( m_fullScanMode || roi.isFullscan() ) {
372  roiPhiMin = -M_PI;
373  roiPhiMax = M_PI;
374  }
375  else {
376  // If we trust that all the SPs are properly input, we determine the RoI phi width
377  // using the SPs themselves.
378  // If the RoI phi range is wider than pi, we keep everything as usual.
380  {
381  double roiPhiPosMin( 9.9), roiPhiPosMax(0);
382  double roiPhiNegMin(-9.9), roiPhiNegMax(0); // least negative and most negative
383  for(long i=0; i<nSPs; ++i, ++SpItr)
384  {
385  double spphi = (*SpItr)->phi();
386  if ( spphi>0 && spphi>roiPhiPosMax ) roiPhiPosMax = spphi;
387  if ( spphi>0 && spphi<roiPhiPosMin ) roiPhiPosMin = spphi;
388 
389  if ( spphi<0 && spphi<roiPhiNegMax ) roiPhiNegMax = spphi;
390  if ( spphi<0 && spphi>roiPhiNegMin ) roiPhiNegMin = spphi;
391  }
392 
393  if ( roiPhiNegMax > roiPhiNegMin ) {
394  // if all SPs are in (0, pi):
395  roiPhiMin = roiPhiPosMin;
396  roiPhiMax = roiPhiPosMax;
397  }
398  else if ( roiPhiPosMax < roiPhiPosMin ) {
399  // if all SPs are in (-pi, 0):
400  roiPhiMin = roiPhiNegMax;
401  roiPhiMax = roiPhiNegMin;
402  }
403  else if ( roiPhiPosMin - roiPhiNegMin < M_PI ) {
404  // if we have an RoI that covers phi=0 axis
405  roiPhiMin = roiPhiNegMax;
406  roiPhiMax = roiPhiPosMax;
407  }
408  else {
409  // if we have an RoI that covers phi=pi axis
410  roiPhiMin = roiPhiPosMin;
411  roiPhiMax = roiPhiNegMin;
412  }
413 
414  roiPhiMin -= 1e-10;
415  roiPhiMax += 1e-10;
416 
417  SpItr = spVec.begin(); // rewind the iterator
418  }
419  else {
420 
422  if ( roi.phiMinus()==roi.phiPlus() ) {
423  roiPhiMin = roi.phi()-0.5*m_usedROIphiWidth;
424  roiPhiMax = roi.phi()+0.5*m_usedROIphiWidth;
425  if(roiPhiMin<-M_PI) roiPhiMin+=2*M_PI;
426  if(roiPhiMax>M_PI) roiPhiMax-=2*M_PI;
427  }
428  else {
429  // already wrapped by RoiDescriptor
430  roiPhiMin = roi.phiMinus();
431  roiPhiMax = roi.phiPlus();
432  }
433 
434  }
435 
436  }
437 
438 
439  double dphi = roiPhiMax-roiPhiMin;
440  if ( dphi<0 ) dphi+=2*M_PI;
441 
442  m_usedROIphiWidth = dphi;
443 
444  // std::cout << "m_usedROIphiWidth: " << m_usedROIphiWidth << std::endl;
446 
447 
448  bool piBound=(roiPhiMin>roiPhiMax);
449 
450  int icount = 0;
451 
452  if(!piBound)
453  {
455  for(long i=0; i<nSPs; ++i, ++SpItr)
456  {
457  if (m_pixOnly && !(*SpItr)->isPixel()) continue;
458  double phi2 = (*SpItr)->phi() - roiPhiMin;
459 
460  if ( phi2>=0 && phi2<dphi ) {
461  phi[i] = phi2;
462  rho[i] = (*SpItr)->r();
463  zed[i] = (*SpItr)->z();
464  lyr[i] = (*SpItr)->layer();
465  lcount[lyr[i]]=true;
466  ++icount;
467  }
468  }
469  }
470  else
471  {
473  for(long i=0; i<nSPs; ++i, ++SpItr)
474  {
475  if (m_pixOnly && !(*SpItr)->isPixel()) continue;
476  double phi2 = (*SpItr)->phi() - roiPhiMin;
477  if( phi2<0.0) phi2+=2*M_PI;
478 
479  if ( phi2>=0 && phi2<dphi ) {
480  phi[i] = phi2;
481  rho[i] = (*SpItr)->r();
482  zed[i] = (*SpItr)->z();
483  lyr[i] = (*SpItr)->layer();
484  lcount[lyr[i]]=true;
485  ++icount;
486  }
487  }
488  }
489 
490  if ( icount<nSPs ) {
491 
492  // std::cout << "IDScanZFinderInternal::fillVectors() filtered some spacepoints " << nSPs
493  // << " -> " << icount << std::endl;
495  phi.resize(icount);
496  rho.resize(icount);
497  zed.resize(icount);
498  lyr.resize(icount);
499 
500  nSPs = icount;
501  }
502 
503 
504  // Store in filledLayers the layerNumber of those layers that contain hits.
505  // So, if there are hits in layers 1,3,8 filledLayers[0]=1, filledLayers[1]=3
506  // and filledLayers[2]=8
507  //
508  long filled = 0;
509  for ( long i=0; i<m_IdScan_MaxNumLayers; ++i ) {
510  if ( lcount[i] ) {
511  filledLayers[filled] = i;
512  ++filled;
513  }
514  }
515 
516  // std::cout << "SUTT NSP : " << phi.size() << " " << spVec.size() << std::endl;
517  // for ( unsigned i=0 ; i<phi.size() ; i++ ) {
518  // std::cout << "SUTT SP : " << i << "\tphi " << phi[i] << "\tz " << zed[i] << "\tr " << rho[i] << std::endl;
519  // }
520 
521  return filled;
522 }

◆ findZ()

TrigVertexCollection * IDScanZFinder::findZ ( const std::vector< const TrigSiSpacePoint * > &  spVec,
const IRoiDescriptor roi 
)
overridevirtual

Implements ITrigRun1ZFinder.

Definition at line 138 of file IDScanZFinder.cxx.

139 {
140 
142 
143  std::vector<vertex>* vertices = findZInternal( spVec, roi);
144 
145  ATH_MSG_DEBUG("roi: " << roi);
146  ATH_MSG_DEBUG("m_NumPhiSlices: " << m_NumPhiSlices);
147 
148 
149  if ( GetInternalStatus()==-1 ) {
150  ATH_MSG_WARNING("phi of spacepoint out of range! phi=" << GetReturnValue());
151  ATH_MSG_WARNING("Exiting ZFinder...");
152 
153  }
154 
155  for ( unsigned int i=0 ; i<vertices->size() ; i++ ) {
156  output->push_back( new TrigVertex( (*vertices)[i]._z, (*vertices)[i]._weight, TrigVertex::NULLID ) );
157  }
158 
159  delete vertices;
160 
161  return output;
162 }

◆ findZInternal()

std::vector< typename IDScanZFinderInternal< TrigSiSpacePoint >::vertex > * Run1::IDScanZFinderInternal< TrigSiSpacePoint >::findZInternal ( const std::vector< const TrigSiSpacePoint * > &  spVec,
const IRoiDescriptor roi 
)
inherited

First calculate the pedestal to be subtracted (only used in the HI case at the moment)

skip bins used for the vertex candidates

if ( ztest >= maxh && ( ( m_applyWeightThreshold && ztest>m_weightThreshold ) || !m_applyWeightThreshold ) ) { apply threshold later - should we wish it

if we are in triplet mode, even a single pair means 3 consistent hits also bomb out if no maximum (above threshold) is found

if found a vertex flag the bins so we don't use them again

at this point we have the histogram with the highest N vertices removed so we can find the "non vertex" pedestal from these, although it will be somewhat lower than perhaps it should be, in case some of the "vertices" we are removing are just random upwards fluctuations

NB: have moved pedestal calculation to before the extraction of the vertices if we calculate it after, then we have too low a pedestal if some vertices are really random fluctuations. If we calculate it before then we overestimate the pedestal, really we should try to decide how many real vertices we have, and then only exclude them, but that level of detail is probably not justified by the correlation with the offline track multiplicity on the vertex

copy vertices to output vector - this is so we can first impose cuts on the vertices we have found should we wish to

NB: if m_weightThreshold==0 then pedestal == 0 also
AAAAAAAAARRRGHH!!! This is ridiculous, passing parameters about differently because we don't have a proper interface defined

Definition at line 56 of file IDScanZFinderInternal.h.

527 {
528  std::vector<vertex>* output = new std::vector<vertex>();
529 
530  long nsp = spVec.size();
531  if ( !nsp ) return output; //No points - return nothing
532 
534 
535  // Creating vectors of doubles/longs for storing phi,rho,z and layer of space points.
536  // filledLayers is used to know which of all layers contain space points
537  // and fill with relevant info...
538  //
539  std::vector<double> phi(nsp), rho(nsp), zed(nsp);
540  std::vector<long> lyr(nsp), filledLayers(m_IdScan_MaxNumLayers);
541 
542  long filled = this->fillVectors( spVec, roi, phi, rho, zed, lyr, filledLayers);
543 
544  nsp = phi.size();
545 
546  // std::cout << "SUTT roi " << roi << "nsp: " << nsp << std::endl;
547 
548  double zMin = roi.zedMinus();
549  double zMax = roi.zedPlus();
550 
551  // The bin size of the z-histo -and hence the number of bins-
552  // depends on the RoI's |eta| (to account for worsening z-resolution)
553  //
554  const double ZBinSize = m_minZBinSize + m_zBinSizeEtaCoeff*fabs(roi.eta());
555  const double invZBinSize = 1./ZBinSize;
556 
557 
558  const long HalfZhistoBins = long ( ceil( 0.5*(zMax-zMin)*invZBinSize ) );
559  const long NumZhistoBins = 2*HalfZhistoBins;
560 
561  // number of phi bins to look at will get fewer as eta increases
562  const long extraPhiNeg = static_cast<long> ( floor( (0.9 - fabs(roi.eta()))*m_dphideta*m_invPhiSliceSize*m_neighborMultiplier ) );
563 
564 
565 
566  // These are the z-Histograms
567  // Two sets are defined: {n/z}Histo[0][phi][z] will be for positively bending tracks
568  // {n/z}Histo[1][phi][z] will be for negatively bending tracks
569  //
570 
571  long numZhistos = m_zHistoPerPhi ? m_NumPhiSlices : 1 ;
572 
573  // std::vector < std::vector < std::vector<long> > > nHisto( 2, std::vector < std::vector<long> > (numZhistos, std::vector<long> () ) );
574  // std::vector < std::vector < std::vector<double> > > zHisto( 2, std::vector < std::vector<double> > (numZhistos, std::vector<double>() ) );
575 
576  for ( int i=2 ; i-- ; ) { m_nHisto[i].clear(); m_nHisto[i].resize(numZhistos); }
577  for ( int i=2 ; i-- ; ) { m_zHisto[i].clear(); m_zHisto[i].resize(numZhistos); }
578 
579  std::vector< std::vector<long> >* nHisto = m_nHisto;
580  std::vector< std::vector<double> >* zHisto = m_zHisto;
581 
582  m_NMax = 0;
583 
584 
585 
586 
587  //Make a vector of all the PhiSlice instances we need
588  std::vector< PhiSlice* > allSlices( m_NumPhiSlices );
589  for ( unsigned int sliceIndex = 0; sliceIndex < m_NumPhiSlices; sliceIndex++ )
590  {
591  allSlices[ sliceIndex ] = new PhiSlice( sliceIndex, ZBinSize, m_invPhiSliceSize,
594  }
595 
596  int allSlicesSize = allSlices.size();
597  //Populate the slices
598  for ( long pointIndex = 0; pointIndex < nsp; pointIndex++ )
599  {
600  int phiIndex = floor( phi[ pointIndex ] * m_invPhiSliceSize );
601  if (phiIndex > allSlicesSize) {
602  continue;
603  }
604  allSlices[ phiIndex ]->AddPoint( rho[ pointIndex ], zed[ pointIndex ], phi[ pointIndex ], lyr[ pointIndex ] );
605  }
606 
607  //Read out the slices into flat structures for the whole layers
608  std::vector< std::vector< double > > allLayerRhos, allLayerZs, allLayerPhis;
609  allLayerRhos.resize( m_IdScan_MaxNumLayers );
610  allLayerZs.resize( m_IdScan_MaxNumLayers );
611  allLayerPhis.resize( m_IdScan_MaxNumLayers );
612  std::vector< std::vector< int > > allSliceWidths( m_IdScan_MaxNumLayers, std::vector< int >( m_NumPhiSlices + 1, 0 ) );
613  for ( unsigned int sliceIndex = 0; sliceIndex < m_NumPhiSlices; sliceIndex++ )
614  {
615  allSlices[ sliceIndex ]->MakeWideLayers( &allLayerRhos, &allLayerZs, &allLayerPhis, &allSliceWidths, filled, &filledLayers );
616  }
617 
618  //One histogram per phi slice?
619  if ( m_zHistoPerPhi )
620  {
621  //Allocate all the histograms
622  for ( unsigned int sliceIndex = 0; sliceIndex < m_NumPhiSlices; sliceIndex++ )
623  {
624  nHisto[0][sliceIndex].resize( NumZhistoBins + 1 );
625  zHisto[0][sliceIndex].resize( NumZhistoBins + 1 );
626  }
627  if ( m_chargeAware )
628  {
629  for ( unsigned int sliceIndex = 0; sliceIndex < m_NumPhiSlices; sliceIndex++ )
630  {
631  nHisto[1][sliceIndex].resize( NumZhistoBins + 1 );
632  zHisto[1][sliceIndex].resize( NumZhistoBins + 1 );
633  }
634  }
635 
636  //Populate the histograms
637  for ( unsigned int sliceIndex = 0; sliceIndex < m_NumPhiSlices; sliceIndex++ )
638  {
639  allSlices[ sliceIndex ]->GetHistogram( &( nHisto[0][sliceIndex] ), &( zHisto[0][sliceIndex] ),
640  &( nHisto[1][sliceIndex] ), &( zHisto[1][sliceIndex] ),
641  m_extraPhi, extraPhiNeg, m_nFirstLayers, m_tripletMode, m_chargeAware, nHisto, zHisto );
642  //Note the extra arguments here - pointers to the whole histogram collection
643  //This allows the filling of neighbouring slice histograms as required, but breaks thread safety
644 
645  delete allSlices[ sliceIndex ];
646  }
647  }
648  else
649  {
650  //Allocate the z-axis histograms
651  nHisto[0][0].resize( NumZhistoBins + 1 );
652  zHisto[0][0].resize( NumZhistoBins + 1 );
653  if ( m_chargeAware )
654  {
655  nHisto[1][0].resize( NumZhistoBins + 1 );
656  zHisto[1][0].resize( NumZhistoBins + 1 );
657  }
658 
659  //Populate the histogram - fast and memory-efficient, but not thread safe (use MakeHistogram for thread safety)
660  for ( unsigned int sliceIndex = 0; sliceIndex < m_NumPhiSlices; sliceIndex++ )
661  {
662  allSlices[ sliceIndex ]->GetHistogram( &( nHisto[0][0] ), &( zHisto[0][0] ),
663  &( nHisto[1][0] ), &( zHisto[1][0] ),
665  delete allSlices[ sliceIndex ];
666  }
667  }
668 
669  /*
670  printf("etaRoI: %f\n", etaRoI);
671  printf("ZBinSize: %f\n", ZBinSize);
672  printf("m_minZBinSize %f\n", m_minZBinSize);
673  printf("NumZhistoBins: %d\n",NumZhistoBins);
674  */
675 
676 
677 
680 
681  double pedestal = 0;
682 
683  if ( m_weightThreshold>0 ) {
684 
685  int count = 0;
686 
687  for ( long zpm=0; zpm<1 || ( m_chargeAware && zpm<2 ) ; ++zpm ) {
688 
689  for(std::vector< std::vector<long> >::iterator nfiter = nHisto[zpm].begin(); nfiter!=nHisto[zpm].end(); ++nfiter) {
690 
691  if((*nfiter).empty()) continue; // only check the filled zHistos
692  if((*nfiter).size() <= 2 ) continue;// this is only a protection : with proper inputs to zfinder, it is always satisfied
693 
694  for(std::vector<long>::iterator niter=nfiter->begin()+2; niter!=nfiter->end(); ++niter ) {
696  if ( *niter>=0 ) {
697  count++;
698  pedestal += *(niter) + *(niter-1) + *(niter-2);
699  }
700  }
701  }
702  }
703 
704  if ( count>0 ) pedestal /= count;
705 
706  }
707 
708 
709 
710 
711  // Now the nHisto's are filled; find the 3 consecutive bins with the highest number of entries...
712  //
713 
714  std::vector<double> zoutput;
715  std::vector<double> woutput;
716 
717 
718 
719  while((int)zoutput.size() < m_numberOfPeaks) {
720 
721  long maxh=0; // was 1 before triplets were introduced
722  long binMax=0;
723  long bending=0, bestPhi=0;
724  long ztest;
725 
726  for ( long zpm=0; zpm<1 || ( m_chargeAware && zpm<2 ) ; ++zpm ) {
727 
728  for(std::vector< std::vector<long> >::iterator nfiter = nHisto[zpm].begin(); nfiter!=nHisto[zpm].end(); ++nfiter) {
729 
730  if((*nfiter).empty()) continue; // only check the filled zHistos
731  if((*nfiter).size() <= 2 ) continue;// this is only a protection : with proper inputs to zfinder, it is always satisfied
732 
733  for(std::vector<long>::iterator niter=(*nfiter).begin()+2; niter!=(*nfiter).end(); ++niter ) {
734 
735  ztest = *(niter-2) + *(niter-1) + *(niter);
736  if ( ztest <= 0 || ztest < maxh ) continue;
739  if ( ztest >= maxh ) { // && ztest>m_weightThreshold ) {
740  long bintest = niter-(*nfiter).begin()-1;
741  if ( ztest > maxh ||
742  // for two candidates at same "height", prefer the more central one
743  (m_preferCentralZ && std::abs( bintest - HalfZhistoBins ) < std::abs( binMax - HalfZhistoBins ) ) ) {
744  maxh = ztest;
745  binMax = bintest;
746  bestPhi = nfiter-nHisto[zpm].begin();
747  bending = zpm;
748  }
749  }
750  }// end of niter loop
751  }
752  }
753  m_NMax = maxh;
756  if ( maxh==0 || ( m_tripletMode==0 && maxh<2 ) ) {
757  break;
758  }
759 
760  // ...and compute the "entries-weighted" average bin position
761 
762  double weightedMax = ( zHisto[bending][bestPhi][binMax] +
763  zHisto[bending][bestPhi][binMax+1] +
764  zHisto[bending][bestPhi][binMax-1] ) /maxh;
765 
767  if ( m_numberOfPeaks>1 ) {
768  nHisto[bending][bestPhi][binMax] = -1;
769  nHisto[bending][bestPhi][binMax-1] = -1;
770  nHisto[bending][bestPhi][binMax+1] = -1;
771  zHisto[bending][bestPhi][binMax] = 0;
772  zHisto[bending][bestPhi][binMax-1] = 0;
773  zHisto[bending][bestPhi][binMax+1] = 0;
774  }
775 
776  int closestVtx = -1; // find the closest vertex already put into the output list
777  float dist2closestVtx = 1000; // should be larger than m_ZFinder_MaxZ*2
778  for ( size_t iv = 0; iv < zoutput.size(); ++iv )
779  if ( fabs(weightedMax-zoutput[iv]) < dist2closestVtx ) {
780  closestVtx = iv;
781  dist2closestVtx = fabs(weightedMax-zoutput[iv]);
782  }
783 
784  if ( dist2closestVtx < m_nvrtxSeparation * ZBinSize ||
785  dist2closestVtx < fabs(weightedMax) * m_vrtxDistCut ) {
786  zoutput[closestVtx] = m_vrtxMixing * weightedMax + (1.0 - m_vrtxMixing) * zoutput[closestVtx] ;
787  woutput[closestVtx] = m_vrtxMixing * maxh + (1.0 - m_vrtxMixing) * woutput[closestVtx] ;
788  } else {
789  zoutput.push_back( weightedMax );
790  woutput.push_back( maxh );
791  }
792 
793  }
794 
795 
800 
808 
811 
812 
813 #if 0
814  if ( m_weightThreshold>0 ) {
815 
823 
824  for ( unsigned i=0 ; i<zoutput.size() ; i++ ) {
827  output->push_back( woutput[i] - pedestal );
828  }
829 
830  }
831  else {
832  for ( unsigned i=0 ; i<zoutput.size() ; i++ ) output->push_back( zoutput[i] );
833  }
834 
835 
836 #else
837 
841  if ( m_weightThreshold>0 ) {
842  for ( unsigned i=0 ; i<zoutput.size() ; i++ ) {
843  output->push_back( vertex( woutput[i] - pedestal, zoutput[i] ) );
844  }
845  }
846  else {
847  for ( unsigned i=0 ; i<zoutput.size() ; i++ ) {
848  output->push_back( vertex( zoutput[i], woutput[i] - pedestal ) );
849  }
850  }
851 
852 
853 #endif
854 
855  // std::cout << "SUTT zoutput size " << zoutput.size() << "\t" << roi << std::endl;
856  // for ( unsigned i=0 ; i<zoutput.size() ; i++ ) std::cout << "SUTT zoutput " << i << "\t" << zoutput[i] << std::endl;
857 
858  return output;
859 }

◆ GetInternalStatus()

int Run1::IDScanZFinderInternal< TrigSiSpacePoint >::GetInternalStatus
inlineprotectedinherited

Definition at line 81 of file IDScanZFinderInternal.h.

81 { return m_Status; }

◆ getName()

const std::string& Run1::IDScanZFinderInternal< TrigSiSpacePoint >::getName
inlineprotectedinherited

Definition at line 78 of file IDScanZFinderInternal.h.

78 { return m_Name; }

◆ GetnHisto()

const std::vector< std::vector<long> >* Run1::IDScanZFinderInternal< TrigSiSpacePoint >::GetnHisto
inlineinherited

Definition at line 58 of file IDScanZFinderInternal.h.

58 { return m_nHisto; }

◆ GetNMax()

long Run1::IDScanZFinderInternal< TrigSiSpacePoint >::GetNMax
inlineinherited

Definition at line 61 of file IDScanZFinderInternal.h.

61 { return m_NMax; }

◆ GetReturnValue()

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::GetReturnValue
inlineprotectedinherited

Definition at line 88 of file IDScanZFinderInternal.h.

88 { return m_returnval; }

◆ getType()

const std::string& Run1::IDScanZFinderInternal< TrigSiSpacePoint >::getType
inlineprotectedinherited

Definition at line 77 of file IDScanZFinderInternal.h.

77 { return m_Type; }

◆ getVersion()

const std::string& Run1::IDScanZFinderInternal< TrigSiSpacePoint >::getVersion
inlineprotectedinherited

Definition at line 79 of file IDScanZFinderInternal.h.

79 { return mZFIVER; }

◆ GetzHisto()

const std::vector< std::vector<double> >* Run1::IDScanZFinderInternal< TrigSiSpacePoint >::GetzHisto
inlineinherited

Definition at line 59 of file IDScanZFinderInternal.h.

59 { return m_zHisto; }

◆ initialize()

StatusCode IDScanZFinder::initialize ( )
overridevirtual

NB: These only have to go here, because they need to write to the msgsvc, and because is rubbish, we can't pass in a pointer to a (non-athena) sub algorithm.

get first endcap layer, so we know how many barrel layers there are

pass in the total number of layers, and the last barrel layer NB: decrement the endcap pixels, as we want the layer number of the last barrel layer, not the number of the first endcap pixel layer

Definition at line 60 of file IDScanZFinder.cxx.

61 {
62  // NB: This should go into the InitializeInternal !!!!!!!!!
63  // NO internal settings should be changed in here, this should just
64  // be an athena wrapper !!!
65 
66  // phiBinSize is expected in degrees (~0.2); make sure it is > ZFinder_MinPhiSliceSize
67  //
68 
72  ATH_MSG_WARNING("Requested PhiBinSize of " << m_phiBinSize
73  << " degrees is smaller than the minimum allowed (" << ZFinder_MinPhiSliceSize
74  << " degrees). Set to the minimum value.");
75  // m_phiBinSize = ZFinder_MinPhiSliceSize;
76  }
77 
78  // NB: This should go into the InitializeInternal !!!!
79  if ( m_dphideta > 0 ){
80  ATH_MSG_WARNING("Requested DPhiDEta of " << m_dphideta
81  << " is positive. Setting to its negative!");
82  // m_dphideta *= -1.;
83  }
84 
85  ATH_CHECK( m_numberingTool.retrieve() );
86 
89  int offsetEndcapPixels = m_numberingTool->offsetEndcapPixels();
90  int maxSiliconLayerNum = m_numberingTool->maxSiliconLayerNum();
91  // int offsetBarrelSCT = m_numberingTool->offsetBarrelSCT();
92 
93 
94  // std::cout << "ZFinder::initialise() offset pixels " << offsetEndcapPixels
95  // << "\toffsetBarrelSCT " << offsetBarrelSCT
96  // << "\tmaxlayers " << maxSiliconLayerNum << std::endl;
97 
102  initializeInternal(maxSiliconLayerNum,offsetEndcapPixels-1);
103 
104  ATH_MSG_INFO("IDScanZFinder constructed: name() " << name() );
105  ATH_MSG_INFO("IDScanZFinderInternal version: " << getVersion() );
106  ATH_MSG_INFO("IDScanZFinder::PixOnly set to " << m_pixOnly );
107  ATH_MSG_INFO("IDScanZFinder::FullScanMode " << m_fullScanMode );
108  ATH_MSG_INFO("IDScanZFinder::PhiBinSize set to " << m_phiBinSize );
109  ATH_MSG_INFO("IDScanZFinder::# of peaks to consider: " << m_numberOfPeaks );
110  ATH_MSG_INFO("IDScanZFinder::z bin size " << m_minZBinSize );
111  ATH_MSG_INFO("IDScanZFinder::eta coeff " << m_zBinSizeEtaCoeff);
112 
113  ATH_MSG_INFO("IDScanZFinder::m_nFirstLayers = " << m_nFirstLayers );
114  ATH_MSG_INFO("IDScanZFinder::m_invPhiSliceSize = " << m_invPhiSliceSize );
115  ATH_MSG_INFO("IDScanZFinder::m_phiBinSize = " << m_phiBinSize );
116  ATH_MSG_INFO("IDScanZFinder::m_dphideta = " << m_dphideta );
117  ATH_MSG_INFO("IDScanZFinder::m_neighborMultiplier = " << m_neighborMultiplier);
118  ATH_MSG_INFO("IDScanZFinder::m_minZBinSize = " << m_minZBinSize );
119  ATH_MSG_INFO("IDScanZFinder::m_zBinSizeEtaCoeff = " << m_zBinSizeEtaCoeff);
120  ATH_MSG_INFO("IDScanZFinder::m_chargeAware = " << m_chargeAware );
121  ATH_MSG_INFO("IDScanZFinder::m_zHistoPerPhi = " << m_zHistoPerPhi );
122 
123  ATH_MSG_INFO("IDScanZFinder::m_nvrtxSeparation = " << m_nvrtxSeparation );
124  ATH_MSG_INFO("IDScanZFinder::m_vrtxDistCut = " << m_vrtxDistCut );
125  ATH_MSG_INFO("IDScanZFinder::m_vrtxMixing = " << m_vrtxMixing );
126  ATH_MSG_INFO("IDScanZFinder::m_preferCentralZ = " << m_preferCentralZ );
127 
128  ATH_MSG_INFO("IDScanZFinder::m_trustSPprovider = " << m_trustSPprovider );
129 
130  ATH_MSG_INFO("IDScanZFinder::m_tripletMode = " << m_tripletMode );
131 
132  ATH_MSG_INFO("IDScanZFinder::m_weigthThreshold = " << m_weightThreshold );
133 
134  return StatusCode::SUCCESS;
135 }

◆ initializeInternal()

void Run1::IDScanZFinderInternal< TrigSiSpacePoint >::initializeInternal ( long  maxLayers,
long  lastBarrel 
)
inherited

this has to be computed event by event !!! m_NumPhiSlices = long (ceil( m_usedROIphiWidth*m_invPhiSliceSize ));

barrel

standard Endcap

increment all the layer ids by one because of the IBL IF and ONLY IF the IBL is included

Definition at line 54 of file IDScanZFinderInternal.h.

228 {
230 
231  m_IdScan_MaxNumLayers = maxLayers;
232  m_IdScan_LastBrlLayer = lastBarrel;
233 
234  // std::cout << "m_IdScan_MaxNumLayers " << m_IdScan_MaxNumLayers
235  // << "\tm_IdScan_LastBrlLayer " << m_IdScan_LastBrlLayer << std::endl;
236 
237  // number of phi neighbours to look at
238  // if ( m_extraPhi.size()==0 )
239  m_extraPhi = std::vector< std::vector<long> >( m_IdScan_MaxNumLayers, std::vector<long>(m_IdScan_MaxNumLayers) );
240 
243 
244  // from IDScanZFinder::initialize
247  if ( m_dphideta > 0 ) m_dphideta *= -m_dphideta;
248 
252 
253  for (long l1=0; l1<m_IdScan_MaxNumLayers-1; ++l1) {
254  for (long l2=l1+1; l2<m_IdScan_MaxNumLayers; ++l2) {
255  m_extraPhi[l1][l2]=1; // look at a single phi neighbour
256  }
257  }
258 
260 
261  long first_layer = 0;
262  long offset_layer = 1;
263  if ( m_IdScan_MaxNumLayers<20 ) {
264  first_layer = 1;
265  offset_layer = 0;
266  }
267 
268  long lyrcnt = 0;
269  for (long l1=0; l1<m_IdScan_LastBrlLayer; ++l1) {
270  for (long l2=l1+1; l2<=m_IdScan_LastBrlLayer; ++l2) {
271  double dphi = ZF_dphiBrl[lyrcnt + 7*first_layer];
272  dphi *= m_neighborMultiplier;
273  m_extraPhi[l1][l2]=static_cast<long>( ceil( sqrt(dphi*dphi+ZF_phiRes*ZF_phiRes*2) * m_invPhiSliceSize ) );
274 
275  // std::cout << "test 1 " << l1 << " " << l2 << "\tmax : " << m_IdScan_MaxNumLayers << std::endl;
276 
277  if (m_extraPhi[l1][l2]<1) m_extraPhi[l1][l2]=1;
278  // std::cout << "Delta Phi between layers " << l1 << " and " << l2
279  // << " = "<< ZF_dphiBrl[lyrcnt]
280  // << " rads ( " << m_extraPhi[l1][l2] << " bins including phi resln.)\n";
281  lyrcnt++;
282  }
283  }
284 
285 
287 
288 
289 
290  for ( long lyrpair=12*first_layer ; lyrpair<117; ++lyrpair ) {
291 
292  double dphi = ZF_dphiEC[lyrpair*4+2];
295  long l1 = (long)ZF_dphiEC[lyrpair*4] + offset_layer;
296  long l2 = (long)ZF_dphiEC[lyrpair*4+1] + offset_layer;
297  double eta = ZF_dphiEC[lyrpair*4+3];
298  // std::cout << "Delta Phi between layers " << l1 << " and " << l2
299  // << " = " << dphi << " rads @ eta=" << eta
300  // << ". Extrapolate it to eta=0.9 to get ";
301  dphi = dphi + m_dphideta * ( 0.9 - eta );
302  dphi *= m_neighborMultiplier;
303  m_extraPhi[l1][l2]=static_cast<long>(ceil(sqrt(dphi*dphi+ZF_phiRes*ZF_phiRes*2)*m_invPhiSliceSize));
304 
305  if (m_extraPhi[l1][l2]<1) m_extraPhi[l1][l2]=1;
306 
307  // std::cout << "test 2 " << l1 << " " << l2 << "\tmax : " << m_IdScan_MaxNumLayers << std::endl;
308 
309  // std::cout << dphi << " rads ( " << m_extraPhi[l1][l2] << " bins including phi resln.)\n";
310  }
311 
312 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ interfaceID()

static const InterfaceID& ITrigRun1ZFinder::interfaceID ( )
inlinestaticinherited

Definition at line 21 of file ITrigRun1ZFinder.h.

21  {
22  return IID_ITrigRun1ZFinder;
23  }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::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< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

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

◆ SetInternalStatus()

int Run1::IDScanZFinderInternal< TrigSiSpacePoint >::SetInternalStatus ( int  s)
inlineprotectedinherited

Definition at line 82 of file IDScanZFinderInternal.h.

82 { m_Status = s; return m_Status; }

◆ setLayers()

void Run1::IDScanZFinderInternal< TrigSiSpacePoint >::setLayers ( long  maxLayers,
long  lastBarrelLayer 
)
inlineinherited

Definition at line 64 of file IDScanZFinderInternal.h.

64  {
65  m_IdScan_MaxNumLayers = maxLayers; // dphiEC depends on this value
66  m_IdScan_LastBrlLayer = lastBarrelLayer; // dphiBrl depends on this value
67  }

◆ SetReturnValue()

void Run1::IDScanZFinderInternal< TrigSiSpacePoint >::SetReturnValue ( double  d)
inlineprotectedinherited

Definition at line 87 of file IDScanZFinderInternal.h.

87 { m_returnval=d; }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::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_chargeAware

bool Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_chargeAware
protectedinherited

Definition at line 120 of file IDScanZFinderInternal.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_dphideta

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_dphideta
protectedinherited

Definition at line 123 of file IDScanZFinderInternal.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extraPhi

std::vector< std::vector<long> > Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_extraPhi
protectedinherited

Definition at line 126 of file IDScanZFinderInternal.h.

◆ m_forcePhiBinSize

bool Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_forcePhiBinSize
protectedinherited

Definition at line 104 of file IDScanZFinderInternal.h.

◆ m_fullScanMode

bool Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_fullScanMode
protectedinherited

Definition at line 146 of file IDScanZFinderInternal.h.

◆ m_halfTripletDK

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_halfTripletDK
protectedinherited

Definition at line 151 of file IDScanZFinderInternal.h.

◆ m_IdScan_LastBrlLayer

long Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_IdScan_LastBrlLayer
protectedinherited

Definition at line 95 of file IDScanZFinderInternal.h.

◆ m_IdScan_MaxNumLayers

long Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_IdScan_MaxNumLayers
protectedinherited

maximum number of layers and last barrel layer

Definition at line 94 of file IDScanZFinderInternal.h.

◆ m_invPhiSliceSize

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_invPhiSliceSize
protectedinherited

Definition at line 100 of file IDScanZFinderInternal.h.

◆ m_minZBinSize

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_minZBinSize
protectedinherited

Definition at line 108 of file IDScanZFinderInternal.h.

◆ m_Name

std::string Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_Name
protectedinherited

Definition at line 116 of file IDScanZFinderInternal.h.

◆ m_neighborMultiplier

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_neighborMultiplier
protectedinherited

Definition at line 124 of file IDScanZFinderInternal.h.

◆ m_nFirstLayers

int Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_nFirstLayers
protectedinherited

Definition at line 135 of file IDScanZFinderInternal.h.

◆ m_nHisto

std::vector< std::vector<long> > Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_nHisto[2]
protectedinherited

Definition at line 130 of file IDScanZFinderInternal.h.

◆ m_NMax

long Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_NMax
protectedinherited

Definition at line 133 of file IDScanZFinderInternal.h.

◆ m_numberingTool

ToolHandle<ITrigL2LayerNumberTool> IDScanZFinder::m_numberingTool

no private data members - all inherited from the IDScanZFinderInternal class NB: BE CAREFUL !!! Nothing set with a job option should EVER be changed inside the ZFinderInternal code

actually, need the TrigL2LayerNumberTool so we can configure with the correct number of layers when including the IBL etc

Definition at line 58 of file IDScanZFinder.h.

◆ m_numberOfPeaks

long Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_numberOfPeaks
protectedinherited

Definition at line 111 of file IDScanZFinderInternal.h.

◆ m_NumPhiSlices

long Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_NumPhiSlices
protectedinherited

Definition at line 101 of file IDScanZFinderInternal.h.

◆ m_nvrtxSeparation

int Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_nvrtxSeparation
protectedinherited

Definition at line 139 of file IDScanZFinderInternal.h.

◆ m_phiBinSize

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_phiBinSize
protectedinherited

Definition at line 103 of file IDScanZFinderInternal.h.

◆ m_pixOnly

bool Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_pixOnly
protectedinherited

Definition at line 113 of file IDScanZFinderInternal.h.

◆ m_preferCentralZ

bool Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_preferCentralZ
protectedinherited

Definition at line 140 of file IDScanZFinderInternal.h.

◆ m_returnval

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_returnval
protectedinherited

Definition at line 144 of file IDScanZFinderInternal.h.

◆ m_ROIphiWidth

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_ROIphiWidth
protectedinherited

Definition at line 106 of file IDScanZFinderInternal.h.

◆ m_Status

int Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_Status
protectedinherited

Definition at line 118 of file IDScanZFinderInternal.h.

◆ m_tripletDK

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_tripletDK
protectedinherited

Definition at line 150 of file IDScanZFinderInternal.h.

◆ m_tripletDP

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_tripletDP
protectedinherited

Definition at line 152 of file IDScanZFinderInternal.h.

◆ m_tripletDZ

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_tripletDZ
protectedinherited

Definition at line 149 of file IDScanZFinderInternal.h.

◆ m_tripletMode

int Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_tripletMode
protectedinherited

Definition at line 148 of file IDScanZFinderInternal.h.

◆ m_trustSPprovider

bool Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_trustSPprovider
protectedinherited

Definition at line 142 of file IDScanZFinderInternal.h.

◆ m_Type

std::string Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_Type
protectedinherited

Definition at line 115 of file IDScanZFinderInternal.h.

◆ m_usedphiBinSize

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_usedphiBinSize
protectedinherited

Definition at line 105 of file IDScanZFinderInternal.h.

◆ m_usedROIphiWidth

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_usedROIphiWidth
protectedinherited

Definition at line 107 of file IDScanZFinderInternal.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_vrtxDistCut

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_vrtxDistCut
protectedinherited

Definition at line 137 of file IDScanZFinderInternal.h.

◆ m_vrtxMixing

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_vrtxMixing
protectedinherited

Definition at line 138 of file IDScanZFinderInternal.h.

◆ m_weightThreshold

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_weightThreshold
protectedinherited

to apply a hreshold to the found vertex candidates

Definition at line 156 of file IDScanZFinderInternal.h.

◆ m_zBinSizeEtaCoeff

double Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_zBinSizeEtaCoeff
protectedinherited

Definition at line 109 of file IDScanZFinderInternal.h.

◆ m_zHisto

std::vector< std::vector<double> > Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_zHisto[2]
protectedinherited

Definition at line 131 of file IDScanZFinderInternal.h.

◆ m_zHistoPerPhi

bool Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_zHistoPerPhi
protectedinherited

Definition at line 121 of file IDScanZFinderInternal.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
IRoiDescriptor::phi
virtual double phi() const =0
Methods to retrieve data members.
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_preferCentralZ
bool m_preferCentralZ
Definition: IDScanZFinderInternal.h:140
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_zHistoPerPhi
bool m_zHistoPerPhi
Definition: IDScanZFinderInternal.h:121
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_extraPhi
std::vector< std::vector< long > > m_extraPhi
Definition: IDScanZFinderInternal.h:126
ReadCellNoiseFromCoolCompare.s1
s1
Definition: ReadCellNoiseFromCoolCompare.py:378
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_nFirstLayers
int m_nFirstLayers
Definition: IDScanZFinderInternal.h:135
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
Merge_LAr_blobs.filled
list filled
Definition: Merge_LAr_blobs.py:43
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_forcePhiBinSize
bool m_forcePhiBinSize
Definition: IDScanZFinderInternal.h:104
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_IdScan_MaxNumLayers
long m_IdScan_MaxNumLayers
maximum number of layers and last barrel layer
Definition: IDScanZFinderInternal.h:94
TrigVertex::NULLID
@ NULLID
Definition: TrigVertex.h:31
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_neighborMultiplier
double m_neighborMultiplier
Definition: IDScanZFinderInternal.h:124
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_phiBinSize
double m_phiBinSize
Definition: IDScanZFinderInternal.h:103
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_fullScanMode
bool m_fullScanMode
Definition: IDScanZFinderInternal.h:146
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
hist_file_dump.d
d
Definition: hist_file_dump.py:137
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::getVersion
const std::string & getVersion() const
Definition: IDScanZFinderInternal.h:79
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_chargeAware
bool m_chargeAware
Definition: IDScanZFinderInternal.h:120
plotBeamSpotCompare.x2
x2
Definition: plotBeamSpotCompare.py:218
TRTCalib_cfilter.p1
p1
Definition: TRTCalib_cfilter.py:130
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_tripletDP
double m_tripletDP
Definition: IDScanZFinderInternal.h:152
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_Type
std::string m_Type
Definition: IDScanZFinderInternal.h:115
M_PI
#define M_PI
Definition: ActiveFraction.h:11
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_numberOfPeaks
long m_numberOfPeaks
Definition: IDScanZFinderInternal.h:111
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_ROIphiWidth
double m_ROIphiWidth
Definition: IDScanZFinderInternal.h:106
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_Status
int m_Status
Definition: IDScanZFinderInternal.h:118
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
MCP::ScaleSmearParam::r2
@ r2
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_Name
std::string m_Name
Definition: IDScanZFinderInternal.h:116
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_tripletDK
double m_tripletDK
Definition: IDScanZFinderInternal.h:150
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
makeTRTBarrelCans.y1
tuple y1
Definition: makeTRTBarrelCans.py:15
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_nHisto
std::vector< std::vector< long > > m_nHisto[2]
Definition: IDScanZFinderInternal.h:130
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_dphideta
double m_dphideta
Definition: IDScanZFinderInternal.h:123
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_invPhiSliceSize
double m_invPhiSliceSize
Definition: IDScanZFinderInternal.h:100
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_nvrtxSeparation
int m_nvrtxSeparation
Definition: IDScanZFinderInternal.h:139
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_zBinSizeEtaCoeff
double m_zBinSizeEtaCoeff
Definition: IDScanZFinderInternal.h:109
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_usedROIphiWidth
double m_usedROIphiWidth
Definition: IDScanZFinderInternal.h:107
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_vrtxDistCut
double m_vrtxDistCut
Definition: IDScanZFinderInternal.h:137
IRoiDescriptor::eta
virtual double eta() const =0
IDScanZFinder::m_numberingTool
ToolHandle< ITrigL2LayerNumberTool > m_numberingTool
no private data members - all inherited from the IDScanZFinderInternal class NB: BE CAREFUL !...
Definition: IDScanZFinder.h:58
TRTCalib_cfilter.p2
p2
Definition: TRTCalib_cfilter.py:131
skel.l2
l2
Definition: skel.GENtoEVGEN.py:399
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ZF_phiRes
const double ZF_phiRes
Definition: ZFinderConstants.h:37
lumiFormat.i
int i
Definition: lumiFormat.py:85
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_NumPhiSlices
long m_NumPhiSlices
Definition: IDScanZFinderInternal.h:101
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_usedphiBinSize
double m_usedphiBinSize
Definition: IDScanZFinderInternal.h:105
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
PhiSlice
Definition: PhiSlice.h:13
makeTRTBarrelCans.y2
tuple y2
Definition: makeTRTBarrelCans.py:18
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
IRoiDescriptor::phiMinus
virtual double phiMinus() const =0
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_vrtxMixing
double m_vrtxMixing
Definition: IDScanZFinderInternal.h:138
TrigVertexCollection
Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Old Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Old TrigVertexCollection
Definition: TrigInDetEventTPCnv.cxx:236
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_halfTripletDK
double m_halfTripletDK
Definition: IDScanZFinderInternal.h:151
MuonR4::SegmentFit::ParamDefs::x0
@ x0
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::GetInternalStatus
int GetInternalStatus() const
Definition: IDScanZFinderInternal.h:81
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::initializeInternal
void initializeInternal(long maxLayers, long lastBarrel)
Definition: IDScanZFinderInternal.h:227
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_trustSPprovider
bool m_trustSPprovider
Definition: IDScanZFinderInternal.h:142
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
IRoiDescriptor::phiPlus
virtual double phiPlus() const =0
extreme phi values
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_IdScan_LastBrlLayer
long m_IdScan_LastBrlLayer
Definition: IDScanZFinderInternal.h:95
merge.output
output
Definition: merge.py:17
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::SetInternalStatus
int SetInternalStatus(int s)
Definition: IDScanZFinderInternal.h:82
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_tripletDZ
double m_tripletDZ
Definition: IDScanZFinderInternal.h:149
ZFinder_MinPhiSliceSize
const double ZFinder_MinPhiSliceSize
Definition: ZFinderConstants.h:34
TrigVertexCollection
Definition: TrigVertexCollection.h:13
eflowRec::phiIndex
unsigned int phiIndex(float phi, float binsize)
calculate phi index for a given phi
Definition: EtaPhiLUT.cxx:23
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_tripletMode
int m_tripletMode
Definition: IDScanZFinderInternal.h:148
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_zHisto
std::vector< std::vector< double > > m_zHisto[2]
Definition: IDScanZFinderInternal.h:131
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
a
TList * a
Definition: liststreamerinfos.cxx:10
h
IRoiDescriptor::zedPlus
virtual double zedPlus() const =0
the zed and eta values at the most forward and most rear ends of the RoI
TrigVertex
Definition: TrigVertex.h:28
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_pixOnly
bool m_pixOnly
Definition: IDScanZFinderInternal.h:113
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ReadCellNoiseFromCoolCompare.s2
s2
Definition: ReadCellNoiseFromCoolCompare.py:379
IRoiDescriptor::isFullscan
virtual bool isFullscan() const =0
is this a full detector RoI?
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
IRoiDescriptor::zedMinus
virtual double zedMinus() const =0
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_weightThreshold
double m_weightThreshold
to apply a hreshold to the found vertex candidates
Definition: IDScanZFinderInternal.h:156
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::fillVectors
long fillVectors(const std::vector< const TrigSiSpacePoint * > &spVec, const IRoiDescriptor &roi, std::vector< double > &phi, std::vector< double > &rho, std::vector< double > &zed, std::vector< long > &lyr, std::vector< long > &filledLayers)
Definition: IDScanZFinderInternal.h:351
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_NMax
long m_NMax
Definition: IDScanZFinderInternal.h:133
skel.l1
l1
Definition: skel.GENtoEVGEN.py:398
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
CreatePhysValWebPage.nHisto
nHisto
Definition: CreatePhysValWebPage.py:89
MCP::ScaleSmearParam::r1
@ r1
Run1::IDScanZFinderInternal< TrigSiSpacePoint >
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_minZBinSize
double m_minZBinSize
Definition: IDScanZFinderInternal.h:108
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::m_returnval
double m_returnval
Definition: IDScanZFinderInternal.h:144
fitman.rho
rho
Definition: fitman.py:532
fitman.k
k
Definition: fitman.py:528
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::GetReturnValue
double GetReturnValue() const
Definition: IDScanZFinderInternal.h:88
Run1::IDScanZFinderInternal< TrigSiSpacePoint >::findZInternal
std::vector< vertex > * findZInternal(const std::vector< const TrigSiSpacePoint * > &spVec, const IRoiDescriptor &roi)
Definition: IDScanZFinderInternal.h:525