20 declareInterface<IjTowerBuilder>(
this);
27 return StatusCode::SUCCESS;
36 jTowerContainerRaw->clearContainerMap();
37 jTowerContainerRaw->fillContainerMap();
63 for (
int ieta = 0; ieta < 14; ++ieta) {
64 float centre_eta = (0.1*ieta) + (0.05) ;
65 for (
int iphi = 0; iphi < 64; ++iphi) {
68 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 100000, -1, -1*centre_eta, centre_phi);
69 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 200000, 1, centre_eta, centre_phi);
76 int TRANS_MODIFIER = 14;
77 int tmpVal = TRANS_MODIFIER;
79 for (
int ieta = tmpVal; ieta < tmpVal + 1; ieta++) {
80 float centre_eta = (0.1*ieta) + (0.05);
81 for (
int iphi = 0; iphi < 64; ++iphi) {
84 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 300000, -1,-1*centre_eta, centre_phi);
85 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 400000, 1, centre_eta, centre_phi);
93 int EME_MODIFIER = 15;
94 int tmpVal = EME_MODIFIER;
96 for (
int ieta = tmpVal; ieta < tmpVal + 3; ++ieta) {
97 float centre_eta =(0.1*ieta) + (0.05) ;
98 for (
int iphi = 0; iphi < 64; ++iphi) {
101 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 500000, -1, -1*centre_eta, centre_phi);
102 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 600000, 1, centre_eta, centre_phi);
108 tmpVal = EME_MODIFIER;
109 for (
int ieta = tmpVal; ieta < tmpVal + 2; ++ieta) {
110 float centre_eta = (0.1*ieta) + (0.05);
111 for (
int iphi = 0; iphi < 64; ++iphi) {
114 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 500000, -1,-1*centre_eta, centre_phi);
115 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 600000, 1, centre_eta, centre_phi);
121 tmpVal = EME_MODIFIER;
122 for (
int ieta = tmpVal; ieta < tmpVal + 4; ++ieta) {
123 float centre_eta= (0.1*ieta) + (0.05) ;
124 for (
int iphi = 0; iphi < 64; ++iphi) {
127 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 500000, -1,-1*centre_eta, centre_phi);
128 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 600000, 1, centre_eta, centre_phi);
134 tmpVal = EME_MODIFIER;
135 for (
int ieta = tmpVal; ieta < tmpVal + 1; ++ieta) {
136 float centre_eta = (0.1*ieta) + (0.05);
137 for (
int iphi = 0; iphi < 64; ++iphi) {
141 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 500000, -1, -1*centre_eta, centre_phi);
142 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 600000, 1, centre_eta, centre_phi);
152 int EMIE_MODIFIER = 25;
153 int tmpVal = EMIE_MODIFIER;
154 int cellCountEta = 0;
156 for (
int ieta = tmpVal; ieta < tmpVal + 3; ++ieta) {
158 float centre_eta =(0.1*ieta) + (0.1*cellCountEta) ;
159 for (
int iphi = 0; iphi < 32; ++iphi) {
162 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 500000, -1, -1*centre_eta, centre_phi);
163 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 600000, 1, centre_eta, centre_phi);
168 tmpVal = EMIE_MODIFIER;
169 for (
int ieta = tmpVal; ieta < tmpVal + 1; ++ieta) {
170 float centre_eta = (0.1*ieta + 0.3) + (0.05);
171 for (
int iphi = 0; iphi < 32; ++iphi) {
174 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 500000, -1, -1*centre_eta, centre_phi);
175 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 600000, 1, centre_eta, centre_phi);
183 int FCAL_MODIFIER = 29;
184 int tmpVal = FCAL_MODIFIER;
199 float eta_width = 1.4;
200 int cellCountEta = 0;
201 int FCAL0_INITIAL = FCAL_MODIFIER;
202 std::vector<int> TT_etapos{31,33,34,36,37,39,40,42,43,45,46,48};
203 for (
int ieta = tmpVal; ieta < tmpVal + 12; ++ieta) {
204 int key_eta = ieta - FCAL0_INITIAL;
205 float centre_eta = (TT_etapos[cellCountEta]+eta_width/2)/10.0;
208 for (
int iphi = 0; iphi < 16; ++iphi) {
210 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 700000, -1, -1*centre_eta, centre_phi, 0);
211 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 800000, 1, centre_eta, centre_phi, 0);
219 tmpVal = FCAL_MODIFIER;
220 TT_etapos = {31,33,35,37,39,41,43,44};
221 int FCAL1_INITIAL = FCAL_MODIFIER;
222 for (
int ieta = tmpVal; ieta < tmpVal + 8; ++ieta) {
223 int key_eta = ieta - FCAL1_INITIAL;
224 float centre_eta = (TT_etapos[cellCountEta]+eta_width/2)/10.0;
226 for (
int iphi = 0; iphi < 16; ++iphi) {
228 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 900000, -1, -1*centre_eta, centre_phi, 1);
229 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 1000000, 1, centre_eta, centre_phi, 1);
238 tmpVal = FCAL_MODIFIER;
239 TT_etapos = {31,34,37,41};
240 int FCAL2_INITIAL = FCAL_MODIFIER;
241 for (
int ieta = tmpVal; ieta < tmpVal + 4; ++ieta) {
242 int key_eta = ieta - FCAL2_INITIAL;
243 float centre_eta = (TT_etapos[cellCountEta]+eta_width/2)/10.0;
245 for (
int iphi = 0; iphi < 16; ++iphi) {
247 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 1100000, -1, -1*centre_eta, centre_phi, 2);
248 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 1200000, 1, centre_eta, centre_phi, 2);
260 int HEC_MODIFIER = 29;
261 int tmpVal = HEC_MODIFIER;
262 for (
int ieta = tmpVal; ieta < tmpVal + 10; ++ieta){
263 for (
int iphi = 0; iphi < 64; ++iphi){
265 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 11100000, -1, ieta, iphi);
266 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 22200000, 1, ieta, iphi);
272 tmpVal = HEC_MODIFIER;
273 for (
int ieta = tmpVal; ieta < tmpVal + 4; ++ieta){
274 for (
int iphi = 0; iphi < 32; ++iphi){
276 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 11100000, -1, ieta, iphi);
277 BuildSingleTower(jTowerContainerRaw, ieta, iphi, key_eta, 22200000, 1, ieta, iphi);
285 void jTowerBuilder::BuildSingleTower(std::unique_ptr<jTowerContainer> & jTowerContainerRaw,
float eta,
float phi,
int key_eta,
float keybase,
int posneg,
float centre_eta,
float centre_phi,
int fcal_layer)
const {
286 int towerID = keybase + phi + (64 * key_eta);
287 jTowerContainerRaw->push_back(eta, phi, towerID, posneg, centre_eta, centre_phi, fcal_layer);
298 return StatusCode::FAILURE;
303 auto [CutJetEM, CutJetHad, CutMetEM, CutMetHad] = myDBTool->get_NoiseCuts( jtower->OnlineID() );
304 auto [PileUpWeightEM, PileUpWeightHad, InverseWeightEM, InverseWeightHad] = myDBTool->get_PileUpValues( jtower->OnlineID() );
307 int LSBscale_EM = 25;
308 int LSBscale_HAD = 25;
311 if(std::abs(jtower->centreEta()) < 1.5){
323 InverseWeightHad = 0;
326 jtower->setTTowerArea(PileUpWeightEM,0);
327 jtower->setTTowerArea(PileUpWeightHad,1);
329 jtower->setTTowerAreaInv(InverseWeightEM,0);
330 jtower->setTTowerAreaInv(InverseWeightHad,1);
332 jtower->setNoiseForMet(CutMetEM*LSBscale_EM,0);
333 jtower->setNoiseForMet(CutMetHad*LSBscale_HAD,1);
335 jtower->setNoiseForJet(CutJetEM*LSBscale_EM,0);
336 jtower->setNoiseForJet(CutJetHad*LSBscale_HAD,1);
339 return StatusCode::SUCCESS;