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

AtNuFitModule.cxx

Go to the documentation of this file.
00001 #include  "AtNuFitModule.h"
00002 
00003 #include "Algorithm/AlgConfig.h"
00004 #include "Algorithm/AlgFactory.h"
00005 #include "Algorithm/AlgHandle.h"
00006 
00007 #include "CandData/CandRecord.h"
00008 #include "Candidate/CandContext.h"
00009 #include "JobControl/JobCModuleRegistry.h"
00010 #include "JobControl/JobCommand.h"
00011 #include "MessageService/MsgService.h"
00012 #include "MinosObjectMap/MomNavigator.h"
00013 
00014 #include "RecoBase/CandTrackHandle.h"
00015 #include "RecoBase/CandTrackListHandle.h"
00016 
00017 #include "CandFitTrackAtNuHandle.h"
00018 #include "CandFitTrackAtNuListHandle.h"
00019 
00020 #include <sys/time.h>
00021 
00022 //
00023 // $Log $
00024 //
00025 
00026 ClassImp(AtNuFitModule)
00027 
00028 CVSID("$Id: AtNuFitModule.cxx,v 1.7 2006/03/28 13:54:11 blake Exp $");
00029 JOBMODULE(AtNuFitModule, "AtNuFitModule","AtNu Track/Shower Fitter Module");
00030 
00031 AtNuFitModule::AtNuFitModule() :
00032   fListIn("CandTrackListHandle"),
00033   fListOut("CandFitTrackAtNuListHandle")
00034 {
00035   
00036 }
00037 
00038 AtNuFitModule::~AtNuFitModule()
00039 {
00040  
00041 }
00042 
00043 void AtNuFitModule::BeginJob()
00044 {
00045 
00046   MSG("AtNuFitModule", Msg::kInfo) << " *** AtNuFitModule::BeginJob() *** " << endl;
00047 
00048   /*
00049   AlgFactory &af = AlgFactory::GetInstance();
00050   af.Register("AlgFitTrackAtNuList", "default", "libAtNuReco.so", "AlgConfig");
00051   af.Register("AlgFitTrackAtNu", "default", "libAtNuReco.so", "AlgConfig");
00052   */
00053 }
00054 
00055 JobCResult AtNuFitModule::Reco(MomNavigator *mom)
00056 {
00057 
00058   // AtNuFitModule::Reco()
00059   MSG("AtNuFitModule", Msg::kInfo) << " *** AtNuFitModule::Reco() *** " << endl;
00060   JobCResult result(JobCResult::kPassed);
00061 
00062   // Start Clock
00063   struct timeval tpbefore;
00064   gettimeofday(&tpbefore,0);
00065 
00066   // Get CandRecord
00067   CandRecord *candrec = dynamic_cast<CandRecord *> (mom->GetFragment("CandRecord", "PrimaryCandidateRecord"));
00068   if(!candrec){ 
00069     MSG("AtNuFitModule", Msg::kWarning) << " Failed to Fit CandRecord " << endl;
00070     return result.SetFailed();
00071   }
00072 
00073   // Get CandTrackListHandle
00074   CandTrackListHandle* track_list = dynamic_cast<CandTrackListHandle*>(candrec->FindCandHandle("CandTrackListHandle",fListIn.Data()));
00075   if(!track_list){
00076     MSG("AtNuFitModule", Msg::kWarning) << " Failed to Find " << fListIn.Data() << endl;
00077     return result.SetAOK();
00078   }
00079 
00080   // Make CandFitTrackAtNuHandle
00081   MSG("AtNuFitModule", Msg::kDebug) << " Make CandFitTrackAtNuHandle " << endl;
00082  
00083   AlgFactory &af = AlgFactory::GetInstance();
00084   AlgHandle ah_atnu = af.GetAlgHandle("AlgFitTrackAtNuList", "default");
00085   CandContext cx_atnu(this, mom);
00086   cx_atnu.SetCandRecord(candrec);
00087   cx_atnu.SetDataIn(track_list);
00088 
00089   CandFitTrackAtNuListHandle candfittrack = CandFitTrackAtNuList::MakeCandidate(ah_atnu, cx_atnu);
00090   candfittrack.SetName(fListOut.Data());
00091   candfittrack.SetTitle(TString("Created by AtNuFitModule from ").Append(track_list->GetName()));
00092 
00093   // Stop Clock
00094   struct timeval tpafter;
00095   gettimeofday(&tpafter,0);
00096 
00097   Double_t dtime;
00098   dtime = 1000.0*(tpafter.tv_sec-tpbefore.tv_sec)+0.001*(tpafter.tv_usec-tpbefore.tv_usec);
00099   candfittrack.SetCPUTime(dtime);
00100 
00101   candrec->SecureCandHandle(candfittrack);
00102 
00103   MSG("AtNuFitModule", Msg::kInfo) << " *** AtNuFitModule::Reco() FINISHED *** " << endl;
00104 
00105   return result;
00106 
00107 }
00108 
00109 JobCResult AtNuFitModule::Ana(const MomNavigator * /*mom*/)
00110 {
00111 
00112   JobCResult result(JobCResult::kPassed);
00113 
00114 
00115   return result;
00116 
00117 }
00118 
00119 const Registry& AtNuFitModule::DefaultConfig() const
00120 {
00121 
00122   MSG("AtNuFitModule", Msg::kInfo) << " *** AtNuFitModule::DefaultConfig() *** " << endl;
00123 
00124   static Registry r;
00125   r.SetName("AtNuFitModule.config.default");
00126   r.UnLockValues();
00127   r.Set("ListIn",fListIn.Data());
00128   r.Set("ListOut",fListOut.Data());
00129   r.Set("BFieldMap",201);
00130   r.LockValues();
00131 
00132   AlgFactory &af = AlgFactory::GetInstance();
00133 
00134   af.Register("AlgFitTrackAtNu", "default");
00135   AlgHandle ah_atnu = af.GetAlgHandle("AlgFitTrackAtNu","default");
00136   AlgConfig &ac_atnu = ah_atnu.GetAlgConfig();
00137   ac_atnu.UnLockValues();
00138   ac_atnu.Set("BFieldMap",201);
00139   ac_atnu.LockValues();
00140 
00141   return r;
00142 }
00143 
00144 void AtNuFitModule::Config(const Registry& r)
00145 {
00146 
00147   MSG("AtNuFitModule", Msg::kInfo) << " *** AtNuFitModule::Config() *** " << endl;
00148 
00149   Int_t tmpint=0;
00150   const char* tmpchar = 0;
00151   if(r.Get("ListIn",tmpchar)) fListIn = tmpchar;
00152   if(r.Get("ListOut",tmpchar)) fListOut = tmpchar;
00153   MSG("AtNuFitModule", Msg::kInfo) << "   ... input: " << fListIn.Data() << endl;
00154   MSG("AtNuFitModule", Msg::kInfo) << "   ... output: " << fListOut.Data() << endl;
00155 
00156   AlgFactory &af = AlgFactory::GetInstance();
00157     
00158   AlgHandle ah_atnu = af.GetAlgHandle("AlgFitTrackAtNu","default");
00159   AlgConfig &ac_atnu = ah_atnu.GetAlgConfig();
00160   ac_atnu.UnLockValues();
00161   if(r.Get("BFieldMap",tmpint)) ac_atnu.Set("BFieldMap",tmpint);
00162   ac_atnu.LockValues();
00163 
00164 
00165   return;
00166 }
00167 
00168 void AtNuFitModule::HandleCommand(JobCommand *command)
00169 {
00170   TString cmd = command->PopCmd();
00171   if(cmd=="Set"){
00172     TString opt = command->PopOpt();
00173 
00174   }
00175 }
00176 
00177 void AtNuFitModule::EndJob()
00178 {   
00179 
00180 }     

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