CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PTrackerParametersDBBuilder.cc
Go to the documentation of this file.
2 
13 
14 void
16 {
19  if( !mydbservice.isAvailable())
20  {
21  edm::LogError( "PTrackerParametersDBBuilder" ) << "PoolDBOutputService unavailable";
22  return;
23  }
25  es.get<IdealGeometryRecord>().get( cpv );
26 
27  std::vector<int> pxbPars = dbl_to_int( DDVectorGetter::get( "pxbPars" ));
28  assert( pxbPars.size() == 6 );
29 
30  // FIXME: Populate pgde with data taken from cpv
31  ptp->pxb.layerStartBit = pxbPars.at(0); // 16
32  ptp->pxb.ladderStartBit = pxbPars.at(1); // 8
33  ptp->pxb.moduleStartBit = pxbPars.at(2); // 2
34  ptp->pxb.layerMask = pxbPars.at(3); // 0xF
35  ptp->pxb.ladderMask = pxbPars.at(4); // 0xFF
36  ptp->pxb.moduleMask = pxbPars.at(5); // 0x3F
37 
38  std::vector<int> pxfPars = dbl_to_int( DDVectorGetter::get( "pxfPars" ));
39  assert( pxfPars.size() == 10 );
40 
41  ptp->pxf.sideStartBit = pxfPars.at(0); // 23
42  ptp->pxf.diskStartBit = pxfPars.at(1); // 16
43  ptp->pxf.bladeStartBit = pxfPars.at(2); // 10
44  ptp->pxf.panelStartBit = pxfPars.at(3); // 8
45  ptp->pxf.moduleStartBit = pxfPars.at(4); // 2
46  ptp->pxf.sideMask = pxfPars.at(5); // 0x3
47  ptp->pxf.diskMask = pxfPars.at(6); // 0xF
48  ptp->pxf.bladeMask = pxfPars.at(7); // 0x3F
49  ptp->pxf.panelMask = pxfPars.at(8); // 0x3
50  ptp->pxf.moduleMask = pxfPars.at(9); // 0x3F
51 
52  std::vector<int> tecPars = dbl_to_int( DDVectorGetter::get( "tecPars" ));
53  assert( tecPars.size() == 14 );
54 
55  ptp->tec.sideStartBit = tecPars.at(0); // 18
56  ptp->tec.wheelStartBit = tecPars.at(1); // 14
57  ptp->tec.petal_fw_bwStartBit = tecPars.at(2); // 12
58  ptp->tec.petalStartBit = tecPars.at(3); // 8
59  ptp->tec.ringStartBit = tecPars.at(4); // 5
60  ptp->tec.moduleStartBit = tecPars.at(5); // 2
61  ptp->tec.sterStartBit = tecPars.at(6); // 0
62  ptp->tec.sideMask = tecPars.at(7); // 0x3
63  ptp->tec.wheelMask = tecPars.at(8); // 0xF
64  ptp->tec.petal_fw_bwMask = tecPars.at(9); // 0x3
65  ptp->tec.petalMask = tecPars.at(10); // 0xF
66  ptp->tec.ringMask = tecPars.at(11); // 0x7
67  ptp->tec.moduleMask = tecPars.at(12); // 0x7
68  ptp->tec.sterMask = tecPars.at(13); // 0x3
69 
70  std::vector<int> tibPars = dbl_to_int( DDVectorGetter::get( "tibPars" ));
71  assert( tibPars.size() == 12 );
72 
73  ptp->tib.layerStartBit = tibPars.at(0); // 14
74  ptp->tib.str_fw_bwStartBit = tibPars.at(1); // 12
75  ptp->tib.str_int_extStartBit = tibPars.at(2); // 10
76  ptp->tib.strStartBit = tibPars.at(3); // 4
77  ptp->tib.moduleStartBit = tibPars.at(4); // 2
78  ptp->tib.sterStartBit = tibPars.at(5); // 0
79  ptp->tib.layerMask = tibPars.at(6); // 0x7
80  ptp->tib.str_fw_bwMask = tibPars.at(7); // 0x3
81  ptp->tib.str_int_extMask = tibPars.at(8); // 0x3
82  ptp->tib.strMask = tibPars.at(9); // 0x3F
83  ptp->tib.moduleMask = tibPars.at(10); // 0x3
84  ptp->tib.sterMask = tibPars.at(11); // 0x3
85 
86  std::vector<int> tidPars = dbl_to_int( DDVectorGetter::get( "tidPars" ));
87  assert( tidPars.size() == 12 );
88 
89  ptp->tid.sideStartBit = tidPars.at(0); // 13
90  ptp->tid.wheelStartBit = tidPars.at(1); // 11
91  ptp->tid.ringStartBit = tidPars.at(2); // 9
92  ptp->tid.module_fw_bwStartBit = tidPars.at(3); // 7
93  ptp->tid.moduleStartBit = tidPars.at(4); // 2
94  ptp->tid.sterStartBit = tidPars.at(5); // 0
95  ptp->tid.sideMask = tidPars.at(6); // 0x3
96  ptp->tid.wheelMask = tidPars.at(7); // 0x3
97  ptp->tid.ringMask = tidPars.at(8); // 0x3
98  ptp->tid.module_fw_bwMask = tidPars.at(9); // 0x3
99  ptp->tid.moduleMask = tidPars.at(10); // 0x1F
100  ptp->tid.sterMask = tidPars.at(11); // 0x3
101 
102  std::vector<int> tobPars = dbl_to_int( DDVectorGetter::get( "tobPars" ));
103  assert( tobPars.size() == 10 );
104 
105  ptp->tob.layerStartBit = tobPars.at(0); // 14
106  ptp->tob.rod_fw_bwStartBit = tobPars.at(0); // 12
107  ptp->tob.rodStartBit = tobPars.at(0); // 5
108  ptp->tob.moduleStartBit = tobPars.at(0); // 2
109  ptp->tob.sterStartBit = tobPars.at(0); // 0
110  ptp->tob.layerMask = tobPars.at(0); // 0x7
111  ptp->tob.rod_fw_bwMask = tobPars.at(0); // 0x3
112  ptp->tob.rodMask = tobPars.at(0); // 0x7F
113  ptp->tob.moduleMask = tobPars.at(0); // 0x7
114  ptp->tob.sterMask = tobPars.at(0); // 0x3
115 
116  if( mydbservice->isNewTagRequest( "PTrackerParametersRcd" ))
117  {
118  mydbservice->createNewIOV<PTrackerParameters>( ptp, mydbservice->beginOfTime(), mydbservice->endOfTime(), "PTrackerParametersRcd" );
119  } else
120  {
121  edm::LogError( "PTrackerParametersDBBuilder" ) << "PTrackerParameters and PTrackerParametersRcd Tag already present";
122  }
123 }
std::vector< int > dbl_to_int(const std::vector< double > &vecdbl)
Converts a std::vector of doubles to a std::vector of int.
Definition: DDutils.cc:4
bool isNewTagRequest(const std::string &recordName)
bool isAvailable() const
Definition: Service.h:46
void createNewIOV(T *firstPayloadObj, cond::Time_t firstSinceTime, cond::Time_t firstTillTime, const std::string &recordName, bool withlogging=false)
std::vector< double > get(const std::string &)
virtual void beginRun(const edm::Run &, edm::EventSetup const &)
const T & get() const
Definition: EventSetup.h:55
Definition: Run.h:41