00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: TrkSimpleMaker.h,v 1.2 2007/11/13 07:29:08 codeman Exp $ 00004 // 00005 // Description: 00006 // Creates tracks with reps of type T inside them (makeTrack()), or swaps 00007 // in a T rep for the existing Rep (changeFit()). In neither case 00008 // is a fit performed. T reps have an option of allowing hit-dropping 00009 // and ambiguity-flipping while fitting; these can be turned on 00010 // by invoking setFlipAndDrop() for that track. 00011 // 00012 // Environment: 00013 // Software developed for the BaBar Detector at the SLAC B-Factory. 00014 // 00015 // Author(s): Gerhard Raven 00016 // 00017 //------------------------------------------------------------------------ 00018 00019 #ifndef TRKSIMPLEMAKER_HH 00020 #define TRKSIMPLEMAKER_HH 00021 #include "TrkBase/TrkFitMaker.h" 00022 #include "TrkBase/TrkRep.h" 00023 00024 class TrkRep; 00025 00026 template <class T> 00027 class TrkSimpleMaker : public TrkFitMaker { 00028 public: 00029 TrkSimpleMaker(); 00030 virtual ~TrkSimpleMaker(); 00031 00032 virtual void changeFit(TrkRecoTrk& theTrack) const; 00033 TrkRecoTrk* makeTrack(const TrkExchangePar& helix, const 00034 double chi2, const TrkContext&, double trackT0) const; 00035 00036 // Change control parameters in track -- only valid for input SimpleReps. 00037 bool setFlipAndDrop(TrkRecoTrk&, bool allowFlips, bool allowDrops) const; 00038 00039 void setValidRange(TrkRecoTrk& track, double newLo, double newHi) const; 00040 void setValues(TrkRecoTrk& theTrack, 00041 const TrkExchangePar& newPars, double chi2) const; 00042 00043 private: 00044 // Preempt 00045 TrkSimpleMaker& operator= (const TrkSimpleMaker&); 00046 TrkSimpleMaker(const TrkSimpleMaker &); 00047 }; 00048 //#ifdef BABAR_COMP_INST 00049 #include "TrkFitter/TrkSimpleMaker.icc" 00050 //#endif 00051 00052 #endif