diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/ARA_selection.xml b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/ARA_selection.xml index 74bc3ce534ea6660036b9bb61edb81bbaf62f6d6..f02e007445183d1dfd01609a6d5d77becfdcfb81 100755 --- a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/ARA_selection.xml +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/ARA_selection.xml @@ -1,13 +1,12 @@ <lcgdict> - <class name="T_TPCnv<LumiBlockCollection,LumiBlockCollection_p1>"/> - <class name="LumiBlockCollectionCnv_p1"/> - <class name="T_AthenaPoolTPCnvBase<LumiBlockCollection,LumiBlockCollection_p1>"/> - <class name="T_AthenaPoolTPPolyCnvBase<LumiBlockCollection,LumiBlockCollection,LumiBlockCollection_p1>"/> - <class name="T_AthenaPoolTPAbstractPolyCnvBase<LumiBlockCollection,LumiBlockCollection,LumiBlockCollection_p1>"/> + <class name="T_TPCnv<LumiBlockCollection,LumiBlockCollection_p2>"/> + <class name="LumiBlockCollectionCnv_p2"/> + <class name="T_AthenaPoolTPCnvBase<LumiBlockCollection,LumiBlockCollection_p2>"/> + <class name="T_AthenaPoolTPPolyCnvBase<LumiBlockCollection,LumiBlockCollection,LumiBlockCollection_p2>"/> + <class name="T_AthenaPoolTPAbstractPolyCnvBase<LumiBlockCollection,LumiBlockCollection,LumiBlockCollection_p2>"/> <class name="ITPConverterFor<LumiBlockCollection>"/> - - <class name="T_TPCnv<IOVRange,LumiBlockRange_p1>"/> - <class name="LumiBlockRangeCnv_p1"/> - <class name="T_AthenaPoolTPCnvBase<IOVRange,LumiBlockRange_p1>"/> - <class name="ITPConverterFor<IOVRange>"/> + <class name="T_TPCnv<LB_IOVRange,LumiBlockRange_p2>"/> + <class name="LumiBlockRangeCnv_p2"/> + <class name="T_AthenaPoolTPCnvBase<LB_IOVRange,LumiBlockRange_p2>"/> + <class name="ITPConverterFor<LB_IOVRange>"/> </lcgdict> diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockCollectionCnv_p2.h b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockCollectionCnv_p2.h new file mode 100755 index 0000000000000000000000000000000000000000..e5963c7331b0d436933d2a8fc8a03a174ea65742 --- /dev/null +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockCollectionCnv_p2.h @@ -0,0 +1,28 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef LUMIBLOCKCOLLECTIONCNV_P2_H +#define LUMIBLOCKCOLLECTIONCNV_P2_H + +/////////////////////////////////////////////////////////////////////////// +// Header file for class LumiBlockCollectionCnv_p2 +// Author: Marjorie Shapiro +/////////////////////////////////////////////////////////////////////////// + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" +#include "LumiBlockData/LumiBlockCollection.h" +#include "LumiBlockTPCnv/LumiBlockCollection_p2.h" +#include "LumiBlockRangeCnv_p2.h" + + +typedef T_AthenaPoolTPCnvVector< LumiBlockCollection, LumiBlockCollection_p2, LumiBlockRangeCnv_p2 > LumiBlockCollectionCnv_p2; + +template<> +class T_TPCnv<LumiBlockCollection, LumiBlockCollection_p2> + : public LumiBlockCollectionCnv_p2 +{ +public: +}; + +#endif //LUMIBLOCKCOLLECTIONCNV_P2_H diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockCollection_p2.h b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockCollection_p2.h new file mode 100755 index 0000000000000000000000000000000000000000..c15aec491a8f13231bdb2425f46c81bc9970a47d --- /dev/null +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockCollection_p2.h @@ -0,0 +1,13 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef LUMIBLOCKCOLLECTION_p2_H +#define LUMIBLOCKCOLLECTION_p2_H + +#include "LumiBlockTPCnv/LumiBlockRange_p2.h" + +class LumiBlockCollection_p2 : public std::vector<LumiBlockRange_p2> +{}; + +#endif // LUMIBLOCKCOLLECTION_p2_H diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockRangeCnv_p1.h b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockRangeCnv_p1.h index 2f5f495d1643ef781b975fa5dc0e08cbb08859ac..09ff193cf898031e1f8fdedc7bd3ec81c8a1b7ee 100755 --- a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockRangeCnv_p1.h +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockRangeCnv_p1.h @@ -7,18 +7,18 @@ #include "LumiBlockTPCnv/LumiBlockRange_p1.h" #include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" -#include "AthenaKernel/IOVRange.h" +#include "LumiBlockData/LB_IOVRange.h" class MsgStream; -class LumiBlockRangeCnv_p1 : public T_AthenaPoolTPCnvBase<IOVRange, LumiBlockRange_p1> { +class LumiBlockRangeCnv_p1 : public T_AthenaPoolTPCnvBase<LB_IOVRange, LumiBlockRange_p1> { public: LumiBlockRangeCnv_p1() {} - virtual void persToTrans(const LumiBlockRange_p1* persObj, IOVRange* transObj, MsgStream &log); - virtual void transToPers(const IOVRange* transObj, LumiBlockRange_p1* persObj, MsgStream &log); + virtual void persToTrans(const LumiBlockRange_p1* persObj, LB_IOVRange* transObj, MsgStream &log); + virtual void transToPers(const LB_IOVRange* transObj, LumiBlockRange_p1* persObj, MsgStream &log); }; template<> -class T_TPCnv<IOVRange, LumiBlockRange_p1> +class T_TPCnv<LB_IOVRange, LumiBlockRange_p1> : public LumiBlockRangeCnv_p1 { public: diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockRangeCnv_p2.h b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockRangeCnv_p2.h new file mode 100755 index 0000000000000000000000000000000000000000..7f925efcf686322b6d57b64708d24e5510e5f40b --- /dev/null +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockRangeCnv_p2.h @@ -0,0 +1,27 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef LUMIBLOCKRANGECNV_P2_H +#define LUMIBLOCKRANGECNV_P2_H + +#include "LumiBlockTPCnv/LumiBlockRange_p2.h" +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" +#include "LumiBlockData/LB_IOVRange.h" + +class MsgStream; +class LumiBlockRangeCnv_p2 : public T_AthenaPoolTPCnvBase<LB_IOVRange, LumiBlockRange_p2> { + public: + LumiBlockRangeCnv_p2() {} + virtual void persToTrans(const LumiBlockRange_p2* persObj, LB_IOVRange* transObj, MsgStream &log); + virtual void transToPers(const LB_IOVRange* transObj, LumiBlockRange_p2* persObj, MsgStream &log); +}; + +template<> +class T_TPCnv<LB_IOVRange, LumiBlockRange_p2> + : public LumiBlockRangeCnv_p2 +{ +public: +}; + +#endif // LUMIBLOCKRANGECNV_P2_H diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockRange_p2.h b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockRange_p2.h new file mode 100755 index 0000000000000000000000000000000000000000..f8ee237f113a31772240b8c727eb9692306b32d5 --- /dev/null +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockRange_p2.h @@ -0,0 +1,45 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +/////////////////////////////////////////////////////////////////// +// Header file for class LumiBlockRange_p2 +// Author: Marjorie Shapiro <mdshapiro@lbl.gov> +/////////////////////////////////////////////////////////////////// +#ifndef LUMIBLOCKRANGE_P2_H +#define LUMIBLOCKRANGE_P2_H + + #include <stdint.h> + + class LumiBlockRange_p2 { + // Public methods: + + public: + + /////////////////////////////////////////////////////////////////////// + // This class is the persistent form of LB_IOVRange that will be put + // into LumiBlockCollection_p2 (the persistent form of + // LumiBlockCollection) + // Nota Bene: + // For the IOVTime, we are only going to stream the (run,lumiblock) datamembers + // In LumiBlockCollection_p2, we require that the IOVTime objects + // in the IOVRange have isRunEvent()==true and isTimestamp()==false + // this means we only need 2 unsigned int64_t in the persistent representation + /////////////////////////////////////////////////////////////////////// + + unsigned long long m_start; + unsigned long long m_stop; + unsigned int m_NumExpected; + unsigned int m_NumSeen; + LumiBlockRange_p2(unsigned long long start, unsigned long long stop): + m_start(start),m_stop(stop),m_NumExpected(0),m_NumSeen(0) {}; + LumiBlockRange_p2(unsigned long long start, unsigned long long stop, unsigned int nExpect, unsigned int nSeen): + m_start(start),m_stop(stop),m_NumExpected(nExpect),m_NumSeen(nSeen) {}; + LumiBlockRange_p2() : m_start(0),m_stop(0),m_NumExpected(0),m_NumSeen(0) {}; + LumiBlockRange_p2(const LumiBlockRange_p2& rhs) : m_start(rhs.m_start), + m_stop(rhs.m_stop),m_NumExpected(rhs.m_NumExpected),m_NumSeen(rhs.m_NumSeen) {}; + ~LumiBlockRange_p2() {}; + + }; + +#endif //> LUMIBLOCKRANGE_P2_H diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockTPCnvDict.h b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockTPCnvDict.h index 3bcf37a1bada53e27ea1c40b0060a811976d13fe..379215134bd69ce59d61a8e75709a0dccbc67552 100755 --- a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockTPCnvDict.h +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/LumiBlockTPCnvDict.h @@ -16,12 +16,21 @@ #include "LumiBlockTPCnv/LumiBlockRangeCnv_p1.h" #include "LumiBlockTPCnv/LumiBlockCollectionCnv_p1.h" +#include "LumiBlockTPCnv/LumiBlockRange_p2.h" +#include "LumiBlockTPCnv/LumiBlockCollection_p2.h" +#include "LumiBlockTPCnv/LumiBlockRangeCnv_p2.h" +#include "LumiBlockTPCnv/LumiBlockCollectionCnv_p2.h" + namespace LumiBlockTPCnvDict { struct tmp { std::vector<LumiBlockRange_p1> m_lumiblockcollection_p1; T_TPCnv<LumiBlockCollection, LumiBlockCollection_p1> m_lumiblockcollectioncnv_p1; - T_TPCnv<IOVRange, LumiBlockRange_p1> m_lumiblockrangecnv_p1; + T_TPCnv<LB_IOVRange, LumiBlockRange_p1> m_lumiblockrangecnv_p1; + + std::vector<LumiBlockRange_p2> m_lumiblockcollection_p2; + T_TPCnv<LumiBlockCollection, LumiBlockCollection_p2> m_lumiblockcollectioncnv_p2; + T_TPCnv<LB_IOVRange, LumiBlockRange_p2> m_lumiblockrangecnv_p2; }; } diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/OLD_selection.xml b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/OLD_selection.xml index ba691354b64d5a484cf4afbd86a2e02622a832cf..defc2205688e3c27986f9f09dd2af4677eaf7661 100755 --- a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/OLD_selection.xml +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/OLD_selection.xml @@ -1,4 +1,6 @@ <lcgdict> - + <class name="LumiBlockRange_p1" /> + <class name="std::vector<LumiBlockRange_p1>" /> + <class name="LumiBlockCollection_p1" id="CF1F40C9-6125-4C35-87FF-DDA2C319000C" /> </lcgdict> diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/selection.xml b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/selection.xml index defc2205688e3c27986f9f09dd2af4677eaf7661..31ccfb3b1ec1ffeb103c4498d477d4e9b70b5c8d 100755 --- a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/selection.xml +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/LumiBlockTPCnv/selection.xml @@ -1,6 +1,9 @@ <lcgdict> <class name="LumiBlockRange_p1" /> <class name="std::vector<LumiBlockRange_p1>" /> + <class name="LumiBlockRange_p2" /> + <class name="std::vector<LumiBlockRange_p2>" /> <class name="LumiBlockCollection_p1" id="CF1F40C9-6125-4C35-87FF-DDA2C319000C" /> + </lcgdict> diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/cmt/requirements b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/cmt/requirements index 058e3e9347e7eeb8616c9ff4020a21aaa87ec6fa..b139bf05a8c8fa750a4d419f0ec960467100170f 100755 --- a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/cmt/requirements +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/cmt/requirements @@ -1,12 +1,12 @@ package LumiBlockTPCnv use AtlasPolicy AtlasPolicy-* -use AthenaKernel AthenaKernel-* Control use AthenaPoolCnvSvc AthenaPoolCnvSvc-* Database/AthenaPOOL use LumiBlockData LumiBlockData-* LumiBlock private use AtlasReflex AtlasReflex-* External +use AthenaKernel AthenaKernel-* Control end_private branches LumiBlockTPCnv src @@ -15,7 +15,7 @@ apply_pattern tpcnv_library private apply_pattern lcgdict dict=LumiBlockTPCnv selectionfile=selection.xml headerfiles="../LumiBlockTPCnv/LumiBlockTPCnvDict.h" -apply_pattern lcgdict dict=ARA_LumiBlockTPCnv selectionfile=ARA_selection.xml headerfiles="../LumiBlockTPCnv/LumiBlockTPCnvDict.h" -apply_pattern lcgdict dict=OLD_LumiBlockTPCnv selectionfile=OLD_selection.xml headerfiles="../LumiBlockTPCnv/LumiBlockTPCnvDict.h" +##apply_pattern lcgdict dict=ARA_LumiBlockTPCnv selectionfile=ARA_selection.xml headerfiles="../LumiBlockTPCnv/LumiBlockTPCnvDict.h" +##apply_pattern lcgdict dict=OLD_LumiBlockTPCnv selectionfile=OLD_selection.xml headerfiles="../LumiBlockTPCnv/LumiBlockTPCnvDict.h" end_private diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/src/LumiBlockRangeCnv_p1.cxx b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/src/LumiBlockRangeCnv_p1.cxx index 68d6500086dc2ff33dd49448f20d15fc74cac5ef..97ea366bc1f6567ad1c21a22c4c25b5846b4124a 100755 --- a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/src/LumiBlockRangeCnv_p1.cxx +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/src/LumiBlockRangeCnv_p1.cxx @@ -9,21 +9,24 @@ #define private public #define protected public -#include "AthenaKernel/IOVRange.h" +#include "LumiBlockData/LB_IOVRange.h" #undef private #undef protected #include "LumiBlockTPCnv/LumiBlockRangeCnv_p1.h" -void LumiBlockRangeCnv_p1::transToPers(const IOVRange* trans, LumiBlockRange_p1* pers, MsgStream &) { +void LumiBlockRangeCnv_p1::transToPers(const LB_IOVRange* trans, LumiBlockRange_p1* pers, MsgStream &) { pers->m_start = (trans->start()).re_time(); pers->m_stop = (trans->stop()).re_time(); } -void LumiBlockRangeCnv_p1::persToTrans(const LumiBlockRange_p1* pers, IOVRange* trans, MsgStream &) { +void LumiBlockRangeCnv_p1::persToTrans(const LumiBlockRange_p1* pers, LB_IOVRange* trans, MsgStream &) { (trans->m_start).m_status = IOVTime::RUN_EVT; (trans->m_start).setRETime(pers->m_start); (trans->m_start).m_status = IOVTime::RUN_EVT; (trans->m_stop).setRETime(pers->m_stop); + trans->m_NumExpected = 0; + trans->m_NumSeen = 0; + } diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/src/LumiBlockRangeCnv_p2.cxx b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/src/LumiBlockRangeCnv_p2.cxx new file mode 100755 index 0000000000000000000000000000000000000000..9aa5821c879dfd9e5c7255c3b546b5cb875a0166 --- /dev/null +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/src/LumiBlockRangeCnv_p2.cxx @@ -0,0 +1,33 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +/////////////////////////////////////////////////////////////////// +// Header file for class LumiBlockRangeCnv_p2 +// Author: Marjorie Shapiro <mdshapiro@lbl.gov> +/////////////////////////////////////////////////////////////////// + +#define private public +#define protected public +#include "LumiBlockData/LB_IOVRange.h" +#undef private +#undef protected + +#include "LumiBlockTPCnv/LumiBlockRangeCnv_p2.h" + +void LumiBlockRangeCnv_p2::transToPers(const LB_IOVRange* trans, LumiBlockRange_p2* pers, MsgStream &) { + pers->m_start = (trans->start()).re_time(); + pers->m_stop = (trans->stop()).re_time(); + pers->m_NumExpected = trans->m_NumExpected; + pers->m_NumSeen = trans->m_NumSeen; +} + +void LumiBlockRangeCnv_p2::persToTrans(const LumiBlockRange_p2* pers, LB_IOVRange* trans, MsgStream &) { + + (trans->m_start).m_status = IOVTime::RUN_EVT; + (trans->m_start).setRETime(pers->m_start); + (trans->m_start).m_status = IOVTime::RUN_EVT; + (trans->m_stop).setRETime(pers->m_stop); + trans->m_NumExpected = pers->m_NumExpected; + trans->m_NumSeen = pers->m_NumSeen; +} diff --git a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/src/LumiBlockTPCnv.cxx b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/src/LumiBlockTPCnv.cxx index 3961cac84bbad75fc3eab746b8772010d90bed3a..d8f4f9173197f269b9bb69222f4152749d78a9d8 100644 --- a/LumiBlock/LumiBlockPers/LumiBlockTPCnv/src/LumiBlockTPCnv.cxx +++ b/LumiBlock/LumiBlockPers/LumiBlockTPCnv/src/LumiBlockTPCnv.cxx @@ -10,9 +10,13 @@ #include "LumiBlockTPCnv/LumiBlockCollection_p1.h" #include "LumiBlockTPCnv/LumiBlockRangeCnv_p1.h" #include "LumiBlockTPCnv/LumiBlockCollectionCnv_p1.h" +#include "LumiBlockTPCnv/LumiBlockRange_p2.h" +#include "LumiBlockTPCnv/LumiBlockCollection_p2.h" +#include "LumiBlockTPCnv/LumiBlockRangeCnv_p2.h" +#include "LumiBlockTPCnv/LumiBlockCollectionCnv_p2.h" DECLARE_TPCNV_FACTORY(LumiBlockRangeCnv_p1, - IOVRange, + LB_IOVRange, LumiBlockRange_p1, Athena::TPCnvVers::Current) @@ -21,4 +25,15 @@ DECLARE_NAMED_TPCNV_FACTORY(LumiBlockCollectionCnv_p1, LumiBlockCollection, LumiBlockCollection_p1, Athena::TPCnvVers::Current) + +DECLARE_TPCNV_FACTORY(LumiBlockRangeCnv_p2, + LB_IOVRange, + LumiBlockRange_p2, + Athena::TPCnvVers::Current) + +DECLARE_NAMED_TPCNV_FACTORY(LumiBlockCollectionCnv_p2, + LumiBlockCollectionCnv_p2, + LumiBlockCollection, + LumiBlockCollection_p2, + Athena::TPCnvVers::Current)