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

#include <PsiPlusPsiSingleVertex.h>

Inheritance diagram for DerivationFramework::PsiPlusPsiSingleVertex:
Collaboration diagram for DerivationFramework::PsiPlusPsiSingleVertex:

Public Member Functions

 PsiPlusPsiSingleVertex (const std::string &t, const std::string &n, const IInterface *p)
 
virtual ~PsiPlusPsiSingleVertex ()=default
 
virtual StatusCode initialize () override
 
virtual StatusCode addBranches () const override
 Pass the thinning service
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 sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

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

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

SG::ReadHandleKey< xAOD::VertexContainerm_vertexPsi1ContainerKey
 
SG::ReadHandleKey< xAOD::VertexContainerm_vertexPsi2ContainerKey
 
std::vector< std::string > m_vertexPsi1HypoNames
 
std::vector< std::string > m_vertexPsi2HypoNames
 
SG::WriteHandleKeyArray< xAOD::VertexContainerm_outputsKeys
 
SG::ReadHandleKey< xAOD::VertexContainerm_VxPrimaryCandidateName
 Name of primary vertex container. More...
 
SG::ReadHandleKey< xAOD::TrackParticleContainerm_trackContainerName
 
SG::ReadHandleKey< xAOD::EventInfom_eventInfo_key
 
double m_jpsi1MassLower
 
double m_jpsi1MassUpper
 
double m_diTrack1MassLower
 
double m_diTrack1MassUpper
 
double m_psi1MassLower
 
double m_psi1MassUpper
 
double m_jpsi2MassLower
 
double m_jpsi2MassUpper
 
double m_diTrack2MassLower
 
double m_diTrack2MassUpper
 
double m_psi2MassLower
 
double m_psi2MassUpper
 
double m_MassLower
 
double m_MassUpper
 
int m_vtx1Daug_num
 
double m_vtx1Daug1MassHypo
 
double m_vtx1Daug2MassHypo
 
double m_vtx1Daug3MassHypo
 
double m_vtx1Daug4MassHypo
 
int m_vtx2Daug_num
 
double m_vtx2Daug1MassHypo
 
double m_vtx2Daug2MassHypo
 
double m_vtx2Daug3MassHypo
 
double m_vtx2Daug4MassHypo
 
unsigned int m_maxCandidates
 
double m_mass_jpsi1
 
double m_mass_diTrk1
 
double m_mass_psi1
 
double m_mass_jpsi2
 
double m_mass_diTrk2
 
double m_mass_psi2
 
bool m_constrJpsi1
 
bool m_constrDiTrk1
 
bool m_constrPsi1
 
bool m_constrJpsi2
 
bool m_constrDiTrk2
 
bool m_constrPsi2
 
double m_chi2cut
 
ToolHandle< Trk::TrkVKalVrtFitterm_iVertexFitter
 
ToolHandle< Analysis::PrimaryVertexRefitterm_pvRefitter
 
ToolHandle< Trk::V0Toolsm_V0Tools
 
bool m_refitPV
 
SG::WriteHandleKey< xAOD::VertexContainerm_refPVContainerName
 
std::string m_hypoName
 
int m_PV_max
 
int m_DoVertexType
 
size_t m_PV_minNTracks
 
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 26 of file PsiPlusPsiSingleVertex.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ PsiPlusPsiSingleVertex()

DerivationFramework::PsiPlusPsiSingleVertex::PsiPlusPsiSingleVertex ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Definition at line 26 of file PsiPlusPsiSingleVertex.cxx.

29  m_outputsKeys({"Psi1Vtx", "Psi2Vtx", "MainVtx"}),
30  m_VxPrimaryCandidateName("PrimaryVertices"),
31  m_trackContainerName("InDetTrackParticles"),
32  m_eventInfo_key("EventInfo"),
33  m_jpsi1MassLower(0.0),
34  m_jpsi1MassUpper(20000.0),
35  m_diTrack1MassLower(-1.0),
36  m_diTrack1MassUpper(-1.0),
37  m_psi1MassLower(0.0),
38  m_psi1MassUpper(25000.0),
39  m_jpsi2MassLower(0.0),
40  m_jpsi2MassUpper(20000.0),
41  m_diTrack2MassLower(-1.0),
42  m_diTrack2MassUpper(-1.0),
43  m_psi2MassLower(0.0),
44  m_psi2MassUpper(25000.0),
45  m_MassLower(0.0),
46  m_MassUpper(31000.0),
47  m_vtx1Daug_num(4),
52  m_vtx2Daug_num(4),
57  m_maxCandidates(0),
58  m_mass_jpsi1(-1),
59  m_mass_diTrk1(-1),
60  m_mass_psi1(-1),
61  m_mass_jpsi2(-1),
62  m_mass_diTrk2(-1),
63  m_mass_psi2(-1),
64  m_constrJpsi1(false),
65  m_constrDiTrk1(false),
66  m_constrPsi1(false),
67  m_constrJpsi2(false),
68  m_constrDiTrk2(false),
69  m_constrPsi2(false),
70  m_chi2cut(-1.0),
71  m_iVertexFitter("Trk::TrkVKalVrtFitter"),
72  m_pvRefitter("Analysis::PrimaryVertexRefitter", this),
73  m_V0Tools("Trk::V0Tools")
74  {
77  declareProperty("Psi1VtxHypoNames", m_vertexPsi1HypoNames);
78  declareProperty("Psi2VtxHypoNames", m_vertexPsi2HypoNames);
79  declareProperty("VxPrimaryCandidateName", m_VxPrimaryCandidateName);
80  declareProperty("TrackContainerName", m_trackContainerName);
81  declareProperty("RefPVContainerName", m_refPVContainerName = "RefittedPrimaryVertices");
82  declareProperty("Jpsi1MassLowerCut", m_jpsi1MassLower);
83  declareProperty("Jpsi1MassUpperCut", m_jpsi1MassUpper);
84  declareProperty("DiTrack1MassLower", m_diTrack1MassLower); // only effective when m_vtx1Daug_num=4
85  declareProperty("DiTrack1MassUpper", m_diTrack1MassUpper); // only effective when m_vtx1Daug_num=4
86  declareProperty("Psi1MassLowerCut", m_psi1MassLower);
87  declareProperty("Psi1MassUpperCut", m_psi1MassUpper);
88  declareProperty("Jpsi2MassLowerCut", m_jpsi2MassLower);
89  declareProperty("Jpsi2MassUpperCut", m_jpsi2MassUpper);
90  declareProperty("DiTrack2MassLower", m_diTrack2MassLower); // only effective when m_vtx2Daug_num=4
91  declareProperty("DiTrack2MassUpper", m_diTrack2MassUpper); // only effective when m_vtx2Daug_num=4
92  declareProperty("Psi2MassLowerCut", m_psi2MassLower);
93  declareProperty("Psi2MassUpperCut", m_psi2MassUpper);
94  declareProperty("MassLowerCut", m_MassLower);
95  declareProperty("MassUpperCut", m_MassUpper);
96  declareProperty("HypothesisName", m_hypoName = "TQ");
97  declareProperty("NumberOfPsi1Daughters", m_vtx1Daug_num);
98  declareProperty("Vtx1Daug1MassHypo", m_vtx1Daug1MassHypo);
99  declareProperty("Vtx1Daug2MassHypo", m_vtx1Daug2MassHypo);
100  declareProperty("Vtx1Daug3MassHypo", m_vtx1Daug3MassHypo);
101  declareProperty("Vtx1Daug4MassHypo", m_vtx1Daug4MassHypo);
102  declareProperty("NumberOfPsi2Daughters", m_vtx2Daug_num);
103  declareProperty("Vtx2Daug1MassHypo", m_vtx2Daug1MassHypo);
104  declareProperty("Vtx2Daug2MassHypo", m_vtx2Daug2MassHypo);
105  declareProperty("Vtx2Daug3MassHypo", m_vtx2Daug3MassHypo);
106  declareProperty("Vtx2Daug4MassHypo", m_vtx2Daug4MassHypo);
107  declareProperty("MaxCandidates", m_maxCandidates);
108  declareProperty("Jpsi1Mass", m_mass_jpsi1);
109  declareProperty("DiTrack1Mass", m_mass_diTrk1);
110  declareProperty("Psi1Mass", m_mass_psi1);
111  declareProperty("Jpsi2Mass", m_mass_jpsi2);
112  declareProperty("DiTrack2Mass", m_mass_diTrk2);
113  declareProperty("Psi2Mass", m_mass_psi2);
114  declareProperty("ApplyJpsi1MassConstraint", m_constrJpsi1);
115  declareProperty("ApplyDiTrk1MassConstraint", m_constrDiTrk1); // only effective when m_vtx1Daug_num=4
116  declareProperty("ApplyPsi1MassConstraint", m_constrPsi1);
117  declareProperty("ApplyJpsi2MassConstraint", m_constrJpsi2);
118  declareProperty("ApplyDiTrk2MassConstraint", m_constrDiTrk2); // only effective when m_vtx2Daug_num=4
119  declareProperty("ApplyPsi2MassConstraint", m_constrPsi2);
120  declareProperty("Chi2Cut", m_chi2cut);
121  declareProperty("RefitPV", m_refitPV = true);
122  declareProperty("MaxnPV", m_PV_max = 1000);
123  declareProperty("MinNTracksInPV", m_PV_minNTracks = 0);
124  declareProperty("DoVertexType", m_DoVertexType = 7);
125  declareProperty("TrkVertexFitterTool", m_iVertexFitter);
126  declareProperty("PVRefitter", m_pvRefitter);
127  declareProperty("V0Tools", m_V0Tools);
128  declareProperty("OutputVertexCollections", m_outputsKeys);
129  }

