From 432fa24188de574e9e2b1802677b8d96fa259317 Mon Sep 17 00:00:00 2001 From: Mark Grimes Date: Wed, 3 Jun 2015 14:04:28 +0200 Subject: [PATCH] Change pointer array to an array of unique_ptrs --- .../src/CSCTriggerPrimitivesBuilder.cc | 32 ++++--------------- .../src/CSCTriggerPrimitivesBuilder.h | 2 +- 2 files changed, 8 insertions(+), 26 deletions(-) diff --git a/L1Trigger/CSCTriggerPrimitives/src/CSCTriggerPrimitivesBuilder.cc b/L1Trigger/CSCTriggerPrimitives/src/CSCTriggerPrimitivesBuilder.cc index f8ae30c377ca6..3de74400e1512 100644 --- a/L1Trigger/CSCTriggerPrimitives/src/CSCTriggerPrimitivesBuilder.cc +++ b/L1Trigger/CSCTriggerPrimitives/src/CSCTriggerPrimitivesBuilder.cc @@ -91,15 +91,15 @@ CSCTriggerPrimitivesBuilder::CSCTriggerPrimitivesBuilder(const edm::ParameterSet // When the motherboard is instantiated, it instantiates ALCT // and CLCT processors. if (stat==1 && ring==1 && smartME1aME1b && !runME11ILT_) - tmb_[endc-1][stat-1][sect-1][subs-1][cham-1] = new CSCMotherboardME11(endc, stat, sect, subs, cham, conf); + tmb_[endc-1][stat-1][sect-1][subs-1][cham-1].reset( new CSCMotherboardME11(endc, stat, sect, subs, cham, conf) ); else if (stat==1 && ring==1 && smartME1aME1b && runME11ILT_) - tmb_[endc-1][stat-1][sect-1][subs-1][cham-1] = new CSCMotherboardME11GEM(endc, stat, sect, subs, cham, conf); + tmb_[endc-1][stat-1][sect-1][subs-1][cham-1].reset( new CSCMotherboardME11GEM(endc, stat, sect, subs, cham, conf) ); else if (stat==2 && ring==1 && runME21ILT_) - tmb_[endc-1][stat-1][sect-1][subs-1][cham-1] = new CSCMotherboardME21GEM(endc, stat, sect, subs, cham, conf); + tmb_[endc-1][stat-1][sect-1][subs-1][cham-1].reset( new CSCMotherboardME21GEM(endc, stat, sect, subs, cham, conf) ); else if ((stat==3 || stat==4) && ring==1 && runME3141ILT_) - tmb_[endc-1][stat-1][sect-1][subs-1][cham-1] = new CSCMotherboardME3141RPC(endc, stat, sect, subs, cham, conf); + tmb_[endc-1][stat-1][sect-1][subs-1][cham-1].reset( new CSCMotherboardME3141RPC(endc, stat, sect, subs, cham, conf) ); else - tmb_[endc-1][stat-1][sect-1][subs-1][cham-1] = new CSCMotherboard(endc, stat, sect, subs, cham, conf); + tmb_[endc-1][stat-1][sect-1][subs-1][cham-1].reset( new CSCMotherboard(endc, stat, sect, subs, cham, conf) ); } } } @@ -119,23 +119,6 @@ CSCTriggerPrimitivesBuilder::CSCTriggerPrimitivesBuilder(const edm::ParameterSet //------------ CSCTriggerPrimitivesBuilder::~CSCTriggerPrimitivesBuilder() { - for (int endc = min_endcap; endc <= max_endcap; endc++) - { - for (int stat = min_station; stat <= max_station; stat++) - { - int numsubs = ((stat == 1) ? max_subsector : 1); - for (int sect = min_sector; sect <= max_sector; sect++) - { - for (int subs = min_subsector; subs <= numsubs; subs++) - { - for (int cham = min_chamber; cham <= max_chamber; cham++) - { - delete tmb_[endc-1][stat-1][sect-1][subs-1][cham-1]; - } - } - } - } - } } //------------ @@ -157,8 +140,7 @@ void CSCTriggerPrimitivesBuilder::setConfigParameters(const CSCDBL1TPParameters* { for (int cham = min_chamber; cham <= max_chamber; cham++) { - CSCMotherboard* tmb = tmb_[endc-1][stat-1][sect-1][subs-1][cham-1]; - tmb->setConfigParameters(conf); + tmb_[endc-1][stat-1][sect-1][subs-1][cham-1]->setConfigParameters(conf); } } } @@ -207,7 +189,7 @@ void CSCTriggerPrimitivesBuilder::build(const CSCBadChambers* badChambers, if (disableME42 && stat==4 && ring==2) continue; - CSCMotherboard* tmb = tmb_[endc-1][stat-1][sect-1][subs-1][cham-1]; + CSCMotherboard* tmb = tmb_[endc-1][stat-1][sect-1][subs-1][cham-1].get(); // Run processors only if chamber exists in geometry. if (tmb == 0 || theGeom->chamber(endc, stat, sect, subs, cham) == 0) continue; diff --git a/L1Trigger/CSCTriggerPrimitives/src/CSCTriggerPrimitivesBuilder.h b/L1Trigger/CSCTriggerPrimitives/src/CSCTriggerPrimitivesBuilder.h index e78fb8022ae5a..3f4485e3db0a5 100644 --- a/L1Trigger/CSCTriggerPrimitives/src/CSCTriggerPrimitivesBuilder.h +++ b/L1Trigger/CSCTriggerPrimitives/src/CSCTriggerPrimitivesBuilder.h @@ -109,7 +109,7 @@ class CSCTriggerPrimitivesBuilder int m_minBX, m_maxBX; // min and max BX to sort. /** Pointers to TMB processors for all possible chambers. */ - CSCMotherboard* + std::unique_ptr tmb_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS][MAX_SUBSECTORS][MAX_CHAMBERS]; const CSCGeometry* csc_g;