11 m_lvl1Helper(nullptr),
13 m_caloCellHelper(nullptr),
14 m_tileCablingService(nullptr),
16 m_bInitialized(false),
17 m_bLArDigitsInitialized(false),
18 m_bTileDigitsInitialized(false)
30 return std::vector<const CaloCell*>();
36 const std::vector<const CaloCell*> vCells(this->
caloCells(ttId));
37 std::vector<std::vector<const CaloCell*> > ccByLayer;
38 std::vector<const CaloCell*>
cc;
39 int caloSampleInUse(-10);
41 if(vCells.size()!=0) {
42 std::vector<const CaloCell*>::const_iterator itCells = vCells.begin();
43 for(;itCells!=vCells.end();++itCells) {
48 if( caloSampleInUse != currentCaloSample ){
49 ccByLayer.push_back(
cc);
51 caloSampleInUse = currentCaloSample;
53 cc.push_back(*itCells);
55 ccByLayer.push_back(
cc);
63 const std::vector<const CaloCell*> vCells(this->
caloCells(ttId));
65 int caloSampleInUse(-10);
66 if(vCells.size()!=0) {
67 std::vector<const CaloCell*>::const_iterator itCells = vCells.begin();
68 for(;itCells!=vCells.end();++itCells) {
72 if( caloSampleInUse != currentCaloSample ){
73 layers.push_back(currentCaloSample);
74 caloSampleInUse = currentCaloSample;
110 if(
cells.size()!=0) {
111 typedef std::vector<const CaloCell*>::const_iterator Itr;
115 float cellEnergy(0.0);
122 cellEnergy+=(*i)->energy()*0.5;
125 cellEnergy+=(*i)->energy();
130 cellEnergy+=(*i)->energy();
133 if(
mode == 1){
et += cellEnergy/cosh((*i)->eta());}
145 ATH_MSG_INFO(
"Initialize LVL1::L1CaloCells2TriggerTowers");
158 return StatusCode::FAILURE;
163 sc =
detStore()->retrieve(lvl1_id,
"CaloLVL1_ID");
171 ISvcLocator* svcLoc = Gaudi::svcLocator( );
174 sc = svcLoc->service(
"ToolSvc",toolSvc );
176 sc = toolSvc->retrieveTool(
"CaloTriggerTowerService",
m_ttSvc);
177 if(
sc.isFailure()){
ATH_MSG_ERROR(
"Could not retrieve CaloTriggerTowerService Tool");
return sc;}
190 return StatusCode::SUCCESS;
203 for(; it_towerId!=it_towerEnd;++it_towerId){
204 m_mTTCaloCells[(*it_towerId).get_identifier32().get_compact()].reserve(60);
208 for (;itCell!=cellContainer.
end();++itCell){
217 if (ttId1 != invalidId) {
220 if (ttId2 != invalidId) {
240 for(; it_towerId!=it_towerEnd;++it_towerId){
241 m_mTTLArDigits[(*it_towerId).get_identifier32().get_compact()].reserve(60);
245 for (;itLArDigit!=larDigitContainer.
end();++itLArDigit){
247 const LArDigit * larDigit= *itLArDigit;
250 if(
cabling->isOnlineConnected(larDigitChannelID)) {
299 for(; it_towerId!=it_towerEnd;++it_towerId){
300 m_mTTTileDigits[(*it_towerId).get_identifier32().get_compact()].reserve(8);
306 for(; collItr!=lastColl; ++collItr) {
311 if (digitsItr!=lastDigits) {
312 for(; digitsItr!=lastDigits; ++digitsItr) {
388 return std::vector<const LArDigit*>();
399 return std::vector<const TileDigits*>();
409 std::vector<const TileDigits*> vTileDigits(this->
tileDigits(ttId));
411 std::vector<double> vADCSum;
414 std::vector<const TileDigits*>::const_iterator it_digit = vTileDigits.begin();
415 for(;it_digit!=vTileDigits.end();++it_digit) {
417 std::vector<double> vADC((*it_digit)->get_digits());
419 int adcSize(vADC.size());
420 if(vADCSum.size()==0) vADCSum.resize(adcSize);
422 for(
int i=0;
i<adcSize;++
i) {
430 const double inv_nSum = 1. /
static_cast<double> (nSum);
431 for(;it_adc!=vADCSum.end();++it_adc){
432 (*it_adc) *= inv_nSum;
441 std::vector<const LArDigit*> vLArDigits(this->
larDigits(ttId));
443 std::vector<double> vADCSum;
446 std::vector<const LArDigit*>::const_iterator it_digit = vLArDigits.begin();
447 for(;it_digit!=vLArDigits.end();++it_digit) {
449 std::vector<short> vADC((*it_digit)->samples());
451 int adcSize(vADC.size());
452 if(vADCSum.size()==0) vADCSum.resize(adcSize);
454 for(
int i=0;
i<adcSize;++
i) {
462 const double inv_nSum = 1. /
static_cast<double> (nSum);
463 for(;it_adc!=vADCSum.end();++it_adc){
464 (*it_adc) *= inv_nSum;
480 std::vector<const CaloCell*> vCells =
it->second;
492 std::map<unsigned int, std::vector<const CaloCell*> >::const_iterator
it =
m_mTTCaloCells.begin();
498 std::vector<const CaloCell*> vCells =
it->second;
507 std::vector<const CaloCell*>::const_iterator itCells = vCells.begin();
508 for(;itCells!=vCells.end();++itCells) {
517 ATH_MSG_INFO(
" * tile - section: "<<
section <<
", side: "<<
side<<
", module: "<<
module<<
", tower: "<<tower<<
", sample: "<<
sample<<
" - eta: "<< (*itCells)->eta()<<
", phi: "<< (*itCells)->phi()<<
", E:" << (*itCells)->energy() );
525 ATH_MSG_INFO(
" * fcal - pos_neg_z: "<<pos_neg<<
", module: "<<
module<<
", ieta: "<<
eta<<
", iphi: "<<
phi<<
" - eta: "<< (*itCells)->eta()<<
", phi: "<< (*itCells)->phi()<<
", E:" << (*itCells)->energy() );
533 ATH_MSG_INFO(
" * larg - pos_neg_z: "<<pos_neg<<
", sampling: "<<sampling<<
", region: "<<region<<
", ieta: "<<
eta<<
", iphi: "<<
phi<<
" - eta: "<< (*itCells)->eta()<<
", phi: "<< (*itCells)->phi()<<
", E:" << (*itCells)->energy() );
543 std::vector<const LArDigit*>::const_iterator itLArDigits = vLArDigits.begin();
544 for(;itLArDigits!=vLArDigits.end();++itLArDigits) {
546 const LArDigit* larDigit= *itLArDigits;
551 std::vector<short> vADC= larDigit->
samples();
552 std::vector<short>::const_iterator it_sample = vADC.begin();
553 for(;it_sample!=vADC.end();++it_sample) std::cout<< *it_sample<<
" ";
554 std::cout<<std::endl;
577 std::vector<const LArDigit*> vLArDigits =
it->second;
578 this->
dump(vLArDigits);
587 std::map<unsigned int, std::vector<const LArDigit*> >::const_iterator
it =
m_mTTLArDigits.begin();
592 std::vector<const LArDigit*> vLArDigits =
it->second;
593 this->
dump(vLArDigits);
601 std::vector<const TileDigits*>::const_iterator itTileDigits = vTileDigits.begin();
602 for(;itTileDigits!=vTileDigits.end();++itTileDigits) {
613 std::vector<double> vADC = tileDigit->
get_digits();
614 std::vector<double>::const_iterator it_sample = vADC.begin();
615 for(;it_sample!=vADC.end();++it_sample){
628 std::vector<const TileDigits*> vTileDigits =
it->second;
629 this->
dump(vTileDigits);
637 std::map<unsigned int, std::vector<const TileDigits*> >::const_iterator
it =
m_mTTTileDigits.begin();
642 std::vector<const TileDigits*> vTileDigits =
it->second;
643 this->
dump(vTileDigits);