00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020
00021 #include <Stiostream.h>
00022 #include "StChain.h"
00023 #include "TFile.h"
00024 #include <math.h>
00025
00026 #include "StMaker.h"
00027 #include "St_DataSetIter.h"
00028 #include "StEvent/StEvent.h"
00029 #include "StEvent/StEventTypes.h"
00030 #include "StEmcUtil/database/StBemcTables.h"
00031 #include "StDaqLib/EMC/StEmcDecoder.h"
00032
00033 #include "StEmcTriggerMaker.h"
00034
00035
00036 ClassImp(StEmcTriggerMaker)
00037
00038
00039 StEmcTriggerMaker::StEmcTriggerMaker(const char *name):StMaker(name)
00040 {
00041 mBemcTrigger = new StBemcTrigger();
00042
00043 mIs2003HT1=-1;
00044 mIs2003HT2=-1;
00045 mIs2004HT1=-1;
00046 mIs2004JP1=-1;
00047 mIs2004HT2=-1;
00048 mIs2004JP2=-1;
00049 mIs2005HT1=-1;
00050 mIs2005JP1=-1;
00051 mIs2005HT2=-1;
00052 mIs2005JP2=-1;
00053 mIs2005ADJ=-1;
00054 mIs2005JPSI=-1;
00055 for (int matrix=0;matrix<6;matrix++){
00056 mIs2006JP0[matrix]=-1;
00057 mIs2006HT2[matrix]=-1;
00058 mIs2006JP1[matrix]=-1;
00059 mIs2006JPSI[matrix]=-1;
00060 mIs2006HTTP[matrix]=-1;
00061 }
00062 for (int i=0;i<50;i++) isTrig[i]=-1;
00063
00064
00065 HT1_ID_2003=-1;
00066 HT2_ID_2003=-1;
00067 HT1_ID_2004=-1;
00068 HT2_ID_2004=-1;
00069 JP1_ID_2004=-1;
00070 JP2_ID_2004=-1;
00071 HT1_ID_2005=-1;
00072 HT2_ID_2005=-1;
00073 JP1_ID_2005=-1;
00074 JP2_ID_2005=-1;
00075 ADJ_ID_2005=-1;
00076 for (int matrix=0;matrix<6;matrix++)
00077 {
00078 HT2_ID_2006[matrix]=-1;
00079 JP0_ID_2006[matrix]=-1;
00080 JP1_ID_2006[matrix]=-1;
00081 }
00082
00083 for (int i=0;i<50;i++) TowJetId[i] = -1;
00084
00085 HT1_DSM_2003=-1;
00086 HT2_DSM_2003=-1;
00087 HT1_DSM_2004=-1;
00088 HT2_DSM_2004=-1;
00089 JP1_DSM_2004=-1;
00090 JP2_DSM_2004=-1;
00091 HT1_DSM_2005=-1;
00092 HT2_DSM_2005=-1;
00093 JP1_DSM_2005=-1;
00094 JP2_DSM_2005=-1;
00095 ADJ_DSM_2005=-1;
00096 for ( int matrix=0;matrix<6;matrix++){
00097 HT2_DSM_2006[matrix]=-1;
00098 JP0_DSM_2006[matrix]=-1;
00099 JP1_DSM_2006[matrix]=-1;
00100 }
00101 BETOT_DSM_2006=-1;
00102
00103 for (int i=0;i<50;i++) DsmAdc[i] = -1;
00104
00105 for (int i=0;i<kNJet;i++){
00106 JP12005array[i]=-1;
00107 JP22005array[i]=-1;
00108 }
00109 for (int i=0; i<kNTowers; i++){
00110 HT12005array[i]=-1;
00111 HT22005array[i]=-1;
00112 }
00113
00114 for (int i=0;i<(kNJet/2);i++){ BL1_2006_arrayADC[i]=-1;}
00115
00116 for (int i=0; i<12; i++) {
00117 numHT[i]=-1;
00118 numJP[i]=-1;
00119 if (i<6) numHTTP[i]=-1;
00120 }
00121
00122 }
00123
00124
00125 StEmcTriggerMaker::~StEmcTriggerMaker()
00126 {}
00127
00128
00129 Int_t StEmcTriggerMaker::Init()
00130 {
00131 tables=new StBemcTables();
00132
00133 LOG_INFO <<"StEmcTriggerMaker::Init()"<<endm;
00134
00135 return StMaker::Init();
00136 }
00137
00138 Int_t StEmcTriggerMaker::Make()
00139 {
00140
00141 LOG_DEBUG<<"StEmcTriggerMaker::Make()"<<endm;
00142
00143 tables->loadTables(this);
00144 setTableMaker(tables);
00145
00146 StEvent* event=(StEvent*)GetInputDS("StEvent");
00147 if(!event) return kStOk;
00148
00149 mBemcTrigger->setEvent(event);
00150
00151 if(mBemcTrigger->makeTrigger() != kStOK)
00152 {
00153 LOG_WARN << "StEmcTriggerMaker::Make() -- trigger information is not filled! Something is wrong!" << endm;
00154 }
00155
00156 int* isTrig = mBemcTrigger->isTrigEvent();
00157 int* TowJetId = mBemcTrigger->getTowPatchId();
00158 int* DsmAdc = mBemcTrigger->getTowPatchDSM();
00159 int* numHT = mBemcTrigger->getNHT();
00160 int* numJP = mBemcTrigger->getNJP();
00161 int* numHTTP =mBemcTrigger->getNHTTP();
00162 int* HT12005array = mBemcTrigger->getHT12005array();
00163 int* HT22005array = mBemcTrigger->getHT22005array();
00164 int* JP12005array = mBemcTrigger->getJP12005array();
00165 int* JP22005array = mBemcTrigger->getJP22005array();
00166 int* JPSI2005adc = mBemcTrigger->getJPSI2005adc();
00167 int* JPSI2005id = mBemcTrigger->getJPSI2005id();
00168 int* BL12006arrayADC=mBemcTrigger->getBL12006arrayADC();
00169
00170
00171
00172 mIs2003HT1=isTrig[0];
00173 HT1_ID_2003=TowJetId[0];
00174 HT1_DSM_2003=DsmAdc[0];
00175
00176
00177 mIs2003HT2=isTrig[42];
00178 HT2_ID_2003=TowJetId[42];
00179 HT2_DSM_2003=DsmAdc[42];
00180
00181
00182 mIs2004HT1=isTrig[1];
00183 HT1_ID_2004=TowJetId[1];
00184 HT1_DSM_2004=DsmAdc[1];
00185
00186
00187 mIs2004HT2=isTrig[2];
00188 HT2_ID_2004=TowJetId[2];
00189 HT2_DSM_2004=DsmAdc[2];
00190
00191
00192 mIs2004JP1=isTrig[3];
00193 JP1_ID_2004=TowJetId[3];
00194 JP1_DSM_2004=DsmAdc[3];
00195
00196
00197 mIs2004JP2=isTrig[4];
00198 JP2_ID_2004=TowJetId[4];
00199 JP2_DSM_2004=DsmAdc[4];
00200
00201
00202 mIs2005HT1=isTrig[5];
00203 HT1_ID_2005=TowJetId[5];
00204 HT1_DSM_2005=DsmAdc[5];
00205 numHT1_2005=numHT[3];
00206 for (int i=0;i<numHT1_2005;i++){
00207 HT1_2005_array[i]=HT12005array[i];
00208 }
00209
00210
00211 mIs2005HT2=isTrig[6];
00212 HT2_ID_2005=TowJetId[6];
00213 HT2_DSM_2005=DsmAdc[6];
00214 numHT2_2005=numHT[4];
00215 for (int i=0;i<numHT2_2005;i++){
00216 HT2_2005_array[i]=HT22005array[i];
00217 }
00218
00219
00220 mIs2005JP1=isTrig[7];
00221 JP1_ID_2005=TowJetId[7];
00222 JP1_DSM_2005=DsmAdc[7];
00223 numJP1_2005=numJP[2];
00224 for (int i=0;i<numJP1_2005;i++){
00225 JP1_2005_array[i]=JP12005array[i];
00226 }
00227
00228
00229 mIs2005JP2=isTrig[8];
00230 JP2_ID_2005=TowJetId[8];
00231 JP2_DSM_2005=DsmAdc[8];
00232 numJP2_2005=numJP[3];
00233 for (int i=0;i<numJP2_2005;i++){
00234 JP2_2005_array[i]=JP22005array[i];
00235 }
00236
00237
00238 mIs2005ADJ=isTrig[9];
00239 ADJ_ID_2005=TowJetId[9];
00240 ADJ_DSM_2005=DsmAdc[9];
00241
00242
00243 mIs2005JPSI=isTrig[10];
00244 for (int i=0;i<kNJet; i++){
00245 JPSI_2005_ADC[i]=JPSI2005adc[i];
00246 JPSI_2005_ID[i]=JPSI2005id[i];
00247 }
00248
00249
00250
00251 for (int matrix=0;matrix<6;matrix++)
00252 {
00253
00254 mIs2006HT2[matrix]=isTrig[11+(matrix*5)];
00255 HT2_ID_2006[matrix]=TowJetId[11+(matrix*5)];
00256 HT2_DSM_2006[matrix]=DsmAdc[11+(matrix*5)];
00257 numHT2_2006[matrix]=numHT[5+matrix];
00258 for (int i=0;i<numHT2_2006[matrix];i++){
00259 HT2_2006_array[matrix][i]=mBemcTrigger->getHT22006array(matrix,i);
00260 }
00261
00262
00263 mIs2006JP0[matrix]=isTrig[12+(matrix*5)];
00264 JP0_ID_2006[matrix]=TowJetId[12+(matrix*5)];
00265 JP0_DSM_2006[matrix]=DsmAdc[12+(matrix*5)];
00266 numJP0_2006[matrix]=numJP[5+(matrix*2)];
00267 for (int i=0;i<numJP0_2006[matrix];i++) {
00268 JP0_2006_array[matrix][i]=mBemcTrigger->getJP02006array(matrix,i);
00269 }
00270
00271
00272 mIs2006JP1[matrix]=isTrig[13+(matrix*5)];
00273 JP1_ID_2006[matrix]=TowJetId[13+(matrix*5)];
00274 JP1_DSM_2006[matrix]=DsmAdc[13+(matrix*5)];
00275 numJP1_2006[matrix]=numJP[6+(matrix*2)];
00276 for (int i=0;i<numJP1_2006[matrix];i++){
00277 JP1_2006_array[matrix][i]=mBemcTrigger->getJP12006array(matrix,i);
00278 }
00279
00280
00281 mIs2006JPSI[matrix]=isTrig[14+(matrix*5)];
00282 for (int i=0;i<kNJet; i++){
00283 JPSI_2006_ADC[matrix][i]=mBemcTrigger->getJPSI2006adc(matrix,i);
00284 JPSI_2006_ID[matrix][i]=mBemcTrigger->getJPSI2006id(matrix,i);
00285 }
00286
00287
00288 mIs2006HTTP[matrix]=isTrig[15+(matrix*5)];
00289 numHTTP_2006[matrix]=numHTTP[matrix];
00290 for (int i=0; i<numHTTP_2006[matrix]; i++){
00291 HTTP_2006_arrayTP[matrix][i]=mBemcTrigger->getHTTP2006arrayTP(matrix,i);
00292 HTTP_2006_arrayHT[matrix][i]=mBemcTrigger->getHTTP2006arrayHT(matrix,i);
00293 HTTP_2006_arrayTP_ADC[matrix][i]=mBemcTrigger->getHTTP2006arrayTPADC(matrix,i);
00294 HTTP_2006_arrayHT_ADC[matrix][i]=mBemcTrigger->getHTTP2006arrayHTADC(matrix,i);
00295 }
00296 }
00297
00298
00299 BETOT_DSM_2006=DsmAdc[41];
00300 for (int i=0;i<kNJet/2;i++) BL1_2006_arrayADC[i]=BL12006arrayADC[i];
00301
00302
00303
00304 for (int j=0;j<300;j++)
00305 {
00306 trigPatch[j]=0;
00307 trigPatch[j]=mBemcTrigger->trgPatch[j];
00308 }
00309
00310 return kStOK;
00311 }
00312
00313
00314 Int_t StEmcTriggerMaker::Finish()
00315 {
00316 return StMaker::Finish();
00317 }
00318
00319 void StEmcTriggerMaker::get2005HT1_TOWS(int index, int *id){
00320 *id=-1;
00321 if (index<kNTowers) *id=HT1_2005_array[index];
00322 }
00323
00324 void StEmcTriggerMaker::get2005HT2_TOWS(int index, int *id){
00325 *id=-1;
00326 if (index<kNTowers) *id=HT2_2005_array[index];
00327 }
00328
00329 void StEmcTriggerMaker::get2005JP1_PATCHES(int index, int *id){
00330 *id=-1;
00331 if (index<kNJet) *id=JP1_2005_array[index];
00332 }
00333
00334 void StEmcTriggerMaker::get2005JP2_PATCHES(int index, int *id){
00335 *id=-1;
00336 if (index<kNJet) *id=JP2_2005_array[index];
00337 }
00338
00339 void StEmcTriggerMaker::get2005JPSI_ADC(int index, int *id){
00340 *id=-1;
00341 if (index<kNJet) *id=JPSI_2005_ADC[index];
00342 }
00343
00344 void StEmcTriggerMaker::get2005JPSI_ID(int index, int *id){
00345 *id=-1;
00346 if (index<kNJet) *id=JPSI_2005_ID[index];
00347 }
00348
00349
00350 void StEmcTriggerMaker::get2006BL1_ADC(int index, int *id){
00351 *id=-1;
00352 if (index<kNJet/2) *id=BL1_2006_arrayADC[index];
00353 }
00354
00355
00356 int StEmcTriggerMaker::isTrigger(int trigId) {
00357
00358 switch(trigId)
00359 {
00360
00361
00362
00363 case(127212): return mIs2006HT2[0];
00364
00365
00366
00367 case(127501): return mIs2006JP0[1];
00368
00369 case(127221): return mIs2006JP1[1];
00370
00371 case(127821): return mIs2006HTTP[1];
00372
00373 case(127611): return -1;
00374
00375 case(127622): return -1;
00376
00377 case(127213): return mIs2006HT2[1];
00378
00379 case(117705): return mIs2006JPSI[1];
00380
00381 case(117602): return mIs2006HTTP[1];
00382
00383
00384
00385 case(137221): return mIs2006JP1[2];
00386
00387
00388
00389 case(137501): return mIs2006JP0[3];
00390
00391 case(137222): return mIs2006JP1[3];
00392
00393 case(137821): return mIs2006HTTP[3];
00394
00395 case(137622): return -1;
00396
00397 case(137213): return mIs2006HT2[3];
00398
00399 case(137602): return mIs2006HTTP[3];
00400
00401
00402
00403
00404 case(137822): return mIs2006HTTP[4];
00405
00406
00407
00408 case(137611): return -1;
00409
00410
00411 case(96201): return is2005HT1();
00412 case(96211): return is2005HT2();
00413 case(96221): return is2005JP1();
00414 case(96233): return is2005JP2();
00415 case(45201): return is2004HT1();
00416 case(45202): return is2004HT2();
00417 case(45206): return is2004JP1();
00418 case(45207): return is2004JP2();
00419 case(1101): return is2003HT1();
00420 case(2201): return is2003HT1();
00421 case(2202): return is2003HT2();
00422
00423 }
00424
00425
00426 return -1;
00427 }
00428
00429
00430 int StEmcTriggerMaker::barrelTowerThreshold(int trigId, int softId)
00431 {
00432 switch(trigId)
00433 {
00434
00435 case(127212): return (softId > 2400) ? 24:22;
00436 case(127213):case(137213): return 24;
00437
00438
00439 case(127501):case(137501):
00440 case(127221):case(137221):case(137222): return 0;
00441
00442
00443 case(127821): return 12;
00444 case(137821): return 18;
00445 case(137822): return 16;
00446
00447
00448 case(117705): return (softId > 2400) ? 11:5;
00449
00450
00451 case(96201): return 13;
00452 case(96211): return 17;
00453 case(96221): case(96233): return 0;
00454 case(45201): return 10;
00455 case(45202): return 20;
00456 case(45206): case(45207): return 0;
00457 case(1101): return 8;
00458 case(2201): return 8;
00459 case(2202): return 13;
00460
00461
00462 }
00463
00464
00465 return -1;
00466 }
00467
00468 int StEmcTriggerMaker::barrelTriggerPatchThreshold(int trigId, int patchId)
00469 {
00470 switch(trigId)
00471 {
00472
00473 case(127212):case(127213):case(137213): return 0;
00474
00475
00476 case(127501):case(137501):
00477 case(127221):case(137221):case(137222): return 0;
00478
00479
00480 case(127821): return 17;
00481 case(137821): return 20;
00482 case(137822): return 19;
00483
00484
00485 case(117705): return 0;
00486
00487
00488 case(96201): case(96211): case(96221): case(96233): return 0;
00489 case(45201): case(45202): case(45206): case(45207): return 0;
00490 case(1101): case(2201): case(2202): return 0;
00491
00492 }
00493
00494
00495 return -1;
00496 }
00497
00498 int StEmcTriggerMaker::barrelJetPatchThreshold(int trigId, int patchId)
00499 {
00500 switch(trigId)
00501 {
00502
00503 case(127212):case(127213):case(137213): return 0;
00504
00505
00506 case(127501):return 42;
00507 case(127221):case(137221): return 58;
00508 case(137501):return 49;
00509 case(137222):return 60;
00510
00511
00512 case(127821):case(137821):case(137822): return 0;
00513
00514
00515 case(117705): return 0;
00516
00517
00518 case(96201): case(96211): return 0;
00519 case(96221): return 66;
00520 case(96233): return 84;
00521 case(45201): case(45202): return 0;
00522 case(45206): return 40;
00523 case(45207): return 60;
00524 case(1101): case(2201): case(2202): return 0;
00525
00526
00527 }
00528
00529
00530 return -1;
00531 }
00532
00533 map<int,int> StEmcTriggerMaker::barrelTowersAboveThreshold(int trigId) {
00534 map<int,int> towers;
00535 int counter,softId,adc;
00536
00537 switch(trigId)
00538 {
00539
00540
00541
00542 case(127212):
00543 counter = numHT2_2006[0];
00544 for(int i=0; i<counter; i++) {
00545 adc=-1;
00546 softId=HT2_2006_array[0][i];
00547 if (softId == HT2_ID_2006[0]) adc = HT2_DSM_2006[0];
00548 towers[softId] = adc;
00549 }
00550 break;
00551
00552
00553
00554 case(127821):
00555 counter = numHTTP_2006[1];
00556 for(int i=0; i<counter; i++) {
00557 softId= HTTP_2006_arrayHT[1][i];
00558 adc = HTTP_2006_arrayHT_ADC[1][i];
00559 towers[softId] = adc;
00560 }
00561 break;
00562
00563
00564
00565
00566
00567
00568
00569 case(127213):
00570 counter = numHT2_2006[1];
00571 for(int i=0; i<counter; i++) {
00572 softId=HT2_2006_array[1][i];
00573 adc=-1;
00574 if (softId == HT2_ID_2006[1]) adc = HT2_DSM_2006[1];
00575 towers[softId] = adc;
00576 }
00577 break;
00578
00579
00580 case(117705):
00581 counter = kNJet;
00582 for(int i=0; i<counter; i++) {
00583 softId=JPSI_2006_ID[1][i];
00584 adc=JPSI_2006_ADC[1][i];
00585 towers[softId] = adc;
00586 }
00587 break;
00588
00589
00590 case(117602):
00591 counter = numHTTP_2006[1];
00592 for(int i=0; i<counter; i++) {
00593 softId= HTTP_2006_arrayHT[1][i];
00594 adc = HTTP_2006_arrayHT_ADC[1][i];
00595 towers[softId] = adc;
00596 }
00597 break;
00598
00599
00600
00601
00602
00603
00604 case(137821):
00605 counter = numHTTP_2006[3];
00606 for(int i=0; i<counter; i++) {
00607 softId= HTTP_2006_arrayHT[3][i];
00608 adc = HTTP_2006_arrayHT_ADC[3][i];
00609 towers[softId] = adc;
00610 }
00611 break;
00612
00613
00614 case(137213):
00615 counter = numHT2_2006[3];
00616 for(int i=0; i<counter; i++) {
00617 softId=HT2_2006_array[3][i];
00618 adc=-1;
00619 if (softId == HT2_ID_2006[3]) adc = HT2_DSM_2006[3];
00620 towers[softId] = adc;
00621 }
00622 break;
00623
00624
00625 case(137602):
00626 counter = numHTTP_2006[3];
00627 for(int i=0; i<counter; i++) {
00628 softId= HTTP_2006_arrayHT[3][i];
00629 adc = HTTP_2006_arrayHT_ADC[3][i];
00630 towers[softId] = adc;
00631 }
00632 break;
00633
00634
00635
00636 case(137822):
00637 counter = numHTTP_2006[4];
00638 for(int i=0; i<counter; i++) {
00639 softId= HTTP_2006_arrayHT[4][i];
00640 adc = HTTP_2006_arrayHT_ADC[4][i];
00641 towers[softId] = adc;
00642 }
00643 break;
00644
00645
00646
00647
00648
00649
00650
00651 case(96201):
00652 counter = get2005HT1_NTOWS();
00653 for(int i=0; i<counter; i++) {
00654 get2005HT1_TOWS(i,&softId);
00655 adc = -1;
00656 if(softId == get2005HT1_ID()) adc = get2005HT1_ADC();
00657 towers[softId] = adc;
00658 }
00659 break;
00660
00661
00662 case(96211):
00663 counter = get2005HT2_NTOWS();
00664 for(int i=0; i<counter; i++) {
00665 get2005HT2_TOWS(i,&softId);
00666 adc = -1;
00667 if(softId == get2005HT2_ID()) adc = get2005HT2_ADC();
00668 towers[softId] = adc;
00669 }
00670 break;
00671
00672 case(1101):
00673 if (is2003HT1()==0) counter=0;
00674 if (is2003HT1()==1) counter=1;
00675 for(int i=0; i<counter; i++) {
00676 softId=get2003HT1_ID();
00677 adc = get2003HT1_ADC();
00678 towers[softId] = adc;
00679 }
00680 break;
00681
00682 case(2201):
00683 if (is2003HT1()==0) counter=0;
00684 if (is2003HT1()==1) counter=1;
00685 for(int i=0; i<counter; i++) {
00686 softId=get2003HT1_ID();
00687 adc = get2003HT1_ADC();
00688 towers[softId] = adc;
00689 }
00690 break;
00691
00692 case(2202):
00693 if (is2003HT2()==0) counter=0;
00694 if (is2003HT2()==1) counter=1;
00695 for(int i=0; i<counter; i++) {
00696 softId=get2003HT2_ID();
00697 adc = get2003HT2_ADC();
00698 towers[softId] = adc;
00699 }
00700 break;
00701
00702 case(45201):
00703 if (is2004HT1()==0) counter=0;
00704 if (is2004HT1()==1) counter=1;
00705 for(int i=0; i<counter; i++) {
00706 softId=get2004HT1_ID();
00707 adc = get2004HT1_ADC();
00708 towers[softId] = adc;
00709 }
00710 break;
00711
00712 case(45202):
00713 if (is2004HT2()==0) counter=0;
00714 if (is2004HT2()==1) counter=1;
00715 for(int i=0; i<counter; i++) {
00716 softId=get2004HT2_ID();
00717 adc = get2004HT2_ADC();
00718 towers[softId] = adc;
00719 }
00720 break;
00721
00722
00723
00724 }
00725
00726 return towers;
00727 }
00728
00729
00730 map<int,int> StEmcTriggerMaker::barrelTriggerPatchesAboveThreshold(int trigId) {
00731 map<int,int> patches;
00732 int counter,softId,adc;
00733
00734 switch(trigId)
00735 {
00736
00737
00738 case(127821):
00739 counter = numHTTP_2006[1];
00740 for(int i=0; i<counter; i++) {
00741 softId=HTTP_2006_arrayTP[1][i];
00742 adc=HTTP_2006_arrayTP_ADC[1][i];
00743 patches[softId] = adc;
00744 }
00745 break;
00746
00747
00748 case(137821):
00749 counter = numHTTP_2006[3];
00750 for(int i=0; i<counter; i++) {
00751 softId=HTTP_2006_arrayTP[3][i];
00752 adc=HTTP_2006_arrayTP_ADC[3][i];
00753 patches[softId] = adc;
00754 }
00755 break;
00756
00757
00758 case(137822):
00759 counter = numHTTP_2006[4];
00760 for(int i=0; i<counter; i++) {
00761 softId=HTTP_2006_arrayTP[4][i];
00762 adc=HTTP_2006_arrayTP_ADC[4][i];
00763 patches[softId] = adc;
00764 }
00765 break;
00766 }
00767
00768 return patches;
00769 }
00770
00771 map<int,int> StEmcTriggerMaker::barrelJetPatchesAboveThreshold(int trigId) {
00772 map<int,int> patches;
00773 int counter,softId,adc;
00774
00775 switch(trigId)
00776 {
00777
00778
00779 case(127501):
00780 counter = numJP0_2006[1];
00781 for(int i=0; i<counter; i++) {
00782 adc=-1;
00783 softId=JP0_2006_array[1][i];
00784 if(softId == JP0_ID_2006[1]) adc = JP0_DSM_2006[1];
00785 patches[softId] = adc;
00786 }
00787 break;
00788
00789
00790 case(127221):
00791 counter = numJP1_2006[1];
00792 for(int i=0; i<counter; i++) {
00793 adc=-1;
00794 softId=JP1_2006_array[1][i];
00795 if(softId == JP1_ID_2006[1]) adc = JP1_DSM_2006[1];
00796 patches[softId] = adc;
00797 }
00798 break;
00799
00800
00801 case(137221):
00802 counter = numJP1_2006[2];
00803 for(int i=0; i<counter; i++) {
00804 adc=-1;
00805 softId=JP1_2006_array[2][i];
00806 if(softId == JP1_ID_2006[2]) adc = JP1_DSM_2006[2];
00807 patches[softId] = adc;
00808 }
00809 break;
00810
00811
00812 case(137501):
00813 counter = numJP0_2006[3];
00814 for(int i=0; i<counter; i++) {
00815 adc=-1;
00816 softId=JP0_2006_array[3][i];
00817 if(softId == JP0_ID_2006[3]) adc = JP0_DSM_2006[3];
00818 patches[softId] = adc;
00819 }
00820 break;
00821
00822
00823 case(137222):
00824 counter = numJP1_2006[3];
00825 for(int i=0; i<counter; i++) {
00826 adc=-1;
00827 softId=JP1_2006_array[3][i];
00828 if(softId == JP1_ID_2006[3]) adc = JP1_DSM_2006[3];
00829 patches[softId] = adc;
00830 }
00831 break;
00832
00833
00834 case(96221):
00835 counter = get2005JP1_NPATCHES();
00836 for(int i=0; i<counter; i++) {
00837 get2005JP1_PATCHES(i,&softId);
00838 adc = -1;
00839 if(softId == get2005JP1_ID()) adc = get2005JP1_ADC();
00840 patches[softId] = adc;
00841 }
00842 break;
00843
00844 case(96233):
00845 counter = get2005JP2_NPATCHES();
00846 for(int i=0; i<counter; i++) {
00847 get2005JP2_PATCHES(i,&softId);
00848 adc = -1;
00849 if(softId == get2005JP2_ID()) adc = get2005JP2_ADC();
00850 patches[softId] = adc;
00851 }
00852 break;
00853
00854
00855 case(45206):
00856 if (is2004JP1()==0) counter=0;
00857 if (is2004JP1()==1) counter=1;
00858 for(int i=0; i<counter; i++) {
00859 softId=get2004JP1_ID();
00860 adc = get2004JP1_ADC();
00861 patches[softId] = adc;
00862 }
00863 break;
00864
00865 case(45207):
00866 if (is2004JP2()==0) counter=0;
00867 if (is2004JP2()==1) counter=1;
00868 for(int i=0; i<counter; i++) {
00869 softId=get2004JP2_ID();
00870 adc = get2004JP2_ADC();
00871 patches[softId] = adc;
00872 }
00873 break;
00874
00875 }
00876
00877 return patches;
00878 }
00879
00880 int StEmcTriggerMaker::barrelTriggerPatchForTower(int softId) {
00881 const StEmcDecoder *decoder = mBemcTrigger->decoder();
00882 if(decoder == NULL) {
00883 LOG_WARN << "Pointer to decoder is NULL! Can't get trigger patch for " << softId << endm;
00884 return -1;
00885 }
00886 int patchId;
00887 if(decoder->GetTriggerPatchFromTowerId(softId,patchId) != 0) {
00888 return patchId;
00889 }
00890 else {
00891 LOG_WARN << "Decoder encountered a problem translating tower id = " << softId << " into a trigger patch" << endm;
00892 return -1;
00893 }
00894 }
00895
00896 int StEmcTriggerMaker::totalEnergyThreshold(int trigId) {
00897 switch(trigId)
00898 {
00899 case(127622):case(127652):case(137622):case(137652): return 109;
00900 default: return 0;
00901 }
00902 }
00903
00904 int StEmcTriggerMaker::totalEnergy() {
00905 return BETOT_DSM_2006;
00906 }
00907
00908
00909 int StEmcTriggerMaker::endcapTowerThreshold(int trigId) {
00910 return -1;
00911 }
00912
00913 int StEmcTriggerMaker::endcapTriggerPatchThreshold(int trigId) {
00914 return -1;
00915 }
00916
00917 int StEmcTriggerMaker::endcapJetPatchThreshold(int trigId) {
00918 return -1;
00919 }
00920
00921 map<int,int> StEmcTriggerMaker::endcapTowersAboveThreshold(int trigId) {
00922 map<int,int> towers;
00923 return towers;
00924 }
00925
00926 map<int,int> StEmcTriggerMaker::endcapTriggerPatchesAboveThreshold(int trigId) {
00927 map<int,int> trigPatches;
00928 return trigPatches;
00929 }
00930
00931 map<int,int> StEmcTriggerMaker::endcapJetPatchesAboveThreshold(int trigId) {
00932 map<int,int> jetPatches;
00933 return jetPatches;
00934 }
00935
00936
00937
00938
00939
00940
00941
00942
00943
00944
00945
00946
00947
00948
00949
00950
00951
00952
00953
00954
00955
00956
00957
00958