Belle II Software  release-05-01-25
RealisticCDCGeometryTranslator.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2012 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: CDC group *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #ifndef REALISTICCDCGEOMETRYTRANSLATOR_H_
12 #define REALISTICCDCGEOMETRYTRANSLATOR_H_
13 
14 #include <cdc/dataobjects/CDCGeometryTranslatorBase.h>
15 #include <cdc/geometry/CDCGeometryPar.h>
16 
17 namespace Belle2 {
22  namespace CDC {
24  class RealisticCDCGeometryTranslator : public CDCGeometryTranslatorBase {
25  public:
27  explicit RealisticCDCGeometryTranslator(bool wireSag = false) : m_wireSag(wireSag) {}
28 
31 
33  const TVector3 getWireForwardPosition(const WireID& wireID) override
34  {
35  return CDCGeometryPar::Instance().wireForwardPosition(wireID, CDCGeometryPar::c_Aligned);
36  }
37 
39  const TVector3 getWireForwardPosition(const WireID& wireID, float z) override
40  {
41  TVector3 wPos = (m_wireSag) ?
42  CDCGeometryPar::Instance().wireForwardPosition(wireID, z, CDCGeometryPar::c_Aligned) :
43  CDCGeometryPar::Instance().wireForwardPosition(wireID, CDCGeometryPar::c_Aligned);
44  return wPos;
45  }
46 
48  const TVector3 getWireBackwardPosition(const WireID& wireID) override
49  {
50  return CDCGeometryPar::Instance().wireBackwardPosition(wireID, CDCGeometryPar::c_Aligned);
51  }
52 
54  const TVector3 getWireBackwardPosition(const WireID& wireID, float z) override
55  {
56  TVector3 wPos = m_wireSag ?
57  CDCGeometryPar::Instance().wireBackwardPosition(wireID, z, CDCGeometryPar::c_Aligned) :
58  CDCGeometryPar::Instance().wireBackwardPosition(wireID, CDCGeometryPar::c_Aligned);
59  return wPos;
60  }
61 
62  private:
68  bool m_wireSag;
69  };
70  }
72 }
73 #endif /* REALISTICCDCGEOMETRYTRANSLATOR_H */
Belle2::WireID
Class to identify a wire inside the CDC.
Definition: WireID.h:44
Belle2::CDC::CDCGeometryPar::wireForwardPosition
const TVector3 wireForwardPosition(int layerId, int cellId, EWirePosition set=c_Base) const
Returns the forward position of the input sense wire.
Definition: CDCGeometryPar.cc:1625
Belle2::CDC::RealisticCDCGeometryTranslator::~RealisticCDCGeometryTranslator
~RealisticCDCGeometryTranslator()
Destructor.
Definition: RealisticCDCGeometryTranslator.h:38
Belle2::CDC::RealisticCDCGeometryTranslator::m_wireSag
bool m_wireSag
Flag to activate the sense wire sag effect.
Definition: RealisticCDCGeometryTranslator.h:76
Belle2::CDC::CDCGeometryPar::wireBackwardPosition
const TVector3 wireBackwardPosition(int layerId, int cellId, EWirePosition set=c_Base) const
Returns the backward position of the input sense wire.
Definition: CDCGeometryPar.cc:1662
Belle2::CDC::CDCGeometryPar::Instance
static CDCGeometryPar & Instance(const CDCGeometry *=nullptr)
Static method to get a reference to the CDCGeometryPar instance.
Definition: CDCGeometryPar.cc:41
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::CDC::RealisticCDCGeometryTranslator::RealisticCDCGeometryTranslator
RealisticCDCGeometryTranslator(bool wireSag=false)
Constructor, with the additional parameter to control wire sag.
Definition: RealisticCDCGeometryTranslator.h:35
Belle2::CDC::RealisticCDCGeometryTranslator::getWireForwardPosition
const TVector3 getWireForwardPosition(const WireID &wireID) override
Get wire position at forward end.
Definition: RealisticCDCGeometryTranslator.h:41
Belle2::CDC::RealisticCDCGeometryTranslator::getWireBackwardPosition
const TVector3 getWireBackwardPosition(const WireID &wireID) override
Get wire position at backward end.
Definition: RealisticCDCGeometryTranslator.h:56