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

#include <TBPlaneTrackingAlgo.h>

Inheritance diagram for TBPlaneTrackingAlgo:
Collaboration diagram for TBPlaneTrackingAlgo:

Public Member Functions

 TBPlaneTrackingAlgo (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual ~TBPlaneTrackingAlgo ()
 
virtual StatusCode initialize () override
 
virtual StatusCode execute () override
 
virtual StatusCode finalize () override
 
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 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...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void FillRandomHit ()
 
StatusCode getnewcalib ()
 
bool fitPlane (const TBHitPlaneCont *hitPlaneCont, double &a1, double &a2, double &chi2, std::vector< double > &residual)
 Fit data to the function u = a1 + a2*w. More...
 
bool fitHits (const std::vector< double > &u, const std::vector< double > &w, const std::vector< double > &eu, double &a1, double &a2)
 Fit data to the function u = a1 + a2*w. More...
 
double getResidual (const double &u, const double &w, const double &a1, const double &a2)
 Calculates the residual-> r = (u_i - a1 - a2*w_i) More...
 
double getChi2 (const std::vector< double > &v_u, const std::vector< double > &v_w, const std::vector< double > &v_eu, const double &a1, const double &a2)
 Calculates the chi2 += ((u_i - a1 - a2*w_i)/eu)^2. More...
 
StatusCode buildHits ()
 Build HitPlaneCont from BPC. More...
 
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

bool m_testAlgo
 
TBHitPlaneCont m_hitPlaneCont_u
 
TBHitPlaneCont m_hitPlaneCont_v
 
std::vector< float > m_bpc_posZX
 
std::vector< float > m_bpc_posZY
 
std::vector< float > m_bpc_posX
 
std::vector< float > m_bpc_posY
 
std::vector< float > m_bpc_errposZX
 
std::vector< float > m_bpc_errposZY
 
std::vector< float > m_bpc_errposX
 
std::vector< float > m_bpc_errposY
 
std::vector< float > m_bpc_errmeasX
 
std::vector< float > m_bpc_errmeasY
 
std::vector< std::string > m_bpc_names
 
std::string m_calib_filename
 
unsigned int m_runnumber
 
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 20 of file TBPlaneTrackingAlgo.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

◆ TBPlaneTrackingAlgo()

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

Definition at line 21 of file TBPlaneTrackingAlgo.cxx.

22  : AthAlgorithm(name, pSvcLocator),
23  m_runnumber(0)
24 {
25  declareProperty("TestAlgo",m_testAlgo=false);
26  declareProperty("CalibFileName", m_calib_filename="H6HitCalib.txt");
27  declareProperty("BPCnames", m_bpc_names);
28  declareProperty("BPCposX", m_bpc_posX);
29  declareProperty("BPCposY", m_bpc_posY);
30  declareProperty("BPCposZX", m_bpc_posZX);
31  declareProperty("BPCposZY", m_bpc_posZY);
32  declareProperty("BPCerrposX", m_bpc_errposX);
33  declareProperty("BPCerrposY", m_bpc_errposY);
34  declareProperty("BPCerrposZX", m_bpc_errposZX);
35  declareProperty("BPCerrposZY", m_bpc_errposZY);
36  declareProperty("BPCerrmeasX", m_bpc_errmeasX);
37  declareProperty("BPCerrmeasY", m_bpc_errmeasY);
38 
39 }

◆ ~TBPlaneTrackingAlgo()

virtual TBPlaneTrackingAlgo::~TBPlaneTrackingAlgo ( )
inlinevirtual

Definition at line 27 of file TBPlaneTrackingAlgo.h.

27 {};

Member Function Documentation

◆ buildHits()

StatusCode TBPlaneTrackingAlgo::buildHits ( )
private

Build HitPlaneCont from BPC.

Definition at line 355 of file TBPlaneTrackingAlgo.cxx.

357 {
358  ATH_MSG_DEBUG (" In buildHits() ");
361 
362  TBBPCCont * bpcCont = nullptr;
363  ATH_CHECK( evtStore()->retrieve(bpcCont, "BPCCont") );
364 
365  // Loop over BPC
366  for (const TBBPC* bpc : *bpcCont) {
367  std::string name = bpc->getDetectorName();
368  ATH_MSG_DEBUG (" Hits in BPC "<< name);
369  // Find calibration index for this BPC
370  unsigned int ind=0;
371  while(ind<m_bpc_names.size())
372  {
373  if(name==m_bpc_names[ind]) break;
374  else ind++;
375  }
376  if(ind==m_bpc_names.size()){
377  ATH_MSG_ERROR ("No calibrations for BPC" << name);
378  continue;
379  }
380 
381  ATH_MSG_DEBUG (" BPC number "<< ind);
382 
383 
384  if(!(bpc->isXPosOverflow()||bpc->isXPulseOverflow())){
385  TBHitPlane * hitu = new TBHitPlane();
386  float w = m_bpc_posZX[ind];
387  // float u =m_bpc_posX[ind] + m_bpc_invX[ind]*bpc->getXPos();
388  float u =m_bpc_posX[ind] + bpc->getXPos();
389  ATH_MSG_DEBUG ("BPC" << ind << "X =" << u);
390  hitu->setPosu(u); hitu->setPosw(w);
392  hitu->setErroru(uerr); hitu->setErrorw(m_bpc_errposZX[ind]);
393  hitu->setValidFlag(bpc->isXPosOverflow()&&bpc->isYPosOverflow());
395  }
396 
397  if(!(bpc->isYPosOverflow()||bpc->isYPulseOverflow())){
398  TBHitPlane * hitv = new TBHitPlane();
399  float w = m_bpc_posZY[ind];
400  // float v =m_bpc_posY[ind] + m_bpc_invY[ind]*bpc->getYPos();
401  float v =m_bpc_posY[ind] + bpc->getYPos();
402  ATH_MSG_DEBUG ("BPC" << ind << "Y =" << v);
403  hitv->setPosu(v); hitv->setPosw(w);
405  hitv->setErroru(verr); hitv->setErrorw(m_bpc_errposZY[ind]);
406  hitv->setValidFlag(bpc->isXPosOverflow()&&bpc->isYPosOverflow());
408  }
409  }
410 
411  return StatusCode::SUCCESS;
412 }

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

◆ 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 TBPlaneTrackingAlgo::execute ( )
overridevirtual

Definition at line 49 of file TBPlaneTrackingAlgo.cxx.

51 {
52  ATH_MSG_DEBUG ("Executing TBPlaneTracking algorithm");
53  const EventContext& ctx = Gaudi::Hive::currentContext();
54 
55  if(m_testAlgo == true){
56  ATH_MSG_WARNING ("TBPlaneTrackingAlgo: " <<
57  "Using FillRandomHit method to get data");
58  FillRandomHit();
59  }
60 
61  // Check if this is not a physics event and exit OK
62  // retrieve Event Info
63  const TBEventInfo* theEventInfo;
64  StatusCode checkOut = evtStore()->retrieve(theEventInfo,"TBEventInfo");
65  if ( checkOut.isFailure() )
66  {
67  ATH_MSG_ERROR ("cannot retrieve TBEventInfo from StoreGate");
68  return StatusCode::FAILURE;
69  }
70  int evtType = theEventInfo->getEventType();
71  ATH_MSG_DEBUG ("Event Type found " << evtType);
72  if (evtType != 1) return StatusCode::SUCCESS;
73 
74  StatusCode sc1;
75 
76  // Get run number and get new calib constants -----------------------------
77  unsigned int thisrun=ctx.eventID().run_number();
78 
79  if(thisrun != m_runnumber)
80  {
81  m_runnumber= thisrun;
83  }
84  // ------------------------------------------------------------------------
85 
86 
87 
88  sc1 = buildHits();
89 
90 // sc1 = m_StoreGate->retrieve(m_hitPlaneCont_u,"HitPlaneCont_U");
91 // sc2 = m_StoreGate->retrieve(m_hitPlaneCont_v,"HitPlaneCont_V");
92 
93  if(sc1.isFailure()){
94  ATH_MSG_WARNING ("TBPlaneTrackingAlgo: Retrieval of HitPlane failed");
95  setFilterPassed(false);
96  return StatusCode::SUCCESS;
97  } else {
98 
99  int hitPlaneNumU, hitPlaneNumV;
100  hitPlaneNumU = m_hitPlaneCont_u.size();
101  hitPlaneNumV = m_hitPlaneCont_v.size();
102 
103  if( (hitPlaneNumU < 2) || (hitPlaneNumV < 2) ){
104  ATH_MSG_WARNING ("TBPlaneTrackingAlgo: "
105  << "Not enough hits in one or both planes, "
106  << "Cannot make track.");
107 
108  setFilterPassed(false);
109  return StatusCode::SUCCESS;
110  }
111 
112  // Setting the chi2's for the track //
113  double chi2_u = 0;
114  double chi2_v = 0;
115  std::vector<double> residual_u, residual_v;
116  double a1_u = 0;
117  double a2_u = 0;
118  double a1_v = 0;
119  double a2_v = 0;
120  bool check = true;
121 
122  check = fitPlane(&m_hitPlaneCont_u, a1_u, a2_u, chi2_u, residual_u);
123  if(check == false){
124  ATH_MSG_ERROR ("TBPlaneTrackingAlgo: " << "Fit failure.");
125  setFilterPassed(false);
126  return StatusCode::SUCCESS;
127  }
128 
129  check = fitPlane(&m_hitPlaneCont_v, a1_v, a2_v, chi2_v, residual_v);
130  if(check == false){
131  ATH_MSG_ERROR ("TBPlaneTrackingAlgo: " << "Fit failure.");
132  setFilterPassed(false);
133  return StatusCode::SUCCESS;
134  }
135 
136  // Setting the slopes & intercepts for each track //
137  ATH_MSG_DEBUG ("Setting fit parameters of track.");
138 
139  TBTrack *track = new TBTrack(hitPlaneNumU, hitPlaneNumV);
140  track->setUintercept(a1_u);
141  track->setVintercept(a1_v);
142  track->setUslope(a2_u);
143  track->setVslope(a2_v);
144 
145  // Setting the residual for plane u //
146  for(int i = 0; i < hitPlaneNumU; i++){
147  track->setResidualu(i, residual_u[i]);
148  }
149 
150  // Setting the residual for plane v //
151  for(int i = 0; i < hitPlaneNumV; i++){
152  track->setResidualv(i, residual_v[i]);
153  }
154 
155  ATH_MSG_DEBUG ("chi2 in u: " << chi2_u);
156  ATH_MSG_DEBUG ("chi2 in v: " << chi2_v);
157  ATH_MSG_DEBUG ("Setting chi2s of track.");
158 
159  track->setChi2_u(chi2_u);
160  track->setChi2_v(chi2_v);
161 
162  // Record track info. into storeGate //
163  StatusCode sc = evtStore()->record(track,"Track");
164 
165  if ( sc.isFailure( ) ) {
166  ATH_MSG_FATAL ("Cannot record Track");
167  }
168  }
169 
170  setFilterPassed(true);
171  return StatusCode::SUCCESS;
172 }

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

◆ FillRandomHit()

void TBPlaneTrackingAlgo::FillRandomHit ( )
private

Definition at line 314 of file TBPlaneTrackingAlgo.cxx.

316 {
317 
318  ATH_MSG_DEBUG ("Starting FillRandom");
319 
320  TBHitPlaneCont * hitPlaneCont_U = new TBHitPlaneCont();
321  TBHitPlaneCont * hitPlaneCont_V = new TBHitPlaneCont();
322 
323  TBHitPlane *hitPaneU1 = new TBHitPlane();
324  hitPaneU1->setPosu(1); hitPaneU1->setPosw(1);
325  hitPlaneCont_U->push_back(hitPaneU1);
326 
327 
328  TBHitPlane *hitPaneU2 = new TBHitPlane();
329  hitPaneU2->setPosu(2); hitPaneU2->setPosw(2);
330  hitPlaneCont_U->push_back(hitPaneU2);
331 
332  StatusCode sc1 = evtStore()->record(hitPlaneCont_U,"HitPlaneCont_U");
333  if ( sc1.isFailure( ) ) {
334  ATH_MSG_FATAL ("Cannot record HitPlaneCont_U");
335  }
336 
337  TBHitPlane *hitPaneV1 = new TBHitPlane();
338  hitPaneV1->setPosu(1); hitPaneV1->setPosw(1);
339  hitPlaneCont_V->push_back(hitPaneV1);
340 
341  TBHitPlane *hitPaneV2 = new TBHitPlane();
342  hitPaneV2->setPosu(2); hitPaneV2->setPosw(2);
343  hitPlaneCont_V->push_back(hitPaneV2);
344 
345  StatusCode sc2 = evtStore()->record(hitPlaneCont_V,"HitPlaneCont_V");
346  if ( sc2.isFailure( ) ) {
347  ATH_MSG_FATAL ("Cannot record HitPlaneCont_V");
348  }
349 
350  ATH_MSG_DEBUG ("FillRandom Done");
351 
352 }

◆ finalize()

StatusCode TBPlaneTrackingAlgo::finalize ( )
overridevirtual

Definition at line 175 of file TBPlaneTrackingAlgo.cxx.

177 {
178  ATH_MSG_INFO ("Finalizing TBTracking algorithm");
179  return StatusCode::SUCCESS;
180 }

◆ fitHits()

bool TBPlaneTrackingAlgo::fitHits ( const std::vector< double > &  u,
const std::vector< double > &  w,
const std::vector< double > &  eu,
double &  a1,
double &  a2 
)
private

Fit data to the function u = a1 + a2*w.

Definition at line 236 of file TBPlaneTrackingAlgo.cxx.

242 {
243  // v_u = vector of u data points
244  // v_w = vector of w data points
245  // v_eu = vector of errors in u data points
246  // v_ew = vector of errors in w data points
247  // a1 and a2 = fit parameters: u = a1 + a2*w
248 
249  // *** note that the fit algorithm used (given in 'Numerical Methods
250  // in C' section 15.2) assumes that the w data points are known exactly
251  // i.e. that v_ew[i]=0 for all i
252 
253  // 'Numerical Methods' notes that the task of fitting a straight
254  // line model with errors in both coordinates is "considerably harder"
255  // (section 15.3) - but clearly it could be done
256 
257  double m_s = 0;
258  double m_su = 0;
259  double m_sww = 0;
260  double m_sw = 0;
261  double m_suw = 0;
262 
263  int numHits = v_u.size();
264  for(int i = 0; i < numHits; i++){
265  m_s += 1 / (v_eu[i]*v_eu[i]);
266  m_su += v_u[i] / (v_eu[i]*v_eu[i]);
267  m_sww += v_w[i]*v_w[i] / (v_eu[i]*v_eu[i]);
268  m_sw += v_w[i] / (v_eu[i]*v_eu[i]);
269  m_suw += v_u[i]*v_w[i] / (v_eu[i]*v_eu[i]);
270  }
271 
272  const double denom = (m_s*m_sww-m_sw*m_sw);
273  if(denom == 0){
274  return false;
275  }
276 
277  const double inv_denom = 1. / denom;
278  a1 = (m_su*m_sww - m_sw*m_suw) * inv_denom;
279  a2 = (m_s*m_suw - m_su*m_sw) * inv_denom;
280  return true;
281 }

◆ fitPlane()

bool TBPlaneTrackingAlgo::fitPlane ( const TBHitPlaneCont hitPlaneCont,
double &  a1,
double &  a2,
double &  chi2,
std::vector< double > &  residual 
)
private

Fit data to the function u = a1 + a2*w.

and determines intercept, slope, residual for each BPC, and chi2 on fit

Definition at line 183 of file TBPlaneTrackingAlgo.cxx.

186 {
187  // Get number of hits in plane //
188  int hitPlaneNum = hitPlaneCont->size();
189 
190  ATH_MSG_DEBUG ("The hit plane container size is: " << hitPlaneNum);
191 
192  std::vector<double> vec_u;
193  std::vector<double> vec_w;
194  std::vector<double> err_vec_u;
195  std::vector<double> err_vec_w;
196 
197  for (const TBHitPlane* hp : *hitPlaneCont) {
198  ATH_MSG_DEBUG ("Position in u: " << hp->getPosu());
199  ATH_MSG_DEBUG ("Position in w: " << hp->getPosw());
200  ATH_MSG_DEBUG ("Error in u: " << hp->getErroru());
201  ATH_MSG_DEBUG ("Error in w: " << hp->getErrorw());
202  vec_u.push_back(hp->getPosu());
203  vec_w.push_back(hp->getPosw());
204  err_vec_u.push_back(hp->getErroru());
205  err_vec_w.push_back(hp->getErrorw());
206  }
207 
208  if(vec_u.size() != vec_w.size()){
209  ATH_MSG_ERROR ("TBPlaneTrackingAlgo: Invalid hits");
210  return false;
211  }
212 
213  bool check;
214 // check = fitHits(vec_u, vec_w, err_vec_u, err_vec_w, a1, a2);
215  check = fitHits(vec_u, vec_w, err_vec_u, a1, a2);
216  if(check == false){
217  ATH_MSG_ERROR ("TBPlaneTrackingAlgo: Invalid denumerator");
218  return false;
219  }
220 
221 // chi2 = getChi2(vec_u, vec_w, err_vec_u, err_vec_w, a1, a2);
222  chi2 = getChi2(vec_u, vec_w, err_vec_u, a1, a2);
223 
224  ATH_MSG_DEBUG ("Fit results:"
225  << " intercept = " << a1
226  << " and slope = " << a2);
227 
228  // Must be wrong //
229  for (int i = 0; i < hitPlaneNum; i++) {
230  residual.push_back(getResidual(vec_u[i],vec_w[i],a1, a2));
231  }
232  return true;
233 }

◆ getChi2()

double TBPlaneTrackingAlgo::getChi2 ( const std::vector< double > &  v_u,
const std::vector< double > &  v_w,
const std::vector< double > &  v_eu,
const double &  a1,
const double &  a2 
)
private

Calculates the chi2 += ((u_i - a1 - a2*w_i)/eu)^2.

Definition at line 291 of file TBPlaneTrackingAlgo.cxx.

297 {
298  // *** as in fitHits() above, the chi squared calculation below
299  // (taken from 'Numerical Methods in C' section 15.2)
300  // assumes that the w data points are known exactly i.e. that
301  // v_ew[i]=0 for all i
302 
303  int numX = v_u.size();
304  double chi2 = 0;
305 
306  for(int i = 0; i < numX; i++){
307  chi2 += (v_u[i] - a1 - a2*v_w[i])*(v_u[i] - a1 - a2*v_w[i])/(v_eu[i]*v_eu[i]);
308  }
309  return chi2;
310 }

◆ getnewcalib()

StatusCode TBPlaneTrackingAlgo::getnewcalib ( )
private

Definition at line 415 of file TBPlaneTrackingAlgo.cxx.

416 {
417  // Get calib constant from an ASCII file with the following structure :
418  //
419  // runnumber
420  // bpcnumber1 coeff1 coeff2 ... coeff8
421  // bpcnumber2 coeff1 coeff2 ... coeff8
422  // ...
423  // bpcnumber6 coeff1 coeff2 ... coeff8
424  // runnumber
425  // ...
426  //
427  // coeff must have the following order :
428  // bpcnumber posX posY posZX posZY errposX errposY errposZX errposZY errmeasX errmeasY
429 
430  ATH_MSG_DEBUG ("Get new calibs for run " << m_runnumber);
431 
432  int bpcnumber= m_bpc_names.size();
433 
434  m_bpc_posX.clear(); m_bpc_posX.resize(bpcnumber);
435  m_bpc_posY.clear(); m_bpc_posY.resize(bpcnumber);
436  m_bpc_posZX.clear(); m_bpc_posZX.resize(bpcnumber);
437  m_bpc_posZY.clear(); m_bpc_posZY.resize(bpcnumber);
438  m_bpc_errposX.clear(); m_bpc_errposX.resize(bpcnumber);
439  m_bpc_errposY.clear(); m_bpc_errposY.resize(bpcnumber);
440  m_bpc_errposZX.clear(); m_bpc_errposZX.resize(bpcnumber);
441  m_bpc_errposZY.clear(); m_bpc_errposZY.resize(bpcnumber);
442  m_bpc_errmeasX.clear(); m_bpc_errmeasX.resize(bpcnumber);
443  m_bpc_errmeasY.clear(); m_bpc_errmeasY.resize(bpcnumber);
444 
445  int pos;
446 
447  std::ifstream calibfile;
448  std::string filename = PathResolver::find_file (m_calib_filename, "DATAPATH");
449  calibfile.open(filename.c_str());
450  if(!calibfile.good()){
451  ATH_MSG_WARNING (" Problem with file named "<< m_calib_filename << " in $DATAPATH");
452  return StatusCode::FAILURE;
453  } else {
454  ATH_MSG_DEBUG (" File: "<< filename << " opened");
455  }
456  unsigned int runnumber;
457  calibfile >> runnumber;
458  pos = calibfile.tellg();
459  ATH_MSG_DEBUG (" Run number "<< runnumber);
460  while((runnumber<m_runnumber)&&(!calibfile.eof()))
461  {
462  runnumber=0;
463  pos = calibfile.tellg();
464  // discard next lines
465  for(int j=0;j<bpcnumber+1;j++) calibfile.ignore(5000,'\n');
466  // check next runnumber
467  calibfile >> runnumber;
468  if(runnumber==0) { // reached an empty line : exit.
469  ATH_MSG_DEBUG ("empty line");
470  calibfile.clear();
471  break;
472  }
473  ATH_MSG_DEBUG (" Run number "<< runnumber);
474  }
475 
476  // Now we found the good set of constant (the ones following pos)
477  if(runnumber==m_runnumber) pos = calibfile.tellg();
478  ATH_MSG_DEBUG (" Pos = "<< pos);
479  calibfile.seekg(pos);
480  ATH_MSG_DEBUG (" Will use the following constants :");
481  for(int j=0;j<bpcnumber;j++)
482  {
483  int bpcn;
484  calibfile >> bpcn;
485  calibfile >> m_bpc_posX[j];
486  calibfile >> m_bpc_posY[j];
487  calibfile >> m_bpc_posZX[j];
488  calibfile >> m_bpc_posZY[j];
489  calibfile >> m_bpc_errposX[j];
490  calibfile >> m_bpc_errposY[j];
491  calibfile >> m_bpc_errposZX[j];
492  calibfile >> m_bpc_errposZY[j];
493  calibfile >> m_bpc_errmeasX[j];
494  calibfile >> m_bpc_errmeasY[j];
495 
496  ATH_MSG_DEBUG (bpcn << " "<<m_bpc_posX[j]
497  << " "<< m_bpc_posY[j]
498  << " "<< m_bpc_posZX[j]
499  << " "<< m_bpc_posZY[j]
500  << " "<< m_bpc_errposX[j]
501  << " "<< m_bpc_errposY[j]
502  << " "<< m_bpc_errposZX[j]
503  << " "<< m_bpc_errposZY[j]
504  << " "<< m_bpc_errmeasX[j]
505  << " "<< m_bpc_errmeasY[j]);
506  }
507 
508  calibfile.close();
509 
510  return StatusCode::SUCCESS;
511 
512 }

◆ getResidual()

double TBPlaneTrackingAlgo::getResidual ( const double &  u,
const double &  w,
const double &  a1,
const double &  a2 
)
private

Calculates the residual-> r = (u_i - a1 - a2*w_i)

Definition at line 283 of file TBPlaneTrackingAlgo.cxx.

286 {
287  return (u - a1 - a2*w);
288 }

◆ initialize()

StatusCode TBPlaneTrackingAlgo::initialize ( )
overridevirtual

Definition at line 42 of file TBPlaneTrackingAlgo.cxx.

44 {
45  return StatusCode::SUCCESS;
46 }

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

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

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

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

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

std::vector<float> TBPlaneTrackingAlgo::m_bpc_errmeasX
private

Definition at line 83 of file TBPlaneTrackingAlgo.h.

◆ m_bpc_errmeasY

std::vector<float> TBPlaneTrackingAlgo::m_bpc_errmeasY
private

Definition at line 83 of file TBPlaneTrackingAlgo.h.

◆ m_bpc_errposX

std::vector<float> TBPlaneTrackingAlgo::m_bpc_errposX
private

Definition at line 82 of file TBPlaneTrackingAlgo.h.

◆ m_bpc_errposY

std::vector<float> TBPlaneTrackingAlgo::m_bpc_errposY
private

Definition at line 82 of file TBPlaneTrackingAlgo.h.

◆ m_bpc_errposZX

std::vector<float> TBPlaneTrackingAlgo::m_bpc_errposZX
private

Definition at line 82 of file TBPlaneTrackingAlgo.h.

◆ m_bpc_errposZY

std::vector<float> TBPlaneTrackingAlgo::m_bpc_errposZY
private

Definition at line 82 of file TBPlaneTrackingAlgo.h.

◆ m_bpc_names

std::vector<std::string> TBPlaneTrackingAlgo::m_bpc_names
private

Definition at line 85 of file TBPlaneTrackingAlgo.h.

◆ m_bpc_posX

std::vector<float> TBPlaneTrackingAlgo::m_bpc_posX
private

Definition at line 81 of file TBPlaneTrackingAlgo.h.

◆ m_bpc_posY

std::vector<float> TBPlaneTrackingAlgo::m_bpc_posY
private

Definition at line 81 of file TBPlaneTrackingAlgo.h.

◆ m_bpc_posZX

std::vector<float> TBPlaneTrackingAlgo::m_bpc_posZX
private

Definition at line 81 of file TBPlaneTrackingAlgo.h.

◆ m_bpc_posZY

std::vector<float> TBPlaneTrackingAlgo::m_bpc_posZY
private

Definition at line 81 of file TBPlaneTrackingAlgo.h.

◆ m_calib_filename

std::string TBPlaneTrackingAlgo::m_calib_filename
private

Definition at line 88 of file TBPlaneTrackingAlgo.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_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_hitPlaneCont_u

TBHitPlaneCont TBPlaneTrackingAlgo::m_hitPlaneCont_u
private

Definition at line 77 of file TBPlaneTrackingAlgo.h.

◆ m_hitPlaneCont_v

TBHitPlaneCont TBPlaneTrackingAlgo::m_hitPlaneCont_v
private

Definition at line 78 of file TBPlaneTrackingAlgo.h.

◆ m_runnumber

unsigned int TBPlaneTrackingAlgo::m_runnumber
private

Definition at line 89 of file TBPlaneTrackingAlgo.h.

◆ m_testAlgo

bool TBPlaneTrackingAlgo::m_testAlgo
private

Definition at line 76 of file TBPlaneTrackingAlgo.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:
TBPlaneTrackingAlgo::m_bpc_errposZY
std::vector< float > m_bpc_errposZY
Definition: TBPlaneTrackingAlgo.h:82
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
TBHitPlane::setValidFlag
void setValidFlag(bool valid)
Definition: TBHitPlane.h:45
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
TBPlaneTrackingAlgo::m_runnumber
unsigned int m_runnumber
Definition: TBPlaneTrackingAlgo.h:89
TBPlaneTrackingAlgo::m_bpc_errposZX
std::vector< float > m_bpc_errposZX
Definition: TBPlaneTrackingAlgo.h:82
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TBTrack
Definition: TBTrack.h:20
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
PathResolver::find_file
static std::string find_file(const std::string &logical_file_name, const std::string &search_path, SearchType search_type=LocalSearch)
Definition: PathResolver.cxx:251
ClusterSeg::residual
@ residual
Definition: ClusterNtuple.h:20
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
TBBPC
Definition: TBBPC.h:23
TBPlaneTrackingAlgo::m_bpc_posZY
std::vector< float > m_bpc_posZY
Definition: TBPlaneTrackingAlgo.h:81
TBPlaneTrackingAlgo::m_bpc_posX
std::vector< float > m_bpc_posX
Definition: TBPlaneTrackingAlgo.h:81
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
TBPlaneTrackingAlgo::getChi2
double getChi2(const std::vector< double > &v_u, const std::vector< double > &v_w, const std::vector< double > &v_eu, const double &a1, const double &a2)
Calculates the chi2 += ((u_i - a1 - a2*w_i)/eu)^2.
Definition: TBPlaneTrackingAlgo.cxx:291
TBPlaneTrackingAlgo::getnewcalib
StatusCode getnewcalib()
Definition: TBPlaneTrackingAlgo.cxx:415
TBPlaneTrackingAlgo::m_hitPlaneCont_v
TBHitPlaneCont m_hitPlaneCont_v
Definition: TBPlaneTrackingAlgo.h:78
TBHitPlane::setErroru
void setErroru(double eu)
Definition: TBHitPlane.h:42
TBPlaneTrackingAlgo::m_bpc_posY
std::vector< float > m_bpc_posY
Definition: TBPlaneTrackingAlgo.h:81
TBEventInfo::getEventType
int getEventType() const
Definition: TBEventInfo.h:66
TBHitPlane
Definition: TBHitPlane.h:16
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
TBHitPlane::setPosw
void setPosw(double w)
Definition: TBHitPlane.h:41
TBHitPlane::setPosu
void setPosu(double u)
Definition: TBHitPlane.h:40
TBPlaneTrackingAlgo::getResidual
double getResidual(const double &u, const double &w, const double &a1, const double &a2)
Calculates the residual-> r = (u_i - a1 - a2*w_i)
Definition: TBPlaneTrackingAlgo.cxx:283
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
TBPlaneTrackingAlgo::m_testAlgo
bool m_testAlgo
Definition: TBPlaneTrackingAlgo.h:76
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
TBPlaneTrackingAlgo::buildHits
StatusCode buildHits()
Build HitPlaneCont from BPC.
Definition: TBPlaneTrackingAlgo.cxx:355
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
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
lumiFormat.i
int i
Definition: lumiFormat.py:92
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TBHitPlaneCont
Definition: TBHitPlaneCont.h:20
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:522
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
TBPlaneTrackingAlgo::fitPlane
bool fitPlane(const TBHitPlaneCont *hitPlaneCont, double &a1, double &a2, double &chi2, std::vector< double > &residual)
Fit data to the function u = a1 + a2*w.
Definition: TBPlaneTrackingAlgo.cxx:183
TBPlaneTrackingAlgo::m_bpc_names
std::vector< std::string > m_bpc_names
Definition: TBPlaneTrackingAlgo.h:85
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
DataVector::clear
void clear()
Erase all the elements in the collection.
compute_lumi.denom
denom
Definition: compute_lumi.py:76
DeMoScan.runnumber
runnumber
Definition: DeMoScan.py:266
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
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TBPlaneTrackingAlgo::m_bpc_errposX
std::vector< float > m_bpc_errposX
Definition: TBPlaneTrackingAlgo.h:82
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
LArNewCalib_Delay_OFC_Cali.check
check
Definition: LArNewCalib_Delay_OFC_Cali.py:208
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
python.PyAthena.v
v
Definition: PyAthena.py:157
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
a
TList * a
Definition: liststreamerinfos.cxx:10
h
TBEventInfo
Definition: TBEventInfo.h:27
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
TBPlaneTrackingAlgo::m_bpc_errposY
std::vector< float > m_bpc_errposY
Definition: TBPlaneTrackingAlgo.h:82
TBPlaneTrackingAlgo::m_hitPlaneCont_u
TBHitPlaneCont m_hitPlaneCont_u
Definition: TBPlaneTrackingAlgo.h:77
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:24
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
TBPlaneTrackingAlgo::m_calib_filename
std::string m_calib_filename
Definition: TBPlaneTrackingAlgo.h:88
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
TBPlaneTrackingAlgo::m_bpc_errmeasY
std::vector< float > m_bpc_errmeasY
Definition: TBPlaneTrackingAlgo.h:83
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
TBPlaneTrackingAlgo::m_bpc_errmeasX
std::vector< float > m_bpc_errmeasX
Definition: TBPlaneTrackingAlgo.h:83
TBHitPlane::setErrorw
void setErrorw(double ew)
Definition: TBHitPlane.h:43
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
TBPlaneTrackingAlgo::FillRandomHit
void FillRandomHit()
Definition: TBPlaneTrackingAlgo.cxx:314
TBPlaneTrackingAlgo::fitHits
bool fitHits(const std::vector< double > &u, const std::vector< double > &w, const std::vector< double > &eu, double &a1, double &a2)
Fit data to the function u = a1 + a2*w.
Definition: TBPlaneTrackingAlgo.cxx:236
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
checkFileSG.ind
list ind
Definition: checkFileSG.py:118
TBPlaneTrackingAlgo::m_bpc_posZX
std::vector< float > m_bpc_posZX
Definition: TBPlaneTrackingAlgo.h:81
fitman.k
k
Definition: fitman.py:528
TBBPCCont
Definition: TBBPCCont.h:17
ServiceHandle< ICondSvc >