00001 00017 #ifndef GETRUNSNARLEVENT_H 00018 #define GETRUNSNARLEVENT_H 00019 00020 #include "DataUtil/GetCandHeader.h" 00021 00022 #include "MinosObjectMap/MomNavigator.h" 00023 #include "CandData/CandHeader.h" 00024 #include "Record/RecRecordImp.h" 00025 #include "Record/RecCandHeader.h" 00026 00027 namespace DataUtil { 00028 00038 inline 00039 bool GetRunSnarlEvent(const MomNavigator* mom, 00040 int& run, int& snarl, int& event) 00041 { 00042 if (!mom) return false; 00043 00044 // look for a Candidate record header 00045 const CandHeader* chead = GetCandHeader(mom); 00046 if ( chead ) { 00047 run = chead->GetRun(); 00048 snarl = chead->GetSnarl(); 00049 event = chead->GetEvent(); 00050 return true; 00051 } 00052 00053 // look for new record headers (ie. ntuples ) 00054 RecRecordImp<RecCandHeader> *rr = 00055 dynamic_cast<RecRecordImp<RecCandHeader>*> 00056 (mom->GetFragment("RecRecordImp<RecCandHeader>")); 00057 if ( rr ) { 00058 run = rr->GetHeader().GetRun(); 00059 snarl = rr->GetHeader().GetSnarl(); 00060 event = rr->GetHeader().GetEvent(); 00061 return true; 00062 } 00063 00064 return false; 00065 } 00066 00067 } // namespace DataUtil 00068 00069 #endif // GETRUNSNARLEVENT_H
1.3.9.1