BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Supersede.cxx
Go to the documentation of this file.
1// $Header: /bes/bes/BossCvs/Calibration/rdbModel/src/Tables/Supersede.cxx,v 1.1.1.1 2005/10/17
2// 06:10:53 maqm Exp $
3
4#include "rdbModel/Tables/Supersede.h"
5#include "rdbModel/RdbException.h"
6#include "rdbModel/Tables/Set.h"
7
8namespace rdbModel {
9
11 : m_myTable( table ), m_onlyIf( onlyIf ), m_normalized( false ) {
12 m_setOld.clear();
13 m_setNew.clear();
14 m_oldDefaults.clear();
15 m_oldForced.clear();
16 m_ask.clear();
17 m_fixed.clear();
18 }
19
21 FIELDTYPE vtype = s->getDestType();
22 switch ( vtype )
23 {
24 case FIELDTYPEold:
25 case FIELDTYPEoldDef: // this shouldn't occur
26 m_setOld.push_back( s );
27 break;
28 case FIELDTYPEtoBe:
29 case FIELDTYPEtoBeDef: // nor this
30 m_setNew.push_back( s );
31 break;
32 default: throw RdbException( "Bad value type for <set> destination" );
33 }
34 return;
35 }
36
38 if ( m_normalized ) return;
39 // unsigned nOld = m_setOld.size();
40 unsigned nNew = m_setNew.size();
41 // For each object in m_setNew, store information in one of the
42 // vectors of column names or in m_fixed for easy access later
43 for ( unsigned iNew = 0; iNew < nNew; iNew++ )
44 {
45 // FIELDTYPE srcType = m_setOld[iOld]->getSrcType();
46 // switch (srcType) {
47 switch ( m_setNew[iNew]->getSrcType() )
48 {
49 case FIELDTYPEold: m_oldForced.push_back( m_setNew[iNew]->getDestColName() ); break;
50 case FIELDTYPEoldDef: m_oldDefaults.push_back( m_setNew[iNew]->getDestColName() ); break;
51 case FIELDTYPEask: m_ask.push_back( m_setNew[iNew]->getDestColName() ); break;
52 case FIELDTYPElit:
53 m_fixed.push_back(
54 FieldVal( m_setNew[iNew]->getDestColName(), m_setNew[iNew]->getSrcValue() ) );
55 m_fixedInterp.push_back( m_setNew[iNew]->getInterp() );
56 break;
57 default: throw RdbException( "Supersede::normalize Unrecognized <set>" );
58 }
59 }
60
61 m_fromOld.reserve( m_oldDefaults.size() + m_oldForced.size() );
62 m_fromOld.clear();
63 for ( unsigned i = 0; i < m_oldDefaults.size(); i++ )
64 { m_fromOld.push_back( m_oldDefaults[i] ); }
65 for ( unsigned i = 0; i < m_oldForced.size(); i++ )
66 { m_fromOld.push_back( m_oldForced[i] ); }
67 m_normalized = true;
68 }
69
71 while ( m_setOld.size() )
72 {
73 Set* s = m_setOld.back();
74 m_setOld.pop_back();
75 delete s;
76 }
77 while ( m_setNew.size() )
78 {
79 Set* s = m_setNew.back();
80 m_setNew.pop_back();
81 delete s;
82 }
83 // delete m_onlyIf; probably already handled by ~Table
84 }
85 // For now assume visitSupersede will handle everything. Don't need
86 // separate visitSet method.
88 Visitor::VisitorState state = v->visitSupersede( this );
89 if ( state == Visitor::VBRANCHDONE ) return Visitor::VCONTINUE;
90 return state;
91 }
92
93} // namespace rdbModel
XmlRpcServer s
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition KarLud.h:35
Supersede(Table *table, Assertion *onlyIf=0)
Definition Supersede.cxx:10
void addSet(Set *s)
Definition Supersede.cxx:20
Visitor::VisitorState accept(Visitor *v)
Definition Supersede.cxx:87