◆ ~PsiPlusPsiSingleVertex()

virtual DerivationFramework::PsiPlusPsiSingleVertex::~PsiPlusPsiSingleVertex ( )
virtualdefault

Member Function Documentation

◆ addBranches()

StatusCode DerivationFramework::PsiPlusPsiSingleVertex::addBranches ( ) const
overridevirtual

Pass the thinning service

Implements DerivationFramework::IAugmentationTool.

Definition at line 172 of file PsiPlusPsiSingleVertex.cxx.

172  {
173  if (m_vtx1Daug_num < 2 || m_vtx1Daug_num > 4 || m_vtx2Daug_num < 2 || m_vtx2Daug_num > 4) {
174  ATH_MSG_FATAL("Incorrect number of Psi daughters");
175  return StatusCode::FAILURE;
176  }
177 
178  constexpr int topoN = 3;
179  if(m_outputsKeys.size() != topoN) {
180  ATH_MSG_FATAL("Incorrect number of VtxContainers");
181  return StatusCode::FAILURE;
182  }
183  std::array<SG::WriteHandle<xAOD::VertexContainer>, topoN> VtxWriteHandles; int ikey(0);
185  VtxWriteHandles[ikey] = SG::WriteHandle<xAOD::VertexContainer>(key);
186  ATH_CHECK( VtxWriteHandles[ikey].record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()) );
187  ikey++;
188  }
189 
190  //----------------------------------------------------
191  // retrieve primary vertices
192  //----------------------------------------------------
194  ATH_CHECK( pvContainer.isValid() );
195  if (pvContainer.cptr()->size()==0) {
196  ATH_MSG_WARNING("You have no primary vertices: " << pvContainer.cptr()->size());
197  return StatusCode::RECOVERABLE;
198  }
199 
200  // Get TrackParticle container (for setting links to the original tracks)
202  ATH_CHECK( trackContainer.isValid() );
203 
204  std::vector<const xAOD::TrackParticle*> tracksJpsi1;
205  std::vector<const xAOD::TrackParticle*> tracksDiTrk1;
206  std::vector<const xAOD::TrackParticle*> tracksPsi1;
207  std::vector<const xAOD::TrackParticle*> tracksJpsi2;
208  std::vector<const xAOD::TrackParticle*> tracksDiTrk2;
209  std::vector<const xAOD::TrackParticle*> tracksPsi2;
210  std::vector<const xAOD::TrackParticle*> inputTracks;
211  std::vector<double> massesPsi1;
212  massesPsi1.push_back(m_vtx1Daug1MassHypo);
213  massesPsi1.push_back(m_vtx1Daug2MassHypo);
214  if(m_vtx1Daug_num>=3) massesPsi1.push_back(m_vtx1Daug3MassHypo);
215  if(m_vtx1Daug_num==4) massesPsi1.push_back(m_vtx1Daug4MassHypo);
216  std::vector<double> massesPsi2;
217  massesPsi2.push_back(m_vtx2Daug1MassHypo);
218  massesPsi2.push_back(m_vtx2Daug2MassHypo);
219  if(m_vtx2Daug_num>=3) massesPsi2.push_back(m_vtx2Daug3MassHypo);
220  if(m_vtx2Daug_num==4) massesPsi2.push_back(m_vtx2Daug4MassHypo);
221  std::vector<double> massesInputTracks;
222  massesInputTracks.reserve(massesPsi1.size() + massesPsi2.size());
223  for(auto mass : massesPsi1) massesInputTracks.push_back(mass);
224  for(auto mass : massesPsi2) massesInputTracks.push_back(mass);
225 
226  // Get Psi1 container
228  ATH_CHECK( psi1Container.isValid() );
230  ATH_CHECK( psi2Container.isValid() );
231 
232  // Select the psi1 candidates before calling fit
233  std::vector<const xAOD::Vertex*> selectedPsi1Candidates;
234  for(auto vxcItr=psi1Container->cbegin(); vxcItr!=psi1Container->cend(); ++vxcItr) {
235  // Check the passed flag first
236  const xAOD::Vertex* vtx = *vxcItr;
237  bool passed = false;
238  for(size_t i=0; i<m_vertexPsi1HypoNames.size(); i++) {
240  if(flagAcc.isAvailable(*vtx) && flagAcc(*vtx)) {
241  passed = true;
242  }
243  }
244  if(m_vertexPsi1HypoNames.size() && !passed) continue;
245 
246  // Check psi1 candidate invariant mass and skip if need be
247  if(m_vtx1Daug_num>2) {
248  double mass_psi1 = m_V0Tools->invariantMass(*vxcItr, massesPsi1);
249  if (mass_psi1 < m_psi1MassLower || mass_psi1 > m_psi1MassUpper) continue;
250  }
251 
252  TLorentzVector p4_mu1, p4_mu2;
253  p4_mu1.SetPtEtaPhiM( (*vxcItr)->trackParticle(0)->pt(),
254  (*vxcItr)->trackParticle(0)->eta(),
255  (*vxcItr)->trackParticle(0)->phi(), m_vtx1Daug1MassHypo);
256  p4_mu2.SetPtEtaPhiM( (*vxcItr)->trackParticle(1)->pt(),
257  (*vxcItr)->trackParticle(1)->eta(),
258  (*vxcItr)->trackParticle(1)->phi(), m_vtx1Daug2MassHypo);
259  double mass_jpsi1 = (p4_mu1 + p4_mu2).M();
260  if (mass_jpsi1 < m_jpsi1MassLower || mass_jpsi1 > m_jpsi1MassUpper) continue;
261 
263  TLorentzVector p4_trk1, p4_trk2;
264  p4_trk1.SetPtEtaPhiM( (*vxcItr)->trackParticle(2)->pt(),
265  (*vxcItr)->trackParticle(2)->eta(),
266  (*vxcItr)->trackParticle(2)->phi(), m_vtx1Daug3MassHypo);
267  p4_trk2.SetPtEtaPhiM( (*vxcItr)->trackParticle(3)->pt(),
268  (*vxcItr)->trackParticle(3)->eta(),
269  (*vxcItr)->trackParticle(3)->phi(), m_vtx1Daug4MassHypo);
270  double mass_diTrk1 = (p4_trk1 + p4_trk2).M();
271  if (mass_diTrk1 < m_diTrack1MassLower || mass_diTrk1 > m_diTrack1MassUpper) continue;
272  }
273 
274  selectedPsi1Candidates.push_back(*vxcItr);
275  }
276 
277  // Select the psi2 candidates before calling fit
278  std::vector<const xAOD::Vertex*> selectedPsi2Candidates;
279  for(auto vxcItr=psi2Container->cbegin(); vxcItr!=psi2Container->cend(); ++vxcItr) {
280  // Check the passed flag first
281  const xAOD::Vertex* vtx = *vxcItr;
282  bool passed = false;
283  for(size_t i=0; i<m_vertexPsi2HypoNames.size(); i++) {
285  if(flagAcc.isAvailable(*vtx) && flagAcc(*vtx)) {
286  passed = true;
287  }
288  }
289  if(m_vertexPsi2HypoNames.size() && !passed) continue;
290 
291  // Check psi2 candidate invariant mass and skip if need be
292  if(m_vtx2Daug_num>2) {
293  double mass_psi2 = m_V0Tools->invariantMass(*vxcItr,massesPsi2);
294  if(mass_psi2 < m_psi2MassLower || mass_psi2 > m_psi2MassUpper) continue;
295  }
296 
297  TLorentzVector p4_mu1, p4_mu2;
298  p4_mu1.SetPtEtaPhiM( (*vxcItr)->trackParticle(0)->pt(),
299  (*vxcItr)->trackParticle(0)->eta(),
300  (*vxcItr)->trackParticle(0)->phi(), m_vtx2Daug1MassHypo);
301  p4_mu2.SetPtEtaPhiM( (*vxcItr)->trackParticle(1)->pt(),
302  (*vxcItr)->trackParticle(1)->eta(),
303  (*vxcItr)->trackParticle(1)->phi(), m_vtx2Daug2MassHypo);
304  double mass_jpsi2 = (p4_mu1 + p4_mu2).M();
305  if (mass_jpsi2 < m_jpsi2MassLower || mass_jpsi2 > m_jpsi2MassUpper) continue;
306 
308  TLorentzVector p4_trk1, p4_trk2;
309  p4_trk1.SetPtEtaPhiM( (*vxcItr)->trackParticle(2)->pt(),
310  (*vxcItr)->trackParticle(2)->eta(),
311  (*vxcItr)->trackParticle(2)->phi(), m_vtx2Daug3MassHypo);
312  p4_trk2.SetPtEtaPhiM( (*vxcItr)->trackParticle(3)->pt(),
313  (*vxcItr)->trackParticle(3)->eta(),
314  (*vxcItr)->trackParticle(3)->phi(), m_vtx2Daug4MassHypo);
315  double mass_diTrk2 = (p4_trk1 + p4_trk2).M();
316  if (mass_diTrk2 < m_diTrack2MassLower || mass_diTrk2 > m_diTrack2MassUpper) continue;
317  }
318  selectedPsi2Candidates.push_back(*vxcItr);
319  }
320 
321  std::vector<std::pair<const xAOD::Vertex*, const xAOD::Vertex*> > candidatePairs;
322  for(auto psi1Itr=selectedPsi1Candidates.cbegin(); psi1Itr!=selectedPsi1Candidates.cend(); ++psi1Itr) {
323  tracksPsi1.clear();
324  tracksPsi1.reserve((*psi1Itr)->nTrackParticles());
325  for(size_t i=0; i<(*psi1Itr)->nTrackParticles(); i++) tracksPsi1.push_back((*psi1Itr)->trackParticle(i));
326  for(auto psi2Itr=selectedPsi2Candidates.cbegin(); psi2Itr!=selectedPsi2Candidates.cend(); ++psi2Itr) {
327  bool skip = false;
328  for(size_t j=0; j<(*psi2Itr)->nTrackParticles(); j++) {
329  if(std::find(tracksPsi1.cbegin(), tracksPsi1.cend(), (*psi2Itr)->trackParticle(j)) != tracksPsi1.cend()) { skip = true; break; }
330  }
331  if(skip) continue;
333  for(size_t ic=0; ic<candidatePairs.size(); ic++) {
334  const xAOD::Vertex* psi1Vertex = candidatePairs[ic].first;
335  const xAOD::Vertex* psi2Vertex = candidatePairs[ic].second;
336  if((psi1Vertex == *psi1Itr && psi2Vertex == *psi2Itr) || (psi1Vertex == *psi2Itr && psi2Vertex == *psi1Itr)) { skip = true; break; }
337  }
338  }
339  if(skip) continue;
340  candidatePairs.push_back(std::pair<const xAOD::Vertex*, const xAOD::Vertex*>(*psi1Itr,*psi2Itr));
341  }
342  }
343 
344  std::sort( candidatePairs.begin(), candidatePairs.end(), [](std::pair<const xAOD::Vertex*, const xAOD::Vertex*> a, std::pair<const xAOD::Vertex*, const xAOD::Vertex*> b) { return a.first->chiSquared()/a.first->numberDoF()+a.second->chiSquared()/a.second->numberDoF() < b.first->chiSquared()/b.first->numberDoF()+b.second->chiSquared()/b.second->numberDoF(); } );
345  if(m_maxCandidates>0 && candidatePairs.size()>m_maxCandidates) {
346  candidatePairs.erase(candidatePairs.begin()+m_maxCandidates, candidatePairs.end());
347  }
348 
349  for(size_t ic=0; ic<candidatePairs.size(); ic++) {
350  const xAOD::Vertex* psi1Vertex = candidatePairs[ic].first;
351  const xAOD::Vertex* psi2Vertex = candidatePairs[ic].second;
352 
353  tracksPsi1.clear();
354  tracksPsi1.reserve(psi1Vertex->nTrackParticles());
355  for(size_t it=0; it<psi1Vertex->nTrackParticles(); it++) tracksPsi1.push_back(psi1Vertex->trackParticle(it));
356  if (tracksPsi1.size() != massesPsi1.size()) {
357  ATH_MSG_ERROR("Problems with Psi1 input: number of tracks or track mass inputs is not correct!");
358  }
359  tracksPsi2.clear();
360  tracksPsi2.reserve(psi2Vertex->nTrackParticles());
361  for(size_t it=0; it<psi2Vertex->nTrackParticles(); it++) tracksPsi2.push_back(psi2Vertex->trackParticle(it));
362  if (tracksPsi2.size() != massesPsi2.size()) {
363  ATH_MSG_ERROR("Problems with Psi2 input: number of tracks or track mass inputs is not correct!");
364  }
365 
366  tracksJpsi1.clear();
367  tracksJpsi1.push_back(psi1Vertex->trackParticle(0));
368  tracksJpsi1.push_back(psi1Vertex->trackParticle(1));
369  tracksDiTrk1.clear();
370  if(m_vtx1Daug_num==4) {
371  tracksDiTrk1.push_back(psi1Vertex->trackParticle(2));
372  tracksDiTrk1.push_back(psi1Vertex->trackParticle(3));
373  }
374  tracksJpsi2.clear();
375  tracksJpsi2.push_back(psi2Vertex->trackParticle(0));
376  tracksJpsi2.push_back(psi2Vertex->trackParticle(1));
377  tracksDiTrk2.clear();
378  if(m_vtx2Daug_num==4) {
379  tracksDiTrk2.push_back(psi2Vertex->trackParticle(2));
380  tracksDiTrk2.push_back(psi2Vertex->trackParticle(3));
381  }
382 
383  TLorentzVector p4_moth;
384  TLorentzVector tmp;
385  for(size_t it=0; it<psi1Vertex->nTrackParticles(); it++) {
386  tmp.SetPtEtaPhiM(psi1Vertex->trackParticle(it)->pt(),psi1Vertex->trackParticle(it)->eta(),psi1Vertex->trackParticle(it)->phi(),massesPsi1[it]);
387  p4_moth += tmp;
388  }
389  for(size_t it=0; it<psi2Vertex->nTrackParticles(); it++) {
390  tmp.SetPtEtaPhiM(psi2Vertex->trackParticle(it)->pt(),psi2Vertex->trackParticle(it)->eta(),psi2Vertex->trackParticle(it)->phi(),massesPsi2[it]);
391  p4_moth += tmp;
392  }
393  if (p4_moth.M() < m_MassLower || p4_moth.M() > m_MassUpper) continue;
394 
395  inputTracks.clear();
396  inputTracks.push_back(psi1Vertex->trackParticle(0));
397  inputTracks.push_back(psi1Vertex->trackParticle(1));
398  if(m_vtx1Daug_num>=3) inputTracks.push_back(psi1Vertex->trackParticle(2));
399  if(m_vtx1Daug_num==4) inputTracks.push_back(psi1Vertex->trackParticle(3));
400  inputTracks.push_back(psi2Vertex->trackParticle(0));
401  inputTracks.push_back(psi2Vertex->trackParticle(1));
402  if(m_vtx2Daug_num>=3) inputTracks.push_back(psi2Vertex->trackParticle(2));
403  if(m_vtx2Daug_num==4) inputTracks.push_back(psi2Vertex->trackParticle(3));
404 
405  // start the fit
406  std::unique_ptr<Trk::IVKalState> state = m_iVertexFitter->makeState();
407  m_iVertexFitter->setMassInputParticles(massesInputTracks, *state);
408  if (m_constrJpsi1) {
409  m_iVertexFitter->setMassForConstraint(m_mass_jpsi1, std::array<int,2>{1,2}, *state);
410  }
411  if (m_constrPsi1 && m_vtx1Daug_num>=3) {
412  m_iVertexFitter->setMassForConstraint(m_mass_psi1, m_vtx1Daug_num==4 ? std::vector<int>{1,2,3,4} : std::vector<int>{1,2,3}, *state);
413  }
414  if (m_constrDiTrk1 && m_vtx1Daug_num==4) {
415  m_iVertexFitter->setMassForConstraint(m_mass_diTrk1, std::array<int,2>{3,4}, *state);
416  }
417  if (m_constrJpsi2) {
418  m_iVertexFitter->setMassForConstraint(m_mass_jpsi2, std::array<int,2>{m_vtx1Daug_num+1,m_vtx1Daug_num+2}, *state);
419  }
420  if (m_constrPsi2 && m_vtx2Daug_num>=3) {
421  m_iVertexFitter->setMassForConstraint(m_mass_psi2, m_vtx1Daug_num==4 ? std::vector<int>{m_vtx1Daug_num+1,m_vtx1Daug_num+2,m_vtx1Daug_num+3,m_vtx1Daug_num+4} : std::vector<int>{m_vtx1Daug_num+1,m_vtx1Daug_num+2,m_vtx1Daug_num+3}, *state);
422  }
423  if (m_constrDiTrk2 && m_vtx2Daug_num==4) {
424  m_iVertexFitter->setMassForConstraint(m_mass_diTrk2, std::array<int,2>{m_vtx1Daug_num+3,m_vtx1Daug_num+4}, *state);
425  }
426 
427  // Starting point
428  Amg::Vector3D startingPoint((psi1Vertex->x()+psi2Vertex->x())/2,(psi1Vertex->y()+psi2Vertex->y())/2,(psi1Vertex->z()+psi2Vertex->z())/2);
429 
430  // do the fit
431  std::unique_ptr<xAOD::Vertex> theResult( m_iVertexFitter->fit(inputTracks, startingPoint, *state) );
432 
433  if(theResult != nullptr){
434  // Chi2/DOF cut
435  double chi2DOF = theResult->chiSquared()/theResult->numberDoF();
436  bool chi2CutPassed = (m_chi2cut <= 0.0 || chi2DOF < m_chi2cut);
437  if(chi2CutPassed) {
438  TrackParticleLinkVector tpLinkVector;
439  for(size_t i=0; i<theResult->trackParticleLinks().size(); i++) {
440  TrackParticleLink mylink = theResult->trackParticleLinks()[i];
441  mylink.setStorableObject(*trackContainer.ptr(), true);
442  tpLinkVector.push_back( mylink );
443  }
444  theResult->clearTracks();
445  theResult->setTrackParticleLinks( tpLinkVector );
446 
447  xAOD::Vertex* psi1Vertex_ = new xAOD::Vertex(*psi1Vertex);
448  xAOD::BPhysHelper psi1_helper(psi1Vertex_);
449  psi1_helper.setRefTrks();
450  TrackParticleLinkVector tpLinkVector_psi1;
451  for(size_t i=0; i<psi1Vertex_->trackParticleLinks().size(); i++) {
452  TrackParticleLink mylink = psi1Vertex_->trackParticleLinks()[i];
453  mylink.setStorableObject(*trackContainer.ptr(), true);
454  tpLinkVector_psi1.push_back( mylink );
455  }
456  psi1Vertex_->clearTracks();
457  psi1Vertex_->setTrackParticleLinks( tpLinkVector_psi1 );
458 
459  xAOD::Vertex* psi2Vertex_ = new xAOD::Vertex(*psi2Vertex);
460  xAOD::BPhysHelper psi2_helper(psi2Vertex_);
461  psi2_helper.setRefTrks();
462  TrackParticleLinkVector tpLinkVector_psi2;
463  for(size_t i=0; i<psi2Vertex_->trackParticleLinks().size(); i++) {
464  TrackParticleLink mylink = psi2Vertex_->trackParticleLinks()[i];
465  mylink.setStorableObject(*trackContainer.ptr(), true);
466  tpLinkVector_psi2.push_back( mylink );
467  }
468  psi2Vertex_->clearTracks();
469  psi2Vertex_->setTrackParticleLinks( tpLinkVector_psi2 );
470 
471  VtxWriteHandles[0].ptr()->push_back(psi1Vertex_);
472  VtxWriteHandles[1].ptr()->push_back(psi2Vertex_);
473 
474  // Set links to preceding vertices
475  VertexLinkVector precedingVertexLinks;
476  VertexLink vertexLink1;
477  vertexLink1.setElement(psi1Vertex_);
478  vertexLink1.setStorableObject(*VtxWriteHandles[0].ptr());
479  if( vertexLink1.isValid() ) precedingVertexLinks.push_back( vertexLink1 );
480  VertexLink vertexLink2;
481  vertexLink2.setElement(psi2Vertex_);
482  vertexLink2.setStorableObject(*VtxWriteHandles[1].ptr());
483  if( vertexLink2.isValid() ) precedingVertexLinks.push_back( vertexLink2 );
484 
485  SG::AuxElement::Decorator<VertexLinkVector> PrecedingLinksDecor("PrecedingVertexLinks");
486  PrecedingLinksDecor(*theResult.get()) = precedingVertexLinks;
487 
488  xAOD::BPhysHypoHelper vtx(m_hypoName, theResult.get());
489  vtx.setRefTrks();
490  vtx.setPass(true);
491 
492  VtxWriteHandles[2].ptr()->push_back(theResult.release()); //ptr is released preventing deletion
493  }
494  }
495  } //Iterate over candidatePairs vertices
496 
498  ATH_CHECK( evt.isValid() );
499  BPhysPVTools helper(&(*m_V0Tools), evt.cptr());
500  helper.SetMinNTracksInPV(m_PV_minNTracks);
501 
502  if(m_refitPV) {
504  ATH_CHECK( refPvContainer.record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()) );
505 
506  if(VtxWriteHandles[2]->size()>0) {
507  for(int i=0; i<topoN; i++) {
508  StatusCode SC = helper.FillCandwithRefittedVertices(VtxWriteHandles[i].ptr(), pvContainer.cptr(), refPvContainer.ptr(), &(*m_pvRefitter), m_PV_max, m_DoVertexType);
509  if(SC.isFailure()){
510  ATH_MSG_FATAL("FillCandwithRefittedVertices failed - check the vertices you passed");
511  return SC;
512  }
513  }
514  }
515  }
516  else {
517  if(VtxWriteHandles[2]->size()>0) {
518  for(int i=0; i<topoN; i++) {
519  StatusCode SC = helper.FillCandExistingVertices(VtxWriteHandles[i].ptr(), pvContainer.cptr(), m_DoVertexType);
520  if(SC.isFailure()){
521  ATH_MSG_FATAL("FillCandExistingVertices failed - check the vertices you passed");
522  return SC;
523  }
524  }
525  }
526  }
527 
528  return StatusCode::SUCCESS;
529  }

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [4/4]

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

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

