15#include "TrkBase/TrkHotListEmpty.h"
16#include "TrkBase/TrkHitOnTrk.h"
21 double sfr,
double efr)
23 _nPhi = nsv/2; _nZ = nsv-_nPhi;
24 _nAxial = ndc/3; _nStereo = ndc-_nAxial;
27 _firstmdc = _lastmdc = 0;
28 for(
unsigned isvt=0;isvt<5;isvt++)
33 unsigned nAxial,
unsigned nStereo,
34 double sfr,
double efr,
35 unsigned firstmdc,
unsigned lastmdc,
37 const std::vector<unsigned>& inactive) :
38 _nAxial(nAxial),_nStereo(nStereo),_nPhi(
nPhi),_nZ(
nZ),
39 _stFndRng(sfr),_endFndRng(efr),_firstmdc(firstmdc),_lastmdc(lastmdc),
42 for(
unsigned j=0;j<5;j++)
43 _svtpat[j] = svtpattern[j];
48 _nAxial = rhs._nAxial;
49 _nStereo = rhs._nStereo;
52 _stFndRng = rhs._stFndRng;
53 _endFndRng = rhs._endFndRng;
54 _firstmdc = rhs._firstmdc;
55 _lastmdc = rhs._lastmdc;
56 _inactive = rhs._inactive;
57 for (
unsigned i=0;i<5;++i) _svtpat[i] = rhs._svtpat[i];
69 _stFndRng = other.startFoundRange();
70 _endFndRng = other.endFoundRange();
71 _firstmdc = other.firstMdcLayer();
72 _lastmdc = other.lastMdcLayer();
73 for(
unsigned ilay=0;ilay<5;ilay++)
74 _svtpat[ilay] = other.svtView(ilay+1);
75 unsigned nhits = other.nHit();
76 std::vector<unsigned> inactive;
77 for(
unsigned ihit=0;ihit<
nhits;ihit++)
78 if(!other.isActive(ihit))
79 inactive.push_back(ihit);
97 _nAxial(other.nMdc(
TrkEnums::xyView)),
98 _nStereo(other.nMdc(
TrkEnums::zView)),
101 _stFndRng(other.startFoundRange()),
102 _endFndRng(other.endFoundRange()),
103 _firstmdc(other.firstMdcLayer()),
104 _lastmdc(other.lastMdcLayer())
106 for(
unsigned ilay=0;ilay<5;ilay++)
107 _svtpat[ilay] = other.svtView(ilay+1);
108 unsigned nhit = other.nHit();
109 for(
unsigned ihit=0;ihit<nhit;ihit++)
111 _inactive.push_back(ihit);
144 return _nStereo + _nAxial;
155 nhit += _inactive.size();
157 nhit += _inactive.size()/2;
174const std::vector<TrkHitOnTrk*>&
177 static const std::vector<TrkHitOnTrk*> dummy;
178 assert(dummy.empty());
183std::vector<TrkHitOnTrk*>&
186 static std::vector<TrkHitOnTrk*> dummy;
187 assert(dummy.empty());
239 std::vector<unsigned>::const_iterator ifound =
240 std::find(_inactive.begin(),_inactive.end(),ihot);
241 return ifound == _inactive.end();
TrkHotListEmpty(int nActive, int nSvt, int nMdc, double startFoundRange, double endFoundRange)
virtual TrkView svtView(int layer) const
virtual int nHit(TrkEnums::TrkViewInfo view=TrkEnums::bothView) const
virtual void updateHots()
virtual TrkHotList * clone(TrkBase::Functors::cloneHot) const
TrkHitOnTrk * findHot(const TrkFundHit *) const
virtual int nMdc(TrkEnums::TrkViewInfo view=TrkEnums::bothView) const
virtual ~TrkHotListEmpty()
virtual int nSvt(TrkEnums::TrkViewInfo view=TrkEnums::bothView) const
virtual bool isActive(unsigned ihot) const
virtual bool hitCapable() const
virtual unsigned lastMdcLayer() const
virtual int nActive(TrkEnums::TrkViewInfo view=TrkEnums::bothView) const
TrkHotListEmpty & operator=(const TrkHotList &)
virtual void append(TrkHitOnTrk *)
virtual unsigned firstMdcLayer() const
virtual double endFoundRange() const
virtual void remove(TrkHitOnTrk *)
virtual const std::vector< TrkHitOnTrk * > & hotlist() const
virtual double startFoundRange() const