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

AtNuFindModule.cxx

Go to the documentation of this file.
00001 #include  "AtNuFindModule.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 #include "UgliGeometry/UgliGeomHandle.h"
00014 #include "Validity/VldContext.h"
00015 #include "Plex/PlexPlaneId.h"
00016 
00017 #include "RecoBase/CandSliceListHandle.h"
00018 #include "RecoBase/CandSliceHandle.h"
00019 
00020 #include "CandAtNuRecoHandle.h"
00021 #include "CandShowerAtNuHandle.h"
00022 #include "CandShowerAtNuListHandle.h"
00023 #include "CandTrackAtNuHandle.h"
00024 #include "CandTrackAtNuListHandle.h"
00025 
00026 //
00027 // $Log $
00028 //
00029 
00030 ClassImp(AtNuFindModule)
00031 
00032 CVSID("$Id: AtNuFindModule.cxx,v 1.12 2006/03/28 13:54:11 blake Exp $");
00033 JOBMODULE(AtNuFindModule, "AtNuFindModule","AtNu Track/Shower Finder Module");
00034 
00035 AtNuFindModule::AtNuFindModule() :
00036   fListIn("CandSliceListHandle"),
00037   fMCTruthFlag(0)
00038 {
00039   
00040 }
00041 
00042 AtNuFindModule::~AtNuFindModule()
00043 {
00044  
00045 }
00046 
00047 void AtNuFindModule::BeginJob()
00048 {
00049 
00050   MSG("AtNuFindModule", Msg::kInfo) << " *** AtNuFindModule::BeginJob() *** " << endl;
00051 
00052   /*
00053   AlgFactory &af = AlgFactory::GetInstance();
00054   af.Register("AlgAtNuReco","default","libAtNuReco.so","AlgConfig");
00055   af.Register("AlgAtNuRecoMCTruth","default","libAtNuReco.so","AlgConfig");
00056   af.Register("AlgTrackAtNuList", "default", "libAtNuReco.so", "AlgConfig");
00057   af.Register("AlgTrackAtNu", "default", "libAtNuReco.so", "AlgConfig");
00058   af.Register("AlgShowerAtNuList", "default", "libAtNuReco.so", "AlgConfig");
00059   af.Register("AlgShowerAtNu", "default", "libAtNuReco.so", "AlgConfig");
00060   */
00061 }
00062 
00063 JobCResult AtNuFindModule::Reco(MomNavigator *mom)
00064 {
00065 
00066   // AtNuFindModule::Reco()
00067   MSG("AtNuFindModule", Msg::kInfo) << " *** AtNuFindModule::Reco() *** " << endl;
00068   JobCResult result(JobCResult::kPassed);
00069 
00070   // Find PrimaryCandidateRecord fragment in mom.
00071   CandRecord *candrec = dynamic_cast<CandRecord *> (mom->GetFragment("CandRecord", "PrimaryCandidateRecord"));
00072   if(!candrec){ 
00073     MSG("AtNuFindModule", Msg::kWarning) << " Failed to Find CandRecord " << endl;
00074     return result.SetFailed();
00075   }
00076 
00077   // Find CandSliceList in PrimaryCandidateRecord.   
00078   CandSliceListHandle *cslh = dynamic_cast<CandSliceListHandle*>(candrec->FindCandHandle("CandSliceListHandle",fListIn.Data()));
00079   if(!cslh){
00080     MSG("AtNuFindModule", Msg::kWarning) << " Failed to Find " << fListIn.Data() << endl;
00081     return result.SetFailed();
00082   }
00083 
00084   // Make CandAtNuRecoHandle
00085   MSG("AtNuFindModule", Msg::kDebug) << " Make CandAtNuRecoHandle " << endl;
00086   TString alg_atnu("AlgAtNuReco"); if(fMCTruthFlag) alg_atnu.Append("MCTruth");
00087   MSG("AtNuFindModule", Msg::kDebug) << "     ... using algorithm " << alg_atnu.Data() << endl;
00088 
00089   AlgFactory &af = AlgFactory::GetInstance();
00090   AlgHandle ah_atnu = af.GetAlgHandle(alg_atnu.Data(), "default");
00091   
00092   CandContext cx_atnu(this, mom);
00093   cx_atnu.SetCandRecord(candrec);
00094   cx_atnu.SetDataIn(cslh);
00095   CandAtNuRecoHandle candatnu = CandAtNuReco::MakeCandidate(ah_atnu, cx_atnu);
00096   candatnu.SetName("CandAtNuRecoHandle");
00097   candatnu.SetTitle(TString("Created by AtNuFindModule from ").Append(cslh->GetName()));
00098   
00099   candrec->SecureCandHandle(candatnu);
00100 
00101   MSG("AtNuFindModule", Msg::kInfo) << " *** AtNuFindModule::Reco() FINISHED *** " << endl;
00102 
00103   return result;
00104 
00105 }
00106 
00107 JobCResult AtNuFindModule::Ana(const MomNavigator * /*mom*/)
00108 {
00109 
00110   JobCResult result(JobCResult::kPassed);
00111 
00112 
00113   return result;
00114 
00115 }
00116 
00117 const Registry& AtNuFindModule::DefaultConfig() const
00118 {
00119 
00120   MSG("AtNuFindModule", Msg::kInfo) << " *** AtNuFindModule::DefaultConfig() *** " << endl;
00121 
00122   static Registry r;
00123   r.SetName("AtNuFindModule.config.default");
00124   r.UnLockValues();
00125   r.Set("ListIn",fListIn.Data());
00126   r.Set("MCTruthFlag",fMCTruthFlag);
00127   r.Set("ListOutTrk","CandTrackAtNuListHandle");
00128   r.Set("ListOutShw","CandShowerAtNuListHandle");
00129   r.Set("VtxFlag",1);
00130   r.Set("PeCut",1.0);
00131   r.Set("FibreIndex",1.77);
00132   r.Set("AtNuAnaOnOff",1);
00133   r.LockValues();
00134 
00135   AlgFactory &af = AlgFactory::GetInstance();
00136 
00137   af.Register("AlgAtNuReco","default");
00138   AlgHandle ah_atnu = af.GetAlgHandle("AlgAtNuReco","default");
00139   AlgConfig &ac_atnu = ah_atnu.GetAlgConfig();
00140   ac_atnu.UnLockValues();
00141   ac_atnu.Set("ListOutTrk","CandTrackAtNuListHandle");
00142   ac_atnu.Set("ListOutShw","CandShowerAtNuListHandle");
00143   ac_atnu.Set("VtxFlag",1);
00144   ac_atnu.Set("PeCut",1.0);
00145   ac_atnu.LockValues();
00146 
00147   af.Register("AlgAtNuRecoMCTruth","default");
00148   AlgHandle ah_atnumc = af.GetAlgHandle("AlgAtNuRecoMCTruth","default");
00149   AlgConfig &ac_atnumc = ah_atnumc.GetAlgConfig();
00150   ac_atnumc.UnLockValues();
00151   ac_atnumc.Set("ListOutTrk","CandMCTrackAtNuListHandle");
00152   ac_atnumc.Set("ListOutShw","CandMCShowerAtNuListHandle");
00153   ac_atnumc.LockValues();
00154 
00155   af.Register("AlgTrackAtNu", "default");
00156   AlgHandle ah_trk = af.GetAlgHandle("AlgTrackAtNu","default");
00157   AlgConfig &ac_trk = ah_trk.GetAlgConfig();
00158   ac_trk.UnLockValues();
00159   ac_trk.Set("FibreIndex",1.77);
00160   ac_trk.Set("AtNuAnaOnOff",1);
00161   ac_trk.LockValues();
00162 
00163   af.Register("AlgShowerAtNu", "default");
00164   AlgHandle ah_shw = af.GetAlgHandle("AlgShowerAtNu","default");
00165   AlgConfig &ac_shw = ah_shw.GetAlgConfig();
00166   ac_shw.UnLockValues();
00167   ac_shw.Set("FibreIndex",1.77);
00168   ac_shw.Set("AtNuAnaOnOff",1);
00169   ac_shw.LockValues();
00170 
00171   return r;
00172 }
00173 
00174 void AtNuFindModule::Config(const Registry &r)
00175 {
00176 
00177   MSG("AtNuFindModule", Msg::kInfo) << " *** AtNuFindModule::Config() *** " << endl;
00178 
00179   Int_t tmpint; Double_t tmpdub; const char* tmpchar = 0;
00180 
00181   if(r.Get("ListIn",tmpchar)) fListIn = tmpchar;
00182   if(r.Get("MCTruthFlag",tmpint)) fMCTruthFlag = tmpint;
00183 
00184   AlgFactory &af = AlgFactory::GetInstance();
00185 
00186   AlgHandle ah_atnu = af.GetAlgHandle("AlgAtNuReco","default");
00187   AlgConfig &ac_atnu = ah_atnu.GetAlgConfig();
00188   ac_atnu.UnLockValues();
00189   if(r.Get("ListOutTrk",tmpchar)) ac_atnu.Set("ListOutTrk",tmpchar);
00190   if(r.Get("ListOutShw",tmpchar)) ac_atnu.Set("ListOutShw",tmpchar);
00191   if(r.Get("VtxFlag",tmpint)) ac_atnu.Set("VtxFlag",tmpint);
00192   if(r.Get("PeCut",tmpdub)) ac_atnu.Set("PeCut",tmpdub);
00193   ac_atnu.LockValues();
00194 
00195   AlgHandle ah_atnumc = af.GetAlgHandle("AlgAtNuRecoMCTruth","default");
00196   AlgConfig &ac_atnumc = ah_atnumc.GetAlgConfig();
00197   ac_atnumc.UnLockValues();
00198   if(r.Get("ListOutTrk",tmpchar)) ac_atnumc.Set("ListOutTrk",tmpchar);
00199   if(r.Get("ListOutShw",tmpchar)) ac_atnumc.Set("ListOutShw",tmpchar);
00200   ac_atnumc.LockValues();
00201 
00202   AlgHandle ah_trk = af.GetAlgHandle("AlgTrackAtNu","default");
00203   AlgConfig &ac_trk = ah_trk.GetAlgConfig();
00204   ac_trk.UnLockValues();
00205   if(r.Get("FibreIndex",tmpdub)) ac_trk.Set("FibreIndex",tmpdub);
00206   if(r.Get("AtNuAnaOnOff",tmpint)) ac_trk.Set("AtNuAnaOnOff",tmpint);
00207   ac_trk.LockValues();
00208 
00209   AlgHandle ah_shw = af.GetAlgHandle("AlgShowerAtNu","default");
00210   AlgConfig &ac_shw = ah_shw.GetAlgConfig();
00211   ac_shw.UnLockValues();
00212   if(r.Get("FibreIndex",tmpdub)) ac_shw.Set("FibreIndex",tmpdub);
00213   if(r.Get("AtNuAnaOnOff",tmpint)) ac_shw.Set("AtNuAnaOnOff",tmpint);
00214   ac_shw.LockValues();
00215 
00216   return;
00217 }
00218 
00219 void AtNuFindModule::HandleCommand(JobCommand *command)
00220 {
00221   TString cmd = command->PopCmd();
00222   if(cmd=="Set"){
00223     TString opt = command->PopOpt();
00224 
00225   }
00226 }
00227 
00228 void AtNuFindModule::EndJob()
00229 {   
00230 
00231 }     
00232 

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