Definition at line 199 of file AthCommonDataStore.h.

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

◆ declareProperty() [1/6]

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

Declare a new Gaudi property.

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

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

Definition at line 245 of file AthCommonDataStore.h.

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

◆ declareProperty() [2/6]

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

Declare a new Gaudi property.

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

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

Definition at line 221 of file AthCommonDataStore.h.

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

◆ declareProperty() [3/6]

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

Definition at line 259 of file AthCommonDataStore.h.

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

◆ declareProperty() [4/6]

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

Declare a new Gaudi property.

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

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

Definition at line 333 of file AthCommonDataStore.h.

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

◆ declareProperty() [5/6]

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

Declare a new Gaudi property.

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

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

Definition at line 352 of file AthCommonDataStore.h.

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

◆ declareProperty() [6/6]

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

Definition at line 145 of file AthCommonDataStore.h.

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

◆ detStore()

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

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

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

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

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

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

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

Add StoreName to extra input/output deps as needed.

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

◆ initialize()

StatusCode DerivationFramework::PsiPlusPsiSingleVertex::initialize ( )
overridevirtual

Definition at line 131 of file PsiPlusPsiSingleVertex.cxx.

131  {
132  // retrieving vertex Fitter
133  ATH_CHECK( m_iVertexFitter.retrieve() );
134 
135  // retrieve PV refitter
136  ATH_CHECK( m_pvRefitter.retrieve() );
137 
138  // retrieving the V0 tools
139  ATH_CHECK( m_V0Tools.retrieve() );
140 
141  ATH_CHECK( m_vertexPsi1ContainerKey.initialize() );
142  ATH_CHECK( m_vertexPsi2ContainerKey.initialize() );
143  ATH_CHECK( m_VxPrimaryCandidateName.initialize() );
145  ATH_CHECK( m_refPVContainerName.initialize() );
146  ATH_CHECK( m_outputsKeys.initialize() );
148 
149  IPartPropSvc* partPropSvc = nullptr;
150  ATH_CHECK( service("PartPropSvc", partPropSvc, true) );
151  auto pdt = partPropSvc->PDT();
152 
153  // retrieve particle masses
154  // https://gitlab.cern.ch/atlas/athena/-/blob/main/Generators/TruthUtils/TruthUtils/AtlasPID.h
159 
168 
169  return StatusCode::SUCCESS;
170  }

