/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/MdcPatRec/TrkBase/TrkBase-00-01-12/TrkBase/TrkHotListUnowned.h

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //      $Id: TrkHotListUnowned.h,v 1.1.1.1 2005/04/21 06:01:42 zhangy Exp $
00004 //
00005 // Description: class TrkHotListUnowned.  A copy of TrkHotListFull where the
00006 // hots are not owned by this class.  This is useful in nested reps like the
00007 //  mini-rep, where only 1 can truely own the hots but both may need access to
00008 // them.
00009 //
00010 // Environment:
00011 //      Software developed for the BaBar Detector at the SLAC B-Factory.
00012 //
00014 //      Copyright (C) 2000      Lawrence Berkeley Laboratory
00015 //
00016 // Author List:
00017 //      Dave Brown 11/6/00
00018 //------------------------------------------------------------------------
00019 
00020 #ifndef TRKHOTLISTUNOWNED_HH
00021 #define TRKHOTLISTUNOWNED_HH
00022 #include "TrkBase/TrkHotList.h"
00023 #include "TrkBase/TrkHitOnTrkUpdater.h"
00024 
00025 class TrkFundHit;
00026 class TrkHitOnTrk;
00027 class TrkRep;
00028 
00029 // Class interface //
00030 class TrkHotListUnowned : public TrkHotList, TrkHitOnTrkUpdater {
00031 public:
00032 // create new HotList from another
00033   TrkHotListUnowned(TrkHotList* other,bool takehotlist=false);
00034 // copy and assignment are OK for this class
00035   TrkHotListUnowned(const TrkHotListUnowned& rhs);
00036   TrkHotListUnowned&   operator= (const TrkHotListUnowned&);
00037 // cloning
00038   TrkHotList* clone(TrkBase::Functors::cloneHot) const;
00039   virtual ~TrkHotListUnowned();
00040 
00041   virtual bool      hitCapable()      const;
00042   virtual int        nActive(TrkEnums::TrkViewInfo view=TrkEnums::bothView) const;
00043   virtual int        nMdc(TrkEnums::TrkViewInfo view=TrkEnums::bothView) const;
00044   virtual int        nSvt(TrkEnums::TrkViewInfo view=TrkEnums::bothView) const;
00045   virtual int        nHit(TrkEnums::TrkViewInfo view=TrkEnums::bothView) const;
00046   virtual TrkView svtView(int layer) const;
00047   virtual unsigned  firstMdcLayer() const;
00048   virtual unsigned  lastMdcLayer() const;
00049   virtual double    startFoundRange() const;
00050   virtual double    endFoundRange()   const;
00051   virtual bool         isActive(unsigned ihot) const;
00052 
00053   void              append(TrkHitOnTrk* );
00054   void              remove(TrkHitOnTrk* );
00055   TrkHitOnTrk*      findHot(const TrkFundHit*) const;
00056   virtual void      updateHots();
00057 // special function for this class
00058   const TrkHotList* myHotList() const { return _hotl; }
00059 // take ownership
00060   TrkHotList* takeHotList();
00061 protected:
00062   virtual const std::vector<TrkHitOnTrk*>&   hotlist()   const;
00063   virtual       std::vector<TrkHitOnTrk*>&   hotlist();
00064 private:
00065 // reference to the real HotList
00066   TrkHotList* _hotl;
00067   bool _ownhots; // do I own these or not?
00068 };
00069 
00070 #endif

Generated on Tue Nov 29 23:13:42 2016 for BOSS_7.0.2 by  doxygen 1.4.7