Belle II Software  release-05-01-25
MCSegmentTripleRelationFilter.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2012 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Oliver Frost *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #include <tracking/trackFindingCDC/filters/segmentTripleRelation/MCSegmentTripleRelationFilter.h>
11 
12 #include <tracking/trackFindingCDC/filters/base/MCSymmetricFilter.icc.h>
13 
14 #include <tracking/trackFindingCDC/eventdata/tracks/CDCSegmentTriple.h>
15 #include <tracking/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
16 
17 using namespace Belle2;
18 using namespace TrackFindingCDC;
19 
21 
23  m_mcSegmentTripleFilter(allowReverse)
24 {
26 }
27 
29  const std::string& prefix)
30 {
31  m_mcSegmentTripleFilter.exposeParameters(moduleParamList, prefix);
32 }
33 
35 {
38 }
39 
41  const CDCSegmentTriple& toTriple)
42 {
43  if (fromTriple.getEndSegment() != toTriple.getStartSegment()) return NAN;
44 
45  Weight mcFromTripleWeight = m_mcSegmentTripleFilter(fromTriple);
46  Weight mcToTripleWeight = m_mcSegmentTripleFilter(toTriple);
47 
48  ESign fromFBInfo = sign(mcFromTripleWeight);
49  ESign toFBInfo = sign(mcToTripleWeight);
50 
51  if (not isValid(fromFBInfo) or not isValid(toFBInfo) or fromFBInfo != toFBInfo) return NAN;
52 
53  ESign commonFBInfo = fromFBInfo;
54 
55  Weight overlapWeight = toTriple.getStartSegment()->size();
56  return commonFBInfo > 0 ? overlapWeight : -overlapWeight;
57 }
Belle2::TrackFindingCDC::MCSymmetric::getAllowReverse
bool getAllowReverse() const
Getter for the allow reverse parameter.
Definition: MCSymmetricFilter.icc.h:85
Belle2::TrackFindingCDC::CDCSegmentTriple::getStartSegment
const CDCAxialSegment2D * getStartSegment() const
Getter for the start axial segment.
Definition: CDCSegmentTriple.h:111
Belle2::TrackFindingCDC::MCSymmetric< BaseSegmentTripleRelationFilter >::initialize
void initialize() override
Initialize the before event processing.
Definition: MCSymmetricFilter.icc.h:59
Belle2::TrackFindingCDC::MCSegmentTripleRelationFilter::m_mcSegmentTripleFilter
MCSegmentTripleFilter m_mcSegmentTripleFilter
Instance of the Monte Carlo segment triple filter for rejection of false cells.
Definition: MCSegmentTripleRelationFilter.h:66
Belle2::TrackFindingCDC::MCSegmentTripleRelationFilter::MCSegmentTripleRelationFilter
MCSegmentTripleRelationFilter(bool allowReverse=true)
Constructor.
Definition: MCSegmentTripleRelationFilter.cc:22
Belle2::TrackFindingCDC::MCSegmentTripleRelationFilter::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: MCSegmentTripleRelationFilter.cc:28
Belle2::TrackFindingCDC::MCSymmetric< BaseSegmentTripleRelationFilter >
Belle2::TrackFindingCDC::ESignUtil::ESign
ESign
Enumeration for the distinct sign values of floating point variables.
Definition: ESign.h:37
Belle2::TrackFindingCDC::CompositeProcessingSignalListener::addProcessingSignalListener
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
Definition: CompositeProcessingSignalListener.cc:57
Belle2::TrackFindingCDC::MCSegmentTripleRelationFilter::initialize
void initialize() final
Initialize the before event processing.
Definition: MCSegmentTripleRelationFilter.cc:34
Belle2::TrackFindingCDC::CDCSegmentTriple::getEndSegment
const CDCAxialSegment2D * getEndSegment() const
Getter for the end axial segment.
Definition: CDCSegmentTriple.h:135
Belle2::TrackFindingCDC::MCSegmentTripleFilter::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: MCSegmentTripleFilter.cc:37
Belle2::TrackFindingCDC::MCSegmentTripleRelationFilter::setAllowReverse
void setAllowReverse(bool allowReverse) override
Setter for the allow reverse parameter.
Definition: MCSegmentTripleRelationFilter.h:58
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::MCSegmentTripleRelationFilter::operator()
Weight operator()(const CDCSegmentTriple &fromTriple, const CDCSegmentTriple &toTriple) final
Main filter method returning the weight of the neighborhood relation.
Definition: MCSegmentTripleRelationFilter.cc:40
Belle2::ModuleParamList
The Module parameter list class.
Definition: ModuleParamList.h:46
Belle2::TrackFindingCDC::CDCSegmentTriple
Class representing a triple of reconstructed segements in adjacent superlayer.
Definition: CDCSegmentTriple.h:42