Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

AlgFitTrackSAList.cxx

Go to the documentation of this file.
00001 //_____________________________________________________________________________
00011 
00012 #include <cassert>
00013 #include <vector>
00014 
00015 #include "TClonesArray.h"
00016 
00017 #include "Algorithm/AlgFactory.h"
00018 #include "Algorithm/AlgHandle.h"
00019 #include "Algorithm/AlgConfig.h"
00020 #include "Candidate/CandContext.h"
00021 #include "RecoBase/CandTrackHandle.h"
00022 #include "RecoBase/CandTrackListHandle.h"
00023 #include "MessageService/MsgService.h"
00024 #include "Validity/VldContext.h"
00025 
00026 #include "CandFitTrackSA/AlgFitTrackSAList.h"
00027 #include "CandFitTrackSA/CandFitTrackSA.h"
00028 #include "CandFitTrackSA/CandFitTrackSAHandle.h"
00029 #include "CandFitTrackSA/TracerSA.h"
00030 
00031 CVSID("$Id: AlgFitTrackSAList.cxx,v 1.9 2006/02/13 05:06:09 avva Exp $");
00032 
00033 ClassImp(AlgFitTrackSAList)
00034 
00035 
00036 
00037 
00038 AlgFitTrackSAList::AlgFitTrackSAList() 
00039 {
00040     TracerSA trace("AlgFitTrackSAList::AlgFitTrackSAList()");
00041 }
00042 
00046 AlgFitTrackSAList::~AlgFitTrackSAList() 
00047 {
00048     TracerSA trace("AlgFitTrackSAList::~AlgFitTrackSAList()");
00049 }
00050 
00055 void AlgFitTrackSAList::RunAlg(AlgConfig& ac, 
00056                             CandHandle& cftlh, CandContext& trackListContext) 
00057 {
00058     TracerSA trace("AlgFitTrackSAList::RunAlg(AlgConfig&,CandHandle&,CandContext&)");
00059 
00060     const CandRecord* candrec = trackListContext.GetCandRecord();
00061     assert(candrec && "CandRecord* is NULL!!!");
00062     const CandTrackListHandle* ctlh = 
00063         static_cast<const CandTrackListHandle*> (trackListContext.GetDataIn());
00064     assert(ctlh && "CandTrackListHandle* is NULL!!!");
00065 
00066     // Get singleton instance of AlgFactory
00067     AlgFactory &af = AlgFactory::GetInstance();
00068 
00069     // Get an AlgHandle of FitTrackSAAlgorithm
00070     AlgHandle afth = af.GetAlgHandle(ac.GetCharString("FitTrackSAAlgorithm"), 
00071                                      ac.GetCharString("FitTrackSAAlgConfig"));
00072     
00073     TIter trackItr(ctlh->GetDaughterIterator());
00074     while (CandTrackHandle *track = 
00075                             dynamic_cast<CandTrackHandle*>(trackItr())) {
00076         // Create Candcontext for AlgFitTrackSA
00077         CandContext trackContext(this,trackListContext.GetMom());
00078         // set CandTrackHandle* as the "context data"
00079         trackContext.SetDataIn(track);
00080         // fit track (=== create handle)
00081         CandFitTrackSAHandle fittrack =
00082                             CandFitTrackSA::MakeCandidate(afth,trackContext);
00083         // add fit track to CandFitTrackListHandle daughter list
00084         cftlh.AddDaughterLink(fittrack);
00085     }
00086 
00087 }

Generated on Mon Feb 15 11:06:18 2010 for loon by  doxygen 1.3.9.1