◆ inputHandles()

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

Return this algorithm's input handles.

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

◆ interfaceID()

static const InterfaceID& DerivationFramework::PsiPlusPsiSingleVertex::interfaceID ( )
inlinestatic

Definition at line 29 of file PsiPlusPsiSingleVertex.h.

29 { return IID_PsiPlusPsiSingleVertex;}

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

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

◆ msgLvl()

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

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

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

Return this algorithm's output handles.

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

◆ renounce()

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

Definition at line 380 of file AthCommonDataStore.h.

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

◆ renounceArray()

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

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

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

Perform system initialization for an algorithm.

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

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

◆ sysStart()

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

Handle START transition.

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

◆ updateVHKA()

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

Definition at line 308 of file AthCommonDataStore.h.

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

Member Data Documentation

◆ m_chi2cut

double DerivationFramework::PsiPlusPsiSingleVertex::m_chi2cut
private

Definition at line 83 of file PsiPlusPsiSingleVertex.h.

◆ m_constrDiTrk1

bool DerivationFramework::PsiPlusPsiSingleVertex::m_constrDiTrk1
private

Definition at line 78 of file PsiPlusPsiSingleVertex.h.

◆ m_constrDiTrk2

bool DerivationFramework::PsiPlusPsiSingleVertex::m_constrDiTrk2
private

