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
1.3.9.1