From b2cf4bd51d93c5d4ba6b4623176c51459cf3a7f6 Mon Sep 17 00:00:00 2001 From: tlari Date: Tue, 26 Nov 2019 15:40:40 +0100 Subject: [PATCH 1/3] Added radiation damage effects (charge reduction) in PixelFastDigitizationTool. The PixelRadiationDamage property sets the reduction factors (end 2017, end 2018, run2+200fb-1 and run2+300fb-1 scenarios available) with the default being no radiation damage. Landau smearing is fixed to theoretical value. Charge to TOT conversion taken from calibrations. --- .../PixelFastDigitizationTool.h | 17 +- .../src/PixelFastDigitizationTool.cxx | 224 +++++++++++++----- 2 files changed, 175 insertions(+), 66 deletions(-) diff --git a/InnerDetector/InDetDigitization/FastSiDigitization/FastSiDigitization/PixelFastDigitizationTool.h b/InnerDetector/InDetDigitization/FastSiDigitization/FastSiDigitization/PixelFastDigitizationTool.h index 414839ba010..0c693f2d155 100644 --- a/InnerDetector/InDetDigitization/FastSiDigitization/FastSiDigitization/PixelFastDigitizationTool.h +++ b/InnerDetector/InDetDigitization/FastSiDigitization/FastSiDigitization/PixelFastDigitizationTool.h @@ -131,14 +131,13 @@ private: std::list m_siHitCollList; - double m_pixTanLorentzAngleScalor; //!< scale the lorentz angle effect - bool m_pixEmulateSurfaceCharge; //!< emulate the surface charge - double m_pixSmearPathLength; //!< the 2. model parameter: smear the path - bool m_pixSmearLandau; //!< if true : landau else: gauss - mutable int m_siDeltaPhiCut; - mutable int m_siDeltaEtaCut; - double m_pixMinimalPathCut; //!< the 1. model parameter: minimal 3D path in pixel - double m_pixPathLengthTotConv; //!< from path length to tot + double m_pixTanLorentzAngleScalor; //!< scale the lorentz angle effect + bool m_pixEmulateSurfaceCharge; //!< emulate the surface charge + int m_pixSmearPathLength; //! -1 : don't smear 0 : Landau 1: Gaussian + mutable int m_siDeltaPhiCut; + mutable int m_siDeltaEtaCut; + //double m_pixMinimalPathCut; //!< the 1. model parameter: minimal 3D path in pixel + //double m_pixPathLengthTotConv; //!< from path length to tot bool m_pixModuleDistortion; //!< simulationn of module bowing ToolHandle m_pixDistortionTool; //!< respect the pixel distortions std::vector m_pixPhiError; //!< phi error when not using the ClusterMaker @@ -152,6 +151,8 @@ private: double m_ThrConverted; double m_mu_val; + bool m_calibrationsFromConditions; + int m_raddamage; // radiation damage scenario (0=none, 1=2017, 2=2018, 3=2023) bool m_mergeCluster; //!< enable the merging of neighbour Pixel clusters > short m_splitClusters; //!< merging parameter used to define two clusters as neighbour > diff --git a/InnerDetector/InDetDigitization/FastSiDigitization/src/PixelFastDigitizationTool.cxx b/InnerDetector/InDetDigitization/FastSiDigitization/src/PixelFastDigitizationTool.cxx index ade738b67be..a0d35426f74 100644 --- a/InnerDetector/InDetDigitization/FastSiDigitization/src/PixelFastDigitizationTool.cxx +++ b/InnerDetector/InDetDigitization/FastSiDigitization/src/PixelFastDigitizationTool.cxx @@ -115,13 +115,11 @@ PixelFastDigitizationTool::PixelFastDigitizationTool(const std::string &type, co m_inputObjectName("PixelHits"), m_pixTanLorentzAngleScalor(1.), m_pixEmulateSurfaceCharge(true), - m_pixSmearPathLength(0.01), - m_pixSmearLandau(true), + m_pixSmearPathLength(0), // -1 no smearing, 0=landau 1=gaussian m_siDeltaPhiCut(0), m_siDeltaEtaCut(0), - //m_pixMinimalPathCut(0.0 * Gaudi::Units::micrometer), - m_pixMinimalPathCut(0.06),// Optimized choice of threshold (old 0.02) - m_pixPathLengthTotConv(125.), + //m_pixMinimalPathCut(0.06),// Optimized choice of threshold (old 0.02) + //m_pixPathLengthTotConv(125.), m_pixModuleDistortion(true), // default: false m_pixDistortionTool("PixelDistortionsTool/PixelDistortionsTool"), m_pixErrorStrategy(2), @@ -131,6 +129,8 @@ PixelFastDigitizationTool::PixelFastDigitizationTool(const std::string &type, co m_pixDiffShiftEndCY(0.008), m_inefficiencySF(0.008), m_ThrConverted(50000), + m_calibrationsFromConditions(true), // charge calibration set + m_raddamage(0), // radiation damage benchmark m_mergeCluster(true), m_splitClusters(0), m_acceptDiagonalClusters(true), @@ -153,9 +153,10 @@ PixelFastDigitizationTool::PixelFastDigitizationTool(const std::string &type, co declareProperty("InputObjectName" , m_inputObjectName, "Input Object name" ); declareProperty("PixelEmulateSurfaceCharge" , m_pixEmulateSurfaceCharge); declareProperty("PixelSmearPathSigma" , m_pixSmearPathLength); - declareProperty("PixelSmearLandau" , m_pixSmearLandau); - declareProperty("PixelMinimalPathLength" , m_pixMinimalPathCut); - declareProperty("PixelPathLengthTotConversion" , m_pixPathLengthTotConv); + //declareProperty("PixelMinimalPathLength" , m_pixMinimalPathCut); + //declareProperty("PixelPathLengthTotConversion" , m_pixPathLengthTotConv); + declareProperty("PixelCalibrationsFromConditions" , m_calibrationsFromConditions); + declareProperty("PixelRadiationDamage" , m_raddamage); // 0: none 1: end-2017 2:end-2018 3: end-of-run3 projections declareProperty("PixelEmulateModuleDistortion" , m_pixModuleDistortion); declareProperty("PixelDistortionTool" , m_pixDistortionTool); declareProperty("PixelErrorPhi" , m_pixPhiError); @@ -569,25 +570,21 @@ StatusCode PixelFastDigitizationTool::digitize() const int layerDisk = hit->getLayerDisk(); const int phiModule = hit->getPhiModule(); const int etaModule = hit->getEtaModule(); - + const InDetDD::SiDetectorElement* hitSiDetElement = m_manager->getDetectorElement(barrelEC,layerDisk,phiModule,etaModule); if (!hitSiDetElement) {ATH_MSG_ERROR( " could not get detector element "); continue;} if (!(hitSiDetElement->isPixel())) {continue;} - - std::vector hit_vector; //Store the hits in merged cluster const IdentifierHash waferID = m_pixel_ID->wafer_hash(hitSiDetElement->identify()); - const int trkn = hit->trackNumber(); const Identifier hitId = hitSiDetElement->identify(); //const IdentifierHash hitIdHash = hitSiDetElement->identifyHash(); - bool isRep = false; for (unsigned int j=0; jhitLocalToLocal3D(localStartPosition); localEndPosition = hitSiDetElement->hitLocalToLocal3D(localEndPosition); - int isEndcap = (barrelEC==0) ? 0:1; + int isEndcap = (barrelEC==0) ? 0:1; double shiftX = isEndcap ? m_pixDiffShiftEndCX : m_pixDiffShiftBarrX; double shiftY = isEndcap ? m_pixDiffShiftEndCY : m_pixDiffShiftBarrY; - //Function to tune the cluster size Diffuse(localStartPosition, localEndPosition, shiftX, shiftY); @@ -632,22 +628,46 @@ StatusCode PixelFastDigitizationTool::digitize() InDetDD::SiCellId entryCellId = hitSiDetElement->cellIdFromIdentifier(entryId); InDetDD::SiCellId exitCellId = hitSiDetElement->cellIdFromIdentifier(exitId); - - + double halfthickness = hitSiDetElement->thickness()/2.; bool EntryValid(entryCellId.isValid()); bool ExitValid(exitCellId.isValid()); - double pixMinimalPathCut= 1. / m_pixPathLengthTotConv; - double th0 = double(m_pixelCalibSvc->getThreshold(hitId))/m_ThrConverted; //test? -// if (old_th != th0) std::cout<<"converted threshold "< pixMinimalPathCut) pixMinimalPathCut=m_pixMinimalPathCut; - //if (th0 > pixMinimalPathCut) ; - pixMinimalPathCut=th0; - +// double pixMinimalPathCut= 1. / m_pixPathLengthTotConv; + double th; // threshold in electrons + int minTOT; // digital threshold (minimum ToT) + int maxTOT; // TOT dynamic range + int TOT_MIP = 0; // TOT for minimum MIP (used if no conditions are used) + if(m_calibrationsFromConditions){ + th = double(m_pixelCalibSvc->getThreshold(hitId)); + // TODO : get this from the conditions DB too + if(barrelEC == 0){ + if(layerDisk == 0){ minTOT = 1; maxTOT = 16; TOT_MIP = 10; } + if(layerDisk == 1){ minTOT = 4; maxTOT = 150; TOT_MIP = 18; } + if(layerDisk == 2){ minTOT = 6; maxTOT = 255; TOT_MIP = 30; } + if(layerDisk == 3){ minTOT = 6; maxTOT = 255; TOT_MIP = 30; } + } + else{ + minTOT = 6; maxTOT = 255; TOT_MIP = 30; + } + } + else{ + // 2018 conditions + if(barrelEC == 0){ + if(layerDisk == 0){ th = 2550; minTOT = 1; maxTOT = 16; TOT_MIP = 10; } + if(layerDisk == 1){ th = 5000; minTOT = 4; maxTOT = 150; TOT_MIP = 18; } + if(layerDisk == 2){ th = 4500; minTOT = 6; maxTOT = 255; TOT_MIP = 30; } + if(layerDisk == 3){ th = 4500; minTOT = 6; maxTOT = 255; TOT_MIP = 30; } + } + else{ + th = 4500; minTOT = 6; maxTOT = 255; TOT_MIP = 30; + } + } + double pixMinimalPathCut = th/m_ThrConverted; // threshold in micrometers + + + if (!EntryValid || !ExitValid) { //If entry or exit aren't valid search for the valid entry/exit of the hit as Intersection with the module @@ -691,8 +711,55 @@ StatusCode PixelFastDigitizationTool::digitize() // Getting the steps in the sensor std::vector digitizationSteps = m_digitizationStepper->cellSteps(*m_digitizationModule,entryPoint,exitPoint); - - + // now some radiation damage parameterization (from L Rossini) + double CCE = 1.0; + if (m_raddamage == 2){ // end-of-run2 + if(barrelEC == 0){ // only implemented for barrel + if(layerDisk==0) CCE = 0.71; + if(layerDisk==1) CCE = 0.78; + if(layerDisk==2) CCE = 0.84; + if(layerDisk==3) CCE = 0.90; + } + else{ CCE = 0.90; } + } + else if(m_raddamage == 1){ // end of 2017 + if(barrelEC == 0){ + if(layerDisk==0) CCE = 0.80; + if(layerDisk==1) CCE = 0.83; + if(layerDisk==2) CCE = 0.90; + if(layerDisk==3) CCE = 0.94; + } + else{ CCE=0.94; } + } + else if(m_raddamage == 3){ // end of run3, assume 200 fb-1 + if(barrelEC == 0){ + /* if(layerDisk==0) CCE = 0.30; + if(layerDisk==1) CCE = 0.54; */ + if(layerDisk==0) CCE = 0.58; + /* if(layerDisk==1) CCE = 0.57; // old maps + if(layerDisk==2) CCE = 0.67; + if(layerDisk==3) CCE = 0.79; */ + if(layerDisk==1) CCE = 0.72; // old maps + if(layerDisk==2) CCE = 0.88; + if(layerDisk==3) CCE = 0.93; + } + else{ CCE=0.93; } + } + else if(m_raddamage == 4){ // end of run3, assume 300 fb-1 + if(barrelEC == 0){ + // if(layerDisk==0) CCE = 0.13; + // if(layerDisk==1) CCE = 0.43; + if(layerDisk==0) CCE = 0.47; + // if(layerDisk==1) CCE = 0.36; old maps 600 V + if(layerDisk==1) CCE = 0.62; + //if(layerDisk==2) CCE = 0.59; + //if(layerDisk==3) CCE = 0.74; + if(layerDisk==2) CCE = 0.85; + if(layerDisk==3) CCE = 0.91; + } + else{ CCE=0.91; } + } + // the pixel positions and other needed stuff for the geometrical clustering InDet::PixelCluster* pixelCluster = 0; Amg::Vector2D clusterPosition(0.,0.); @@ -706,6 +773,7 @@ StatusCode PixelFastDigitizationTool::digitize() int lvl1a = 0; double m_accumulatedPathLength=0.; + double m_totcharge=0.; std::vector < double > paths; //ATTENTION index max e min da rdo + manager @@ -713,33 +781,61 @@ StatusCode PixelFastDigitizationTool::digitize() int phiIndexMin = 1000000; int etaIndexMax = -999999; int etaIndexMin = 1000000; - + for (auto& dStep : digitizationSteps){ - double pathlenght = dStep.stepLength; - // two options fro charge smearing: landau / gauss - if ( m_pixSmearPathLength > 0. ) { - // create the smdar parameter - double sPar = m_pixSmearLandau ? - m_pixSmearPathLength*CLHEP::RandLandau::shoot(m_randomEngine) : - m_pixSmearPathLength*CLHEP::RandGauss::shoot(m_randomEngine); - pathlenght *= (1.+sPar); - } + double pathlenght = dStep.stepLength; + // Three options fro charge smearing: 0 = no smear landau / gauss + + if ( m_pixSmearPathLength == 0) { + //float smear = 0.1; + float smear = 0.1+0.1*(0.08-pathlenght); // from Eloss in silicon, more fluctuation for thin Si + float scale = smear*CLHEP::RandLandau::shoot(m_randomEngine); + pathlenght *= 1+scale; + } + else if(m_pixSmearPathLength == 1){ + float smear = 0.1+0.1*(0.08-pathlenght); + float scale = smear*CLHEP::RandGauss::shoot(m_randomEngine); + pathlenght *= 1+scale; + } - if (pathlenght < pixMinimalPathCut) continue; + pathlenght=pathlenght*CCE; + if (pathlenght < pixMinimalPathCut) continue; + // minimal TOT cut and calibrations + float charge = pathlenght*m_ThrConverted; // charge in electrons + int iToT; + if(!m_calibrationsFromConditions){ + float MIP = 20000; // charge of a MIP + if(layerDisk == 0 && barrelEC == 0) MIP = 16000; + float conv = (MIP-th)/(TOT_MIP-minTOT); // conversion charge to TOT + iToT = minTOT+int((charge-th)/conv); + } + else{ + double ToT = m_pixelCalibSvc->getTotMean(hitId,charge); + if(ToT < minTOT) continue; + iToT = int(ToT); + } + if(iToT>maxTOT-1) iToT = maxTOT-1; + + // some printouts + if(barrelEC == 0){ + if(layerDisk == 0) std::cout << "FIXME2 IBL pathlenght " << pathlenght << " charge " << charge << " ToT " << iToT << std::endl; + if(layerDisk == 1) std::cout << "FIXME2 B-l pathlenght " << pathlenght << " charge " << charge << " ToT " << iToT << std::endl; + if(layerDisk == 2) std::cout << "FIXME2 L-1 pathlenght " << pathlenght << " charge " << charge << " ToT " << iToT << std::endl; + } + // position on the diode map - Trk::DigitizationCell cell(dStep.stepCell.first,dStep.stepCell.second); - Amg::Vector2D PositionOnModule = m_digitizationModule->segmentation().cellPosition(cell); - InDetDD::SiCellId diode = hitSiDetElement->cellIdOfPosition(PositionOnModule); + Trk::DigitizationCell cell(dStep.stepCell.first,dStep.stepCell.second); + Amg::Vector2D PositionOnModule = m_digitizationModule->segmentation().cellPosition(cell); + InDetDD::SiCellId diode = hitSiDetElement->cellIdOfPosition(PositionOnModule); - if (!diode.isValid()) - continue; + if (!diode.isValid()) continue; - Amg::Vector2D chargeCenterPosition = hitSiDetElement->rawLocalPositionOfCell(diode); + Amg::Vector2D chargeCenterPosition = hitSiDetElement->rawLocalPositionOfCell(diode); const Identifier rdoId = hitSiDetElement->identifierOfPosition(chargeCenterPosition); clusterPosition += pathlenght * chargeCenterPosition; @@ -751,31 +847,36 @@ StatusCode PixelFastDigitizationTool::digitize() if(currentPhiIndex > phiIndexMax) phiIndexMax = currentPhiIndex; if(currentPhiIndex < phiIndexMin) phiIndexMin = currentPhiIndex; + // record - positions, rdoList and totList + m_accumulatedPathLength += pathlenght; + m_totcharge += charge; - // record - positions, rdoList and totList - m_accumulatedPathLength += pathlenght; - //Fail - rdoList.push_back(rdoId); - totList.push_back(int(pathlenght*m_pixPathLengthTotConv)); - - } + rdoList.push_back(rdoId); + totList.push_back(iToT); + } + + delete m_digitizationModule; - delete m_digitizationModule; - // the col/row int m_siDeltaPhiCut = phiIndexMax-phiIndexMin+1; int m_siDeltaEtaCut = etaIndexMax-etaIndexMin+1; int totalToT=0; - for (unsigned int i=0; i 0 ) ATH_MSG_WARNING("The total ToT of the cluster is 0, this should never happen"); - continue; + std::cout << "FIXME bailing out! " << std::endl; + continue; } + + if(barrelEC == 0){ + if(layerDisk == 0) std::cout << "FIXME3 IBL pathlenght " << m_accumulatedPathLength << " charge " << m_totcharge << " ToT " << totalToT << std::endl; + if(layerDisk == 1) std::cout << "FIXME3 B-l pathlenght " << m_accumulatedPathLength << " charge " << m_totcharge << " ToT " << totalToT << std::endl; + if(layerDisk == 2) std::cout << "FIXME3 L-1 pathlenght " << m_accumulatedPathLength << " charge " << m_totcharge << " ToT " << totalToT << std::endl; + } // weight the cluster position clusterPosition *= 1./m_accumulatedPathLength; @@ -837,6 +938,7 @@ StatusCode PixelFastDigitizationTool::digitize() // phi/ eta index int chargePhiIndex = chargeCellId.phiIndex(); int chargeEtaIndex = chargeCellId.etaIndex(); + // set max min phiIndexMin = chargePhiIndex < phiIndexMin ? chargePhiIndex : phiIndexMin; phiIndexMax = chargePhiIndex > phiIndexMax ? chargePhiIndex : phiIndexMax; @@ -885,6 +987,12 @@ StatusCode PixelFastDigitizationTool::digitize() *m_pixel_ID); if (isGanged) pixelCluster->setGangedPixel(isGanged); + if(barrelEC == 0){ + if(layerDisk == 0) std::cout << "FIXME4 IBL charge " << pixelCluster->totalCharge() << " ToT " << pixelCluster->totalToT() << std::endl; + if(layerDisk == 1) std::cout << "FIXME4 B-l charge " << pixelCluster->totalCharge() << " ToT " << pixelCluster->totalToT() << std::endl; + if(layerDisk == 2) std::cout << "FIXME4 L-1 charge " << pixelCluster->totalCharge() << " ToT " << pixelCluster->totalToT() << std::endl; + } + delete siWidth; } else { -- GitLab From 5ef3d865d970a22a122ce5c4915d977195168bbe Mon Sep 17 00:00:00 2001 From: tlari Date: Tue, 10 Dec 2019 14:26:15 +0100 Subject: [PATCH 2/3] Re-tuning of smearing parameter to get cluster size in agreement with full simulation --- .../src/PixelFastDigitizationTool.cxx | 26 +++---------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/InnerDetector/InDetDigitization/FastSiDigitization/src/PixelFastDigitizationTool.cxx b/InnerDetector/InDetDigitization/FastSiDigitization/src/PixelFastDigitizationTool.cxx index a0d35426f74..d2822ce3e5d 100644 --- a/InnerDetector/InDetDigitization/FastSiDigitization/src/PixelFastDigitizationTool.cxx +++ b/InnerDetector/InDetDigitization/FastSiDigitization/src/PixelFastDigitizationTool.cxx @@ -123,8 +123,8 @@ PixelFastDigitizationTool::PixelFastDigitizationTool(const std::string &type, co m_pixModuleDistortion(true), // default: false m_pixDistortionTool("PixelDistortionsTool/PixelDistortionsTool"), m_pixErrorStrategy(2), - m_pixDiffShiftBarrX(0.005), - m_pixDiffShiftBarrY(0.005), + m_pixDiffShiftBarrX(0.003), + m_pixDiffShiftBarrY(0.003), m_pixDiffShiftEndCX(0.008), m_pixDiffShiftEndCY(0.008), m_inefficiencySF(0.008), @@ -815,18 +815,11 @@ StatusCode PixelFastDigitizationTool::digitize() } else{ double ToT = m_pixelCalibSvc->getTotMean(hitId,charge); - if(ToT < minTOT) continue; + //if(ToT < minTOT) continue; iToT = int(ToT); } if(iToT>maxTOT-1) iToT = maxTOT-1; - // some printouts - if(barrelEC == 0){ - if(layerDisk == 0) std::cout << "FIXME2 IBL pathlenght " << pathlenght << " charge " << charge << " ToT " << iToT << std::endl; - if(layerDisk == 1) std::cout << "FIXME2 B-l pathlenght " << pathlenght << " charge " << charge << " ToT " << iToT << std::endl; - if(layerDisk == 2) std::cout << "FIXME2 L-1 pathlenght " << pathlenght << " charge " << charge << " ToT " << iToT << std::endl; - } - // position on the diode map Trk::DigitizationCell cell(dStep.stepCell.first,dStep.stepCell.second); Amg::Vector2D PositionOnModule = m_digitizationModule->segmentation().cellPosition(cell); @@ -868,15 +861,8 @@ StatusCode PixelFastDigitizationTool::digitize() // bail out if 0 pixel or path length problem if (!rdoList.size() || m_accumulatedPathLength < pixMinimalPathCut || totalToT == 0) { if (totalToT == 0 && rdoList.size() > 0 ) ATH_MSG_WARNING("The total ToT of the cluster is 0, this should never happen"); - std::cout << "FIXME bailing out! " << std::endl; continue; } - - if(barrelEC == 0){ - if(layerDisk == 0) std::cout << "FIXME3 IBL pathlenght " << m_accumulatedPathLength << " charge " << m_totcharge << " ToT " << totalToT << std::endl; - if(layerDisk == 1) std::cout << "FIXME3 B-l pathlenght " << m_accumulatedPathLength << " charge " << m_totcharge << " ToT " << totalToT << std::endl; - if(layerDisk == 2) std::cout << "FIXME3 L-1 pathlenght " << m_accumulatedPathLength << " charge " << m_totcharge << " ToT " << totalToT << std::endl; - } // weight the cluster position clusterPosition *= 1./m_accumulatedPathLength; @@ -987,12 +973,6 @@ StatusCode PixelFastDigitizationTool::digitize() *m_pixel_ID); if (isGanged) pixelCluster->setGangedPixel(isGanged); - if(barrelEC == 0){ - if(layerDisk == 0) std::cout << "FIXME4 IBL charge " << pixelCluster->totalCharge() << " ToT " << pixelCluster->totalToT() << std::endl; - if(layerDisk == 1) std::cout << "FIXME4 B-l charge " << pixelCluster->totalCharge() << " ToT " << pixelCluster->totalToT() << std::endl; - if(layerDisk == 2) std::cout << "FIXME4 L-1 charge " << pixelCluster->totalCharge() << " ToT " << pixelCluster->totalToT() << std::endl; - } - delete siWidth; } else { -- GitLab From 2139b60616173a265055db234a915b4c59d6b622 Mon Sep 17 00:00:00 2001 From: tlari Date: Thu, 4 Jun 2020 15:54:35 +0200 Subject: [PATCH 3/3] Set initialization values for some variables --- .../FastSiDigitization/src/PixelFastDigitizationTool.cxx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/InnerDetector/InDetDigitization/FastSiDigitization/src/PixelFastDigitizationTool.cxx b/InnerDetector/InDetDigitization/FastSiDigitization/src/PixelFastDigitizationTool.cxx index d2822ce3e5d..f31ceddf30d 100644 --- a/InnerDetector/InDetDigitization/FastSiDigitization/src/PixelFastDigitizationTool.cxx +++ b/InnerDetector/InDetDigitization/FastSiDigitization/src/PixelFastDigitizationTool.cxx @@ -634,10 +634,9 @@ StatusCode PixelFastDigitizationTool::digitize() bool EntryValid(entryCellId.isValid()); bool ExitValid(exitCellId.isValid()); -// double pixMinimalPathCut= 1. / m_pixPathLengthTotConv; - double th; // threshold in electrons - int minTOT; // digital threshold (minimum ToT) - int maxTOT; // TOT dynamic range + double th=1e+6; // threshold in electrons + int minTOT=-1; // digital threshold (minimum ToT) + int maxTOT=-1; // TOT dynamic range int TOT_MIP = 0; // TOT for minimum MIP (used if no conditions are used) if(m_calibrationsFromConditions){ th = double(m_pixelCalibSvc->getThreshold(hitId)); -- GitLab