00001 00002 // $Id: FabPlnInstallLookup.h,v 1.6 2008/03/04 21:46:45 rhatcher Exp $ 00003 // 00004 // FabPlnInstallLookup 00005 // 00006 // FabPlnInstallLookup - for conveniently looking up plane installation info 00007 // 00008 // Author: R. Hatcher 2002.01.24 00009 // 00011 00012 #ifndef FABPLNINSTALLLOOKUP_H 00013 #define FABPLNINSTALLLOOKUP_H 00014 00015 #include "DatabaseInterface/DbiResultPtr.h" 00016 #include "Fabrication/FabPlnInstall.h" 00017 #include "Fabrication/FabSteelPlate.h" 00018 00019 // <utility> has std::pair 00020 #include <utility> 00021 #include <vector> 00022 00023 class FabPlnInstallLookup { 00024 00025 public: 00026 00027 FabPlnInstallLookup(const VldContext& vldc); 00028 virtual ~FabPlnInstallLookup(); 00029 00030 PlexPlaneId GetFirstNormalPlane() const { return fFirstNormal; } 00031 PlexPlaneId GetLastNormalPlane() const { return fLastNormal; } 00032 00033 00034 const FabPlnInstall* NextInstall(const VldTimeStamp& ts, 00035 bool ignoreVeto=true) const; 00036 VldTimeStamp TimeNextInstall(const VldTimeStamp& ts, 00037 bool ignoreVeto=true) const; 00038 00039 const FabPlnInstall* NextInstall(bool ignoreVeto=true) const 00040 { return NextInstall(fVldContext.GetTimeStamp(),ignoreVeto); } 00041 VldTimeStamp TimeNextInstall(bool ignoreVeto=true) const 00042 { return TimeNextInstall(fVldContext.GetTimeStamp(),ignoreVeto); } 00043 00044 const FabPlnInstall* GetFabPlnInstall(const PlexPlaneId& plnid) const; 00045 std::string GetScintMdlMfgId(const PlexScintMdlId& mdlid) const; 00046 std::string GetSteelSlabMfgId(const PlexPlaneId& plnid, 00047 UShort_t indx) const; 00048 00049 PlexScintMdlId WhereIsScintMdl(const std::string& mfgid) const; 00050 std::pair<PlexPlaneId,UShort_t> 00051 WhereIsSteelSlab(const std::string& mfgid) const; 00052 00053 std::vector<const FabSteelPlate*> 00054 GetFabSteelPlates(const PlexPlaneId& plnid) const; 00055 00056 virtual void Print(Option_t* option="") const; 00057 00058 unsigned int LookForOddEntries() const; 00059 00060 // make the data publically available 00061 DbiResultPtr<FabPlnInstall> fPlnInstallTbl; //ctor's VldContext 00062 mutable DbiResultPtr<FabPlnInstall> fPlnInstallTblAlt; //alt VldContext 00063 DbiResultPtr<FabSteelPlate> fSteelPlateTbl; //ctor's VldContext 00064 00065 protected: 00066 00067 VldContext fVldContext; 00068 00069 PlexPlaneId fFirstNormal; 00070 PlexPlaneId fLastNormal; 00071 00072 ClassDef(FabPlnInstallLookup,0) // never written out 00073 }; 00074 00075 #endif // FABPLNINSTALLLOOKUP_H
1.3.9.1