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

FitTrackSAListModule.cxx

Go to the documentation of this file.
00001 //_____________________________________________________________________________
00009 
00010 #include "TClonesArray.h"
00011 
00012 #include "MessageService/MsgService.h"
00013 #include "MinosObjectMap/MomNavigator.h"
00014 #include "Algorithm/AlgFactory.h"
00015 #include "Algorithm/AlgConfig.h"
00016 #include "Algorithm/AlgHandle.h"
00017 #include "CandData/CandRecord.h"
00018 #include "CandData/CandHeader.h"
00019 #include "RawData/RawRecord.h"
00020 #include "RawData/RawDaqSnarlHeader.h"
00021 #include "RecoBase/CandFitTrackList.h"
00022 #include "RecoBase/CandFitTrackListHandle.h"
00023 #include "RecoBase/CandTrackHandle.h"
00024 #include "RecoBase/CandTrackListHandle.h"
00025 #include "Candidate/CandContext.h"
00026 #include "JobControl/JobCModuleRegistry.h"
00027 
00028 #include "CandFitTrackSA/FitTrackSAListModule.h"
00029 #include "CandFitTrackSA/CandFitTrackSAHandle.h"
00030 #include "CandFitTrackSA/TracerSA.h"
00031 
00032 #include "CandFitTrackSA/Ntp/NtpFitSARecord.h"
00033 #include "CandFitTrackSA/Ntp/NtpFitSA.h"
00034 
00035 JOBMODULE(FitTrackSAListModule, "FitTrackSAListModule",
00036           "Fits tracks using iterative least squares method as described"
00037           "in the NuMI-301 note (Adam Para, Jenny Thomas)");
00038 
00039 CVSID("$Id: FitTrackSAListModule.cxx,v 1.14 2006/02/13 03:50:22 avva Exp $");
00040 
00044 FitTrackSAListModule::FitTrackSAListModule() 
00045 {
00046     TracerSA trace("FitTrackSAListModule::FitTrackSAListModule()");
00047 }
00048 
00052 FitTrackSAListModule::~FitTrackSAListModule() 
00053 {
00054     TracerSA trace("FitTrackSAListModule::~FitTrackSAListModule()");
00055 }
00056 
00057 
00061 void    FitTrackSAListModule::BeginJob()
00062 {}
00063 
00064 
00068 void    FitTrackSAListModule::EndJob()
00069 {}
00070 
00071 
00075 JobCResult FitTrackSAListModule::Ana(const MomNavigator* /* mom */) 
00076 {
00077     TracerSA trace("FitTrackSAListModule::Ana(const MomNavigator*)");
00078     
00079     JobCResult result(JobCResult::kPassed);
00080     return result;
00081 }
00082 
00086 JobCResult FitTrackSAListModule::Reco(MomNavigator* mom) 
00087 {
00088     TracerSA trace("FitTrackSAListModule::Reco(MomNavigator*)");    
00089 
00090     //JobCResult result(JobCResult::kPassed);
00091    
00092     CandRecord* cndrec = dynamic_cast<CandRecord*>
00093         (mom->GetFragment("CandRecord","PrimaryCandidateRecord"));
00094     if (!cndrec) {
00095         MSG("FitTrackSA",Msg::kWarning) 
00096             << "No PrimaryCandidateRecord in Mom" << endl;
00097         //result.SetWarning().SetFailed();
00098         return JobCResult::kPassed;
00099     }
00100 
00101     CandTrackListHandle* ctlh = dynamic_cast<CandTrackListHandle *>
00102         (cndrec->FindCandHandle("",GetConfig().GetCharString("ListIn")));
00103     if ( !ctlh ) {
00104         MSG("FitTrackSA", Msg::kWarning) << "CandTrackList " 
00105             << GetConfig().GetCharString("ListIn") 
00106             << " not found in the candidate record!" << endl;
00107         //result.SetWarning().SetFailed();
00108         //return result;
00109         return JobCResult::kPassed;
00110     }
00111 
00112     // Require number of CandTracks to be non-zero.
00113     if ( ctlh->GetNDaughters() < 1) {
00114         MSG("FitTrackSA", Msg::kDebug) << "List " 
00115             << GetConfig().GetCharString("ListIn") 
00116             << " does not contain any tracks!" << endl;
00117         return JobCResult::kPassed;
00118     }
00119 
00120     // create CandContext
00121     CandContext trackListContext(this, mom);
00122     // set CandTrackListHandle* as the "context data"
00123     trackListContext.SetDataIn(ctlh);
00124     // set context CandRecord
00125     trackListContext.SetCandRecord(cndrec);
00126 
00127     AlgFactory &af = AlgFactory::GetInstance();
00128     AlgHandle aftlh = af.GetAlgHandle(
00129                         GetConfig().GetCharString("FitTrackSAListAlgorithm"), 
00130                         GetConfig().GetCharString("FitTrackSAListAlgConfig"));
00131 
00132     CandFitTrackListHandle cftlh = 
00133                     CandFitTrackList::MakeCandidate(aftlh, trackListContext);
00134 
00135     cftlh.SetName(GetConfig().GetCharString("ListOut"));
00136     cftlh.SetTitle( TString("Created by FitTrackSAListModule from ").
00137                                                     Append(ctlh->GetName()));
00138 
00139     cndrec->SecureCandHandle(cftlh);
00140     
00141     return JobCResult::kPassed;
00142 }
00143 
00148 const Registry& FitTrackSAListModule::DefaultConfig() const 
00149 {
00150     static bool been_here = false;
00151     static Registry def_cfg;
00152     if (been_here) return def_cfg;
00153     
00154     been_here = true;
00155 
00156     string name = this->JobCModule::GetName();
00157     name += ".config.default";
00158     def_cfg.SetName(name.c_str());
00159 
00160     // Set defaults
00161     def_cfg.Set("FitTrackSAListAlgorithm","AlgFitTrackSAList");
00162     def_cfg.Set("FitTrackSAListAlgConfig","default");
00163     def_cfg.Set("ListIn","CandTrackSRList");
00164     def_cfg.Set("ListOut","CandFitTrackSAList");
00165 
00166     return def_cfg;
00167 }

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