Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

GetRunSnarlEvent.h

Go to the documentation of this file.
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

Generated on Mon Feb 15 11:06:46 2010 for loon by  doxygen 1.3.9.1