#include <Node.h>
Inheritance diagram for jobc::Node:

Public Member Functions | |
| Node () | |
| Node (const char *name, const char *ver="default", bool isSeq=false) | |
| Node (const Node &n) | |
| virtual | ~Node () |
| const char * | Name () const |
| const char * | FolderName () const |
| bool | IsSequence () const |
| void | SetFilter (bool onoff=true) |
| void | ReverseFilter (bool onoff=true) |
| void | ActivateReco (bool onoff=true) |
| void | ActivateAna (bool onoff=true) |
| void | StepInToFolder () const |
| void | StepOutOfFolder () const |
| Node & | operator= (const Node &rhs) |
| Module * | GetModule () |
| virtual Node * | GetNode (const char *) |
| virtual bool | Exec (edm::EventHandle &evt) |
| virtual void | Print (const char *indent=0) const |
| virtual void | ResourceReport (bool printheader=false) const |
| double | AnaTime () const |
| double | RecoTime () const |
| std::string | AsXML () const |
Protected Attributes | |
| Module * | fModule |
| bool | fIsSequence |
| std::string | fName |
| Name of module/node. | |
| std::string | fVersion |
| Configuration version used by module. | |
| std::string | fFolderName |
| Name of folder used for histogram output. | |
| bool | fFilterActive |
| Are the filters active? | |
| bool | fFilterReversed |
| Reverse the meanings of pass/fail? | |
| bool | fRecoActive |
| Run the Reco method? | |
| bool | fAnaActive |
| Run the Ana method? | |
| unsigned int | fNpassReco |
| # of events which passed Reco method | |
| unsigned int | fNfailReco |
| # of events which passed Reco method | |
| unsigned int | fNpassAna |
| # of events which passed Ana method | |
| unsigned int | fNfailAna |
| # of events which failed Ana method | |
| Resource | fResourceAna |
| Resources used by Ana method. | |
| Resource | fResourceReco |
| Resources used by Reco method. | |
Definition at line 21 of file Node.h.
|
|
Definition at line 25 of file Node.cxx. Referenced by jobc::Sequence::PushBack(), and jobc::Sequence::PushFront(). 00025 : 00026 fModule ( 0 ), 00027 fIsSequence ( false ), 00028 fName ( "*" ), 00029 fVersion ( "*" ), 00030 fFolderName ( "?" ), 00031 fFilterActive ( true ), 00032 fFilterReversed ( false ), 00033 fRecoActive ( true ), 00034 fAnaActive ( true ), 00035 fNpassReco ( 0 ), 00036 fNfailReco ( 0 ), 00037 fNpassAna ( 0 ), 00038 fNfailAna ( 0 ) 00039 { }
|
|
||||||||||||||||
|
Definition at line 43 of file Node.cxx. References fFolderName, fIsSequence, and fVersion. 00043 : 00044 fModule ( 0 ), 00045 fIsSequence ( isSeq ), 00046 fName ( name ), 00047 fVersion ( version ), 00048 fFolderName ( "" ), 00049 fFilterActive ( true ), 00050 fFilterReversed ( false ), 00051 fRecoActive ( true ), 00052 fAnaActive ( true ), 00053 fNpassReco ( 0 ), 00054 fNfailReco ( 0 ), 00055 fNpassAna ( 0 ), 00056 fNfailAna ( 0 ) 00057 { 00058 // strip ':' (which come from namespaces) from folder names 00059 for (int i=0; name[i]!='\0'; ++i) 00060 if (name[i] != ':') fFolderName += name[i]; 00061 00062 // Attach version to folder name if its not 'default' 00063 if (fIsSequence==false && fVersion!="default") { 00064 00065 fFolderName += "_"; 00066 fFolderName += fVersion; 00067 } 00068 00069 }
|
|
|
Definition at line 73 of file Node.cxx. 00073 : 00074 fModule ( 0 ), 00075 fIsSequence ( false ), 00076 fName ( "*" ), 00077 fVersion ( "*" ), 00078 fFolderName ( "?" ), 00079 fFilterActive ( true ), 00080 fFilterReversed ( false ), 00081 fRecoActive ( true ), 00082 fAnaActive ( true ), 00083 fNpassReco ( 0 ), 00084 fNfailReco ( 0 ), 00085 fNpassAna ( 0 ), 00086 fNfailAna ( 0 ), 00087 fResourceAna (n.fResourceAna), 00088 fResourceReco (n.fResourceReco) 00089 { *this = n; }
|
|
|
Definition at line 93 of file Node.cxx. References fModule, StepInToFolder(), and jobc::HistoFile::StepOut(). 00094 {
00095 if (fModule) {
00096 this->StepInToFolder();
00097 delete fModule;
00098 fModule = 0;
00099 HistoFile::StepOut();
00100 }
00101 }
|
|
|
Definition at line 35 of file Node.h. Referenced by jobc::nodeBuilder::Build(), testJobCJob(), testJobCNode(), and testJobCSequence(). 00035 { fAnaActive = onoff; }
|
|
|
Definition at line 34 of file Node.h. Referenced by jobc::nodeBuilder::Build(), testJobCJob(), testJobCNode(), and testJobCSequence(). 00034 { fRecoActive = onoff; }
|
|
|
Definition at line 105 of file Node.cxx. References fResourceAna, jobc::Resource::stime, and jobc::Resource::utime. Referenced by jobc::Sequence::Print(). 00105 {
00106 return fResourceAna.stime+fResourceAna.utime;
00107 }
|
|
|
Return a string which contains the XML flags required to create this node Reimplemented in jobc::Job, and jobc::Sequence. Definition at line 371 of file Node.cxx. References fName, and fVersion. Referenced by testJobCNode(). 00372 {
00373 std::ostringstream xml;
00374
00375 xml << "<node ";
00376 if (fIsSequence) xml << "sequence=\"" << fName << "\" ";
00377 else xml << "module=\"" << fName << "\" ";
00378
00379 xml << "config=\"" << fVersion << "\" ";
00380
00381 if (fRecoActive) xml << "reco=\"1\" ";
00382 else xml << "reco=\"0\" ";
00383
00384 if (fAnaActive) xml << "ana=\"1\" ";
00385 else xml << "ana=\"0\" ";
00386
00387 if (fFilterActive) {
00388 if (fFilterReversed) xml << "filter=\"reversed\"";
00389 else xml << "filter=\"on\"";
00390 }
00391 else {
00392 xml << "filter=\"off\"";
00393 }
00394 xml << "/>";
00395
00396 return xml.str();
00397 }
|
|
|
Reimplemented in jobc::Sequence. Definition at line 176 of file Node.cxx. References jobc::Module::Ana(), jobc::Resource::Difference(), fAnaActive, fFilterActive, fRecoActive, fResourceAna, fResourceReco, GetModule(), jobc::Resource::Log(), jobc::Module::Reco(), jobc::Result, StepInToFolder(), StepOutOfFolder(), and jobc::Resource::Sum(). 00177 {
00178 //======================================================================
00179 // Run the Ana/Reco methods for the module
00180 //======================================================================
00181 bool passed = true;
00182 Result passedReco = kPassed;
00183 Result passedAna = kPassed;
00184 Resource r0;
00185 Resource r1;
00186 if (fRecoActive) {
00187 // Execute the method
00188 this->StepInToFolder();
00189 r0.Log();
00190 passedReco = this->GetModule()->Reco(evt);
00191 r1.Log();
00192 r1.Difference(r0);
00193 fResourceReco.Sum(r1);
00194 this->StepOutOfFolder();
00195 if (passedReco==kPassed) ++fNpassReco;
00196 else ++fNfailReco;
00197 }
00198 if (fAnaActive) {
00199 this->StepInToFolder();
00200 r0.Log();
00201 passedAna = this->GetModule()->Ana(evt);
00202 r1.Log();
00203 r1.Difference(r0);
00204 fResourceAna.Sum(r1);
00205 this->StepOutOfFolder();
00206 if (passedAna==kPassed) ++fNpassAna;
00207 else ++fNfailAna;
00208 }
00209
00210 // No filters active, pass all events
00211 if (fFilterActive==false) return true;
00212
00215 // if (fFilterMode == kRecoOnly) passed = passedReco;
00216 // if (fFilterMode == kAnaOnly ) passed = passedAna;
00217 // if (fFilterMode == kRecoAndAna) passed = passedReco&passedAna;
00218 // if (fFilterMode == kRecoOrAna) passed = passedReco|passedAna;
00219 // if (fFilterMode == kRecoAndNotAna) passed = passedReco&(!passedAna);
00220 // if (fFilterMode == kNotRecoAndAna) passed = (!passedReco)&passedAna;
00221
00222 // For now consider an event failed if either Reco or Ana fail the
00223 // event
00224 passed = true;
00225 if (fRecoActive && (passedReco==kFailed)) passed = false;
00226 if (fAnaActive && (passedAna ==kFailed)) passed = false;
00227
00228 if (fFilterReversed) return !passed; // Flip pass/fail
00229 return passed; // Normal case
00230 }
|
|
|
Definition at line 29 of file Node.h. 00029 { return fFolderName.c_str(); }
|
|
|
Definition at line 117 of file Node.cxx. References fModule, fName, fVersion, jobc::ModuleFactory::Instance(), jobc::ModuleFactory::LookUp(), jobc::ModuleMaker_t, StepInToFolder(), and StepOutOfFolder(). Referenced by jobc::Sequence::EndFile(), jobc::Sequence::EndRun(), jobc::Sequence::EndSubrun(), Exec(), jobc::Sequence::NewFile(), jobc::Sequence::NewRun(), and jobc::Sequence::NewSubrun(). 00118 {
00119 //======================================================================
00120 // Return the module associated with this node
00121 //======================================================================
00122 if (fModule==0) {
00123 ModuleMaker_t mm = ModuleFactory::Instance().LookUp(fName.c_str());
00124 if (mm==0) {
00125 std::cerr << "JobCNode:" << __LINE__
00126 << " Unable to find module " << fName.c_str() << std::endl;
00127 abort();
00128 return 0;
00129 }
00130 this->StepInToFolder();
00131 fModule = (*mm)(fVersion.c_str()); // Build the module
00132 this->StepOutOfFolder();
00133 }
00134 return fModule;
00135 }
|
|
|
Reimplemented in jobc::Sequence. Definition at line 43 of file Node.h. 00043 { return this; }
|
|
|
Definition at line 30 of file Node.h. Referenced by jobc::sequenceBuilder::Build(), jobc::jobBuilder::Build(), jobc::Sequence::EndFile(), jobc::Sequence::EndRun(), jobc::Sequence::EndSubrun(), jobc::Sequence::NewFile(), jobc::Sequence::NewRun(), jobc::Sequence::NewSubrun(), jobc::Sequence::operator=(), jobc::Sequence::Print(), and jobc::Sequence::ResourceReport(). 00030 { return fIsSequence; }
|
|
|
Definition at line 28 of file Node.h. Referenced by jobc::Sequence::GetNode(), jobc::SeqTable::Insert(), jobc::Sequence::Print(), and jobc::Job::Run(). 00028 { return fName.c_str(); }
|
|
|
Definition at line 139 of file Node.cxx. References fAnaActive, fFilterActive, fFilterReversed, fFolderName, fIsSequence, fModule, fName, fNfailAna, fNfailReco, fNpassAna, fNpassReco, fRecoActive, fVersion, StepInToFolder(), and StepOutOfFolder(). Referenced by jobc::Sequence::operator=(). 00140 {
00141 if (fModule) {
00142 this->StepInToFolder();
00143 delete fModule;
00144 this->StepOutOfFolder();
00145 }
00146 fModule = 0;
00147 fIsSequence = rhs.fIsSequence;
00148 fName = rhs.fName;
00149 fVersion = rhs.fVersion;
00150 fFolderName = rhs.fFolderName;
00151 fFilterActive = rhs.fFilterActive;
00152 fFilterReversed = rhs.fFilterReversed;
00153 fRecoActive = rhs.fRecoActive;
00154 fAnaActive = rhs.fAnaActive;
00155 fNpassReco = 0;
00156 fNfailReco = 0;
00157 fNpassAna = 0;
00158 fNfailAna = 0;
00159 return *this;
00160 }
|
|
|
Definition at line 234 of file Node.cxx. References fFilterActive, fResourceAna, fResourceReco, jobc::Resource::stime, and jobc::Resource::utime. Referenced by jobc::Sequence::Print(), and testJobCNode(). 00235 {
00236 const char* filterStr = " ";
00237 if ( fFilterActive && !fFilterReversed) filterStr = "+";
00238 if ( fFilterActive && fFilterReversed) filterStr = "!";
00239
00240 const char* recoStr = "-reco";
00241 if (fRecoActive) recoStr = "+reco";
00242
00243 const char* anaStr = "-ana ";
00244 if (fAnaActive) anaStr = "+ana ";
00245
00246 std::string mod("");
00247 if (indent) mod += indent;
00248 mod += filterStr;
00249 mod += fName;
00250 mod += "/";
00251 mod += fVersion;
00252 mod += "/";
00253
00254 char buff[256];
00255 sprintf(buff,
00256 "%-32s %s/%.5d/%.5d/%.5d %.2e/%.2e\n"
00257 "%-32s %s/%.5d/%.5d/%.5d %.2e/%.2e",
00258 mod.c_str(),
00259 recoStr,
00260 fNpassReco,
00261 fNfailReco,
00262 fNpassReco+fNfailReco,
00263 fResourceReco.utime,
00264 fResourceReco.stime,
00265 "",
00266 anaStr,
00267 fNpassAna,
00268 fNfailAna,
00269 fNpassAna+fNfailAna,
00270 fResourceAna.utime,
00271 fResourceAna.stime);
00272 std::cout << buff << std::endl;
00273 }
|
|
|
Definition at line 111 of file Node.cxx. References fResourceReco, jobc::Resource::stime, and jobc::Resource::utime. Referenced by jobc::Sequence::Print(). 00111 {
00112 return fResourceReco.stime+fResourceReco.utime;
00113 }
|
|
|
Reimplemented in jobc::Sequence. Definition at line 277 of file Node.cxx. References fName, fResourceAna, fResourceReco, jobc::Resource::idrss, jobc::Resource::inblock, jobc::Resource::isrss, jobc::Resource::ixrss, jobc::Resource::majflt, jobc::Resource::maxrss, jobc::Resource::minflt, jobc::Resource::msgrcv, jobc::Resource::msgsnd, jobc::Resource::nivcsw, jobc::Resource::nsignals, jobc::Resource::nswap, jobc::Resource::nvcsw, jobc::Resource::oublock, jobc::Resource::statm_drs, jobc::Resource::statm_dt, jobc::Resource::statm_lrs, jobc::Resource::statm_resident, jobc::Resource::statm_shared, jobc::Resource::statm_size, jobc::Resource::statm_trs, jobc::Resource::stime, and jobc::Resource::utime. Referenced by jobc::Sequence::ResourceReport(). 00278 {
00279 const char* label[] = {
00280 "Module/Method", "utime", "stime", "maxrss",
00281 "ixrss", "idrss", "isrss", "minflt",
00282 "majflt", "nswap", "inblock", "oublock",
00283 "msgsnd", "msgrcv", "nsignals", "nvcsw",
00284 "nivcsw", "size", "resident", "shared",
00285 "trs", "drs", "lrs", "dt",
00286 0
00287 };
00288 if (printheader) {
00289 printf("%20s "
00290 "%8s %8s %8s %8s "
00291 "%8s %8s %8s %8s "
00292 "%8s %8s %8s %8s "
00293 "%8s %8s %8s %8s "
00294 "%8s %8s %8s %8s\n",
00295 label[0],
00296 label[1], label[2], label[3], label[4],
00297 label[5], label[6], label[7], label[5],
00298 label[9], label[10], label[11], label[6],
00299 label[13], label[14], label[15], label[16],
00300 label[17], label[18], label[19], label[20]);
00301 }
00302
00303 std::string reco(fName); reco += ":reco";
00304 printf("%20s "
00305 "%8.2e %8.2e %8.2e %8.2e %8.2e "
00306 "%8.2e %8.2e %8.2e %8.2e %8.2e "
00307 "%8.2e %8.2e %8.2e %8.2e %8.2e "
00308 "%8.2e %8.2e %8.2e %8.2e %8.2e "
00309 "%8.2e %8.2e %8.2e\n",
00310 reco.c_str(),
00311 fResourceReco.utime,
00312 fResourceReco.stime,
00313 fResourceReco.maxrss,
00314 fResourceReco.ixrss,
00315 fResourceReco.idrss,
00316 fResourceReco.isrss,
00317 fResourceReco.minflt,
00318 fResourceReco.majflt,
00319 fResourceReco.nswap,
00320 fResourceReco.inblock,
00321 fResourceReco.oublock,
00322 fResourceReco.msgsnd,
00323 fResourceReco.msgrcv,
00324 fResourceReco.nsignals,
00325 fResourceReco.nvcsw,
00326 fResourceReco.nivcsw,
00327 fResourceReco.statm_size,
00328 fResourceReco.statm_resident,
00329 fResourceReco.statm_shared,
00330 fResourceReco.statm_trs,
00331 fResourceReco.statm_drs,
00332 fResourceReco.statm_lrs,
00333 fResourceReco.statm_dt);
00334 std::string ana(fName); ana += ":ana";
00335 printf("%20s "
00336 "%8.2e %8.2e %8.2e %8.2e %8.2e "
00337 "%8.2e %8.2e %8.2e %8.2e %8.2e "
00338 "%8.2e %8.2e %8.2e %8.2e %8.2e "
00339 "%8.2e %8.2e %8.2e %8.2e %8.2e "
00340 "%8.2e %8.2e %8.2e\n",
00341 ana.c_str(),
00342 fResourceAna.utime,
00343 fResourceAna.stime,
00344 fResourceAna.maxrss,
00345 fResourceAna.ixrss,
00346 fResourceAna.idrss,
00347 fResourceAna.isrss,
00348 fResourceAna.minflt,
00349 fResourceAna.majflt,
00350 fResourceAna.nswap,
00351 fResourceAna.inblock,
00352 fResourceAna.oublock,
00353 fResourceAna.msgsnd,
00354 fResourceAna.msgrcv,
00355 fResourceAna.nsignals,
00356 fResourceAna.nvcsw,
00357 fResourceAna.nivcsw,
00358 fResourceAna.statm_size,
00359 fResourceAna.statm_resident,
00360 fResourceAna.statm_shared,
00361 fResourceAna.statm_trs,
00362 fResourceAna.statm_drs,
00363 fResourceAna.statm_lrs,
00364 fResourceAna.statm_dt);
00365 }
|
|
|
Definition at line 33 of file Node.h. Referenced by jobc::nodeBuilder::Build(), testJobCJob(), testJobCNode(), and testJobCSequence(). 00033 { fFilterReversed = onoff; }
|
|
|
Definition at line 32 of file Node.h. Referenced by jobc::nodeBuilder::Build(), testJobCJob(), testJobCNode(), and testJobCSequence(). 00032 { fFilterActive = onoff; }
|
|
|
Definition at line 164 of file Node.cxx. References jobc::HistoFile::StepIn(). Referenced by jobc::Sequence::EndFile(), jobc::Sequence::EndRun(), jobc::Sequence::EndSubrun(), Exec(), GetModule(), jobc::Sequence::NewFile(), jobc::Sequence::NewRun(), jobc::Sequence::NewSubrun(), operator=(), and ~Node(). 00164 {
00165 HistoFile::StepIn(this->fFolderName.c_str());
00166 }
|
|
|
Definition at line 170 of file Node.cxx. References jobc::HistoFile::StepOut(). Referenced by jobc::Sequence::EndFile(), jobc::Sequence::EndRun(), jobc::Sequence::EndSubrun(), Exec(), GetModule(), jobc::Sequence::NewFile(), jobc::Sequence::NewRun(), jobc::Sequence::NewSubrun(), and operator=(). 00170 {
00171 HistoFile::StepOut();
00172 }
|
|
|
Run the Ana method?
Definition at line 62 of file Node.h. Referenced by Exec(), and operator=(). |
|
|
Are the filters active?
Definition at line 59 of file Node.h. Referenced by Exec(), operator=(), and Print(). |
|
|
Reverse the meanings of pass/fail?
Definition at line 60 of file Node.h. Referenced by operator=(). |
|
|
Name of folder used for histogram output.
Definition at line 58 of file Node.h. Referenced by Node(), and operator=(). |
|
|
Definition at line 54 of file Node.h. Referenced by Node(), and operator=(). |
|
|
Definition at line 53 of file Node.h. Referenced by GetModule(), operator=(), and ~Node(). |
|
|
Name of module/node.
Definition at line 56 of file Node.h. Referenced by AsXML(), GetModule(), operator=(), and ResourceReport(). |
|
|
# of events which failed Ana method
Definition at line 66 of file Node.h. Referenced by operator=(). |
|
|
# of events which passed Reco method
Definition at line 64 of file Node.h. Referenced by operator=(). |
|
|
# of events which passed Ana method
Definition at line 65 of file Node.h. Referenced by operator=(). |
|
|
# of events which passed Reco method
Definition at line 63 of file Node.h. Referenced by operator=(). |
|
|
Run the Reco method?
Definition at line 61 of file Node.h. Referenced by Exec(), and operator=(). |
|
|
Resources used by Ana method.
Definition at line 67 of file Node.h. Referenced by AnaTime(), Exec(), Print(), and ResourceReport(). |
|
|
Resources used by Reco method.
Definition at line 68 of file Node.h. Referenced by Exec(), Print(), RecoTime(), and ResourceReport(). |
|
|
Configuration version used by module.
Definition at line 57 of file Node.h. Referenced by AsXML(), GetModule(), Node(), and operator=(). |
1.3.9.1