547 ATH_MSG_FATAL(
"Incorrect number of output cascade vertices");
548 return StatusCode::FAILURE;
551 ATH_MSG_FATAL(
"Incorrect number of output (mvc) cascade vertices");
552 return StatusCode::FAILURE;
555 std::array<SG::WriteHandle<xAOD::VertexContainer>, 4> VtxWriteHandles;
int ikey(0);
558 ATH_CHECK( VtxWriteHandles[ikey].record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()) );
561 std::array<SG::WriteHandle<xAOD::VertexContainer>, 4> VtxWriteHandles_mvc;
int ikey_mvc(0);
565 ATH_CHECK( VtxWriteHandles_mvc[ikey_mvc].record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()) );
576 if (pvContainer.cptr()->size()==0) {
577 ATH_MSG_WARNING(
"You have no primary vertices: " << pvContainer.cptr()->size());
578 return StatusCode::RECOVERABLE;
580 else primaryVertex = (*pvContainer.cptr())[0];
588 ATH_CHECK( refPvContainer.
record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()) );
596 std::vector<const xAOD::TrackParticleContainer*> trackCols;
600 trackCols.push_back(handle.cptr());
607 ATH_CHECK( V0OutputContainer.
record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()) );
614 if(jxContainer->size()==0)
return StatusCode::SUCCESS;
617 std::vector<const xAOD::TrackParticle*> tracksDisplaced;
626 if(!
m_useTRT && nclus == 0)
continue;
628 bool trk_cut =
false;
629 if(nclus != 0) trk_cut =
true;
630 if(nclus == 0 && TP->pt()>=
m_ptTRT) trk_cut =
true;
631 if(!trk_cut)
continue;
634 if(!
d0Pass(TP,primaryVertex))
continue;
636 tracksDisplaced.push_back(TP);
647 std::vector<std::pair<const xAOD::Vertex*,V0Enum> > selectedV0Candidates;
655 std::string type_V0Vtx;
656 if(mAcc_type.isAvailable(*vtx)) type_V0Vtx = mAcc_type(*vtx);
659 if(type_V0Vtx ==
"Lambda") {
664 else if(type_V0Vtx ==
"Lambdabar") {
669 else if(type_V0Vtx ==
"Ks") {
679 int gamma_fit = mAcc_gfit.isAvailable(*vtx) ? mAcc_gfit(*vtx) : 0;
680 double gamma_mass = mAcc_gmass.isAvailable(*vtx) ? mAcc_gmass(*vtx) : -1;
681 double gamma_chisq = mAcc_gchisq.isAvailable(*vtx) ? mAcc_gchisq(*vtx) : 999999;
682 double gamma_ndof = mAcc_gndof.isAvailable(*vtx) ? mAcc_gndof(*vtx) : 0;
685 selectedV0Candidates.push_back(std::pair<const xAOD::Vertex*,V0Enum>{vtx,
opt});
693 std::string type_V0Vtx;
694 if(mAcc_type.isAvailable(*vtx)) type_V0Vtx = mAcc_type(*vtx);
697 if(type_V0Vtx ==
"Lambda") {
702 else if(type_V0Vtx ==
"Lambdabar") {
707 else if(type_V0Vtx ==
"Ks") {
717 int gamma_fit = mAcc_gfit.isAvailable(*vtx) ? mAcc_gfit(*vtx) : 0;
718 double gamma_mass = mAcc_gmass.isAvailable(*vtx) ? mAcc_gmass(*vtx) : -1;
719 double gamma_chisq = mAcc_gchisq.isAvailable(*vtx) ? mAcc_gchisq(*vtx) : 999999;
720 double gamma_ndof = mAcc_gndof.isAvailable(*vtx) ? mAcc_gndof(*vtx) : 0;
723 selectedV0Candidates.push_back(std::pair<const xAOD::Vertex*,V0Enum>{vtx,
opt});
728 std::sort( selectedV0Candidates.begin(), selectedV0Candidates.end(), [](std::pair<const xAOD::Vertex*,V0Enum>&
a, std::pair<const xAOD::Vertex*,V0Enum>&
b) { return a.first->chiSquared()/a.first->numberDoF() < b.first->chiSquared()/b.first->numberDoF(); } );
730 selectedV0Candidates.erase(selectedV0Candidates.begin()+
m_maxV0Candidates, selectedV0Candidates.end());
732 if(selectedV0Candidates.size()==0)
return StatusCode::SUCCESS;
734 std::vector<std::pair<Trk::VxCascadeInfo*, Trk::VxCascadeInfo*> > cascadeinfoContainer;
738 std::sort( cascadeinfoContainer.begin(), cascadeinfoContainer.end(), [](std::pair<Trk::VxCascadeInfo*, Trk::VxCascadeInfo*>
a, std::pair<Trk::VxCascadeInfo*, Trk::VxCascadeInfo*>
b) { return a.first->fitChi2()/a.first->nDoF() < b.first->fitChi2()/b.first->nDoF(); } );
741 if(
it->first)
delete it->first;
742 if(
it->second)
delete it->second;
744 cascadeinfoContainer.erase(cascadeinfoContainer.begin()+
m_maxMainVCandidates, cascadeinfoContainer.end());
746 if(cascadeinfoContainer.size()==0)
return StatusCode::SUCCESS;
785 for(
auto cascade_info_pair : cascadeinfoContainer) {
786 if(cascade_info_pair.first==
nullptr) {
791 const std::vector<xAOD::Vertex*> &cascadeVertices = cascade_info_pair.first->vertices();
792 if(cascadeVertices.size() != topoN)
ATH_MSG_ERROR(
"Incorrect number of vertices");
793 for(
size_t i=0;
i<topoN;
i++) {
794 if(cascadeVertices[
i]==
nullptr)
ATH_MSG_ERROR(
"Error null vertex");
797 cascade_info_pair.first->setSVOwnership(
false);
798 const auto mainVertex = cascadeVertices[topoN-1];
799 const std::vector< std::vector<TLorentzVector> > &moms = cascade_info_pair.first->getParticleMoms();
812 if(
m_jxDaug_num==4) jxVtx = FindVertex<4>(jxContainer.ptr(), cascadeVertices[ijx]);
813 else if(
m_jxDaug_num==3) jxVtx = FindVertex<3>(jxContainer.ptr(), cascadeVertices[ijx]);
814 else jxVtx = FindVertex<2>(jxContainer.ptr(), cascadeVertices[ijx]);
828 BPHYS_CHECK( vtx.setMassErr(
m_CascadeTools->invariantMassError(moms[topoN-1],cascade_info_pair.first->getCovariance()[topoN-1])) );
831 PtErr_decor(*mainVertex) =
m_CascadeTools->pTError(moms[topoN-1],cascade_info_pair.first->getCovariance()[topoN-1]);
833 chi2_decor(*mainVertex) = cascade_info_pair.first->fitChi2();
834 ndof_decor(*mainVertex) = cascade_info_pair.first->nDoF();
838 lxy_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->lxy(moms[0],cascadeVertices[0],cascadeVertices[1]);
839 lxyErr_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->lxyError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],cascadeVertices[1]);
840 a0z_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->a0z(moms[0],cascadeVertices[0],cascadeVertices[1]);
841 a0zErr_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->a0zError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],cascadeVertices[1]);
842 a0xy_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->a0xy(moms[0],cascadeVertices[0],cascadeVertices[1]);
843 a0xyErr_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->a0xyError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],cascadeVertices[1]);
844 lxy_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->lxy(moms[1],cascadeVertices[1],mainVertex);
845 lxyErr_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->lxyError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
846 a0z_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->a0z(moms[1],cascadeVertices[1],mainVertex);
847 a0zErr_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->a0zError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
848 a0xy_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->a0xy(moms[1],cascadeVertices[1],mainVertex);
849 a0xyErr_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->a0xyError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
850 lxy_SV2_decor(*cascadeVertices[2]) =
m_CascadeTools->lxy(moms[2],cascadeVertices[2],mainVertex);
851 lxyErr_SV2_decor(*cascadeVertices[2]) =
m_CascadeTools->lxyError(moms[2],cascade_info_pair.first->getCovariance()[2],cascadeVertices[2],mainVertex);
852 a0z_SV2_decor(*cascadeVertices[2]) =
m_CascadeTools->a0z(moms[2],cascadeVertices[2],mainVertex);
853 a0zErr_SV2_decor(*cascadeVertices[2]) =
m_CascadeTools->a0zError(moms[2],cascade_info_pair.first->getCovariance()[2],cascadeVertices[2],mainVertex);
854 a0xy_SV2_decor(*cascadeVertices[2]) =
m_CascadeTools->a0xy(moms[2],cascadeVertices[2],mainVertex);
855 a0xyErr_SV2_decor(*cascadeVertices[2]) =
m_CascadeTools->a0xyError(moms[2],cascade_info_pair.first->getCovariance()[2],cascadeVertices[2],mainVertex);
858 lxy_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->lxy(moms[0],cascadeVertices[0],mainVertex);
859 lxyErr_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->lxyError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],mainVertex);
860 a0z_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->a0z(moms[0],cascadeVertices[0],mainVertex);
861 a0zErr_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->a0zError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],mainVertex);
862 a0xy_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->a0xy(moms[0],cascadeVertices[0],mainVertex);
863 a0xyErr_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->a0xyError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],mainVertex);
864 lxy_SV2_decor(*cascadeVertices[1]) =
m_CascadeTools->lxy(moms[1],cascadeVertices[1],mainVertex);
865 lxyErr_SV2_decor(*cascadeVertices[1]) =
m_CascadeTools->lxyError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
866 a0z_SV2_decor(*cascadeVertices[1]) =
m_CascadeTools->a0z(moms[1],cascadeVertices[1],mainVertex);
867 a0zErr_SV2_decor(*cascadeVertices[1]) =
m_CascadeTools->a0zError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
868 a0xy_SV2_decor(*cascadeVertices[1]) =
m_CascadeTools->a0xy(moms[1],cascadeVertices[1],mainVertex);
869 a0xyErr_SV2_decor(*cascadeVertices[1]) =
m_CascadeTools->a0xyError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
874 lxy_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->lxy(moms[0],cascadeVertices[0],cascadeVertices[1]);
875 lxyErr_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->lxyError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],cascadeVertices[1]);
876 a0z_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->a0z(moms[0],cascadeVertices[0],cascadeVertices[1]);
877 a0zErr_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->a0zError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],cascadeVertices[1]);
878 a0xy_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->a0xy(moms[0],cascadeVertices[0],cascadeVertices[1]);
879 a0xyErr_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->a0xyError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],cascadeVertices[1]);
880 lxy_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->lxy(moms[1],cascadeVertices[1],mainVertex);
881 lxyErr_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->lxyError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
882 a0z_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->a0z(moms[1],cascadeVertices[1],mainVertex);
883 a0zErr_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->a0zError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
884 a0xy_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->a0xy(moms[1],cascadeVertices[1],mainVertex);
885 a0xyErr_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->a0xyError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
888 lxy_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->lxy(moms[0],cascadeVertices[0],mainVertex);
889 lxyErr_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->lxyError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],mainVertex);
890 a0z_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->a0z(moms[0],cascadeVertices[0],mainVertex);
891 a0zErr_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->a0zError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],mainVertex);
892 a0xy_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->a0xy(moms[0],cascadeVertices[0],mainVertex);
893 a0xyErr_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->a0xyError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],mainVertex);
895 lxy_SV2_decor(*cascadeVertices[1]) =
m_CascadeTools->lxy(moms[1],cascadeVertices[1],mainVertex);
896 lxyErr_SV2_decor(*cascadeVertices[1]) =
m_CascadeTools->lxyError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
897 a0z_SV2_decor(*cascadeVertices[1]) =
m_CascadeTools->a0z(moms[1],cascadeVertices[1],mainVertex);
898 a0zErr_SV2_decor(*cascadeVertices[1]) =
m_CascadeTools->a0zError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
899 a0xy_SV2_decor(*cascadeVertices[1]) =
m_CascadeTools->a0xy(moms[1],cascadeVertices[1],mainVertex);
900 a0xyErr_SV2_decor(*cascadeVertices[1]) =
m_CascadeTools->a0xyError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
906 lxy_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->lxy(moms[0],cascadeVertices[0],mainVertex);
907 lxyErr_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->lxyError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],mainVertex);
908 a0z_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->a0z(moms[0],cascadeVertices[0],mainVertex);
909 a0zErr_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->a0zError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],mainVertex);
910 a0xy_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->a0xy(moms[0],cascadeVertices[0],mainVertex);
911 a0xyErr_SV1_decor(*cascadeVertices[0]) =
m_CascadeTools->a0xyError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],mainVertex);
914 lxy_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->lxy(moms[0],cascadeVertices[0],cascadeVertices[1]);
915 lxyErr_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->lxyError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],cascadeVertices[1]);
916 a0z_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->a0z(moms[0],cascadeVertices[0],cascadeVertices[1]);
917 a0zErr_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->a0zError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],cascadeVertices[1]);
918 a0xy_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->a0xy(moms[0],cascadeVertices[0],cascadeVertices[1]);
919 a0xyErr_SV0_decor(*cascadeVertices[0]) =
m_CascadeTools->a0xyError(moms[0],cascade_info_pair.first->getCovariance()[0],cascadeVertices[0],cascadeVertices[1]);
920 lxy_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->lxy(moms[1],cascadeVertices[1],mainVertex);
921 lxyErr_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->lxyError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
922 a0xy_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->a0z(moms[1],cascadeVertices[1],mainVertex);
923 a0xyErr_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->a0zError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
924 a0z_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->a0xy(moms[1],cascadeVertices[1],mainVertex);
925 a0zErr_SV1_decor(*cascadeVertices[1]) =
m_CascadeTools->a0xyError(moms[1],cascade_info_pair.first->getCovariance()[1],cascadeVertices[1],mainVertex);
929 lxy_SV2_decor(*cascadeVertices[ijx]) =
m_CascadeTools->lxy(moms[ijx],cascadeVertices[ijx],mainVertex);
930 lxyErr_SV2_decor(*cascadeVertices[ijx]) =
m_CascadeTools->lxyError(moms[ijx],cascade_info_pair.first->getCovariance()[ijx],cascadeVertices[ijx],mainVertex);
931 a0z_SV2_decor(*cascadeVertices[ijx]) =
m_CascadeTools->a0z(moms[ijx],cascadeVertices[ijx],mainVertex);
932 a0zErr_SV2_decor(*cascadeVertices[ijx]) =
m_CascadeTools->a0zError(moms[ijx],cascade_info_pair.first->getCovariance()[ijx],cascadeVertices[ijx],mainVertex);
933 a0xy_SV2_decor(*cascadeVertices[ijx]) =
m_CascadeTools->a0xy(moms[ijx],cascadeVertices[ijx],mainVertex);
934 a0xyErr_SV2_decor(*cascadeVertices[ijx]) =
m_CascadeTools->a0xyError(moms[ijx],cascade_info_pair.first->getCovariance()[ijx],cascadeVertices[ijx],mainVertex);
938 chi2_V2_decor(*cascadeVertices[ijx]) =
m_V0Tools->chisq(jxVtx);
939 ndof_V2_decor(*cascadeVertices[ijx]) =
m_V0Tools->ndof(jxVtx);
944 for(
size_t i=0;
i<topoN;
i++) {
945 VtxWriteHandles[
i].ptr()->push_back(cascadeVertices[
i]);
953 if( vertexLink1.
isValid() ) cascadeVertexLinks.push_back( vertexLink1 );
958 if( vertexLink2.
isValid() ) cascadeVertexLinks.push_back( vertexLink2 );
964 if( vertexLink3.
isValid() ) cascadeVertexLinks.push_back( vertexLink3 );
966 CascadeLinksDecor(*mainVertex) = cascadeVertexLinks;
969 if(cascade_info_pair.second) {
970 const std::vector<xAOD::Vertex*> &cascadeVertices_mvc = cascade_info_pair.second->vertices();
971 if(cascadeVertices_mvc.size() != topoN)
ATH_MSG_ERROR(
"Incorrect number of vertices (mvc)");
972 for(
size_t i=0;
i<topoN;
i++) {
973 if(cascadeVertices_mvc[
i]==
nullptr)
ATH_MSG_ERROR(
"Error null vertex (mvc)");
975 cascade_info_pair.second->setSVOwnership(
false);
976 const auto mainVertex_mvc = cascadeVertices_mvc[topoN-1];
977 const std::vector< std::vector<TLorentzVector> > &moms_mvc = cascade_info_pair.second->getParticleMoms();
982 else ijx_mvc = topoN-1;
986 else ijx_mvc = topoN-1;
989 if(
m_jxDaug_num==4) jxVtx_mvc = FindVertex<4>(jxContainer.ptr(), cascadeVertices_mvc[ijx_mvc]);
990 else if(
m_jxDaug_num==3) jxVtx_mvc = FindVertex<3>(jxContainer.ptr(), cascadeVertices_mvc[ijx_mvc]);
991 else jxVtx_mvc = FindVertex<2>(jxContainer.ptr(), cascadeVertices_mvc[ijx_mvc]);
995 vtx_mvc.setPass(
true);
998 BPHYS_CHECK( vtx_mvc.setMassErr(
m_CascadeTools->invariantMassError(moms_mvc[topoN-1],cascade_info_pair.second->getCovariance()[topoN-1])) );
999 Pt_decor(*mainVertex_mvc) =
m_CascadeTools->pT(moms_mvc[topoN-1]);
1000 PtErr_decor(*mainVertex_mvc) =
m_CascadeTools->pTError(moms_mvc[topoN-1],cascade_info_pair.second->getCovariance()[topoN-1]);
1001 chi2_decor(*mainVertex_mvc) = cascade_info_pair.second->fitChi2();
1002 ndof_decor(*mainVertex_mvc) = cascade_info_pair.second->nDoF();
1006 lxy_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->lxy(moms_mvc[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1007 lxyErr_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->lxyError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1008 a0z_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0z(moms_mvc[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1009 a0zErr_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0zError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1010 a0xy_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0xy(moms_mvc[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1011 a0xyErr_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0xyError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1012 lxy_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->lxy(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1013 lxyErr_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->lxyError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1014 a0z_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0z(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1015 a0zErr_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0zError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1016 a0xy_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0xy(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1017 a0xyErr_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0xyError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1018 lxy_SV2_decor(*cascadeVertices_mvc[2]) =
m_CascadeTools->lxy(moms_mvc[2],cascadeVertices_mvc[2],mainVertex_mvc);
1019 lxyErr_SV2_decor(*cascadeVertices_mvc[2]) =
m_CascadeTools->lxyError(moms_mvc[2],cascade_info_pair.second->getCovariance()[2],cascadeVertices_mvc[2],mainVertex_mvc);
1020 a0z_SV2_decor(*cascadeVertices_mvc[2]) =
m_CascadeTools->a0z(moms_mvc[2],cascadeVertices_mvc[2],mainVertex_mvc);
1021 a0zErr_SV2_decor(*cascadeVertices_mvc[2]) =
m_CascadeTools->a0zError(moms_mvc[2],cascade_info_pair.second->getCovariance()[2],cascadeVertices_mvc[2],mainVertex_mvc);
1022 a0xy_SV2_decor(*cascadeVertices_mvc[2]) =
m_CascadeTools->a0xy(moms_mvc[2],cascadeVertices_mvc[2],mainVertex_mvc);
1023 a0xyErr_SV2_decor(*cascadeVertices_mvc[2]) =
m_CascadeTools->a0xyError(moms_mvc[2],cascade_info_pair.second->getCovariance()[2],cascadeVertices_mvc[2],mainVertex_mvc);
1026 lxy_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->lxy(moms_mvc[0],cascadeVertices_mvc[0],mainVertex_mvc);
1027 lxyErr_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->lxyError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],mainVertex_mvc);
1028 a0z_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0z(moms_mvc[0],cascadeVertices_mvc[0],mainVertex_mvc);
1029 a0zErr_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0zError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],mainVertex_mvc);
1030 a0xy_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0xy(moms_mvc[0],cascadeVertices_mvc[0],mainVertex_mvc);
1031 a0xyErr_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0xyError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],mainVertex_mvc);
1032 lxy_SV2_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->lxy(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1033 lxyErr_SV2_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->lxyError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1034 a0z_SV2_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0z(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1035 a0zErr_SV2_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0zError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1036 a0xy_SV2_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0xy(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1037 a0xyErr_SV2_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0xyError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1042 lxy_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->lxy(moms_mvc[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1043 lxyErr_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->lxyError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1044 a0z_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0z(moms_mvc[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1045 a0zErr_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0zError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1046 a0xy_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0xy(moms_mvc[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1047 a0xyErr_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0xyError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1048 lxy_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->lxy(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1049 lxyErr_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->lxyError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1050 a0z_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0z(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1051 a0zErr_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0zError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1052 a0xy_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0xy(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1053 a0xyErr_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0xyError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1056 lxy_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->lxy(moms_mvc[0],cascadeVertices_mvc[0],mainVertex_mvc);
1057 lxyErr_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->lxyError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],mainVertex_mvc);
1058 a0z_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0z(moms_mvc[0],cascadeVertices_mvc[0],mainVertex_mvc);
1059 a0zErr_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0zError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],mainVertex_mvc);
1060 a0xy_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0xy(moms_mvc[0],cascadeVertices_mvc[0],mainVertex_mvc);
1061 a0xyErr_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0xyError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],mainVertex_mvc);
1063 lxy_SV2_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->lxy(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1064 lxyErr_SV2_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->lxyError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1065 a0z_SV2_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0z(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1066 a0zErr_SV2_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0zError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1067 a0xy_SV2_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0xy(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1068 a0xyErr_SV2_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0xyError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1074 lxy_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->lxy(moms_mvc[0],cascadeVertices_mvc[0],mainVertex_mvc);
1075 lxyErr_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->lxyError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],mainVertex_mvc);
1076 a0z_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0z(moms_mvc[0],cascadeVertices_mvc[0],mainVertex_mvc);
1077 a0zErr_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0zError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],mainVertex_mvc);
1078 a0xy_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0xy(moms_mvc[0],cascadeVertices_mvc[0],mainVertex_mvc);
1079 a0xyErr_SV1_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0xyError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],mainVertex_mvc);
1082 lxy_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->lxy(moms_mvc[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1083 lxyErr_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->lxyError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1084 a0z_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0z(moms_mvc[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1085 a0zErr_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0zError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1086 a0xy_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0xy(moms_mvc[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1087 a0xyErr_SV0_decor(*cascadeVertices_mvc[0]) =
m_CascadeTools->a0xyError(moms_mvc[0],cascade_info_pair.second->getCovariance()[0],cascadeVertices_mvc[0],cascadeVertices_mvc[1]);
1088 lxy_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->lxy(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1089 lxyErr_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->lxyError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1090 a0xy_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0z(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1091 a0xyErr_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0zError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1092 a0z_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0xy(moms_mvc[1],cascadeVertices_mvc[1],mainVertex_mvc);
1093 a0zErr_SV1_decor(*cascadeVertices_mvc[1]) =
m_CascadeTools->a0xyError(moms_mvc[1],cascade_info_pair.second->getCovariance()[1],cascadeVertices_mvc[1],mainVertex_mvc);
1096 lxy_SV2_decor(*cascadeVertices_mvc[ijx_mvc]) =
m_CascadeTools->lxy(moms_mvc[ijx_mvc],cascadeVertices_mvc[ijx_mvc],mainVertex_mvc);
1097 lxyErr_SV2_decor(*cascadeVertices_mvc[ijx_mvc]) =
m_CascadeTools->lxyError(moms_mvc[ijx_mvc],cascade_info_pair.second->getCovariance()[ijx_mvc],cascadeVertices_mvc[ijx_mvc],mainVertex_mvc);
1098 a0z_SV2_decor(*cascadeVertices_mvc[ijx_mvc]) =
m_CascadeTools->a0z(moms_mvc[ijx_mvc],cascadeVertices_mvc[ijx_mvc],mainVertex_mvc);
1099 a0zErr_SV2_decor(*cascadeVertices_mvc[ijx_mvc]) =
m_CascadeTools->a0zError(moms_mvc[ijx_mvc],cascade_info_pair.second->getCovariance()[ijx_mvc],cascadeVertices_mvc[ijx_mvc],mainVertex_mvc);
1100 a0xy_SV2_decor(*cascadeVertices_mvc[ijx_mvc]) =
m_CascadeTools->a0xy(moms_mvc[ijx_mvc],cascadeVertices_mvc[ijx_mvc],mainVertex_mvc);
1101 a0xyErr_SV2_decor(*cascadeVertices_mvc[ijx_mvc]) =
m_CascadeTools->a0xyError(moms_mvc[ijx_mvc],cascade_info_pair.second->getCovariance()[ijx_mvc],cascadeVertices_mvc[ijx_mvc],mainVertex_mvc);
1104 chi2_V2_decor(*cascadeVertices_mvc[ijx_mvc]) =
m_V0Tools->chisq(jxVtx_mvc);
1105 ndof_V2_decor(*cascadeVertices_mvc[ijx_mvc]) =
m_V0Tools->ndof(jxVtx_mvc);
1107 double Mass_Moth_mvc =
m_CascadeTools->invariantMass(moms_mvc[topoN-1]);
1110 for(
size_t i=0;
i<topoN;
i++) {
1111 VtxWriteHandles_mvc[
i].ptr()->push_back(cascadeVertices_mvc[
i]);
1116 vertexLink1_mvc.
setElement(cascadeVertices_mvc[0]);
1118 if( vertexLink1_mvc.
isValid() ) cascadeVertexLinks_mvc.push_back( vertexLink1_mvc );
1121 vertexLink2_mvc.
setElement(cascadeVertices_mvc[1]);
1123 if( vertexLink2_mvc.
isValid() ) cascadeVertexLinks_mvc.push_back( vertexLink2_mvc );
1127 vertexLink3_mvc.
setElement(cascadeVertices_mvc[2]);
1129 if( vertexLink3_mvc.
isValid() ) cascadeVertexLinks_mvc.push_back( vertexLink3_mvc );
1131 CascadeLinksDecor(*mainVertex_mvc) = cascadeVertexLinks_mvc;
1135 vertexLink_mvc.
setElement(cascadeVertices[topoN-1]);
1137 if( vertexLink_mvc.
isValid() ) precedingVertexLinks_mvc.push_back( vertexLink_mvc );
1138 PrecedingLinksDecor(*mainVertex_mvc) = precedingVertexLinks_mvc;
1143 for (
auto cascade_info_pair : cascadeinfoContainer) {
1144 if(cascade_info_pair.first)
delete cascade_info_pair.first;
1145 if(cascade_info_pair.second)
delete cascade_info_pair.second;
1148 return StatusCode::SUCCESS;