Definition at line 81 of file PsiPlusPsiSingleVertex.h.

◆ m_constrJpsi1

bool DerivationFramework::PsiPlusPsiSingleVertex::m_constrJpsi1
private

Definition at line 77 of file PsiPlusPsiSingleVertex.h.

◆ m_constrJpsi2

bool DerivationFramework::PsiPlusPsiSingleVertex::m_constrJpsi2
private

Definition at line 80 of file PsiPlusPsiSingleVertex.h.

◆ m_constrPsi1

bool DerivationFramework::PsiPlusPsiSingleVertex::m_constrPsi1
private

Definition at line 79 of file PsiPlusPsiSingleVertex.h.

◆ m_constrPsi2

bool DerivationFramework::PsiPlusPsiSingleVertex::m_constrPsi2
private

Definition at line 82 of file PsiPlusPsiSingleVertex.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_diTrack1MassLower

double DerivationFramework::PsiPlusPsiSingleVertex::m_diTrack1MassLower
private

Definition at line 47 of file PsiPlusPsiSingleVertex.h.

◆ m_diTrack1MassUpper

double DerivationFramework::PsiPlusPsiSingleVertex::m_diTrack1MassUpper
private

Definition at line 48 of file PsiPlusPsiSingleVertex.h.

◆ m_diTrack2MassLower

