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
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
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 }
00068
00069 #endif // GETRUNSNARLEVENT_H