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
1.3.9.1