double DerivationFramework::PsiPlusPsiSingleVertex::m_diTrack2MassLower
private

Definition at line 53 of file PsiPlusPsiSingleVertex.h.

◆ m_diTrack2MassUpper

double DerivationFramework::PsiPlusPsiSingleVertex::m_diTrack2MassUpper
private

Definition at line 54 of file PsiPlusPsiSingleVertex.h.

◆ m_DoVertexType

int DerivationFramework::PsiPlusPsiSingleVertex::m_DoVertexType
private

Definition at line 93 of file PsiPlusPsiSingleVertex.h.

◆ m_eventInfo_key

SG::ReadHandleKey<xAOD::EventInfo> DerivationFramework::PsiPlusPsiSingleVertex::m_eventInfo_key
private

Definition at line 43 of file PsiPlusPsiSingleVertex.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_hypoName

std::string DerivationFramework::PsiPlusPsiSingleVertex::m_hypoName
private

Definition at line 91 of file PsiPlusPsiSingleVertex.h.

◆ m_iVertexFitter

ToolHandle< Trk::TrkVKalVrtFitter > DerivationFramework::PsiPlusPsiSingleVertex::m_iVertexFitter
private

Definition at line 85 of file PsiPlusPsiSingleVertex.h.

◆ m_jpsi1MassLower

double DerivationFramework::PsiPlusPsiSingleVertex::m_jpsi1MassLower
private

Definition at line 45 of file PsiPlusPsiSingleVertex.h.

◆ m_jpsi1MassUpper

double DerivationFramework::PsiPlusPsiSingleVertex::m_jpsi1MassUpper
private

Definition at line 46 of file PsiPlusPsiSingleVertex.h.

◆ m_jpsi2MassLower

double DerivationFramework::PsiPlusPsiSingleVertex::m_jpsi2MassLower
private

Definition at line 51 of file PsiPlusPsiSingleVertex.h.

◆ m_jpsi2MassUpper

double DerivationFramework::PsiPlusPsiSingleVertex::m_jpsi2MassUpper
private

Definition at line 52 of file PsiPlusPsiSingleVertex.h.

◆ m_mass_diTrk1

double DerivationFramework::PsiPlusPsiSingleVertex::m_mass_diTrk1
private

Definition at line 72 of file PsiPlusPsiSingleVertex.h.

◆ m_mass_diTrk2

double DerivationFramework::PsiPlusPsiSingleVertex::m_mass_diTrk2
private

Definition at line 75 of file PsiPlusPsiSingleVertex.h.

◆ m_mass_jpsi1

double DerivationFramework::PsiPlusPsiSingleVertex::m_mass_jpsi1
private

Definition at line 71 of file PsiPlusPsiSingleVertex.h.

◆ m_mass_jpsi2

double DerivationFramework::PsiPlusPsiSingleVertex::m_mass_jpsi2
private

Definition at line 74 of file PsiPlusPsiSingleVertex.h.

◆ m_mass_psi1

double DerivationFramework::PsiPlusPsiSingleVertex::m_mass_psi1
private

Definition at line 73 of file PsiPlusPsiSingleVertex.h.

◆ m_mass_psi2

double DerivationFramework::PsiPlusPsiSingleVertex::m_mass_psi2
private

Definition at line 76 of file PsiPlusPsiSingleVertex.h.

◆ m_MassLower

double DerivationFramework::PsiPlusPsiSingleVertex::m_MassLower
private

Definition at line 57 of file PsiPlusPsiSingleVertex.h.

◆ m_MassUpper

double DerivationFramework::PsiPlusPsiSingleVertex::m_MassUpper
private

Definition at line 58 of file PsiPlusPsiSingleVertex.h.

◆ m_maxCandidates

unsigned int DerivationFramework::PsiPlusPsiSingleVertex::m_maxCandidates
private

Definition at line 69 of file PsiPlusPsiSingleVertex.h.

◆ m_outputsKeys

SG::WriteHandleKeyArray<xAOD::VertexContainer> DerivationFramework::PsiPlusPsiSingleVertex::m_outputsKeys
private

Definition at line 40 of file PsiPlusPsiSingleVertex.h.

◆ m_psi1MassLower

double DerivationFramework::PsiPlusPsiSingleVertex::m_psi1MassLower
private

Definition at line 49 of file PsiPlusPsiSingleVertex.h.

◆ m_psi1MassUpper

double DerivationFramework::PsiPlusPsiSingleVertex::m_psi1MassUpper
private

Definition at line 50 of file PsiPlusPsiSingleVertex.h.

◆ m_psi2MassLower

double DerivationFramework::PsiPlusPsiSingleVertex::m_psi2MassLower
private

Definition at line 55 of file PsiPlusPsiSingleVertex.h.

◆ m_psi2MassUpper

double DerivationFramework::PsiPlusPsiSingleVertex::m_psi2MassUpper
private

Definition at line 56 of file PsiPlusPsiSingleVertex.h.

◆ m_PV_max

int DerivationFramework::PsiPlusPsiSingleVertex::m_PV_max
private

Definition at line 92 of file PsiPlusPsiSingleVertex.h.

◆ m_PV_minNTracks

size_t DerivationFramework::PsiPlusPsiSingleVertex::m_PV_minNTracks
private

Definition at line 94 of file PsiPlusPsiSingleVertex.h.

◆ m_pvRefitter

ToolHandle< Analysis::PrimaryVertexRefitter > DerivationFramework::PsiPlusPsiSingleVertex::m_pvRefitter
private

Definition at line 86 of file PsiPlusPsiSingleVertex.h.

◆ m_refitPV

bool DerivationFramework::PsiPlusPsiSingleVertex::m_refitPV
private

Definition at line 89 of file PsiPlusPsiSingleVertex.h.

◆ m_refPVContainerName

SG::WriteHandleKey<xAOD::VertexContainer> DerivationFramework::PsiPlusPsiSingleVertex::m_refPVContainerName
private

Definition at line 90 of file PsiPlusPsiSingleVertex.h.

◆ m_trackContainerName

SG::ReadHandleKey<xAOD::TrackParticleContainer> DerivationFramework::PsiPlusPsiSingleVertex::m_trackContainerName
private

Definition at line 42 of file PsiPlusPsiSingleVertex.h.

◆ m_V0Tools

ToolHandle< Trk::V0Tools > DerivationFramework::PsiPlusPsiSingleVertex::m_V0Tools
private

Definition at line 87 of file PsiPlusPsiSingleVertex.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vertexPsi1ContainerKey

SG::ReadHandleKey<xAOD::VertexContainer> DerivationFramework::PsiPlusPsiSingleVertex::m_vertexPsi1ContainerKey
private

Definition at line 36 of file PsiPlusPsiSingleVertex.h.

◆ m_vertexPsi1HypoNames

std::vector<std::string> DerivationFramework::PsiPlusPsiSingleVertex::m_vertexPsi1HypoNames
private

Definition at line 38 of file PsiPlusPsiSingleVertex.h.

◆ m_vertexPsi2ContainerKey

SG::ReadHandleKey<xAOD::VertexContainer> DerivationFramework::PsiPlusPsiSingleVertex::m_vertexPsi2ContainerKey
private

Definition at line 37 of file PsiPlusPsiSingleVertex.h.

◆ m_vertexPsi2HypoNames

std::vector<std::string> DerivationFramework::PsiPlusPsiSingleVertex::m_vertexPsi2HypoNames
private

