#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 |
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 23 of file Node.cxx. Referenced by jobc::Sequence::PushBack(), and jobc::Sequence::PushFront().
00023 : 00024 fModule ( 0 ), 00025 fIsSequence ( false ), 00026 fName ( "*" ), 00027 fVersion ( "*" ), 00028 fFolderName ( "?" ), 00029 fFilterActive ( true ), 00030 fFilterReversed ( false ), 00031 fRecoActive ( true ), 00032 fAnaActive ( true ), 00033 fNpassReco ( 0 ), 00034 fNfailReco ( 0 ), 00035 fNpassAna ( 0 ), 00036 fNfailAna ( 0 ) 00037 { } |
|
||||||||||||||||
|
Definition at line 41 of file Node.cxx. References fFolderName, fIsSequence, and fVersion.
00041 : 00042 fModule ( 0 ), 00043 fIsSequence ( isSeq ), 00044 fName ( name ), 00045 fVersion ( version ), 00046 fFolderName ( "" ), 00047 fFilterActive ( true ), 00048 fFilterReversed ( false ), 00049 fRecoActive ( true ), 00050 fAnaActive ( true ), 00051 fNpassReco ( 0 ), 00052 fNfailReco ( 0 ), 00053 fNpassAna ( 0 ), 00054 fNfailAna ( 0 ) 00055 { 00056 // strip ':' (which come from namespaces) from folder names 00057 for (int i=0; name[i]!='\0'; ++i) 00058 if (name[i] != ':') fFolderName += name[i]; 00059 00060 // Attach version to folder name if its not 'default' 00061 if (fIsSequence==false && fVersion!="default") { 00062 00063 fFolderName += "_"; 00064 fFolderName += fVersion; 00065 } 00066 00067 } |
|
|
Definition at line 71 of file Node.cxx.
00071 : 00072 fModule ( 0 ), 00073 fIsSequence ( false ), 00074 fName ( "*" ), 00075 fVersion ( "*" ), 00076 fFolderName ( "?" ), 00077 fFilterActive ( true ), 00078 fFilterReversed ( false ), 00079 fRecoActive ( true ), 00080 fAnaActive ( true ), 00081 fNpassReco ( 0 ), 00082 fNfailReco ( 0 ), 00083 fNpassAna ( 0 ), 00084 fNfailAna ( 0 ), 00085 fResourceAna (n.fResourceAna), 00086 fResourceReco (n.fResourceReco) 00087 { *this = n; } |
|
|
Definition at line 91 of file Node.cxx. References fModule, and StepInToFolder().
00092 {
00093 if (fModule) {
00094 this->StepInToFolder();
00095 delete fModule;
00096 fModule = 0;
00097 HistoFile::StepOut();
00098 }
00099 }
|
|
|
Definition at line 35 of file Node.h. References fAnaActive. Referenced by jobc::nodeBuilder::Build(), and testJobCNode().
00035 { fAnaActive = onoff; }
|
|
|
Definition at line 34 of file Node.h. References fRecoActive. Referenced by jobc::nodeBuilder::Build(), and testJobCNode().
00034 { fRecoActive = onoff; }
|
|
|
Definition at line 103 of file Node.cxx. Referenced by jobc::Sequence::Print().
00103 {
00104 return fResourceAna.stime+fResourceAna.utime;
00105 }
|
|
|
Reimplemented in jobc::Sequence. Definition at line 174 of file Node.cxx. References jobc::Module::Ana(), jobc::Resource::Difference(), fAnaActive, fFilterActive, fFilterReversed, fNfailAna, fNfailReco, fNpassAna, fNpassReco, fRecoActive, fResourceAna, fResourceReco, GetModule(), jobc::Resource::Log(), jobc::Module::Reco(), jobc::Result, StepInToFolder(), StepOutOfFolder(), and jobc::Resource::Sum().
00175 {
00176 //======================================================================
00177 // Run the Ana/Reco methods for the module
00178 //======================================================================
00179 bool passed = true;
00180 Result passedReco = kPassed;
00181 Result passedAna = kPassed;
00182 Resource r0;
00183 Resource r1;
00184 if (fRecoActive) {
00185 // Execute the method
00186 this->StepInToFolder();
00187 r0.Log();
00188 passedReco = this->GetModule()->Reco(evt);
00189 r1.Log();
00190 r1.Difference(r0);
00191 fResourceReco.Sum(r1);
00192 this->StepOutOfFolder();
00193 if (passedReco==kPassed) ++fNpassReco;
00194 else ++fNfailReco;
00195 }
00196 if (fAnaActive) {
00197 this->StepInToFolder();
00198 r0.Log();
00199 passedAna = this->GetModule()->Ana(evt);
00200 r1.Log();
00201 r1.Difference(r0);
00202 fResourceAna.Sum(r1);
00203 this->StepOutOfFolder();
00204 if (passedAna==kPassed) ++fNpassAna;
00205 else ++fNfailAna;
00206 }
00207
00208 // No filters active, pass all events
00209 if (fFilterActive==false) return true;
00210
00213 // if (fFilterMode == kRecoOnly) passed = passedReco;
00214 // if (fFilterMode == kAnaOnly ) passed = passedAna;
00215 // if (fFilterMode == kRecoAndAna) passed = passedReco&passedAna;
00216 // if (fFilterMode == kRecoOrAna) passed = passedReco|passedAna;
00217 // if (fFilterMode == kRecoAndNotAna) passed = passedReco&(!passedAna);
00218 // if (fFilterMode == kNotRecoAndAna) passed = (!passedReco)&passedAna;
00219
00220 // For now consider an event failed if either Reco or Ana fail the
00221 // event
00222 passed = true;
00223 if (fRecoActive && (passedReco==kFailed)) passed = false;
00224 if (fAnaActive && (passedAna ==kFailed)) passed = false;
00225
00226 if (fFilterReversed) return !passed; // Flip pass/fail
00227 return passed; // Normal case
00228 }
|
|
|
Definition at line 29 of file Node.h. References fFolderName.
00029 { return fFolderName.c_str(); }
|
|
|
Definition at line 115 of file Node.cxx. References fModule, fName, fVersion, 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().
00116 {
00117 //======================================================================
00118 // Return the module associated with this node
00119 //======================================================================
00120 if (fModule==0) {
00121 ModuleMaker_t mm = ModuleFactory::Instance().LookUp(fName.c_str());
00122 if (mm==0) {
00123 std::cerr << "JobCNode:" << __LINE__
00124 << " Unable to find module " << fName.c_str() << std::endl;
00125 abort();
00126 return 0;
00127 }
00128 this->StepInToFolder();
00129 fModule = (*mm)(fVersion.c_str()); // Build the module
00130 this->StepOutOfFolder();
00131 }
00132 return fModule;
00133 }
|
|
|
Reimplemented in jobc::Sequence. Definition at line 43 of file Node.h.
00043 { return this; }
|
|
|
Definition at line 30 of file Node.h. References fIsSequence. 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. References fName. Referenced by jobc::Sequence::GetNode(), jobc::SeqTable::Insert(), jobc::Sequence::Print(), and jobc::Job::Run().
00028 { return fName.c_str(); }
|
|
|
Definition at line 137 of file Node.cxx. References fAnaActive, fFilterActive, fFilterReversed, fFolderName, fIsSequence, fModule, fName, fNfailAna, fNfailReco, fNpassAna, fNpassReco, fRecoActive, fVersion, StepInToFolder(), and StepOutOfFolder().
00138 {
00139 if (fModule) {
00140 this->StepInToFolder();
00141 delete fModule;
00142 this->StepOutOfFolder();
00143 }
00144 fModule = 0;
00145 fIsSequence = rhs.fIsSequence;
00146 fName = rhs.fName;
00147 fVersion = rhs.fVersion;
00148 fFolderName = rhs.fFolderName;
00149 fFilterActive = rhs.fFilterActive;
00150 fFilterReversed = rhs.fFilterReversed;
00151 fRecoActive = rhs.fRecoActive;
00152 fAnaActive = rhs.fAnaActive;
00153 fNpassReco = 0;
00154 fNfailReco = 0;
00155 fNpassAna = 0;
00156 fNfailAna = 0;
00157 return *this;
00158 }
|
|
|
Definition at line 232 of file Node.cxx. References fAnaActive, fFilterActive, fFilterReversed, fName, fNfailAna, fNfailReco, fNpassAna, fNpassReco, fRecoActive, fResourceAna, fResourceReco, fVersion, jobc::Resource::stime, and jobc::Resource::utime. Referenced by jobc::Sequence::Print(), and testJobCNode().
00233 {
00234 const char* filterStr = " ";
00235 if ( fFilterActive && !fFilterReversed) filterStr = "+";
00236 if ( fFilterActive && fFilterReversed) filterStr = "!";
00237
00238 const char* recoStr = "-reco";
00239 if (fRecoActive) recoStr = "+reco";
00240
00241 const char* anaStr = "-ana ";
00242 if (fAnaActive) anaStr = "+ana ";
00243
00244 std::string mod("");
00245 if (indent) mod += indent;
00246 mod += filterStr;
00247 mod += fName;
00248 mod += "/";
00249 mod += fVersion;
00250 mod += "/";
00251
00252 char buff[256];
00253 sprintf(buff,
00254 "%-32s %s/%.5d/%.5d/%.5d %.2e/%.2e\n"
00255 "%-32s %s/%.5d/%.5d/%.5d %.2e/%.2e",
00256 mod.c_str(),
00257 recoStr,
00258 fNpassReco,
00259 fNfailReco,
00260 fNpassReco+fNfailReco,
00261 fResourceReco.utime,
00262 fResourceReco.stime,
00263 "",
00264 anaStr,
00265 fNpassAna,
00266 fNfailAna,
00267 fNpassAna+fNfailAna,
00268 fResourceAna.utime,
00269 fResourceAna.stime);
00270 std::cout << buff << std::endl;
00271 }
|
|
|
Definition at line 109 of file Node.cxx. References fResourceReco, jobc::Resource::stime, and jobc::Resource::utime. Referenced by jobc::Sequence::Print().
00109 {
00110 return fResourceReco.stime+fResourceReco.utime;
00111 }
|
|
|
Reimplemented in jobc::Sequence. Definition at line 275 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::stime, and jobc::Resource::utime. Referenced by jobc::Sequence::ResourceReport().
00276 {
00277 const char* label[] = {
00278 "Module/Method", "utime", "stime", "maxrss",
00279 "ixrss", "idrss", "isrss", "minflt",
00280 "majflt", "nswap", "inblock", "oublock",
00281 "msgsnd", "msgrcv", "nsignals", "nvcsw",
00282 "nivcsw", 0
00283 };
00284 if (printheader) {
00285 printf("%20s "
00286 "%8s %8s %8s %8s "
00287 "%8s %8s %8s %8s "
00288 "%8s %8s %8s %8s "
00289 "%8s %8s %8s %8s\n",
00290 label[0],
00291 label[1], label[2], label[3], label[4],
00292 label[5], label[6], label[7], label[5],
00293 label[9], label[10], label[11], label[6],
00294 label[13], label[14], label[15], label[16]);
00295 }
00296
00297 std::string reco(fName); reco += ":reco";
00298 printf("%20s "
00299 "%8.2e %8.2e %8.2e %8.2e %8.2e "
00300 "%8.2e %8.2e %8.2e %8.2e %8.2e "
00301 "%8.2e %8.2e %8.2e %8.2e %8.2e %8.2e\n",
00302 reco.c_str(),
00303 fResourceReco.utime,
00304 fResourceReco.stime,
00305 fResourceReco.maxrss,
00306 fResourceReco.ixrss,
00307 fResourceReco.idrss,
00308 fResourceReco.isrss,
00309 fResourceReco.minflt,
00310 fResourceReco.majflt,
00311 fResourceReco.nswap,
00312 fResourceReco.inblock,
00313 fResourceReco.oublock,
00314 fResourceReco.msgsnd,
00315 fResourceReco.msgrcv,
00316 fResourceReco.nsignals,
00317 fResourceReco.nvcsw,
00318 fResourceReco.nivcsw
00319 );
00320 std::string ana(fName); ana += ":ana";
00321 printf("%20s "
00322 "%8.2e %8.2e %8.2e %8.2e %8.2e "
00323 "%8.2e %8.2e %8.2e %8.2e %8.2e "
00324 "%8.2e %8.2e %8.2e %8.2e %8.2e %8.2e\n",
00325 ana.c_str(),
00326 fResourceAna.utime,
00327 fResourceAna.stime,
00328 fResourceAna.maxrss,
00329 fResourceAna.ixrss,
00330 fResourceAna.idrss,
00331 fResourceAna.isrss,
00332 fResourceAna.minflt,
00333 fResourceAna.majflt,
00334 fResourceAna.nswap,
00335 fResourceAna.inblock,
00336 fResourceAna.oublock,
00337 fResourceAna.msgsnd,
00338 fResourceAna.msgrcv,
00339 fResourceAna.nsignals,
00340 fResourceAna.nvcsw,
00341 fResourceAna.nivcsw
00342 );
00343 }
|
|
|
Definition at line 33 of file Node.h. References fFilterReversed. Referenced by jobc::nodeBuilder::Build(), and testJobCNode().
00033 { fFilterReversed = onoff; }
|
|
|
Definition at line 32 of file Node.h. References fFilterActive. Referenced by jobc::nodeBuilder::Build(), and testJobCNode().
00032 { fFilterActive = onoff; }
|
|
|
Definition at line 162 of file Node.cxx. 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().
00162 {
00163 HistoFile::StepIn(this->fFolderName.c_str());
00164 }
|
|
|
Definition at line 168 of file Node.cxx. Referenced by jobc::Sequence::EndFile(), jobc::Sequence::EndRun(), jobc::Sequence::EndSubrun(), Exec(), GetModule(), jobc::Sequence::NewFile(), jobc::Sequence::NewRun(), jobc::Sequence::NewSubrun(), and operator=().
00168 {
00169 HistoFile::StepOut();
00170 }
|
|
|
Run the Ana method?
Definition at line 60 of file Node.h. Referenced by ActivateAna(), Exec(), operator=(), and Print(). |
|
|
Are the filters active?
Definition at line 57 of file Node.h. Referenced by Exec(), operator=(), Print(), and SetFilter(). |
|
|
Reverse the meanings of pass/fail?
Definition at line 58 of file Node.h. Referenced by Exec(), operator=(), Print(), and ReverseFilter(). |
|
|
Name of folder used for histogram output.
Definition at line 56 of file Node.h. Referenced by FolderName(), Node(), and operator=(). |
|
|
Definition at line 52 of file Node.h. Referenced by IsSequence(), Node(), and operator=(). |
|
|
Definition at line 51 of file Node.h. Referenced by GetModule(), operator=(), and ~Node(). |
|
|
Name of module/node.
Definition at line 54 of file Node.h. Referenced by GetModule(), Name(), operator=(), Print(), and ResourceReport(). |
|
|
# of events which failed Ana method
Definition at line 64 of file Node.h. Referenced by Exec(), operator=(), and Print(). |
|
|
# of events which passed Reco method
Definition at line 62 of file Node.h. Referenced by Exec(), operator=(), and Print(). |
|
|
# of events which passed Ana method
Definition at line 63 of file Node.h. Referenced by Exec(), operator=(), and Print(). |
|
|
# of events which passed Reco method
Definition at line 61 of file Node.h. Referenced by Exec(), operator=(), and Print(). |
|
|
Run the Reco method?
Definition at line 59 of file Node.h. Referenced by ActivateReco(), Exec(), operator=(), and Print(). |
|
|
Resources used by Ana method.
Definition at line 65 of file Node.h. Referenced by Exec(), Print(), and ResourceReport(). |
|
|
Resources used by Reco method.
Definition at line 66 of file Node.h. Referenced by Exec(), Print(), RecoTime(), and ResourceReport(). |
|
|
Configuration version used by module.
Definition at line 55 of file Node.h. Referenced by GetModule(), Node(), operator=(), and Print(). |
1.3.5