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

#include <IParticleHandle_TrackParticle.h>

Inheritance diagram for IParticleHandle_TrackParticle:
Collaboration diagram for IParticleHandle_TrackParticle:

Classes

class  Imp
 

Public Member Functions

 IParticleHandle_TrackParticle (IParticleCollHandleBase *, const xAOD::TrackParticle *)
 
virtual ~IParticleHandle_TrackParticle ()
 
virtual bool has3DObjects ()
 Returns true if the 3D objects have been created. More...
 
virtual void clear3DObjects ()
 Delete objects. More...
 
virtual SoNode * nodes ()
 Returns the 3Dobjects. More...
 
void addParameterShapes ()
 
void addLine_FromTrackParticle ()
 Make the line, but only using information on the track (a spline fit will be done from the parameters) More...
 
void addLine_Extrapolated ()
 Extrapolate the initial track parameters to get the line (a spline fit is done between the extrapolated parameters) More...
 
void fillLineFromSplineFit (const std::vector< Amg::Vector3D > &positions, const std::vector< Amg::Vector3D > &momenta)
 Fill d->line with a SoLineSet made from a spline fit between the information in positions and momenta. More...
 
void linear (Amg::Vector3D &output, Amg::Vector3D &a, Amg::Vector3D &b, float t)
 
void bezier (Amg::Vector3D &output, Amg::Vector3D &a, Amg::Vector3D &b, Amg::Vector3D &c, Amg::Vector3D &d, float t)
 
virtual QStringList clicked () const
 Called when user selects the node (stringlist is displayed in messagebox). More...
 
virtual Amg::Vector3D momentum () const
 
virtual Amg::Vector3D position () const
 
const xAOD::IParticleiParticle () const
 
virtual double charge () const
 Returns unknown() in case of trouble. More...
 
virtual unsigned summaryValue (xAOD::SummaryType type) const
 
virtual unsigned getNPixelHits () const
 
virtual unsigned getNSCTHits () const
 
virtual unsigned getNTRTHits () const
 
virtual unsigned getNMuonPrecisionLayers () const
 
virtual unsigned getNMuonPrecisionHoleLayers () const
 
virtual unsigned getNMuonPhiLayers () const
 
virtual unsigned getNMuonPhiHoleLayers () const
 
virtual QString type () const
 return very short word with type (maybe link with collection type?) More...
 
QString shortInfo () const
 This returns the information shown about the object in the object browser. More...
 
void fillObjectBrowser (QList< QTreeWidgetItem * > &listOfItems)
 Create and fill the object browser QTreeWidgetItem. More...
 
const QList< std::pair< xAOD::ParameterPosition, Amg::Vector3D > > & parametersAndPositions () const
 
virtual void dumpToJSON (std::ofstream &) const
 
SoMaterial * determineMaterial ()
 Should be implemented by children, in order to change the material depending on the interface etc. More...
 
virtual QStringList baseInfo () const
 
virtual double mass () const
 Returns unknown() in case of trouble. More...
 
bool hasCharge () const
 
bool hasMass () const
 
const AODSysCommonDatacommon () const
 
void setVisible (bool)
 use by the collection handle. More...
 
bool visible () const
 
const AODCollHandleBasecollHandle () const
 
virtual void update3DObjects ()
 Called after some configuration changes, or when the object is first created. Must be overloaded by children. More...
 
virtual void rebuild3DObjects ()
 
virtual void attach3DObjects ()
 Connect to the scene graph. More...
 
virtual void detach3DObjects ()
 Remove from the scene graph. More...
 
void updateMaterial ()
 Called after some configuration related to material changes. More...
 
SoMaterial * currentMaterial () const
 Returns the current material of the handle. More...
 
void updateObjectBrowser ()
 Update object browser QTreeWidgetItem. More...
 
QTreeWidgetItem * browserTreeItem () const
 Return the QTreeWidgetItem;. More...
 

Static Public Member Functions

static int numberOfInstances ()
 
static double unknown ()
 

Protected Member Functions

virtual void visibleStateChanged ()
 Dummy implementation does nothing. More...
 
virtual void currentMaterialChanged ()
 

Private Member Functions

void ensureInitSubSysHitInfo () const
 

Private Attributes

Impm_d
 
bool m_visible
 
AODCollHandleBasem_collhandle
 
SoMaterial * m_currentmaterial
 

Detailed Description

Definition at line 27 of file IParticleHandle_TrackParticle.h.

Constructor & Destructor Documentation

◆ IParticleHandle_TrackParticle()

IParticleHandle_TrackParticle::IParticleHandle_TrackParticle ( IParticleCollHandleBase ch,
const xAOD::TrackParticle tp 
)

Definition at line 62 of file IParticleHandle_TrackParticle.cxx.

63  : IParticleHandleBase(ch), m_d(new Imp)
64 {
65  m_d->theclass = this;
66  m_d->trackparticle = tp;
68  m_d->sep=0;
69  m_d->line=0;
70 }

◆ ~IParticleHandle_TrackParticle()

IParticleHandle_TrackParticle::~IParticleHandle_TrackParticle ( )
virtual

Definition at line 73 of file IParticleHandle_TrackParticle.cxx.

74 {
75  if (m_d->line) m_d->line->unref();
76  if (m_d->sep) m_d->sep->unref();
77  delete m_d;
78 }

Member Function Documentation

◆ addLine_Extrapolated()

void IParticleHandle_TrackParticle::addLine_Extrapolated ( )

Extrapolate the initial track parameters to get the line (a spline fit is done between the extrapolated parameters)

Definition at line 295 of file IParticleHandle_TrackParticle.cxx.

295  {
296  VP1Msg::messageVerbose("IParticleHandle_TrackParticle::addLine_Extrapolated().");
297 
298  const Trk::Perigee& peri = m_d->trackparticle->perigeeParameters (); // FIXME - I'd quite like not to use anything which requires Athena ...
299 
300  Trk::CurvilinearParameters startParameters(peri.position(),peri.momentum(),peri.charge());
302  // ecc.addConfigurationMode(Trk::ExtrapolationMode::StopAtBoundary);
303  ecc.addConfigurationMode(Trk::ExtrapolationMode::CollectPassive);
304  ecc.addConfigurationMode(Trk::ExtrapolationMode::CollectSensitive);
305 
306  // we want to extrapolate outwards only for muon tracks
307  if (getNMuonPrecisionLayers()==0 && getNMuonPhiLayers()==0 )
308  ecc.addConfigurationMode(Trk::ExtrapolationMode::StopAtBoundary);
309 
310  // call the extrapolation engine
311  const Trk::IExtrapolationEngine * engine = collHandle()->common()->extrapolator();
312  if (!engine) {
313  VP1Msg::messageVerbose("No extrapolator engine available. Aborting.");
314  return;
315  }
316 
317  std::vector<Amg::Vector3D> positions;
318  std::vector<Amg::Vector3D> momenta;
319 
320  // Add start positions
321  positions.push_back(Amg::Vector3D(peri.position().x(),peri.position().y(),peri.position().z()));
322  momenta. push_back(Amg::Vector3D(peri.momentum().x(),peri.momentum().y(),peri.momentum().z()));
323 
324 
325  Trk::ExtrapolationCode eCode = engine->extrapolate(ecc);
326 
327  // end the parameters if there
328  if (eCode.isSuccess()){
329  // loop over the collected information
330  for (auto& es : ecc.extrapolationSteps){
331 
332  // continue if we have parameters
333  const Trk::TrackParameters* parameters = es.parameters;
334  if (parameters){
335  // take what you need -> position etc
336 
337  // finally delete the parameters
338  Amg::Vector3D pos = parameters->position();
339  Amg::Vector3D mom = parameters->momentum();
340  positions.push_back(pos);
341  momenta.push_back(mom);
342 
343  delete parameters;
344  }
345  }//
346 
347  Amg::Vector3D pos = ecc.endParameters->position();
348  Amg::Vector3D mom = ecc.endParameters->momentum();
349  positions.push_back(pos);
350  momenta.push_back(mom);
351  // and delete the final parameter
352  delete ecc.endParameters;
353  } else {
354  VP1Msg::messageVerbose("IParticleHandle_TrackParticle::addLine_Extrapolated() - extrapolation failed.");
355  }
356  fillLineFromSplineFit(positions, momenta);
357  // std::cout<<"About to add "<<collHandleTrk->material()<<std::endl;
358  m_d->sep->addChild(m_d->collHandle->material());
359  // ^^ FIXME - should rearrange so we don't need to reset material
360 
361 
362  m_d->sep->addChild(m_d->line);
363 }