Definition at line 39 of file PsiPlusPsiSingleVertex.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_vtx1Daug1MassHypo

double DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug1MassHypo
private

Definition at line 60 of file PsiPlusPsiSingleVertex.h.

◆ m_vtx1Daug2MassHypo

double DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug2MassHypo
private

Definition at line 61 of file PsiPlusPsiSingleVertex.h.

◆ m_vtx1Daug3MassHypo

double DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug3MassHypo
private

Definition at line 62 of file PsiPlusPsiSingleVertex.h.

◆ m_vtx1Daug4MassHypo

double DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug4MassHypo
private

Definition at line 63 of file PsiPlusPsiSingleVertex.h.

◆ m_vtx1Daug_num

int DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug_num
private

Definition at line 59 of file PsiPlusPsiSingleVertex.h.

◆ m_vtx2Daug1MassHypo

double DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug1MassHypo
private

Definition at line 65 of file PsiPlusPsiSingleVertex.h.

◆ m_vtx2Daug2MassHypo

double DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug2MassHypo
private

Definition at line 66 of file PsiPlusPsiSingleVertex.h.

◆ m_vtx2Daug3MassHypo

double DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug3MassHypo
private

Definition at line 67 of file PsiPlusPsiSingleVertex.h.

◆ m_vtx2Daug4MassHypo

double DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug4MassHypo
private

Definition at line 68 of file PsiPlusPsiSingleVertex.h.

◆ m_vtx2Daug_num

int DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug_num
private

Definition at line 64 of file PsiPlusPsiSingleVertex.h.

◆ m_VxPrimaryCandidateName

SG::ReadHandleKey<xAOD::VertexContainer> DerivationFramework::PsiPlusPsiSingleVertex::m_VxPrimaryCandidateName
private

Name of primary vertex container.

Definition at line 41 of file PsiPlusPsiSingleVertex.h.


