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

GetUgliGeomHandle.h

Go to the documentation of this file.
00001 
00018 #ifndef GETUGLIGEOMHANDLE_H
00019 #define GETUGLIGEOMHANDLE_H
00020 
00021 #include <UgliGeometry/UgliGeomHandle.h>
00022 
00023 #include <RawData/RawRecord.h>
00024 #include <RawData/RawHeader.h>
00025 
00026 #include <CandData/CandRecord.h>
00027 #include <CandData/CandHeader.h>
00028 
00029 #include <Record/RecRecordImp.h>
00030 #include <Record/RecCandHeader.h>
00031 
00032 #include <Conventions/Detector.h>
00033 #include <RerootExodus/RerootExodus.h>
00034 #include <MINF_Classes/MINFast.h>
00035 
00036 
00037 namespace DataUtil {
00038 
00052     UgliGeomHandle GetUgliGeomHandle(const MomNavigator* mom)
00053     {
00054         if (!mom) return UgliGeomHandle();
00055 
00056         RawRecord* rr = dynamic_cast<RawRecord*>(mom->GetFragment("RawRecord"));
00057         if (rr) return UgliGeomHandle(rr->GetRawHeader()->GetVldContext());
00058 
00059         CandRecord* cr = dynamic_cast<CandRecord*>(mom->GetFragment("CandRecord"));
00060         if (cr) return UgliGeomHandle(cr->GetCandHeader()->GetVldContext());
00061 
00062         RecRecordImp<RecCandHeader>* rri = 
00063           dynamic_cast<RecRecordImp<RecCandHeader>*>(mom->GetFragment("RecRecordImp<RecCandHeader>"));
00064         if (rri) return UgliGeomHandle(rri->GetHeader().GetVldContext());
00065 
00066         if (gMINFast) {
00067             VldContext vld = RerootExodus::BuildVldContext();
00068             if (vld.GetDetector() != Detector::kUnknown) 
00069                 return UgliGeomHandle(vld);
00070         }
00071 
00072         return UgliGeomHandle();
00073     }
00074 }
00075 
00076 #endif  // GETUGLIGEOMHANDLE_H

Generated on Mon Nov 23 05:26:54 2009 for loon by  doxygen 1.3.9.1