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

ParticleReport.cxx

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 #include "NueAna/ParticlePID/ParticleFinder/Reporter/ParticleReport.h"
00009 #include "MessageService/MsgService.h"
00010 #include "MinosObjectMap/MomNavigator.h"
00011 #include "JobControl/JobCModuleRegistry.h" // For JOBMODULE macro
00012 
00013 #include "CandNtupleSR/NtpSREvent.h"
00014 #include "CandNtupleSR/NtpSRStrip.h"
00015 #include "CandNtupleSR/NtpSRPulseHeight.h"
00016 
00017 #include "StandardNtuple/NtpStRecord.h"
00018 
00019 
00020 #include "NueAna/ParticlePID/ParticleFinder/ParticleObjectHolder.h"
00021 #include "NueAna/ParticlePID/ParticleFinder/ParticleObject.h"
00022 #include "NueAna/ParticlePID/ParticleFinder/Particle.h"
00023 
00024 
00025 
00026 JOBMODULE(ParticleReport, "ParticleReport",
00027           "finds particles");
00028 
00029 //......................................................................
00030 
00031 ParticleReport::ParticleReport():reporter(0)  
00032 {
00033 
00034 
00035 reporter = new ParticleReportHelper();
00036 
00037 
00041 }
00042 //......................................................................
00043 
00044 ParticleReport::~ParticleReport()
00045 {
00049 
00050 if(reporter) delete reporter;
00051 
00052 }
00053 
00054 //......................................................................
00055 
00056 void ParticleReport::BeginJob()
00057 {
00061 }
00062 
00063 //......................................................................
00064 
00065 void ParticleReport::EndJob()
00066 {
00070 }
00071 
00072 //......................................................................
00073 
00074 JobCResult ParticleReport::Reco(MomNavigator* mom)
00075 {
00079 
00080 //MSG("ParticleReport",Msg::kDebug) << "reco called\n";
00081 
00082   NtpStRecord *str=dynamic_cast<NtpStRecord *>(mom->GetFragment("NtpStRecord"));
00083 
00084 
00085   //std::vector<ParticleObjectHolder *>* hf;
00086   std:vector<TObject* > hft =( mom->GetFragmentList("ParticleObjectHolder"));
00087 
00088 
00089 
00090   int make_new_holder=1;
00091 
00092 
00093   if(hft.size()>0)
00094   {
00095       make_new_holder=0;
00096   }
00097  
00098 
00099 printf("size of found array %d\n",hft.size()); 
00100 
00101   std::vector<const NtpSREvent* > evts = str->GetEvents();
00102   std::vector<const NtpSRStrip* > stp = str->GetStrips();
00103 
00104   printf("Events %d \n",evts.size());
00105   if(evts.size()<1)
00106         {
00107 
00108                 if(make_new_holder)
00109                 {
00110                         ParticleObjectHolder * h = new ParticleObjectHolder(); 
00111                         mom->AdoptFragment(h);
00112                 }
00113 
00114                 return JobCResult::kPassed;  
00115         }
00116 
00117 
00118         printf("!!! %d events, %d  currently there \n", evts.size(), hft.size());
00119 
00120   //for(int ievt=0;ievt<evts.size();ievt++)
00121  // {
00122 int ievt=0;
00123 
00124         reporter->Reset();
00125 
00126 
00127         ParticleObjectHolder *n=0;
00128 
00129 
00130         if(make_new_holder || hft.size() < ievt+1)
00131         {
00132                 ParticleObjectHolder * h = new ParticleObjectHolder();
00133                 mom->AdoptFragment(h);
00134                 n=h;
00135         }else{
00136                 n=dynamic_cast<ParticleObjectHolder *>(hft[ievt]);
00137         }
00138 
00139 
00140 printf("partices in current evt %d array %d \n", ievt, n->particles->GetEntries());
00141 
00142         if(n->particlematch->GetEntries()>0)return JobCResult::kPassed;//continue; //dont rerun it
00143 
00144 
00145         //loop over found particles
00146         
00147 
00148                 //loop over planes, strips in found particles
00149 
00150                 for(int i=0;i<n->particletruth[0].GetEntries();i++)
00151                         reporter->addtruth((ParticleTruthObject*)n->particletruth[0][i]);
00152 
00153                 for(int i=0;i<n->particles[0].GetEntries();i++)
00154                         reporter->addfound((ParticleObject *)n->particles[0][i]);
00155 
00156                 //record 
00157                 reporter->Process(*n);
00158 
00159 
00160  // }
00161 
00162 
00163 
00164   return JobCResult::kPassed; // kNoDecision, kFailed, etc.
00165 }
00166 
00167 //......................................................................
00168 
00169 const Registry& ParticleReport::DefaultConfig() const
00170 {
00174   static Registry r; // Default configuration for module
00175 
00176   // Set name of config
00177   std::string name = this->GetName();
00178   name += ".config.default";
00179   r.SetName(name.c_str());
00180 
00181   // Set values in configuration
00182   r.UnLockValues();
00183   r.LockValues();
00184 
00185   return r;
00186 }
00187 
00188 //......................................................................
00189 
00190 void ParticleReport::Config(const Registry& r)
00191 {
00195 }
00196 
00197 //......................................................................
00198 
00199 void ParticleReport::Reset()
00200 {
00204 }
00205 

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