The documentation for this class was generated from the following files:
DerivationFramework::PsiPlusPsiSingleVertex::m_DoVertexType
int m_DoVertexType
Definition: PsiPlusPsiSingleVertex.h:93
xAOD::TrackParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TrackParticle_v1.cxx:73
xAOD::Vertex_v1::x
float x() const
Returns the x position.
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DerivationFramework::PsiPlusPsiSingleVertex::m_PV_max
int m_PV_max
Definition: PsiPlusPsiSingleVertex.h:92
xAOD::Vertex_v1::nTrackParticles
size_t nTrackParticles() const
Get the number of tracks associated with this vertex.
Definition: Vertex_v1.cxx:270
xAOD::BPhysHelper
Definition: BPhysHelper.h:71
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug2MassHypo
double m_vtx1Daug2MassHypo
Definition: PsiPlusPsiSingleVertex.h:61
xAOD::Vertex
Vertex_v1 Vertex
Define the latest version of the vertex class.
Definition: Event/xAOD/xAODTracking/xAODTracking/Vertex.h:16
TrigCompositeUtils::passed
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
Definition: TrigCompositeUtilsRoot.cxx:117
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
DerivationFramework::PsiPlusPsiSingleVertex::m_maxCandidates
unsigned int m_maxCandidates
Definition: PsiPlusPsiSingleVertex.h:69
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug3MassHypo
double m_vtx2Daug3MassHypo
Definition: PsiPlusPsiSingleVertex.h:67
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:66
DerivationFramework::PsiPlusPsiSingleVertex::m_vertexPsi2HypoNames
std::vector< std::string > m_vertexPsi2HypoNames
Definition: PsiPlusPsiSingleVertex.h:39
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
DerivationFramework::PsiPlusPsiSingleVertex::m_constrDiTrk2
bool m_constrDiTrk2
Definition: PsiPlusPsiSingleVertex.h:81
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
xAOD::TrackParticle_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: TrackParticle_v1.cxx:77
DerivationFramework::PsiPlusPsiSingleVertex::m_constrDiTrk1
bool m_constrDiTrk1
Definition: PsiPlusPsiSingleVertex.h:78
DerivationFramework::BPhysPVCascadeTools::getParticleMass
static double getParticleMass(const HepPDT::ParticleDataTable *pdt, int pdg)
Definition: BPhysPVCascadeTools.cxx:491
DerivationFramework::PsiPlusPsiSingleVertex::m_mass_psi2
double m_mass_psi2
Definition: PsiPlusPsiSingleVertex.h:76
xAOD::Vertex_v1::trackParticleLinks
const TrackParticleLinks_t & trackParticleLinks() const
Get all the particles associated with the vertex.
DerivationFramework::PsiPlusPsiSingleVertex::m_psi1MassUpper
double m_psi1MassUpper
Definition: PsiPlusPsiSingleVertex.h:50
skel.it
it
Definition: skel.GENtoEVGEN.py:423
DerivationFramework::TrackParticleLinkVector
std::vector< TrackParticleLink > TrackParticleLinkVector
Definition: PsiPlusPsiSingleVertex.cxx:24
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
DerivationFramework::PsiPlusPsiSingleVertex::m_refitPV
bool m_refitPV
Definition: PsiPlusPsiSingleVertex.h:89
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
DerivationFramework::PsiPlusPsiSingleVertex::m_psi2MassLower
double m_psi2MassLower
Definition: PsiPlusPsiSingleVertex.h:55
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug_num
int m_vtx1Daug_num
Definition: PsiPlusPsiSingleVertex.h:59
DerivationFramework::PsiPlusPsiSingleVertex::m_mass_psi1
double m_mass_psi1
Definition: PsiPlusPsiSingleVertex.h:73
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug4MassHypo
double m_vtx1Daug4MassHypo
Definition: PsiPlusPsiSingleVertex.h:63
dqt_zlumi_pandas.mass
mass
Definition: dqt_zlumi_pandas.py:170
DerivationFramework::PsiPlusPsiSingleVertex::m_psi2MassUpper
double m_psi2MassUpper
Definition: PsiPlusPsiSingleVertex.h:56
VertexLinkVector
std::vector< VertexLink > VertexLinkVector
Definition: BPhysHelper.cxx:20
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
DerivationFramework::PsiPlusPsiSingleVertex::m_psi1MassLower
double m_psi1MassLower
Definition: PsiPlusPsiSingleVertex.h:49
DerivationFramework::PsiPlusPsiSingleVertex::m_chi2cut
double m_chi2cut
Definition: PsiPlusPsiSingleVertex.h:83
runBeamSpotCalibration.helper
helper
Definition: runBeamSpotCalibration.py:112
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
xAOD::BPhysHypoHelper
Definition: BPhysHypoHelper.h:73
DerivationFramework::PsiPlusPsiSingleVertex::m_mass_diTrk2
double m_mass_diTrk2
Definition: PsiPlusPsiSingleVertex.h:75
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
DerivationFramework::PsiPlusPsiSingleVertex::m_constrJpsi1
bool m_constrJpsi1
Definition: PsiPlusPsiSingleVertex.h:77
DerivationFramework::PsiPlusPsiSingleVertex::m_vertexPsi1ContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexPsi1ContainerKey
Definition: PsiPlusPsiSingleVertex.h:36
SG::Decorator
Helper class to provide type-safe access to aux data.
Definition: Decorator.h:58
python.TrigInDetConfig.inputTracks
inputTracks
Definition: TrigInDetConfig.py:168
lumiFormat.i
int i
Definition: lumiFormat.py:92
DerivationFramework::PsiPlusPsiSingleVertex::m_eventInfo_key
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
Definition: PsiPlusPsiSingleVertex.h:43
DerivationFramework::PsiPlusPsiSingleVertex::m_mass_diTrk1
double m_mass_diTrk1
Definition: PsiPlusPsiSingleVertex.h:72
DerivationFramework::PsiPlusPsiSingleVertex::m_mass_jpsi1
double m_mass_jpsi1
Definition: PsiPlusPsiSingleVertex.h:71
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DerivationFramework::PsiPlusPsiSingleVertex::m_MassLower
double m_MassLower
Definition: PsiPlusPsiSingleVertex.h:57
DerivationFramework::PsiPlusPsiSingleVertex::m_trackContainerName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackContainerName
Definition: PsiPlusPsiSingleVertex.h:42
DerivationFramework::PsiPlusPsiSingleVertex::m_mass_jpsi2
double m_mass_jpsi2
Definition: PsiPlusPsiSingleVertex.h:74
xAOD::Vertex_v1::setTrackParticleLinks
void setTrackParticleLinks(const TrackParticleLinks_t &trackParticles)
Set all track particle links at once.
DerivationFramework::PsiPlusPsiSingleVertex::m_diTrack2MassLower
double m_diTrack2MassLower
Definition: PsiPlusPsiSingleVertex.h:53
DerivationFramework::PsiPlusPsiSingleVertex::m_diTrack2MassUpper
double m_diTrack2MassUpper
Definition: PsiPlusPsiSingleVertex.h:54
test_pyathena.parent
parent
Definition: test_pyathena.py:15
MUON
xAOD::Muon MUON
D3PD INCLUDES.
Definition: TileCellFillerTool.h:37
DerivationFramework::PsiPlusPsiSingleVertex::m_pvRefitter
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
Definition: PsiPlusPsiSingleVertex.h:86
DerivationFramework::PsiPlusPsiSingleVertex::m_jpsi1MassLower
double m_jpsi1MassLower
Definition: PsiPlusPsiSingleVertex.h:45
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
TRT_PAI_gasdata::SC
const float SC[NC]
Cross sections for Carbon.
Definition: TRT_PAI_gasdata.h:255
DerivationFramework::PsiPlusPsiSingleVertex::m_jpsi2MassLower
double m_jpsi2MassLower
Definition: PsiPlusPsiSingleVertex.h:51
xAOD::Vertex_v1::trackParticle
const TrackParticle * trackParticle(size_t i) const
Get the pointer to a given track that was used in vertex reco.
Definition: Vertex_v1.cxx:249
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
xAOD::Vertex_v1::clearTracks
void clearTracks()
Remove all tracks from the vertex.
Definition: Vertex_v1.cxx:331
DerivationFramework::PsiPlusPsiSingleVertex::m_PV_minNTracks
size_t m_PV_minNTracks
Definition: PsiPlusPsiSingleVertex.h:94
xAOD::Vertex_v1::z
float z() const
Returns the z position.
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
DerivationFramework::PsiPlusPsiSingleVertex::m_hypoName
std::string m_hypoName
Definition: PsiPlusPsiSingleVertex.h:91
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
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
grepfile.ic
int ic
Definition: grepfile.py:33
DerivationFramework::PsiPlusPsiSingleVertex::m_MassUpper
double m_MassUpper
Definition: PsiPlusPsiSingleVertex.h:58
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
DerivationFramework::PsiPlusPsiSingleVertex::m_outputsKeys
SG::WriteHandleKeyArray< xAOD::VertexContainer > m_outputsKeys
Definition: PsiPlusPsiSingleVertex.h:40
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug3MassHypo
double m_vtx1Daug3MassHypo
Definition: PsiPlusPsiSingleVertex.h:62
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug_num
int m_vtx2Daug_num
Definition: PsiPlusPsiSingleVertex.h:64
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
DerivationFramework::PsiPlusPsiSingleVertex::m_jpsi1MassUpper
double m_jpsi1MassUpper
Definition: PsiPlusPsiSingleVertex.h:46
DerivationFramework::PsiPlusPsiSingleVertex::m_V0Tools
ToolHandle< Trk::V0Tools > m_V0Tools
Definition: PsiPlusPsiSingleVertex.h:87
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
DerivationFramework::PsiPlusPsiSingleVertex::m_constrPsi2
bool m_constrPsi2
Definition: PsiPlusPsiSingleVertex.h:82
DerivationFramework::PsiPlusPsiSingleVertex::m_VxPrimaryCandidateName
SG::ReadHandleKey< xAOD::VertexContainer > m_VxPrimaryCandidateName
Name of primary vertex container.
Definition: PsiPlusPsiSingleVertex.h:41
DerivationFramework::PsiPlusPsiSingleVertex::m_diTrack1MassLower
double m_diTrack1MassLower
Definition: PsiPlusPsiSingleVertex.h:47
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
DerivationFramework::PsiPlusPsiSingleVertex::m_vertexPsi2ContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexPsi2ContainerKey
Definition: PsiPlusPsiSingleVertex.h:37
a
TList * a
Definition: liststreamerinfos.cxx:10
h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
DerivationFramework::PsiPlusPsiSingleVertex::m_refPVContainerName
SG::WriteHandleKey< xAOD::VertexContainer > m_refPVContainerName
Definition: PsiPlusPsiSingleVertex.h:90
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DerivationFramework::PsiPlusPsiSingleVertex::m_vertexPsi1HypoNames
std::vector< std::string > m_vertexPsi1HypoNames
Definition: PsiPlusPsiSingleVertex.h:38
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
DerivationFramework::PsiPlusPsiSingleVertex::m_diTrack1MassUpper
double m_diTrack1MassUpper
Definition: PsiPlusPsiSingleVertex.h:48
DerivationFramework::PsiPlusPsiSingleVertex::m_constrJpsi2
bool m_constrJpsi2
Definition: PsiPlusPsiSingleVertex.h:80
xAOD::Vertex_v1::y
float y() const
Returns the y position.
DerivationFramework::PsiPlusPsiSingleVertex::m_jpsi2MassUpper
double m_jpsi2MassUpper
Definition: PsiPlusPsiSingleVertex.h:52
DerivationFramework::PsiPlusPsiSingleVertex::m_iVertexFitter
ToolHandle< Trk::TrkVKalVrtFitter > m_iVertexFitter
Definition: PsiPlusPsiSingleVertex.h:85
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
DerivationFramework::TrackParticleLink
ElementLink< xAOD::TrackParticleContainer > TrackParticleLink
Definition: PsiPlusPsiSingleVertex.cxx:23
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug1MassHypo
double m_vtx1Daug1MassHypo
Definition: PsiPlusPsiSingleVertex.h:60
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug4MassHypo
double m_vtx2Daug4MassHypo
Definition: PsiPlusPsiSingleVertex.h:68
skip
bool skip
Definition: TrigGlobEffCorrValidation.cxx:190
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug1MassHypo
double m_vtx2Daug1MassHypo
Definition: PsiPlusPsiSingleVertex.h:65
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug2MassHypo
double m_vtx2Daug2MassHypo
Definition: PsiPlusPsiSingleVertex.h:66
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
xAOD::TrackParticle_v1::phi
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)
fitman.k
k
Definition: fitman.py:528
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
DerivationFramework::PsiPlusPsiSingleVertex::m_constrPsi1
bool m_constrPsi1
Definition: PsiPlusPsiSingleVertex.h:79