diff --git a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py
index 47502a737764064bbd1e8eb00f664ee5c9d05fb2..718ae7e8347e12dfb00da67fdd5d55e5961aa29f 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py
+++ b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py
@@ -232,7 +232,6 @@ def BasicPixelDigitizationTool(name="PixelDigitizationTool", **kwargs):
     # Start of special cosmics tuning:
     if jobproperties.Beam.beamType == "cosmics" :
         kwargs.setdefault("UseComTime", True)
-        kwargs.setdefault("PixelConditionsSummarySvc", "")
     if GeometryFlags.isSLHC():
         LVL1Latency = [255, 255, 255, 255, 255, 16, 255]
         ToTMinCut = [0, 0, 0, 0, 0, 0, 0]
diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/BichselSimTool.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/BichselSimTool.cxx
index 0d156fd84dd86dc10cd6ae69586890fc76d09fa2..709fb2f0a64151277662c3880dfb7eaf9777733f 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/src/BichselSimTool.cxx
+++ b/InnerDetector/InDetDigitization/PixelDigitization/src/BichselSimTool.cxx
@@ -53,31 +53,20 @@ BichselSimTool::~BichselSimTool()
 // Initialize
 //----------------------------------------------------------------------
 StatusCode BichselSimTool::initialize() {
-  StatusCode sc = AthAlgTool::initialize();
-  if (sc.isFailure()) {
-    ATH_MSG_FATAL("BichselSimTool::initialize() failed");
-    return sc;
-  } 
-
-  
-  //** define your initialize below **//
+  CHECK(AthAlgTool::initialize());
 
   // random svc
-  if ( m_rndmSvc.retrieve().isFailure() ) {
-    ATH_MSG_ERROR ( " Can't get RndmSvc " );
-    return StatusCode::FAILURE;
-  } else { 
-    ATH_MSG_DEBUG ( "Retrieved RndmSvc" );
-  }
+  CHECK(m_rndmSvc.retrieve());
 
   // get the random stream
   ATH_MSG_DEBUG ( "Getting random number engine : <" << m_rndmEngineName << ">" );
   m_rndmEngine = m_rndmSvc->GetEngine(m_rndmEngineName);
-  if (m_rndmEngine==0) {
-    ATH_MSG_ERROR ( "Could not find RndmEngine : " << m_rndmEngineName );
+  if (!m_rndmEngine) {
+    ATH_MSG_ERROR("Could not find RndmEngine : " << m_rndmEngineName);
     return StatusCode::FAILURE;
-  } else { 
-    ATH_MSG_DEBUG ( " Found RndmEngine : " << m_rndmEngineName ); 
+  }
+  else {
+    ATH_MSG_DEBUG("Found RndmEngine : " << m_rndmEngineName);
   }
 
   // clear data table
@@ -104,8 +93,8 @@ StatusCode BichselSimTool::initialize() {
 
     if(!inputFile.is_open()){
       ATH_MSG_FATAL("Fail to load file " << inputFileName.Data() << " !");
-      sc = StatusCode::FAILURE;
-      continue;
+      ATH_MSG_FATAL("BichselSimTool::initialize() failed");
+      return StatusCode::FAILURE;
     }
 
     // prepare data
@@ -152,24 +141,15 @@ StatusCode BichselSimTool::initialize() {
 
   ATH_MSG_INFO("Finish Loading Data File");
 
-  return sc; 
+  return StatusCode::SUCCESS;
 }
 
 //----------------------------------------------------------------------
 // finalize
 //----------------------------------------------------------------------
 StatusCode BichselSimTool::finalize() {
-  StatusCode sc = AthAlgTool::finalize();
-  if (sc.isFailure()) {
-    ATH_MSG_FATAL ( "BichselSimTool::finalize() failed");
-    return sc ;
-  }
-
-  //** define your finalize below **//
-
-
   ATH_MSG_DEBUG ( "BichselSimTool::finalize()");
-  return sc ;
+  return StatusCode::SUCCESS;
 }
 
 //-----------------------------------------------------------
@@ -478,8 +458,8 @@ double BichselSimTool::GetColE(std::pair<int,int> indices_BetaGammaLog10, double
 
   // BetaGammaLog10_2 then
   std::pair<int,int> indices_IntXLog10_x2 = FastSearch(iData.Array_BetaGammaLog10_IntXLog10[indices_BetaGammaLog10.second], IntXLog10);
-  if( (indices_IntXLog10_x2.first==-1) && (indices_IntXLog10_x2.second==-1) )
-    return -1;
+  if (indices_IntXLog10_x2.first<0)  { return -1; }
+  if (indices_IntXLog10_x2.second<0) { return -1; }
   double y21 = iData.Array_BetaGammaLog10_IntXLog10[indices_BetaGammaLog10.second][indices_IntXLog10_x2.first];
   double y22 = iData.Array_BetaGammaLog10_IntXLog10[indices_BetaGammaLog10.second][indices_IntXLog10_x2.second];
   double Est_x2 = ((y22 - IntXLog10)*iData.Array_BetaGammaLog10_ColELog10[indices_BetaGammaLog10.second][indices_IntXLog10_x2.first] + (IntXLog10 - y21)*iData.Array_BetaGammaLog10_ColELog10[indices_BetaGammaLog10.second][indices_IntXLog10_x2.second])/(y22-y21);
@@ -508,13 +488,8 @@ double BichselSimTool::GetUpperBound(std::pair<int,int> indices_BetaGammaLog10,
   //   indices_BetaGammaLog10 = FastSearch(iData.Array_BetaGammaLog10, BetaGammaLog10);
   // }
 
-  if( (indices_BetaGammaLog10.first==-1) && (indices_BetaGammaLog10.second==-1) ){
-    // std::cout << "++++++++++++++" << std::endl;
-    // std::cout << BetaGammaLog10 << std::endl;
-    // std::cout << iData.Array_BetaGammaLog10[0] << " , " << iData.Array_BetaGammaLog10.back() << std::endl;
-
-    return -1.;
-  }
+  if (indices_BetaGammaLog10.first<0)  { return -1; }
+  if (indices_BetaGammaLog10.second<0) { return -1; }
   double BetaGammaLog10_1 = iData.Array_BetaGammaLog10[indices_BetaGammaLog10.first];
   double BetaGammaLog10_2 = iData.Array_BetaGammaLog10[indices_BetaGammaLog10.second];
 
diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelBarrelBichselChargeTool.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelBarrelBichselChargeTool.cxx
index 94446f962265d8cc5529767505d21430fd018676..ca6a7a314583e71b922c7168aa55e88467af7b50 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelBarrelBichselChargeTool.cxx
+++ b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelBarrelBichselChargeTool.cxx
@@ -46,7 +46,24 @@ PixelBarrelBichselChargeTool::PixelBarrelBichselChargeTool(const std::string& ty
   m_doPU(true),                        
   m_BichselSimTool("BichselSimTool"),
   m_OutputFileName("EnergyDeposition.root"),
-  m_doHITPlots(false)
+  m_doHITPlots(false),
+  f_output(0),
+  h_Length(0),
+  h_hitTime(0),
+  h_EnergyDepositionBichsel(0),
+  h_EnergyDepositionNominal(0),
+  h_EnergyDepositionDeltaRay(0),
+  h_EnergyDepositionDeltaRay_Bichsel(0),
+  h_EnergyDepositionDeltaRay_Nominal(0),
+  h_isRealBichsel_DeltaRay(0),
+  h_isRealBichsel_Primary(0),
+  h_largestEnergyDeposition(0),
+  h_twolargestEnergyDeposition(0),
+  h_timer_execute(0),
+  h_timer_BichselSim(0),
+  h_timer_DigiLayer(0),
+  h_timer_diffuse(0),
+  h_hitCategory(0)
 { 
 	declareProperty("numberOfSteps",m_numberOfSteps,"Geant4:number of steps for PixelBarrel");
 	declareProperty("numberOfCharges",m_numberOfCharges,"Geant4:number of charges for PixelBarrel");
@@ -72,24 +89,15 @@ PixelBarrelBichselChargeTool::~PixelBarrelBichselChargeTool()
 // Initialize
 //----------------------------------------------------------------------
 StatusCode PixelBarrelBichselChargeTool::initialize() {
-  StatusCode sc = SubChargesTool::initialize(); 
-  if (sc.isFailure()) {
-    ATH_MSG_FATAL ( "PixelBarrelBichselChargeTool::initialize() failed");
-    return sc ;
-  }
 
+  CHECK(SubChargesTool::initialize()); 
   ATH_MSG_INFO("You are using PixelBarrelBichselChargeTool, not PixelBarrelChargeTool");
 
-  if(m_doBichsel){
+  if (m_doBichsel) {
     ATH_MSG_INFO("Bichsel Digitization is turned ON in PixelBarrelBichselChargeTool!");
-
-    sc = m_BichselSimTool.retrieve();
-    if(sc.isFailure()){
-      ATH_MSG_FATAL("Fail to retrieve BichselSimTool in PixelBarrelBichselChargeTool!");
-      return sc;
-    }
+    CHECK(m_BichselSimTool.retrieve());
   }
-  else{
+  else {
     ATH_MSG_INFO("Bichsel Digitization is turned OFF in PixelBarrelBichselChargeTool!");
   }
 
@@ -172,25 +180,20 @@ StatusCode PixelBarrelBichselChargeTool::initialize() {
   }
 
   ATH_MSG_DEBUG ( "PixelBarrelBichselChargeTool::initialize()");
-  return sc ;
+  return StatusCode::SUCCESS;
 }
 
 //----------------------------------------------------------------------
 // finalize
 //----------------------------------------------------------------------
 StatusCode PixelBarrelBichselChargeTool::finalize() {
-  StatusCode sc = AthAlgTool::finalize();
-  if (sc.isFailure()) {
-    ATH_MSG_FATAL ( "PixelBarrelBichselChargeTool::finalize() failed");
-    return sc ;
-  }
 
   if(m_doHITPlots){
     f_output->Write();
   }
 
   ATH_MSG_DEBUG ( "PixelBarrelBichselChargeTool::finalize()");
-  return sc ;
+  return StatusCode::SUCCESS;
 }
 
 //----------------------------------------------------------------------
diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelCellDiscriminator.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelCellDiscriminator.cxx
index 154da889c966fab0cbed5aeb870e871f3a80ae42..6b6fef7182b390acc4beb3e9ffe51f2c37759c98 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelCellDiscriminator.cxx
+++ b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelCellDiscriminator.cxx
@@ -75,20 +75,14 @@ StatusCode PixelCellDiscriminator::initialize() {
 // finalize
 //----------------------------------------------------------------------
 StatusCode PixelCellDiscriminator::finalize() {
-  StatusCode sc = AthAlgTool::finalize();
-  if (sc.isFailure()) {
-    ATH_MSG_FATAL ( "PixelCellDiscriminator::finalize() failed");
-    return sc ;
-  }
-  ATH_MSG_DEBUG ( "PixelCellDiscriminator::finalize()");
-  return sc ;
+  return StatusCode::SUCCESS;
 }
 
 // process the collection of charged diodes
 void PixelCellDiscriminator::process(SiChargedDiodeCollection &collection) const
 {   
   bool ComputeTW = false;
-  const PixelModuleDesign *p_design = dynamic_cast<const PixelModuleDesign*>(&(collection.element()->design()));
+  const PixelModuleDesign *p_design = static_cast<const PixelModuleDesign*>(&(collection.element()->design()));
   if (p_design->getReadoutTechnology()==PixelModuleDesign::FEI3) {
     ComputeTW = true;
   }
diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelDigitizationTool.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelDigitizationTool.cxx
index 6d60c3d92fe21bee93266c97e97d8c2f839e89a6..f7fda5a013dfc9a7e3e79ad8674ec0810b118fff 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelDigitizationTool.cxx
+++ b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelDigitizationTool.cxx
@@ -403,11 +403,8 @@ bool PixelDigitizationTool::digitizeElement(SiChargedDiodeCollection* chargedDio
 
   // create the identifier for the collection:
   ATH_MSG_DEBUG ( "create ID for the hit collection" );
-  const PixelID* PID = dynamic_cast<const PixelID*>(m_detID);
-  if (PID==0) {
-    ATH_MSG_ERROR ( "expected a PixelID but failed..." );
-    return false;
-  }
+  const PixelID* PID = static_cast<const PixelID*>(m_detID);
+
   const TimedHitPtr<SiHit>& firstHit = *i;
   int Barrel = firstHit->getBarrelEndcap();
   Identifier id = PID->wafer_id(Barrel,firstHit->getLayerDisk(),firstHit->getPhiModule(),firstHit->getEtaModule());
@@ -692,10 +689,6 @@ StatusCode PixelDigitizationTool::initTools() {
     }
     if (m_diodesProcsTool[itool].name()=="SpecialPixelGenerator") {
       m_specialPixelGenerator = dynamic_cast<SpecialPixelGenerator*>(m_diodesProcsTool[itool].operator->());
-      if (m_specialPixelGenerator) {
-        m_specialPixelGenerator->setnPixTot(m_detID->pixel_hash_max());
-        m_specialPixelGenerator->setnModTot(m_detID->wafer_hash_max());
-      }
     }
 
   }
@@ -775,7 +768,7 @@ PixelDigitizationTool::createRDO(SiChargedDiodeCollection *collection)
   // Determine the Pixel Region (IBL, BL, L1, L2, EC, DBM, ITk 5th layer), to be used for latency, ToT cut and duplication:
   //
 
-  const PixelID* pixelId = dynamic_cast<const PixelID *>(collection->element()->getIdHelper());
+  const PixelID* pixelId = static_cast<const PixelID *>(collection->element()->getIdHelper());
   int barrel_ec  = pixelId->barrel_ec(collection->element()->identify());
 
   int layerIndex = pixelId->layer_disk(collection->element()->identify());
@@ -783,7 +776,7 @@ PixelDigitizationTool::createRDO(SiChargedDiodeCollection *collection)
   if (abs(barrel_ec)==2) { layerIndex=4; }  // disks
   if (abs(barrel_ec)==4) { layerIndex=5; }  // DBM
 
-  const PixelModuleDesign *p_design = dynamic_cast<const PixelModuleDesign*>(&(collection->element())->design());
+  const PixelModuleDesign *p_design = static_cast<const PixelModuleDesign*>(&(collection->element())->design());
   std::vector<Pixel1RawData*> p_rdo_small_fei4;
   int maxFEI4SmallHit = 2;
   int nSmallHitsFEI4 = 0;
@@ -854,7 +847,7 @@ PixelDigitizationTool::createRDO(SiChargedDiodeCollection *collection)
       // - ToT for that reference value
 
       if (p_design->getReadoutTechnology()==PixelModuleDesign::FEI4) {
-        const PixelID* pixelId = dynamic_cast<const PixelID *>(collection->element()->getIdHelper());
+        const PixelID* pixelId = static_cast<const PixelID *>(collection->element()->getIdHelper());
         if (pixelId->is_dbm(collection->element()->identify())) {
           nToT = 8*((*i_chargedDiode).second.charge() - 1200. )/(8000. - 1200.);
         }
diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelNoisyCellGenerator.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelNoisyCellGenerator.cxx
index 5900fa6efbd4dfe61da1f4dddf04082317c0ec6b..124f51da28e52721e8593896bb467681ed4414e8 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelNoisyCellGenerator.cxx
+++ b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelNoisyCellGenerator.cxx
@@ -98,21 +98,13 @@ StatusCode PixelNoisyCellGenerator::initialize() {
 
   ATH_MSG_DEBUG ( "PixelNoisyCellGenerator::initialize()");
   return StatusCode::SUCCESS;
-
-
 }
 
 //----------------------------------------------------------------------
 // finalize
 //----------------------------------------------------------------------
 StatusCode PixelNoisyCellGenerator::finalize() {
-  StatusCode sc = AthAlgTool::finalize();
-  if (sc.isFailure()) {
-    ATH_MSG_FATAL ( "PixelNoisyCellGenerator::finalize() failed");
-    return sc ;
-  }
-  ATH_MSG_DEBUG ( "PixelNoisyCellGenerator::finalize()");
-  return sc ;
+  return StatusCode::SUCCESS;
 }
 
 // process the collection of diode collection
@@ -154,8 +146,7 @@ void PixelNoisyCellGenerator::addNoisyPixels(SiChargedDiodeCollection &collectio
   //
   // get pixel module design and check it
   //
-  const PixelModuleDesign *p_design = dynamic_cast<const PixelModuleDesign*>(&(collection.design()));
-  if (!p_design) return;
+  const PixelModuleDesign *p_design = static_cast<const PixelModuleDesign*>(&(collection.design()));
 
   //
   // compute number of noisy cells
@@ -210,7 +201,7 @@ void PixelNoisyCellGenerator::addNoisyPixels(SiChargedDiodeCollection &collectio
     ATH_MSG_DEBUG ( "**********************");
     
     const InDetDD::SiDetectorElement* element = m_pixMgr->getDetectorElement(moduleHash);
-    const InDetDD::PixelModuleDesign* p_design = dynamic_cast<const InDetDD::PixelModuleDesign*>(&element->design());
+    const InDetDD::PixelModuleDesign* p_design = static_cast<const InDetDD::PixelModuleDesign*>(&element->design());
     
     unsigned int FE_Type = 0;
     if ( p_design->getReadoutTechnology()!=PixelModuleDesign::FEI3 ) FE_Type = 1; // FE_Type = 1 for FEI4. ITK ?
@@ -258,8 +249,7 @@ void PixelNoisyCellGenerator::addRandomNoise(SiChargedDiodeCollection &collectio
   //
   // get pixel module design and check it
   //
-  const PixelModuleDesign *p_design = dynamic_cast<const PixelModuleDesign *>(&(collection.design()));
-  if (!p_design) return;
+  const PixelModuleDesign *p_design = static_cast<const PixelModuleDesign *>(&(collection.design()));
 
   //
   // compute number of noisy cells
diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/SpecialPixelGenerator.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/SpecialPixelGenerator.cxx
index 0816288223cf8f3807f03a5a0d48968261ae76a4..79dc4055a732a32012ef01a18ce359235b70f37f 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/src/SpecialPixelGenerator.cxx
+++ b/InnerDetector/InDetDigitization/PixelDigitization/src/SpecialPixelGenerator.cxx
@@ -108,13 +108,7 @@ StatusCode SpecialPixelGenerator::initialize() {
 // finalize
 //----------------------------------------------------------------------
 StatusCode SpecialPixelGenerator::finalize() {
-  StatusCode sc = AthAlgTool::finalize();
-  if (sc.isFailure()) {
-    ATH_MSG_FATAL ( "SpecialPixelGenerator::finalize() failed" );
-    return sc ;
-  }
-  ATH_MSG_DEBUG ( "SpecialPixelGenerator::finalize()" );
-  return sc ;
+  return StatusCode::SUCCESS;
 }
 
 void SpecialPixelGenerator::updatePixelMap(){
@@ -232,7 +226,7 @@ int SpecialPixelGenerator::fillSpecialPixels( double prob, unsigned int status,
 //     }
 
     const InDetDD::SiDetectorElement* element = m_pixMgr->getDetectorElement(idHash);
-    const InDetDD::PixelModuleDesign* p_design = dynamic_cast<const InDetDD::PixelModuleDesign*>(&element->design());
+    const InDetDD::PixelModuleDesign* p_design = static_cast<const InDetDD::PixelModuleDesign*>(&element->design());
     
     int nChips = p_design->numberOfCircuits();
     int nCols  = p_design->columnsPerCircuit();
diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/SurfaceChargesTool.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/SurfaceChargesTool.cxx
index 170a011a853ab5573109ee1d942ef3945214e673..a32f6b3da468cd8a122fa06750ff78e5208dc350 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/src/SurfaceChargesTool.cxx
+++ b/InnerDetector/InDetDigitization/PixelDigitization/src/SurfaceChargesTool.cxx
@@ -42,14 +42,14 @@ SurfaceChargesTool::SurfaceChargesTool(const std::string& type, const std::strin
   m_IblPlanarChargeTool("IblPlanarChargeTool"),
   m_Ibl3DChargeTool("Ibl3DChargeTool"),
   m_IBLParameterSvc("IBLParameterSvc",name)
-  { 
-	declareInterface< SurfaceChargesTool >( this );
-	declareProperty("PixelBarrelChargeTool", m_PixelBarrelChargeTool,   "PixelBarrelChargeTool");
-	declareProperty("PixelECChargeTool", m_PixelECChargeTool,   "PixelECChargeTool");
-	declareProperty("IblPlanarChargeTool", m_IblPlanarChargeTool,   "IblPlanarChargeTool");
-	declareProperty("Ibl3DChargeTool", m_Ibl3DChargeTool,   "Ibl3DChargeTool");
-	declareProperty("DBMChargeTool", m_DBMChargeTool,   "DBMChargeTool");
-        declareProperty("doITk", m_doITk,   "Phase-II upgrade ITk flag");
+{ 
+  declareInterface< SurfaceChargesTool >( this );
+  declareProperty("PixelBarrelChargeTool", m_PixelBarrelChargeTool,   "PixelBarrelChargeTool");
+  declareProperty("PixelECChargeTool", m_PixelECChargeTool,   "PixelECChargeTool");
+  declareProperty("IblPlanarChargeTool", m_IblPlanarChargeTool,   "IblPlanarChargeTool");
+  declareProperty("Ibl3DChargeTool", m_Ibl3DChargeTool,   "Ibl3DChargeTool");
+  declareProperty("DBMChargeTool", m_DBMChargeTool,   "DBMChargeTool");
+  declareProperty("doITk", m_doITk,   "Phase-II upgrade ITk flag");
 }
 
 class DetCondCFloat;