◆ addLine_FromTrackParticle()

void IParticleHandle_TrackParticle::addLine_FromTrackParticle ( )

Make the line, but only using information on the track (a spline fit will be done from the parameters)

Definition at line 173 of file IParticleHandle_TrackParticle.cxx.

173  {
174 
175  std::vector<Amg::Vector3D> positions, momenta;
176 
177 #if defined BUILDVP1LIGHT
178  positions.push_back(position());
179  momenta. push_back(momentum());
180 #else
181  const Trk::Perigee& peri = m_d->trackparticle->perigeeParameters (); // FIXME - I'd quite like not to use anything which requires Athena ...
182 
183  positions.push_back(Amg::Vector3D(peri.position().x(),peri.position().y(),peri.position().z()));
184  momenta. push_back(Amg::Vector3D(peri.momentum().x(),peri.momentum().y(),peri.momentum().z()));
185  // std::cout<<"i:"<<0<<"/"<<m_d->trackparticle->numberOfParameters()+1<<": ("<<peri.position().x()<<","<<peri.position().y()<<","<<peri.position().z()<<")"<<std::endl;
186 #endif // BUILDVP1LIGHT
187 
188 
189  VP1Msg::messageVerbose("IParticleHandle_TrackParticle::addLine_FromTrackParticle - has "+QString::number(m_d->trackparticle->numberOfParameters())+" extra parameters.");
190  for (unsigned int i=0; i<m_d->trackparticle->numberOfParameters() ; ++i){
191  // std::cout<<"i:"<<i+1<<"/"<<m_d->trackparticle->numberOfParameters()+1<<": ("<<m_d->trackparticle->parameterX(i)<<","<<m_d->trackparticle->parameterY(i)<<","<<m_d->trackparticle->parameterZ(i)<<")"<<std::endl;
192 
193  positions.push_back(Amg::Vector3D(m_d->trackparticle->parameterX(i),
196  momenta.push_back(Amg::Vector3D( m_d->trackparticle->parameterPX(i),
199 
200  } // end of loop.
201 
202  // if ( positions.size()<2 ) VP1Msg::messageVerbose("IParticleHandle_TrackParticle::addLine_FromTrackParticle - WARNING - not enough points to make a line.");
203 
204  fillLineFromSplineFit(positions, momenta);
205 
206  // std::cout<<"About to add "<<collHandleTrk->material()<<std::endl;
207  m_d->sep->addChild(m_d->collHandle->material());
208  // ^^ FIXME - should rearrange so we don't need to reset material
209 
210  m_d->sep->addChild(m_d->line);
211 }

◆ addParameterShapes()

void IParticleHandle_TrackParticle::addParameterShapes ( )

Definition at line 128 of file IParticleHandle_TrackParticle.cxx.

128  {
129  // Points:
130  SoPointSet* parameterPoints = 0;
131  SoVertexProperty * vertices2 = 0;
132 
133  // std::cout<<"showing parameters... have "<<m_d->trackparticle->numberOfParameters()+1<<" to draw"<<std::endl;
134 
135  // Okay. so let's make the containers to hold them...
136  parameterPoints = new SoPointSet;
137  vertices2 = new SoVertexProperty;
138 
139  int i = 0;
140  bool colourByParamType = m_d->collHandle->collSettingsButton().colourParametersByType();
141  QList<std::pair<xAOD::ParameterPosition, Amg::Vector3D> > parAndPoses = parametersAndPositions();
142 
143  for (std::pair<xAOD::ParameterPosition, Amg::Vector3D> parpos : parAndPoses ) {
144  Amg::Vector3D pos = parpos.second;
145 
146  if (colourByParamType) {
147  // Okay, so we treat each point separately & add materials as we go...
148  m_d->sep->addChild(m_d->collHandle->collSettingsButton().parameterMaterial(parpos.first));
149  vertices2->vertex.set1Value(0,pos.x(),pos.y(),pos.z());
150  parameterPoints->numPoints=1;
151  parameterPoints->vertexProperty = vertices2;
152  m_d->sep->addChild(parameterPoints);
153  parameterPoints = new SoPointSet; // reset for next point
154  vertices2 = new SoVertexProperty;
155  } else { // Not colouring by type
156  vertices2->vertex.set1Value(i++,pos.x(),pos.y(),pos.z());
157  }
158  }
159 
160  if (colourByParamType) {
161  // In this case, we don't need the last Nodes created in the loop.
162  parameterPoints->unref();
163  vertices2->unref();
164 
165  } else {
166  parameterPoints->numPoints=i;
167  parameterPoints->vertexProperty = vertices2;
168  m_d->sep->addChild(static_cast<const IParticleCollHandle_TrackParticle*>(collHandle())->collSettingsButton().defaultParameterMaterial());
169  m_d->sep->addChild(parameterPoints);
170  }
171 }

◆ attach3DObjects()

void AODHandleBase::attach3DObjects ( )
virtualinherited

Connect to the scene graph.

Definition at line 157 of file AODHandleBase.cxx.

158 {
159  VP1Msg::messageVerbose("AODHandleBase::attach3DObjects");
160 
161  if (!m_currentmaterial) {
163  m_currentmaterial->ref();
165  }
166  if (has3DObjects() && m_collhandle->sepHelper()) {
167  VP1Msg::messageVerbose("Adding nodes to sep helper...");
168 
170 
171  // debug
172  // std::cout<<"m_collhandle->sepHelper() = " << m_collhandle->sepHelper()<<std::endl;
173  SoNode* tmp = nodes();
174  // std::cout << "tmp nodes = "<< tmp << std::endl;
175 
176  // m_collhandle->sepHelper()->addNodeUnderMaterial( nodes(), m_currentmaterial );
178 
179  } else {
180  if (!has3DObjects()) {
181  VP1Msg::message("AODHandleBase::attach3DObjects() - No 3D objects to attach!");
182  }
183  if (!m_collhandle->sepHelper()) VP1Msg::message("AODHandleBase::attach3DObjects() - No sep helper!");
184  }
185  // if (label_sep && theclass->common()->textSep() && theclass->common()->controller()->doTrackLabels())
186  // theclass->common()->textSep()->addChild(label_sep);
187  //
188 }

◆ baseInfo()

QStringList IParticleHandleBase::baseInfo ( ) const
virtualinherited

Reimplemented from AODHandleBase.

Definition at line 85 of file IParticleHandleBase.cxx.

86 {
87  QStringList l;
88  Amg::Vector3D mom = momentum()/1000;
89  if (mom.mag2()==0.0) {
90  l << "Momentum : 0 (undefined)";
91  } else {
92  l << "Momentum [GeV]: "+VP1Msg::str(mom);
93  l << "|Pt|/|P| [GeV]: "+VP1Msg::str(mom.perp())+" / " + VP1Msg::str(mom.mag());
94  l << VP1Msg::str("(")+QChar(0x03B7)+","+QChar(0x03D5)+VP1Msg::str(")=(")
96 
97  l << "Eta: "+VP1Msg::str(mom.eta());
98  l << "Phi: "+VP1Msg::str(VP1LinAlgUtils::phiFromXY(mom.x(), mom.y() ));
99  }
100  // l<<"Hit summary: Pix["+VP1Msg::str(getNPixelHits())+"], SCT["+VP1Msg::str(getNSCTHits())+"], TRT["+VP1Msg::str(getNTRTHits())
101  // +"], MDT["+QString::number(getNMDTHits())+"], RPC["+QString::number(getNRPCHits())+"], TGC["+QString::number(getNTGCHits())+"], CSC["+QString::number(getNCSCHits())+"].";
102  //
103  // return l;
104  // int pdg = pdgCode();
105  // if (pdg) {
106  // bool ok;
107  // QString name = VP1ParticleData::particleName(pdg,ok);
108  // if (ok)
109  // l << "pdg: "+QString::number(pdg)+" ["+name+"]";
110  // else
111  // l << "pdg: "+QString::number(pdg);
112  // }
113 
114  return l;
115 }

◆ bezier()

void IParticleHandle_TrackParticle::bezier ( Amg::Vector3D output,
Amg::Vector3D a,
Amg::Vector3D b,
Amg::Vector3D c,
Amg::Vector3D d,
float  t 
)

Definition at line 220 of file IParticleHandle_TrackParticle.cxx.

220  {
221  // DeCasteljau subdivision
222  Amg::Vector3D ab,bc,cd,abbc,bccd;
223  linear(ab, a,b,t); // point between a and b (green)
224  linear(bc, b,c,t); // point between b and c (green)
225  linear(cd, c,d,t); // point between c and d (green)
226  linear(abbc, ab,bc,t); // point between ab and bc (blue)
227  linear(bccd, bc,cd,t); // point between bc and cd (blue)
228  linear(output, abbc,bccd,t); // point on the bezier-curve (black)
229 }

◆ browserTreeItem()

QTreeWidgetItem * AODHandleBase::browserTreeItem ( ) const
inherited

Return the QTreeWidgetItem;.

Definition at line 311 of file AODHandleBase.cxx.

311  {
312  return m_d->m_objBrowseTree;
313 }

◆ charge()

double IParticleHandle_TrackParticle::charge ( ) const
virtual

Returns unknown() in case of trouble.

Implements IParticleHandleBase.

Definition at line 448 of file IParticleHandle_TrackParticle.cxx.

449 {
450  return m_d->trackparticle->charge();
451 }

◆ clear3DObjects()

void IParticleHandle_TrackParticle::clear3DObjects ( )
virtual

Delete objects.

Implements AODHandleBase.

Definition at line 83 of file IParticleHandle_TrackParticle.cxx.

83  {
84  VP1Msg::messageVerbose("IParticleHandle_TrackParticle::clear3DObjects()");
85 
86  if (m_d->line) {
87  m_d->line->unref();
88  m_d->line=0;
89  }
90  if (m_d->sep) {
91  m_d->sep->unref();
92  m_d->sep=0;
93  }
94 
95  // Wipe caches
96  m_d->positionsToWrite.clear();
97  m_d->parametersAndPositions.clear();
98 }

◆ clicked()

QStringList IParticleHandle_TrackParticle::clicked ( ) const
virtual

Called when user selects the node (stringlist is displayed in messagebox).

Reimplementations should add info momInfo() to get momentum, eta, phi, pid,charge, mass printed.

Implements AODHandleBase.

Definition at line 367 of file IParticleHandle_TrackParticle.cxx.

368 {
369  QStringList l;
370  l << "TrackParticle:";
372  return l;
373 }

◆ collHandle()

const AODCollHandleBase* AODHandleBase::collHandle ( ) const
inlineinherited

Definition at line 55 of file AODHandleBase.h.

55 { return m_collhandle; }

◆ common()

const AODSysCommonData * AODHandleBase::common ( ) const
inherited

Definition at line 93 of file AODHandleBase.cxx.

94 {
95  return std::as_const(m_collhandle)->common();
96 }

◆ currentMaterial()

SoMaterial* AODHandleBase::currentMaterial ( ) const
inlineinherited

Returns the current material of the handle.

Definition at line 76 of file AODHandleBase.h.

76 { return m_currentmaterial; }

◆ currentMaterialChanged()

virtual void AODHandleBase::currentMaterialChanged ( )
inlineprotectedvirtualinherited

Definition at line 111 of file AODHandleBase.h.

111 {};

◆ detach3DObjects()

void AODHandleBase::detach3DObjects ( )
virtualinherited

Remove from the scene graph.

Definition at line 191 of file AODHandleBase.cxx.

192 {
193  VP1Msg::messageVerbose("AODHandleBase::detach3DObjects");
194 
195  if (!m_currentmaterial)
196  return;//Can never have been attached!
197  if (has3DObjects() && m_collhandle->sepHelper()) {
199  }
200 
202 
203  // if (label_sep && theclass->common()->textSep())
204  // theclass->common()->textSep()->removeChild(label_sep);
205 }

◆ determineMaterial()

SoMaterial * IParticleHandleBase::determineMaterial ( )
virtualinherited

Should be implemented by children, in order to change the material depending on the interface etc.

This will (by default) return the collection material.

Implements AODHandleBase.

Definition at line 71 of file IParticleHandleBase.cxx.

71  {
72  // By default we use the collection material.
73  // std::cout<<"AODHandleBase::determineMaterial() - collHandle()->material()"<<collHandle()->material()<<std::endl;
74  return collHandle()->material();
75 }

◆ dumpToJSON()

void IParticleHandle_TrackParticle::dumpToJSON ( std::ofstream &  str) const
virtual

Reimplemented from AODHandleBase.

Definition at line 597 of file IParticleHandle_TrackParticle.cxx.

597  {
598  str << "\"chi2\":"<<m_d->trackparticle->chiSquared () <<", ";
599  str << "\"dof\":" <<m_d->trackparticle->numberDoF () <<", ";
600  str << "\"dparams\": ["
601  << m_d->trackparticle->d0() <<", "
602  << m_d->trackparticle->z0() <<", "
603  << m_d->trackparticle->phi0() <<", "
604  << m_d->trackparticle->theta() <<", "
605  << m_d->trackparticle->qOverP()
606  << "], \"pos\": [";
607  bool first = true;
608  for (auto pos: m_d->positionsToWrite){
609  if (first){
610  first = false;
611  } else {
612  str <<",";
613  }
614  str << "["<<pos.x()<<","<<pos.y()<<","<<pos.z()<<"]";
615  }
616  str << "] ";
617 }

◆ ensureInitSubSysHitInfo()

void IParticleHandle_TrackParticle::ensureInitSubSysHitInfo ( ) const
private

◆ fillLineFromSplineFit()

void IParticleHandle_TrackParticle::fillLineFromSplineFit ( const std::vector< Amg::Vector3D > &  positions,
const std::vector< Amg::Vector3D > &  momenta 
)

Fill d->line with a SoLineSet made from a spline fit between the information in positions and momenta.

Definition at line 231 of file IParticleHandle_TrackParticle.cxx.

231  {
232  int iver(0);
233  unsigned int npointsused(0);
234  // Create new lineset etc
235  m_d->line = new SoLineSet();
236  m_d->line->ref();
237 
238  // For the moment, lets just draw the lines.
239  SoVertexProperty * vertices = new SoVertexProperty();
240 
241  // std::cout<<"About to loop over "<<positions.size()<<" points to make line"<<std::endl;
242  // for (unsigned int i=0; i<positions.size(); ++i){
243  // std::cout<<"i: "<<i<<" at ("<<positions[i].x()<<","<<positions[i].y()<<","<<positions[i].z()<<")"<<" \tmom = ("<<momenta[i].x()<<","<<momenta[i].y()<<","<<momenta[i].z()<<")"<<std::endl;
244  // }
245 
246  // std::cout<<"Now do interpolations."<<std::endl;
247 
248  bool useExistingParams = m_d->collHandle->collSettingsButton().useExistingParameters();
249 
250  for (unsigned int i=1; i<positions.size(); ++i){
251  // std::cout<<"i: "<<i<<" at ("<<positions[i].x()<<","<<positions[i].y()<<","<<positions[i].z()<<")"<<" \tmom = ("<<momenta[i].x()<<","<<momenta[i].y()<<","<<momenta[i].z()<<")"<<std::endl;
252 
253  if (useExistingParams){
254  float scale = ( (positions[i]-positions[i-1]).mag() )/3.0; // want to split curve into three parts
255  Amg::Vector3D p0(positions[i-1]); // first position
256  Amg::Vector3D p1(positions[i-1]+(scale * momenta[i-1].unit() ) ); // move 1/3 or the way towards next point, but following momentum direction
257  Amg::Vector3D p2(positions[i] -(scale * momenta[i].unit() ) ); // back 1/3 from second point, but following momentum direction
258  Amg::Vector3D p3(positions[i]);
259  // std::cout<<"p0: ("<<p0[0]<<", "<<p0[1]<<", "<<p0[2]<<") "<<std::endl;
260  // std::cout<<"p1: ("<<p1[0]<<", "<<p1[1]<<", "<<p1[2]<<") "<<std::endl;
261  // std::cout<<"p2: ("<<p2[0]<<", "<<p2[1]<<", "<<p2[2]<<") "<<std::endl;
262  // std::cout<<"p3: ("<<p3[0]<<", "<<p3[1]<<", "<<p3[2]<<") "<<std::endl;
263 
264  unsigned int maxCount=m_d->collHandle->collSettingsButton().numOfStepsForInterpolation();
265  for (unsigned int count=1; count<=maxCount;++count){
266  float t=static_cast<float>(count)/static_cast<float>(maxCount);
268  bezier(pos, p0, p1, p2, p3, t);
269  // std::cout<<"j: "<<count<<" \tat ("<<pos.x()<<","<<pos.y()<<","<<pos.z()<<")"<<std::endl;
270 
271  // pos = pos + momdelta;
272  vertices->vertex.set1Value(iver++,pos.x(),pos.y(),pos.z());
273  m_d->positionsToWrite.append(pos);
274 
275  npointsused++;
276  }
277  } else {
278  vertices->vertex.set1Value(iver++,positions[i].x(),positions[i].y(),positions[i].z());
279  m_d->positionsToWrite.append(positions[i]);
280  npointsused++;
281  }
282  }
283 
284  // Add final point.
285 
286 
287 
288  // Add to SoLine set
289  m_d->line->numVertices.set1Value(0,npointsused);
290  m_d->line->vertexProperty = vertices;
291 
292 }

◆ fillObjectBrowser()

void IParticleHandle_TrackParticle::fillObjectBrowser ( QList< QTreeWidgetItem * > &  list)
virtual

Create and fill the object browser QTreeWidgetItem.

Reimplemented from AODHandleBase.

Definition at line 514 of file IParticleHandle_TrackParticle.cxx.

515 {
516  IParticleHandleBase::fillObjectBrowser(listOfItems); // Obligatory!
517 
518  QTreeWidgetItem* TSOSitem = new QTreeWidgetItem(browserTreeItem());
519  TSOSitem->setText(0, QString("Def. Parameters " ) );
520  QString dParameters("(");
521  dParameters+=QString::number(m_d->trackparticle->d0());
522  dParameters+=", ";
523  dParameters+=QString::number(m_d->trackparticle->z0());
524  dParameters+=", ";
525  dParameters+=QString::number(m_d->trackparticle->phi0());
526  dParameters+=", ";
527  dParameters+=QString::number(m_d->trackparticle->theta());
528  dParameters+=", ";
529  dParameters+=QString::number(m_d->trackparticle->qOverP());
530  dParameters+=")";
531  TSOSitem->setText(1, dParameters );
532 
533  for (unsigned int i=0; i<m_d->trackparticle->numberOfParameters() ; ++i){
534  QTreeWidgetItem* TSOSitem = new QTreeWidgetItem(browserTreeItem());
535  TSOSitem->setText(0, QString("Parameter "+QString::number( i+1 ) ) );
536  QString pos(", Position = (");
538  pos+=", ";
540  pos+=", ";
542  pos+=")";
543 
544  switch (m_d->trackparticle->parameterPosition(i)){
545  case xAOD::BeamLine:
546  TSOSitem->setText(1, QString("BeamLine" )+pos );
547  break;
549  TSOSitem->setText(1, QString("FirstMeasurement")+pos );
550  break;
551  case xAOD::LastMeasurement:
552  TSOSitem->setText(1, QString("LastMeasurement" )+pos );
553  break;
555  TSOSitem->setText(1, QString("CalorimeterEntrance")+pos );
556  break;
557  case xAOD::CalorimeterExit:
558  TSOSitem->setText(1, QString("CalorimeterExit" )+pos );
559  break;
561  TSOSitem->setText(1, QString("MuonSpectrometerEntrance")+pos );
562  break;
563  default:
564  TSOSitem->setText(1, QString("Undefined")+pos );
565  }
566  }
567 
568  // TODO - add more.
569 }

◆ getNMuonPhiHoleLayers()

unsigned IParticleHandle_TrackParticle::getNMuonPhiHoleLayers ( ) const
virtual

Definition at line 497 of file IParticleHandle_TrackParticle.cxx.

498 {
500 }

◆ getNMuonPhiLayers()

unsigned IParticleHandle_TrackParticle::getNMuonPhiLayers ( ) const
virtual

Definition at line 492 of file IParticleHandle_TrackParticle.cxx.

493 {
495 }

◆ getNMuonPrecisionHoleLayers()

unsigned IParticleHandle_TrackParticle::getNMuonPrecisionHoleLayers ( ) const
virtual

Definition at line 487 of file IParticleHandle_TrackParticle.cxx.

488 {
490 }

◆ getNMuonPrecisionLayers()

unsigned IParticleHandle_TrackParticle::getNMuonPrecisionLayers ( ) const
virtual

Definition at line 482 of file IParticleHandle_TrackParticle.cxx.

483 {
485 }

◆ getNPixelHits()

unsigned IParticleHandle_TrackParticle::getNPixelHits ( ) const
virtual

Definition at line 466 of file IParticleHandle_TrackParticle.cxx.

467 {
469 }

◆ getNSCTHits()

unsigned IParticleHandle_TrackParticle::getNSCTHits ( ) const
virtual

Definition at line 472 of file IParticleHandle_TrackParticle.cxx.

473 {
475 }

◆ getNTRTHits()

unsigned IParticleHandle_TrackParticle::getNTRTHits ( ) const
virtual

Definition at line 477 of file IParticleHandle_TrackParticle.cxx.

478 {
480 }

◆ has3DObjects()

bool IParticleHandle_TrackParticle::has3DObjects ( )
virtual

Returns true if the 3D objects have been created.

Reimplemented from AODHandleBase.

Definition at line 80 of file IParticleHandle_TrackParticle.cxx.

80  {
81  return 0!=m_d->sep;
82 }

◆ hasCharge()

bool IParticleHandleBase::hasCharge ( ) const
inlineinherited

Definition at line 59 of file IParticleHandleBase.h.

59 { return charge()!=unknown(); }

◆ hasMass()

bool IParticleHandleBase::hasMass ( ) const
inlineinherited

Definition at line 60 of file IParticleHandleBase.h.

60 { return mass()!=unknown(); }

◆ iParticle()

const xAOD::IParticle & IParticleHandle_TrackParticle::iParticle ( ) const
virtual

Implements IParticleHandleBase.

Definition at line 442 of file IParticleHandle_TrackParticle.cxx.

443 {
444  return *(m_d->trackparticle);
445 }

◆ linear()

void IParticleHandle_TrackParticle::linear ( Amg::Vector3D output,
Amg::Vector3D a,
Amg::Vector3D b,
float  t 
)

Definition at line 213 of file IParticleHandle_TrackParticle.cxx.

213  {
214  float x = a.x() + (b.x()-a.x())*t;
215  float y = a.y() + (b.y()-a.y())*t;
216  float z = a.z() + (b.z()-a.z())*t;
217  output = Amg::Vector3D(x,y,z);
218 }

◆ mass()

double IParticleHandleBase::mass ( ) const
virtualinherited

Returns unknown() in case of trouble.

Definition at line 78 of file IParticleHandleBase.cxx.

79 {
80  return 0.0;
81 }

◆ momentum()

Amg::Vector3D IParticleHandle_TrackParticle::momentum ( ) const
virtual

Reimplemented from IParticleHandleBase.

Definition at line 407 of file IParticleHandle_TrackParticle.cxx.

408  {
410  return p.momentum();
411  }

◆ nodes()

SoNode * IParticleHandle_TrackParticle::nodes ( )
virtual

Returns the 3Dobjects.

Implements AODHandleBase.

Definition at line 100 of file IParticleHandle_TrackParticle.cxx.

100  {
101  VP1Msg::messageVerbose("IParticleHandle_TrackParticle::nodes with d->sep="+VP1Msg::str(m_d->sep));
102 
103  if (m_d->sep) {
104  VP1Msg::messageVerbose("IParticleHandle_TrackParticle::nodes() - already have sep so not doing anything.");
105  return m_d->sep;
106  }
107  if (!m_d->sep) {
108  m_d->sep = new SoSeparator();
109  m_d->sep->ref();
110  }
111 
113 
114  if (fromTrack) {
116  } else {
117  #ifndef BUILDVP1LIGHT
119  #endif // BUILDVP1LIGHT
120  }
121 
124 
125  return m_d->sep;
126 }

◆ numberOfInstances()

int AODHandleBase::numberOfInstances ( )
staticinherited

Definition at line 87 of file AODHandleBase.cxx.

88 {
89  return Imp::nobjhandles;
90 }

◆ parametersAndPositions()

const QList< std::pair< xAOD::ParameterPosition, Amg::Vector3D > > & IParticleHandle_TrackParticle::parametersAndPositions ( ) const

Definition at line 571 of file IParticleHandle_TrackParticle.cxx.

571  {
572  // 1st position
573  if (!m_d->parametersAndPositions.isEmpty())
574  return m_d->parametersAndPositions;
575 
576  typedef std::pair<xAOD::ParameterPosition, Amg::Vector3D> paramAndPos;
577 
578 #if defined BUILDVP1LIGHT
579  m_d->parametersAndPositions.append(paramAndPos(xAOD::BeamLine, position() ) );
580 #else
581  const Trk::Perigee& peri = m_d->trackparticle->perigeeParameters (); // FIXME - I'd quite like not to use anything which requires Athena ...
582  m_d->parametersAndPositions.append(paramAndPos(xAOD::BeamLine, Amg::Vector3D(peri.position().x(),peri.position().y(),peri.position().z()) ) );
583 #endif // BUILDVP1LIGHT
584 
585  float x,y,z;
586  for (unsigned int i=0; i<m_d->trackparticle->numberOfParameters() ; ++i){
590 
592  }
593  VP1Msg::messageVerbose("TrackParticle parametersAndPositions() - returning this many positions : "+VP1Msg::str(m_d->parametersAndPositions.size()) );
594  return m_d->parametersAndPositions;
595 }

◆ position()

Amg::Vector3D IParticleHandle_TrackParticle::position ( ) const
virtual

Definition at line 433 of file IParticleHandle_TrackParticle.cxx.

434  {
436  return p.position(); // TODO: check what this returns
437  }

◆ rebuild3DObjects()

void AODHandleBase::rebuild3DObjects ( )
virtualinherited

Definition at line 137 of file AODHandleBase.cxx.

138 {
139  QString tmp2 = (m_visible==true)?"True":"False";
140  VP1Msg::messageDebug("AODHandleBase::rebuild3DObjects() - with m_visible="+tmp2 );
141 
142  //Ensure we are always detached while updating.
143  if (m_visible) {
144  detach3DObjects();
145  }
146 
147  clear3DObjects();
148  nodes(); // rebuilds the 3D shapes
149 
150  //Attach if visible:
151  if (m_visible) {
152  attach3DObjects();
153  }
154 }

◆ setVisible()

void AODHandleBase::setVisible ( bool  vis)
inherited

use by the collection handle.

Definition at line 99 of file AODHandleBase.cxx.

100 {
101  QString tmp = (vis==true)?"True":"False";
102  QString tmp2 = (m_visible==true)?"True":"False";
103  VP1Msg::messageDebug(QString("AODHandleBase calling setVisible with vis=")+tmp+QString(", and m_visible=")+tmp2 );
104  if (vis==m_visible)
105  return;
106 
107  m_visible=vis;
108  if (vis) {
110 
111  if (!has3DObjects())
112  rebuild3DObjects();//The call to rebuild also fixes attached state.
113  else
114  attach3DObjects();
115  } else {
117  detach3DObjects();
118  }
119 
121 }

◆ shortInfo()

QString IParticleHandle_TrackParticle::shortInfo ( ) const
virtual

This returns the information shown about the object in the object browser.

Reimplemented from AODHandleBase.

Definition at line 502 of file IParticleHandle_TrackParticle.cxx.

503 {
504  QString l("");
505  //l+= "|P|="+VP1Msg::str(momentum().mag()/SYSTEM_OF_UNITS::GeV)+" [GeV], ";
506  l+= "Pix["+QString::number(getNPixelHits())+"], ";
507  l+= "SCT["+QString::number(getNSCTHits())+"], " ;
508  l+= "TRT["+QString::number(getNTRTHits())+"], ";
509  l+= "Muon prec. layers/holes [";
511  return l;
512 }

◆ summaryValue()

unsigned IParticleHandle_TrackParticle::summaryValue ( xAOD::SummaryType  type) const
virtual

Definition at line 454 of file IParticleHandle_TrackParticle.cxx.

455 {
456  uint8_t num = 0;
458  return num;
459  }
460  // else...
461  VP1Msg::message("IParticleHandle_TrackParticle::getSummaryValue - unable to retrieve the requested enum: "+VP1Msg::str(type));
462  return 999999;
463 }

◆ type()

virtual QString IParticleHandle_TrackParticle::type ( ) const
inlinevirtual

return very short word with type (maybe link with collection type?)

Reimplemented from AODHandleBase.

Definition at line 65 of file IParticleHandle_TrackParticle.h.

◆ unknown()

static double AODHandleBase::unknown ( )
inlinestaticinherited

Definition at line 93 of file AODHandleBase.h.

93 { return -999.0; }

◆ update3DObjects()

void AODHandleBase::update3DObjects ( )
virtualinherited

Called after some configuration changes, or when the object is first created. Must be overloaded by children.

Definition at line 125 of file AODHandleBase.cxx.

126 {
127  if (m_visible) {
129  } else {
130  //Simply clear the present 3D objects. They will only be recreated if/when the track/jet becomes visible again.
131  clear3DObjects();
132  }
133 }

◆ updateMaterial()

void AODHandleBase::updateMaterial ( )
inherited

Called after some configuration related to material changes.

Definition at line 208 of file AODHandleBase.cxx.

209 {
210  VP1Msg::messageVerbose("AODHandleBase::updateMaterial()");
211 
212  //We need to change the current material. This means we need to
213  //clear the cache. Only if we are visible do we need to do a
214  //detach->clear material->attach cycle to trigger attachment under new material.
215 
216  if (!m_currentmaterial)
217  return;//We have no material cached and is thus not attached either.
218  if (m_visible) {
219  //See if the material changed. If it did, detach, update the material, attach again.
220  SoMaterial * newmat = determineMaterial();
221  newmat->ref();
222  if (newmat!=m_currentmaterial) {
223  detach3DObjects();
224  m_currentmaterial->unref();
225  m_currentmaterial = newmat;
226  attach3DObjects();
228  } else {
229  newmat->unref();
230  }
231  } else {
232  //Just clear material.
233  m_currentmaterial->unref();
234  m_currentmaterial = 0;
236  }
237 }

◆ updateObjectBrowser()

void AODHandleBase::updateObjectBrowser ( )
inlineinherited

Update object browser QTreeWidgetItem.

Definition at line 102 of file AODHandleBase.h.

102 {};

◆ visible()

bool AODHandleBase::visible ( ) const
inlineinherited

Definition at line 54 of file AODHandleBase.h.

54 { return m_visible; }

◆ visibleStateChanged()

void AODHandleBase::visibleStateChanged ( )
protectedvirtualinherited

Dummy implementation does nothing.

override if need to take action in this case.

Definition at line 316 of file AODHandleBase.cxx.

317 {
318  if ( !browserTreeItem()) {
319  VP1Msg::messageVerbose("visibleStateChanged: No m_objBrowseTree!");
320  return;
321  }
322 
323  if (!visible()) {
324  browserTreeItem()->setFlags(Qt::ItemFlags()); // not selectable, not enabled
325  } else {
326  browserTreeItem()->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); // selectable, enabled
327  }
328  QFont itemFont = browserTreeItem()->font(0);
329  itemFont.setStrikeOut(!visible());
330  browserTreeItem()->setFont(0, itemFont);
331  browserTreeItem()->setFont(1, itemFont);
332 }

Member Data Documentation

◆ m_collhandle

AODCollHandleBase* AODHandleBase::m_collhandle
privateinherited

Definition at line 126 of file AODHandleBase.h.

◆ m_currentmaterial

SoMaterial* AODHandleBase::m_currentmaterial
privateinherited

Definition at line 127 of file AODHandleBase.h.

◆ m_d

Imp* IParticleHandle_TrackParticle::m_d
private

Definition at line 80 of file IParticleHandle_TrackParticle.h.

◆ m_visible

bool AODHandleBase::m_visible
privateinherited

Definition at line 125 of file AODHandleBase.h.


The documentation for this class was generated from the following files:
IParticleHandle_TrackParticle::getNMuonPrecisionHoleLayers
virtual unsigned getNMuonPrecisionHoleLayers() const
Definition: IParticleHandle_TrackParticle.cxx:487
AODHandleBase::visible
bool visible() const
Definition: AODHandleBase.h:54
IParticleHandle_TrackParticle::position
virtual Amg::Vector3D position() const
Definition: IParticleHandle_TrackParticle.cxx:433
Trk::ExtrapolationMode::CollectPassive
@ CollectPassive
Definition: ExtrapolationCell.h:57
IParticleHandle_TrackParticle::Imp::collHandle
IParticleCollHandle_TrackParticle * collHandle
Definition: IParticleHandle_TrackParticle.cxx:52
IParticleCollHandle_TrackParticle
Definition: IParticleCollHandle_TrackParticle.h:25
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
xAOD::CalorimeterExit
@ CalorimeterExit
Parameter defined at the exit of the calorimeter.
Definition: TrackingPrimitives.h:219
DeMoUpdate.tmp2
string tmp2
Definition: DeMoUpdate.py:1168
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
xAOD::numberOfPrecisionHoleLayers
@ numberOfPrecisionHoleLayers
layers with holes AND no hits [unit8_t].
Definition: TrackingPrimitives.h:289
AODHandleBase::unknown
static double unknown()
Definition: AODHandleBase.h:93
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
VP1StdCollection::material
SoMaterial * material() const
Definition: VP1StdCollection.cxx:220
IParticleHandle_TrackParticle::fillLineFromSplineFit
void fillLineFromSplineFit(const std::vector< Amg::Vector3D > &positions, const std::vector< Amg::Vector3D > &momenta)
Fill d->line with a SoLineSet made from a spline fit between the information in positions and momenta...
Definition: IParticleHandle_TrackParticle.cxx:231
IParticleHandle_TrackParticle::momentum
virtual Amg::Vector3D momentum() const
Definition: IParticleHandle_TrackParticle.cxx:407
xAOD::TrackParticle_v1::charge
float charge() const
Returns the charge.
Definition: TrackParticle_v1.cxx:150
IParticleHandle_TrackParticle::getNSCTHits
virtual unsigned getNSCTHits() const
Definition: IParticleHandle_TrackParticle.cxx:472
xAOD::BeamLine
@ BeamLine
Parameter defined at the Vertex/Beamline.
Definition: TrackingPrimitives.h:211
hist_file_dump.d
d
Definition: hist_file_dump.py:137
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
AODHandleBase::detach3DObjects
virtual void detach3DObjects()
Remove from the scene graph.
Definition: AODHandleBase.cxx:191
xAOD::TrackParticle_v1::summaryValue
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
Definition: TrackParticle_v1.cxx:736
VP1ExtraSepLayerHelper::addNodeUnderMaterial
void addNodeUnderMaterial(SoNode *, SoMaterial *)
Definition: VP1ExtraSepLayerHelper.cxx:190
xAOD::TrackParticle_v1::parameterPX
float parameterPX(unsigned int index) const
Returns the parameter x momentum component, for 'index'.
Definition: TrackParticle_v1.cxx:612
AODHandleBase::m_collhandle
AODCollHandleBase * m_collhandle
Definition: AODHandleBase.h:126
xAOD::numberOfPhiHoleLayers
@ numberOfPhiHoleLayers
layers with trigger phi holes but no hits [unit8_t].
Definition: TrackingPrimitives.h:291
IParticleHandle_TrackParticle::Imp::trackparticle
const xAOD::TrackParticle * trackparticle
Definition: IParticleHandle_TrackParticle.cxx:51
xAOD::TrackParticle_v1::z0
float z0() const
Returns the parameter.
xAOD::TrackParticle_v1::chiSquared
float chiSquared() const
Returns the of the overall track fit.
TrackParticleCollectionSettingsButton::useExistingParameters
bool useExistingParameters() const
Definition: TrackParticleCollectionSettingsButton.cxx:322
ParticleTest.tp
tp
Definition: ParticleTest.py:25
AODHandleBase::collHandle
const AODCollHandleBase * collHandle() const
Definition: AODHandleBase.h:55
AODHandleBase::determineMaterial
virtual SoMaterial * determineMaterial()=0
Should be implemented by children, in order to change the material depending on the interface etc.
VP1ExtraSepLayerHelper::removeNodeUnderMaterial
void removeNodeUnderMaterial(SoNode *, SoMaterial *)
Definition: VP1ExtraSepLayerHelper.cxx:216
AODHandleBase::fillObjectBrowser
virtual void fillObjectBrowser(QList< QTreeWidgetItem * > &list)
Create and fill the object browser QTreeWidgetItem.
Definition: AODHandleBase.cxx:288
AODHandleBase::has3DObjects
virtual bool has3DObjects()
Returns true if the 3D objects have been created.
Definition: AODHandleBase.h:57
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
TrackParticleCollectionSettingsButton::numOfStepsForInterpolation
int numOfStepsForInterpolation() const
Returns true if the propagation should use the parameters already on the particle,...
Definition: TrackParticleCollectionSettingsButton.cxx:326
xAOD::numberOfTRTHits
@ numberOfTRTHits
number of TRT hits [unit8_t].
Definition: TrackingPrimitives.h:275
xAOD::CalorimeterEntrance
@ CalorimeterEntrance
Parameter defined at the entrance to the calorimeter.
Definition: TrackingPrimitives.h:217
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
xAOD::LastMeasurement
@ LastMeasurement
Parameter defined at the position of the last measurement.
Definition: TrackingPrimitives.h:215
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
IParticleHandleBase::charge
virtual double charge() const =0
x
#define x
VP1String::str
static QString str(const QString &s)
Definition: VP1String.h:49
AODHandleBase::currentMaterialChanged
virtual void currentMaterialChanged()
Definition: AODHandleBase.h:111
xAOD::TrackParticle_v1::d0
float d0() const
Returns the parameter.
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
IParticleHandle_TrackParticle::bezier
void bezier(Amg::Vector3D &output, Amg::Vector3D &a, Amg::Vector3D &b, Amg::Vector3D &c, Amg::Vector3D &d, float t)
Definition: IParticleHandle_TrackParticle.cxx:220
xAOD::TrackParticle_v1::parameterX
float parameterX(unsigned int index) const
Returns the parameter x position, for 'index'.
Definition: TrackParticle_v1.cxx:597
AODCollHandleBase::common
const AODSysCommonData * common() const
Definition: AODCollHandleBase.h:88
AODCollHandleBase::incrementNShownHandles
void incrementNShownHandles()
Definition: AODCollHandleBase.h:132
ParticleJetTools::p3
Amg::Vector3D p3(const xAOD::TruthVertex *p)
Definition: ParticleJetLabelCommon.cxx:55
VP1LinAlgUtils::phiFromXY
static double phiFromXY(const double &x, const double &y)
Definition: VP1LinAlgUtils.cxx:374
IParticleHandle_TrackParticle::addLine_FromTrackParticle
void addLine_FromTrackParticle()
Make the line, but only using information on the track (a spline fit will be done from the parameters...
Definition: IParticleHandle_TrackParticle.cxx:173
TrackParticleCollectionSettingsButton::colourParametersByType
bool colourParametersByType() const
Definition: TrackParticleCollectionSettingsButton.cxx:363
TrackParticleCollectionSettingsButton::showParameters
bool showParameters() const
Returns the number of steps to use when interpolating between paramters (0 is no interpolation....
Definition: TrackParticleCollectionSettingsButton.cxx:355
xAOD::TrackParticle_v1::parameterY
float parameterY(unsigned int index) const
Returns the parameter y position, for 'index'.
Definition: TrackParticle_v1.cxx:602
AODHandleBase::attach3DObjects
virtual void attach3DObjects()
Connect to the scene graph.
Definition: AODHandleBase.cxx:157
xAOD::TrackParticle_v1::parameterPY
float parameterPY(unsigned int index) const
Returns the parameter y momentum component, for 'index'.
Definition: TrackParticle_v1.cxx:617
xAOD::TrackParticle_v1::perigeeParameters
const Trk::Perigee & perigeeParameters() const
Returns the Trk::MeasuredPerigee track parameters.
Definition: TrackParticle_v1.cxx:485
IParticleCollHandle_TrackParticle::collSettingsButton
const TrackParticleCollectionSettingsButton & collSettingsButton() const
Definition: IParticleCollHandle_TrackParticle.cxx:166
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
AODSysCommonData::extrapolator
const Trk::IExtrapolationEngine * extrapolator() const
Definition: AODSysCommonData.h:55
lumiFormat.i
int i
Definition: lumiFormat.py:92
z
#define z
xAOD::FirstMeasurement
@ FirstMeasurement
Parameter defined at the position of the 1st measurement.
Definition: TrackingPrimitives.h:213
IParticleHandle_TrackParticle::parametersAndPositions
const QList< std::pair< xAOD::ParameterPosition, Amg::Vector3D > > & parametersAndPositions() const
Definition: IParticleHandle_TrackParticle.cxx:571
Trk::ExtrapolationCode::isSuccess
bool isSuccess() const
return success
Definition: ExtrapolationCell.h:153
AODHandleBase::Imp::nobjhandles
static std::atomic< int > nobjhandles
Definition: AODHandleBase.cxx:56
IParticleHandleBase::momentum
virtual Amg::Vector3D momentum() const
Definition: IParticleHandleBase.h:52
IParticleHandle_TrackParticle::linear
void linear(Amg::Vector3D &output, Amg::Vector3D &a, Amg::Vector3D &b, float t)
Definition: IParticleHandle_TrackParticle.cxx:213
Trk::ExtrapolationCode
Definition: ExtrapolationCell.h:105
IParticleHandle_TrackParticle::getNPixelHits
virtual unsigned getNPixelHits() const
Definition: IParticleHandle_TrackParticle.cxx:466
AODHandleBase::visibleStateChanged
virtual void visibleStateChanged()
Dummy implementation does nothing.
Definition: AODHandleBase.cxx:316
Trk::ExtrapolationMode::CollectSensitive
@ CollectSensitive
Definition: ExtrapolationCell.h:56
AODSysCommonData::deregisterHandle
void deregisterHandle(AODHandleBase *h)
Definition: AODSysCommonData.cxx:67
AODHandleBase::browserTreeItem
QTreeWidgetItem * browserTreeItem() const
Return the QTreeWidgetItem;.
Definition: AODHandleBase.cxx:311
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::CurvilinearParametersT
Definition: CurvilinearParametersT.h:48
xAOD::TrackParticle_v1::parameterPosition
xAOD::ParameterPosition parameterPosition(unsigned int index) const
Return the ParameterPosition of the parameters at 'index'.
Definition: TrackParticle_v1.cxx:647
IParticleHandle_TrackParticle::getNMuonPrecisionLayers
virtual unsigned getNMuonPrecisionLayers() const
Definition: IParticleHandle_TrackParticle.cxx:482
AODCollHandleBase::decrementNShownHandles
void decrementNShownHandles()
Definition: AODCollHandleBase.h:133
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
IParticleHandle_TrackParticle::Imp::parametersAndPositions
QList< std::pair< xAOD::ParameterPosition, Amg::Vector3D > > parametersAndPositions
Definition: IParticleHandle_TrackParticle.cxx:56
IParticleHandleBase::baseInfo
virtual QStringList baseInfo() const
Definition: IParticleHandleBase.cxx:85
merge.output
output
Definition: merge.py:17
trigbs_pickEvents.num
num
Definition: trigbs_pickEvents.py:76
xAOD::TrackParticle_v1::phi0
float phi0() const
Returns the parameter, which has range to .
Definition: TrackParticle_v1.cxx:158
IParticleHandle_TrackParticle::Imp::positionsToWrite
QList< Amg::Vector3D > positionsToWrite
Definition: IParticleHandle_TrackParticle.cxx:57
xAOD::TrackParticle_v1::qOverP
float qOverP() const
Returns the parameter.
python.selection.number
number
Definition: selection.py:20
xAOD::TrackParticle_v1::parameterPZ
float parameterPZ(unsigned int index) const
Returns the parameter z momentum component, for 'index'.
Definition: TrackParticle_v1.cxx:622
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
IParticleHandleBase::IParticleHandleBase
IParticleHandleBase(IParticleCollHandleBase *)
Definition: IParticleHandleBase.cxx:59
IParticleHandle_TrackParticle::Imp::theclass
IParticleHandle_TrackParticle * theclass
Definition: IParticleHandle_TrackParticle.cxx:50
VP1Msg::messageVerbose
static void messageVerbose(const QString &)
Definition: VP1Msg.cxx:84
AODHandleBase::nodes
virtual SoNode * nodes()=0
Returns the 3Dobjects.
xAOD::TrackParticle_v1::numberOfParameters
size_t numberOfParameters() const
Returns the number of additional parameters stored in the TrackParticle.
Definition: TrackParticle_v1.cxx:553
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
AODHandleBase::m_d
Imp * m_d
Definition: AODHandleBase.h:120
IParticleHandle_TrackParticle::getNMuonPhiLayers
virtual unsigned getNMuonPhiLayers() const
Definition: IParticleHandle_TrackParticle.cxx:492
AODHandleBase::m_visible
bool m_visible
Definition: AODHandleBase.h:125
IParticleHandle_TrackParticle::getNTRTHits
virtual unsigned getNTRTHits() const
Definition: IParticleHandle_TrackParticle.cxx:477
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
AODCollHandleBase::sepHelper
const VP1ExtraSepLayerHelper * sepHelper() const
Definition: AODCollHandleBase.h:90
IParticleHandle_TrackParticle::addLine_Extrapolated
void addLine_Extrapolated()
Extrapolate the initial track parameters to get the line (a spline fit is done between the extrapolat...
Definition: IParticleHandle_TrackParticle.cxx:295
IParticleHandleBase::mass
virtual double mass() const
Returns unknown() in case of trouble.
Definition: IParticleHandleBase.cxx:78
Trk::IExtrapolationEngine::extrapolate
virtual ExtrapolationCode extrapolate(ExCellCharged &ecCharged, const Surface *sf=0, const BoundaryCheck &bcheck=true) const =0
charged extrapolation
Trk::ExtrapolationCell
Definition: ExtrapolationCell.h:231
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::IExtrapolationEngine
Definition: IExtrapolationEngine.h:36
VP1Msg::messageDebug
static void messageDebug(const QString &)
Definition: VP1Msg.cxx:39
y
#define y
VP1Msg::message
static void message(const QString &, IVP1System *sys=0)
Definition: VP1Msg.cxx:30
unit
const PlainObject unit() const
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
Definition: AmgMatrixBasePlugin.h:20
DeMoScan.first
bool first
Definition: DeMoScan.py:534
IParticleHandle_TrackParticle::addParameterShapes
void addParameterShapes()
Definition: IParticleHandle_TrackParticle.cxx:128
AODHandleBase::rebuild3DObjects
virtual void rebuild3DObjects()
Definition: AODHandleBase.cxx:137
IParticleHandle_TrackParticle::m_d
Imp * m_d
Definition: IParticleHandle_TrackParticle.h:79
IParticleHandle_TrackParticle::Imp::sep
SoSeparator * sep
Definition: IParticleHandle_TrackParticle.cxx:54
calibdata.cd
cd
Definition: calibdata.py:51
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:268
xAOD::MuonSpectrometerEntrance
@ MuonSpectrometerEntrance
Parameter defined at the entrance to the Muon Spectrometer.
Definition: TrackingPrimitives.h:221
IParticleHandle_TrackParticle::summaryValue
virtual unsigned summaryValue(xAOD::SummaryType type) const
Definition: IParticleHandle_TrackParticle.cxx:454
xAOD::TrackParticle_v1::parameterZ
float parameterZ(unsigned int index) const
Returns the parameter z position, for 'index'.
Definition: TrackParticle_v1.cxx:607
xAOD::TrackParticle_v1::numberDoF
float numberDoF() const
Returns the number of degrees of freedom of the overall track or vertex fit as float.
AODHandleBase::Imp::m_objBrowseTree
QTreeWidgetItem * m_objBrowseTree
Definition: AODHandleBase.cxx:65
str
Definition: BTagTrackIpAccessor.cxx:11
TrackParticleCollectionSettingsButton::parameterMaterial
SoMaterial * parameterMaterial(xAOD::ParameterPosition) const
Definition: TrackParticleCollectionSettingsButton.cxx:333
AODSysCommonData::registerHandle
void registerHandle(AODHandleBase *h)
Definition: AODSysCommonData.cxx:60
Trk::ExtrapolationMode::StopAtBoundary
@ StopAtBoundary
Definition: ExtrapolationCell.h:55
xAOD::numberOfPhiLayers
@ numberOfPhiLayers
layers with a trigger phi hit [unit8_t].
Definition: TrackingPrimitives.h:290
xAOD::TrackParticle_v1::theta
float theta() const
Returns the parameter, which has range 0 to .
AODHandleBase::m_currentmaterial
SoMaterial * m_currentmaterial
Definition: AODHandleBase.h:127
python.compressB64.c
def c
Definition: compressB64.py:93
IParticleHandle_TrackParticle::Imp::line
SoLineSet * line
Definition: IParticleHandle_TrackParticle.cxx:55
mag
Scalar mag() const
mag method
Definition: AmgMatrixBasePlugin.h:25
IParticleHandle_TrackParticle::type
virtual QString type() const
return very short word with type (maybe link with collection type?)
Definition: IParticleHandle_TrackParticle.h:65
xAOD::numberOfPrecisionLayers
@ numberOfPrecisionLayers
layers with at least 3 hits [unit8_t].
Definition: TrackingPrimitives.h:288
AODHandleBase::clear3DObjects
virtual void clear3DObjects()=0
Delete objects.