  | 
  
    ATLAS Offline Software
    
   | 
 
 
 
 
#include <SiSmearedDigitizationTool.h>
 | 
|   | SiSmearedDigitizationTool (const std::string &type, const std::string &name, const IInterface *parent) | 
|   | Constructor with parameters.  More...
  | 
|   | 
| StatusCode  | initialize () | 
|   | 
| StatusCode  | prepareEvent (const EventContext &ctx, unsigned int) | 
|   | 
| StatusCode  | processBunchXing (int bunchXing, SubEventIterator bSubEvents, SubEventIterator eSubEvents) | 
|   | 
| StatusCode  | processAllSubEvents (const EventContext &ctx) | 
|   | 
| StatusCode  | mergeEvent (const EventContext &ctx) | 
|   | 
| StatusCode  | mergeClusters (Pixel_detElement_RIO_map *cluster_map) | 
|   | 
| StatusCode  | mergeClusters (SCT_detElement_RIO_map *cluster_map) | 
|   | 
| StatusCode  | digitize (const EventContext &ctx, TimedHitCollection< SiHit > &thpcsi) | 
|   | 
| StatusCode  | createAndStoreRIOs (const EventContext &ctx) | 
|   | 
| StatusCode  | retrieveTruth () | 
|   | 
| StatusCode  | finalize () | 
|   | 
| template<typename CLUSTER >  | 
| double  | calculateDistance (CLUSTER *clusterA, CLUSTER *clusterB) | 
|   | 
| template<typename CLUSTER >  | 
| double  | calculateSigma (CLUSTER *clusterA, CLUSTER *clusterB) | 
|   | 
| template<typename CLUSTER >  | 
| ClusterInfo  | calculateNewCluster (CLUSTER *clusterA, CLUSTER *clusterB) | 
|   | 
| template<typename CLUSTER >  | 
| StatusCode  | FillTruthMap (PRD_MultiTruthCollection *, CLUSTER *, const TimedHitPtr< SiHit > &) | 
|   | 
 | 
| ServiceHandle< IAthRNGSvc >  | m_rndmSvc {this, "RndmSvc", "AthRNGSvc", ""} | 
|   | Random number service.  More...
  | 
|   | 
| SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection >  | m_pixelDetEleCollKey {this, "PixelDetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"} | 
|   | 
| SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection >  | m_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"} | 
|   | 
| const PixelID *  | m_pixel_ID | 
|   | Handle to the ID helper.  More...
  | 
|   | 
| const SCT_ID *  | m_sct_ID | 
|   | Handle to the ID helper.  More...
  | 
|   | 
| std::string  | m_randomEngineName | 
|   | Name of the random number stream.  More...
  | 
|   | 
| float  | m_pitch_X | 
|   | 
| float  | m_pitch_Y | 
|   | 
| bool  | m_merge | 
|   | 
| double  | m_nSigma | 
|   | 
| bool  | m_useDiscSurface | 
|   | 
| InDet::PixelClusterContainer *  | m_pixelClusterContainer | 
|   | the PixelClusterContainer  More...
  | 
|   | 
| InDet::SCT_ClusterContainer *  | m_sctClusterContainer | 
|   | the SCT_ClusterContainer  More...
  | 
|   | 
| ServiceHandle< PileUpMergeSvc >  | m_mergeSvc | 
|   | PileUp Merge service.  More...
  | 
|   | 
| int  | m_HardScatterSplittingMode | 
|   | Process all SiHit or just those from signal or background events.  More...
  | 
|   | 
| bool  | m_HardScatterSplittingSkipper | 
|   | 
| PRD_MultiTruthCollection *  | m_pixelPrdTruth {} | 
|   | 
| std::string  | m_prdTruthNamePixel | 
|   | 
| PRD_MultiTruthCollection *  | m_SCTPrdTruth {} | 
|   | 
| std::string  | m_prdTruthNameSCT | 
|   | 
| SiHitCollection *  | m_simHitColl {} | 
|   | 
| std::string  | m_inputObjectName | 
|   | 
| std::vector< SiHitCollection * >  | m_siHitCollList | 
|   | name of the sub event hit collections.  More...
  | 
|   | 
| Pixel_detElement_RIO_map *  | m_pixelClusterMap {} | 
|   | 
| SCT_detElement_RIO_map *  | m_sctClusterMap {} | 
|   | 
| bool  | m_SmearPixel | 
|   | 
| bool  | m_emulateAtlas | 
|   | 
| std::string  | m_pixel_SiClustersName | 
|   | 
| std::string  | m_Sct_SiClustersName | 
|   | 
| bool  | m_checkSmear | 
|   | 
| ServiceHandle< ITHistSvc >  | m_thistSvc {this, "THistSvc", "THistSvc"} | 
|   | 
| TFile *  | m_outputFile | 
|   | the root file  More...
  | 
|   | 
| TTree *  | m_currentTree | 
|   | the tree to store information from pixel and SCT (before and after smearing)  More...
  | 
|   | 
| double  | m_x_pixel | 
|   | 
| double  | m_y_pixel | 
|   | 
| double  | m_x_exit_pixel | 
|   | 
| double  | m_y_exit_pixel | 
|   | 
| double  | m_z_exit_pixel | 
|   | 
| double  | m_x_entry_pixel | 
|   | 
| double  | m_y_entry_pixel | 
|   | 
| double  | m_z_entry_pixel | 
|   | 
| double  | m_x_pixel_global | 
|   | 
| double  | m_y_pixel_global | 
|   | 
| double  | m_z_pixel_global | 
|   | 
| double  | m_x_SCT | 
|   | 
| double  | m_x_exit_SCT | 
|   | 
| double  | m_y_exit_SCT | 
|   | 
| double  | m_z_exit_SCT | 
|   | 
| double  | m_x_entry_SCT | 
|   | 
| double  | m_y_entry_SCT | 
|   | 
| double  | m_z_entry_SCT | 
|   | 
| double  | m_x_SCT_global | 
|   | 
| double  | m_y_SCT_global | 
|   | 
| double  | m_z_SCT_global | 
|   | 
| double  | m_x_pixel_smeared | 
|   | 
| double  | m_y_pixel_smeared | 
|   | 
| double  | m_x_SCT_smeared | 
|   | 
| double  | m_Err_x_pixel | 
|   | 
| double  | m_Err_y_pixel | 
|   | 
| double  | m_Err_x_SCT | 
|   | 
| double  | m_Err_y_SCT | 
|   | 
Definition at line 61 of file SiSmearedDigitizationTool.h.
 
◆ Pixel_detElement_RIO_map
◆ SCT_detElement_RIO_map
◆ SiSmearedDigitizationTool() [1/3]
      
        
          | SiSmearedDigitizationTool::SiSmearedDigitizationTool  | 
          ( | 
          const std::string &  | 
          type,  | 
        
        
           | 
           | 
          const std::string &  | 
          name,  | 
        
        
           | 
           | 
          const IInterface *  | 
          parent  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ SiSmearedDigitizationTool() [2/3]
  
  
      
        
          | SiSmearedDigitizationTool::SiSmearedDigitizationTool  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
private   | 
  
 
 
◆ SiSmearedDigitizationTool() [3/3]
◆ calculateDistance()
template<typename CLUSTER > 
      
        
          | double SiSmearedDigitizationTool::calculateDistance  | 
          ( | 
          CLUSTER *  | 
          clusterA,  | 
        
        
           | 
           | 
          CLUSTER *  | 
          clusterB  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 503 of file SiSmearedDigitizationTool.cxx.
  511   ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: intersection_a = " << intersection_a);
 
  512   ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: intersection_b = " << intersection_b);
 
  514   double distX = intersection_a.x() - intersection_b.x();
 
  515   double distY = intersection_a.y() - intersection_b.y();
 
  517   return sqrt(distX*distX + distY*distY);
 
 
 
 
◆ calculateNewCluster()
template<typename CLUSTER > 
      
 
Definition at line 538 of file SiSmearedDigitizationTool.cxx.
  541   const Amg::MatrixX& clusterErr_a = clusterA->localCovariance();
 
  545   const Amg::MatrixX& clusterErr_b = clusterB->localCovariance();
 
  553   double interX = 0.5*(intersection_a.x()+intersection_b.x());
 
  554   double interY = 0.5*(intersection_a.y()+intersection_b.y());
 
  563   ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: siWidth_a = " << siWidth_a);
 
  564   ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: siWidth_b = " << siWidth_b);
 
  571   ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: siWidth = " << siWidth);
 
  574   covariance.setIdentity();
 
 
 
 
◆ calculateSigma()
template<typename CLUSTER > 
      
        
          | double SiSmearedDigitizationTool::calculateSigma  | 
          ( | 
          CLUSTER *  | 
          clusterA,  | 
        
        
           | 
           | 
          CLUSTER *  | 
          clusterB  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ createAndStoreRIOs()
      
        
          | StatusCode SiSmearedDigitizationTool::createAndStoreRIOs  | 
          ( | 
          const EventContext &  | 
          ctx | ) | 
           | 
        
      
 
Definition at line 1125 of file SiSmearedDigitizationTool.cxx.
 1131     elementsPixel = pixelDetEle.retrieve();
 
 1132     if (elementsPixel==
nullptr) {
 
 1134       return StatusCode::FAILURE;
 
 1141     elementsSCT = sctDetEle.retrieve();
 
 1142     if (elementsSCT==
nullptr) {
 
 1144       return StatusCode::FAILURE;
 
 1150     ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: in pixel createAndStoreRIOs() ---" );
 
 1157       std::pair <Pixel_detElement_RIO_map::iterator, Pixel_detElement_RIO_map::iterator> 
range;
 
 1161       firstDetElem = 
range.first;
 
 1163       IdentifierHash waferID;
 
 1164       waferID = firstDetElem->first;
 
 1169       clusterCollection->setIdentifier(detElement->
identify());
 
 1174         pixelCluster->setHashAndIndex(clusterCollection->identifyHash(),clusterCollection->size());
 
 1179         ATH_MSG_WARNING( 
"Could not add collection to Identifyable container !" );
 
 1188     ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: in SCT createAndStoreRIOs() ---" );
 
 1194       std::pair <SCT_detElement_RIO_map::iterator, SCT_detElement_RIO_map::iterator> 
range;
 
 1198       firstDetElem = 
range.first;
 
 1200       IdentifierHash waferID;
 
 1201       waferID = firstDetElem->first;
 
 1205       clusterCollection->setIdentifier(detElement->
identify());
 
 1210         sctCluster->
setHashAndIndex(clusterCollection->identifyHash(),clusterCollection->size());
 
 1211         clusterCollection->push_back(sctCluster);
 
 1214       if ( 
m_sctClusterContainer->addCollection( clusterCollection, clusterCollection->identifyHash() ).isFailure() ) {
 
 1215         ATH_MSG_WARNING( 
"Could not add collection to Identifyable container !" );
 
 1223   return StatusCode::SUCCESS;
 
 
 
 
◆ digitize()
Definition at line 717 of file SiSmearedDigitizationTool.cxx.
  723   rngWrapper->
setSeed( rngName, ctx );
 
  724   CLHEP::HepRandomEngine *rndmEngine = rngWrapper->
getEngine(ctx);
 
  726   ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: in SiSmearedDigizationTool::digitize() ---" );
 
  732     elementsPixel = pixelDetEle.retrieve();
 
  733     if (elementsPixel==
nullptr) {
 
  735       return StatusCode::FAILURE;
 
  742     elementsSCT = sctDetEle.retrieve();
 
  743     if (elementsSCT==
nullptr) {
 
  745       return StatusCode::FAILURE;
 
  763       int barrelEC  = hit->getBarrelEndcap();
 
  764       int layerDisk = hit->getLayerDisk();
 
  766       int etaModule = hit->getEtaModule();
 
  775         ATH_MSG_DEBUG(
"Pixel SiDetectorElement --> barrel_ec " << barrelEC << 
", layer_disk " << layerDisk << 
", phi_module " << 
phiModule << 
", eta_module " << etaModule );
 
  776         hitSiDetElement = hitSiDetElement_temp;
 
  778         side = hit->getSide();
 
  782         ATH_MSG_DEBUG(
"SCT SiDetectorElement --> barrel_ec " << barrelEC << 
", layer_disk " << layerDisk << 
", phi_module " << 
phiModule << 
", eta_module " << etaModule << 
", side " << 
side);
 
  783         hitSiDetElement = hitSiDetElement_temp;
 
  791       if (not hitSiDetElement) {
 
  792         ATH_MSG_FATAL(
"hitSiDetElement is null in SiSmearedDigitizationTool:"<<__LINE__);
 
  793         throw std::runtime_error(std::string(
"hitSiDetElement is null in SiSmearedDigitizationTool::digitize() "));
 
  796       if (
m_SmearPixel && !(hitSiDetElement->isPixel())) 
continue;
 
  797       if (!
m_SmearPixel && !(hitSiDetElement->isSCT())) 
continue;
 
  799       IdentifierHash waferID;
 
  807       HepGeom::Point3D<double> pix_localStartPosition = hit->localStartPosition();
 
  808       HepGeom::Point3D<double> pix_localEndPosition   = hit->localEndPosition();
 
  810       pix_localStartPosition = hitSiDetElement->hitLocalToLocal3D(pix_localStartPosition);
 
  811       pix_localEndPosition = hitSiDetElement->hitLocalToLocal3D(pix_localEndPosition);
 
  813       double localEntryX = pix_localStartPosition.x();
 
  814       double localEntryY = pix_localStartPosition.y();
 
  815       double localEntryZ = pix_localStartPosition.z();
 
  816       double localExitX = pix_localEndPosition.x();
 
  817       double localExitY = pix_localEndPosition.y();
 
  818       double localExitZ = pix_localEndPosition.z();
 
  820       double thickness = 0.0;
 
  821       thickness = hitSiDetElement->thickness();
 
  825         HepGeom::Point3D<double> sct_localStartPosition = hit->localStartPosition();
 
  826         HepGeom::Point3D<double> sct_localEndPosition = hit->localEndPosition();
 
  828         sct_localStartPosition = hitSiDetElement->hitLocalToLocal3D(sct_localStartPosition);
 
  829         sct_localEndPosition = hitSiDetElement->hitLocalToLocal3D(sct_localEndPosition);
 
  831         localEntryX = sct_localStartPosition.x();
 
  832         localEntryY = sct_localStartPosition.y();
 
  833         localEntryZ = sct_localStartPosition.z();
 
  834         localExitX  = sct_localEndPosition.x();
 
  835         localExitY  = sct_localEndPosition.y();
 
  836         localExitZ  = sct_localEndPosition.z();
 
  839       double distX = std::abs(std::abs(localExitX)-std::abs(localEntryX));
 
  840       double distY = std::abs(std::abs(localExitY)-std::abs(localEntryY));
 
  843         ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: pixel start position --- " << localEntryX << 
",  " << localEntryY << 
",  " << localEntryZ );
 
  844         ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: pixel exit position --- " << localExitX << 
",  " << localExitY << 
",  " << localExitZ );
 
  852         ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: SCT start position --- " << localEntryX << 
",  " << localEntryY << 
",  " << localEntryZ );
 
  853         ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: SCT exit position --- " << localExitX << 
",  " << localExitY << 
",  " << localExitZ );
 
  866       std::vector<Identifier>           rdoList;
 
  868       Amg::Vector3D localDirection(localExitX-localEntryX, localExitY-localEntryY, localExitZ-localEntryZ);
 
  874       Identifier entryId = hitSiDetElement->identifierOfPosition(localEntry);
 
  875       Identifier exitId  = hitSiDetElement->identifierOfPosition(localExit);
 
  878       entryCellId = hitSiDetElement->cellIdFromIdentifier(entryId);
 
  879       exitCellId  = hitSiDetElement->cellIdFromIdentifier(exitId);
 
  881       ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: entryId " << entryId << 
" --- exitId " << exitId );
 
  882       ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: entryCellId " << entryCellId << 
" --- exitCellId " << exitCellId );
 
  884       ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: surface " << hitSiDetElement->surface());
 
  887       bool entryValid = entryCellId.
isValid();
 
  888       bool exitValid  = exitCellId.
isValid();
 
  890       ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: entryValid? " << entryValid << 
" --- exitValid? " << exitValid );
 
  892       if (!entryValid && !exitValid) 
continue;
 
  895       double interX = 0.5*(localEntryX+localExitX);
 
  896       double interY = 0.5*(localEntryY+localExitY);
 
  907       double newdistX = distX - (timesX*
m_pitch_X);
 
  908       double newdistY = distY - (timesY*
m_pitch_Y);
 
  910       ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: times X --- " << timesX );
 
  911       ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: times Y --- " << timesY );
 
  912       ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: new dist X --- " << newdistX );
 
  913       ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: new dist Y --- " << newdistY );
 
  914       ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: thickness --- " << thickness );
 
  918       double ProbY = 2*newdistY/(
m_pitch_Y+newdistY);
 
  919       double ProbX = 2*newdistX/(
m_pitch_X+newdistX);
 
  921       ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: ProbX --- " << ProbX );
 
  922       ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: ProbY --- " << ProbY );
 
  931       int elementX = timesX+1;
 
  932       int elementY = timesY+1;
 
  935         if (CLHEP::RandFlat::shoot(rndmEngine, 0.0, 1.0) < ProbY) { 
 
  941         if (CLHEP::RandFlat::shoot(rndmEngine, 0.0, 1.0) < ProbX) { 
 
  952       double temp_X = interX;
 
  953       double temp_Y = interY;
 
  960       intersectionId = hitSiDetElement->identifierOfPosition(
intersection);
 
  962       rdoList.push_back(intersectionId);
 
  963       InDetDD::SiCellId currentCellId = hitSiDetElement->cellIdFromIdentifier(intersectionId);
 
  965       if (!currentCellId.
isValid()) 
continue;
 
  967       ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: Intersection Id = " << intersectionId << 
" --- currentCellId = " << currentCellId );
 
  975           ATH_MSG_WARNING( 
"--- SiSmearedDigitizationTool: pitchX and/or pitchY are 0. Cluster length is forced to be 1. mm");
 
  982         covariance.setIdentity();
 
  997           return StatusCode::FAILURE;
 
 1042         double clusterWidth = rdoList.size()*hitSiDetElement->phiPitch(
intersection);
 
 1043         const std::pair<InDetDD::SiLocalPosition, InDetDD::SiLocalPosition> ends(design_sct->
endsOfStrip(
intersection));
 
 1044         double stripLength = std::abs(ends.first.xEta()-ends.second.xEta());
 
 1063           if(colRow.x() == 1) {
 
 1066           else if(colRow.x() == 2) {
 
 1074           double sn      = hitSiDetElement->sinStereoLocal(
intersection);
 
 1076           double cs2     = 1.-sn2;
 
 1077           double w       = hitSiDetElement->phiPitch(
intersection)/hitSiDetElement->phiPitch();
 
 1088                                              std::vector<Identifier>(rdoList),
 
 1093         m_sctClusterMap->insert(std::pair<IdentifierHash, InDet::SCT_Cluster* >(waferID, sctCluster));
 
 1097           return StatusCode::FAILURE;
 
 1102             ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: SCT_Cluster --> " << *sctCluster);
 
 1108             ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: BEFORE SMEARING LocalPosition --> X = " << 
m_x_SCT );
 
 1121   return StatusCode::SUCCESS;
 
 
 
 
◆ FillTruthMap()
template<typename CLUSTER > 
      
 
Definition at line 479 of file SiSmearedDigitizationTool.cxx.
  481   ATH_MSG_DEBUG(
"Truth map filling with cluster " << *cluster << 
" and link = " << hit->particleLink());
 
  482   if (hit->particleLink().isValid()){
 
  484       map->insert(std::make_pair(cluster->identify(), hit->particleLink()));
 
  485       ATH_MSG_DEBUG(
"Truth map filled with cluster " << *cluster << 
" and link = " << hit->particleLink());
 
  488     ATH_MSG_DEBUG(
"Particle link NOT valid!! Truth map NOT filled with cluster" << cluster << 
" and link = " << hit->particleLink());
 
  491   return StatusCode::SUCCESS;
 
 
 
 
◆ filterPassed()
  
  
      
        
          | virtual bool PileUpToolBase::filterPassed  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inlineoverridevirtualinherited   | 
  
 
 
◆ finalize()
      
        
          | StatusCode SiSmearedDigitizationTool::finalize  | 
          ( | 
           | ) | 
           | 
        
      
 
 
◆ initialize()
  
  
      
        
          | StatusCode SiSmearedDigitizationTool::initialize  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
virtual   | 
  
 
Reimplemented from PileUpToolBase.
Definition at line 135 of file SiSmearedDigitizationTool.cxx.
  144       return StatusCode::FAILURE;
 
  149     return StatusCode::FAILURE;
 
  155       return StatusCode::FAILURE;
 
  168       return StatusCode::FAILURE;
 
  178     return StatusCode::FAILURE;
 
  187       m_outputFile = 
new TFile(
"CheckSmearing_Pixel.root",
"RECREATE");
 
  188       m_currentTree = 
new TTree(
"PixelTree",
"Check smearing Pixel");
 
  207         return StatusCode::FAILURE;
 
  213       m_outputFile = 
new TFile(
"CheckSmearing_SCT.root",
"RECREATE");
 
  230         return StatusCode::FAILURE;
 
  239   return StatusCode::SUCCESS;
 
 
 
 
◆ mergeClusters() [1/2]
Definition at line 583 of file SiSmearedDigitizationTool.cxx.
  588   ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: in mergeClusters() using PixelClusters --- ");
 
  593   for (; 
i != 
e; 
i = cluster_map->upper_bound(
i->first)){
 
  594     IdentifierHash current_id = 
i->first;
 
  597     bool NewMerge = 
true;
 
  601       std::pair <Pixel_detElement_RIO_map::iterator, Pixel_detElement_RIO_map::iterator> 
range = cluster_map->equal_range(current_id);
 
  611             std::vector<Identifier> rdoList;
 
  621             rdoList.push_back(intersectionId);
 
  625             if ( !currentCellId.
isValid() ) {
 
  634                                                                         std::move(clusterErr));
 
  637             cluster_map->erase(
iter);
 
  647   return StatusCode::SUCCESS;
 
 
 
 
◆ mergeClusters() [2/2]
◆ mergeEvent()
      
        
          | StatusCode SiSmearedDigitizationTool::mergeEvent  | 
          ( | 
          const EventContext &  | 
          ctx | ) | 
           | 
        
      
 
 
◆ operator=()
◆ prepareEvent()
      
        
          | StatusCode SiSmearedDigitizationTool::prepareEvent  | 
          ( | 
          const EventContext &  | 
          ctx,  | 
        
        
           | 
           | 
          unsigned int  | 
            | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ processAllSubEvents() [1/2]
  
  
      
        
          | StatusCode SiSmearedDigitizationTool::processAllSubEvents  | 
          ( | 
          const EventContext &  | 
          ctx | ) | 
           | 
         
       
   | 
  
virtual   | 
  
 
Reimplemented from PileUpToolBase.
Definition at line 314 of file SiSmearedDigitizationTool.cxx.
  316   ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: in pixel processAllSubEvents() ---" );
 
  324       ATH_MSG_FATAL( 
"[ --- ] Could not create PixelClusterContainer");
 
  325       return StatusCode::FAILURE;
 
  334         ATH_MSG_FATAL(
"[ hitproc ] Error while registering PixelCluster container");
 
  335         return StatusCode::FAILURE;
 
  343       ATH_MSG_FATAL( 
"[ --- ] PixelClusterContainer could not be symlinked to SiClusterContainter in StoreGate !" );
 
  344       return StatusCode::FAILURE;
 
  346       ATH_MSG_INFO( 
"[ hitproc ] PixelClusterContainer symlinked to SiClusterContainer in StoreGate" );
 
  353       ATH_MSG_FATAL( 
"[ --- ] Could not create SCT_ClusterContainer");
 
  354       return StatusCode::FAILURE;
 
  361       ATH_MSG_FATAL(
"[ hitproc ] Error while registering SCT_Cluster container");
 
  362       return StatusCode::FAILURE;
 
  368       ATH_MSG_FATAL( 
"[ --- ] SCT_ClusterContainer could not be symlinked to SiClusterContainter in StoreGate !" );
 
  369       return StatusCode::FAILURE;
 
  371       ATH_MSG_DEBUG( 
"[ hitproc ] SCT_ClusterContainer symlinked to SiClusterContainer in StoreGate" );
 
  378     return StatusCode::FAILURE;
 
  387   TimedHitCollList hitCollList;
 
  388   unsigned int numberOfSimHits(0);
 
  391     return StatusCode::FAILURE;
 
  405   while ( iColl != endColl ) {
 
  410     thpcsi.insert(iColl->first, p_collection);
 
  411     ATH_MSG_DEBUG ( 
"SiHitCollection found with " << p_collection->size() << 
" hits" );
 
  416   if(this->
digitize(ctx, thpcsi).isFailure()) {
 
  418     return StatusCode::FAILURE;
 
  424       return StatusCode::FAILURE;
 
  429     return StatusCode::FAILURE;
 
  435   return StatusCode::SUCCESS;
 
 
 
 
◆ processAllSubEvents() [2/2]
  
  
      
        
          | virtual StatusCode IPileUpTool::processAllSubEvents | 
         
       
   | 
  
inherited   | 
  
 
dummy implementation to allow compilation while all Digitization packages are migrated to use this new interface. 
 
 
◆ processBunchXing()
Reimplemented from PileUpToolBase.
Definition at line 273 of file SiSmearedDigitizationTool.cxx.
  277   ATH_MSG_DEBUG( 
"--- SiSmearedDigitizationTool: in pixel processBunchXing() ---" );
 
  284   TimedHitCollList hitCollList;
 
  287                                           bSubEvents, eSubEvents).isSuccess()) &&
 
  288       hitCollList.empty()) {
 
  290     return StatusCode::FAILURE;
 
  299   for( ; iColl != endColl; ++iColl) {
 
  305                     << 
" index: " << timeIndex.index()
 
  306                     << 
" type: " << timeIndex.type());
 
  310   return StatusCode::SUCCESS;
 
 
 
 
◆ resetFilter()
  
  
      
        
          | virtual void PileUpToolBase::resetFilter  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inlineoverridevirtualinherited   | 
  
 
 
◆ retrieveTruth()
      
        
          | StatusCode SiSmearedDigitizationTool::retrieveTruth  | 
          ( | 
           | ) | 
           | 
        
      
 
Definition at line 439 of file SiSmearedDigitizationTool.cxx.
  449         return StatusCode::FAILURE;
 
  454         return StatusCode::FAILURE;
 
  463         return StatusCode::FAILURE;
 
  468         return StatusCode::FAILURE;
 
  474   return StatusCode::SUCCESS;
 
 
 
 
◆ toProcess()
  
  
      
        
          | virtual bool PileUpToolBase::toProcess  | 
          ( | 
          int  | 
          bunchXing | ) | 
           const | 
         
       
   | 
  
inlineoverridevirtualinherited   | 
  
 
 
◆ m_checkSmear
  
  
      
        
          | bool SiSmearedDigitizationTool::m_checkSmear | 
         
       
   | 
  
private   | 
  
 
 
◆ m_currentTree
  
  
      
        
          | TTree* SiSmearedDigitizationTool::m_currentTree | 
         
       
   | 
  
private   | 
  
 
 
◆ m_emulateAtlas
  
  
      
        
          | bool SiSmearedDigitizationTool::m_emulateAtlas | 
         
       
   | 
  
private   | 
  
 
 
◆ m_Err_x_pixel
  
  
      
        
          | double SiSmearedDigitizationTool::m_Err_x_pixel | 
         
       
   | 
  
private   | 
  
 
 
◆ m_Err_x_SCT
  
  
      
        
          | double SiSmearedDigitizationTool::m_Err_x_SCT | 
         
       
   | 
  
private   | 
  
 
 
◆ m_Err_y_pixel
  
  
      
        
          | double SiSmearedDigitizationTool::m_Err_y_pixel | 
         
       
   | 
  
private   | 
  
 
 
◆ m_Err_y_SCT
  
  
      
        
          | double SiSmearedDigitizationTool::m_Err_y_SCT | 
         
       
   | 
  
private   | 
  
 
 
◆ m_filterPassed
  
  
      
        
          | bool PileUpToolBase::m_filterPassed {true} | 
         
       
   | 
  
protectedinherited   | 
  
 
 
◆ m_firstXing
  
  
      
        
          | Gaudi::Property<int> PileUpToolBase::m_firstXing | 
         
       
   | 
  
protectedinherited   | 
  
 
Initial value:{this, "FirstXing", -999,
      "First bunch-crossing in which det is live"}
 
Definition at line 54 of file PileUpToolBase.h.
 
 
◆ m_HardScatterSplittingMode
  
  
      
        
          | int SiSmearedDigitizationTool::m_HardScatterSplittingMode | 
         
       
   | 
  
private   | 
  
 
 
◆ m_HardScatterSplittingSkipper
  
  
      
        
          | bool SiSmearedDigitizationTool::m_HardScatterSplittingSkipper | 
         
       
   | 
  
private   | 
  
 
 
◆ m_inputObjectName
  
  
      
        
          | std::string SiSmearedDigitizationTool::m_inputObjectName | 
         
       
   | 
  
private   | 
  
 
 
◆ m_lastXing
  
  
      
        
          | Gaudi::Property<int> PileUpToolBase::m_lastXing | 
         
       
   | 
  
protectedinherited   | 
  
 
Initial value:{this, "LastXing", 999,
      "Last bunch-crossing in which det is live"}
 
Definition at line 56 of file PileUpToolBase.h.
 
 
◆ m_merge
  
  
      
        
          | bool SiSmearedDigitizationTool::m_merge | 
         
       
   | 
  
private   | 
  
 
 
◆ m_mergeSvc
◆ m_nSigma
  
  
      
        
          | double SiSmearedDigitizationTool::m_nSigma | 
         
       
   | 
  
private   | 
  
 
 
◆ m_outputFile
  
  
      
        
          | TFile* SiSmearedDigitizationTool::m_outputFile | 
         
       
   | 
  
private   | 
  
 
 
◆ m_pitch_X
  
  
      
        
          | float SiSmearedDigitizationTool::m_pitch_X | 
         
       
   | 
  
private   | 
  
 
 
◆ m_pitch_Y
  
  
      
        
          | float SiSmearedDigitizationTool::m_pitch_Y | 
         
       
   | 
  
private   | 
  
 
 
◆ m_pixel_ID
◆ m_pixel_SiClustersName
  
  
      
        
          | std::string SiSmearedDigitizationTool::m_pixel_SiClustersName | 
         
       
   | 
  
private   | 
  
 
 
◆ m_pixelClusterContainer
◆ m_pixelClusterMap
◆ m_pixelDetEleCollKey
◆ m_pixelPrdTruth
◆ m_prdTruthNamePixel
  
  
      
        
          | std::string SiSmearedDigitizationTool::m_prdTruthNamePixel | 
         
       
   | 
  
private   | 
  
 
 
◆ m_prdTruthNameSCT
  
  
      
        
          | std::string SiSmearedDigitizationTool::m_prdTruthNameSCT | 
         
       
   | 
  
private   | 
  
 
 
◆ m_randomEngineName
  
  
      
        
          | std::string SiSmearedDigitizationTool::m_randomEngineName | 
         
       
   | 
  
private   | 
  
 
 
◆ m_rndmSvc
◆ m_sct_ID
◆ m_Sct_SiClustersName
  
  
      
        
          | std::string SiSmearedDigitizationTool::m_Sct_SiClustersName | 
         
       
   | 
  
private   | 
  
 
 
◆ m_sctClusterContainer
◆ m_sctClusterMap
◆ m_SCTDetEleCollKey
◆ m_SCTPrdTruth
◆ m_siHitCollList
◆ m_simHitColl
◆ m_SmearPixel
  
  
      
        
          | bool SiSmearedDigitizationTool::m_SmearPixel | 
         
       
   | 
  
private   | 
  
 
 
◆ m_thistSvc
  
  
      
        
          | ServiceHandle<ITHistSvc> SiSmearedDigitizationTool::m_thistSvc {this, "THistSvc", "THistSvc"} | 
         
       
   | 
  
private   | 
  
 
 
◆ m_useDiscSurface
  
  
      
        
          | bool SiSmearedDigitizationTool::m_useDiscSurface | 
         
       
   | 
  
private   | 
  
 
 
◆ m_vetoPileUpTruthLinks
  
  
      
        
          | Gaudi::Property<int> PileUpToolBase::m_vetoPileUpTruthLinks | 
         
       
   | 
  
protectedinherited   | 
  
 
Initial value:{this, "VetoPileUpTruthLinks", true,
      "Ignore links to suppressed pile-up truth"}
 
Definition at line 58 of file PileUpToolBase.h.
 
 
◆ m_x_entry_pixel
  
  
      
        
          | double SiSmearedDigitizationTool::m_x_entry_pixel | 
         
       
   | 
  
private   | 
  
 
 
◆ m_x_entry_SCT
  
  
      
        
          | double SiSmearedDigitizationTool::m_x_entry_SCT | 
         
       
   | 
  
private   | 
  
 
 
◆ m_x_exit_pixel
  
  
      
        
          | double SiSmearedDigitizationTool::m_x_exit_pixel | 
         
       
   | 
  
private   | 
  
 
 
◆ m_x_exit_SCT
  
  
      
        
          | double SiSmearedDigitizationTool::m_x_exit_SCT | 
         
       
   | 
  
private   | 
  
 
 
◆ m_x_pixel
  
  
      
        
          | double SiSmearedDigitizationTool::m_x_pixel | 
         
       
   | 
  
private   | 
  
 
 
◆ m_x_pixel_global
  
  
      
        
          | double SiSmearedDigitizationTool::m_x_pixel_global | 
         
       
   | 
  
private   | 
  
 
 
◆ m_x_pixel_smeared
  
  
      
        
          | double SiSmearedDigitizationTool::m_x_pixel_smeared | 
         
       
   | 
  
private   | 
  
 
 
◆ m_x_SCT
  
  
      
        
          | double SiSmearedDigitizationTool::m_x_SCT | 
         
       
   | 
  
private   | 
  
 
 
◆ m_x_SCT_global
  
  
      
        
          | double SiSmearedDigitizationTool::m_x_SCT_global | 
         
       
   | 
  
private   | 
  
 
 
◆ m_x_SCT_smeared
  
  
      
        
          | double SiSmearedDigitizationTool::m_x_SCT_smeared | 
         
       
   | 
  
private   | 
  
 
 
◆ m_y_entry_pixel
  
  
      
        
          | double SiSmearedDigitizationTool::m_y_entry_pixel | 
         
       
   | 
  
private   | 
  
 
 
◆ m_y_entry_SCT
  
  
      
        
          | double SiSmearedDigitizationTool::m_y_entry_SCT | 
         
       
   | 
  
private   | 
  
 
 
◆ m_y_exit_pixel
  
  
      
        
          | double SiSmearedDigitizationTool::m_y_exit_pixel | 
         
       
   | 
  
private   | 
  
 
 
◆ m_y_exit_SCT
  
  
      
        
          | double SiSmearedDigitizationTool::m_y_exit_SCT | 
         
       
   | 
  
private   | 
  
 
 
◆ m_y_pixel
  
  
      
        
          | double SiSmearedDigitizationTool::m_y_pixel | 
         
       
   | 
  
private   | 
  
 
 
◆ m_y_pixel_global
  
  
      
        
          | double SiSmearedDigitizationTool::m_y_pixel_global | 
         
       
   | 
  
private   | 
  
 
 
◆ m_y_pixel_smeared
  
  
      
        
          | double SiSmearedDigitizationTool::m_y_pixel_smeared | 
         
       
   | 
  
private   | 
  
 
 
◆ m_y_SCT_global
  
  
      
        
          | double SiSmearedDigitizationTool::m_y_SCT_global | 
         
       
   | 
  
private   | 
  
 
 
◆ m_z_entry_pixel
  
  
      
        
          | double SiSmearedDigitizationTool::m_z_entry_pixel | 
         
       
   | 
  
private   | 
  
 
 
◆ m_z_entry_SCT
  
  
      
        
          | double SiSmearedDigitizationTool::m_z_entry_SCT | 
         
       
   | 
  
private   | 
  
 
 
◆ m_z_exit_pixel
  
  
      
        
          | double SiSmearedDigitizationTool::m_z_exit_pixel | 
         
       
   | 
  
private   | 
  
 
 
◆ m_z_exit_SCT
  
  
      
        
          | double SiSmearedDigitizationTool::m_z_exit_SCT | 
         
       
   | 
  
private   | 
  
 
 
◆ m_z_pixel_global
  
  
      
        
          | double SiSmearedDigitizationTool::m_z_pixel_global | 
         
       
   | 
  
private   | 
  
 
 
◆ m_z_SCT_global
  
  
      
        
          | double SiSmearedDigitizationTool::m_z_SCT_global | 
         
       
   | 
  
private   | 
  
 
 
The documentation for this class was generated from the following files:
 
def retrieve(aClass, aKey=None)
 
JetConstituentVector::iterator iterator
 
Identifier identifierOfPosition(const Amg::Vector2D &localPos) const
Full identifier of the cell for a given position: assumes a raw local position (no Lorentz shift)
 
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
 
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
 
Eigen::Matrix< double, 2, 1 > Vector2D
 
const Amg::Vector2D & widthPhiRZ() const
 
A PRD is mapped onto all contributing particles.
 
bool isValid() const
Test if its in a valid state.
 
Trk::PrepRawDataContainer< SCT_ClusterCollection > SCT_ClusterContainer
 
Trk::PrepRawDataContainer< PixelClusterCollection > PixelClusterContainer
 
#define ATH_MSG_VERBOSE(x)
 
bool ignoreTruthLink(const T &p, bool vetoPileUp)
Helper function for SDO creation in PileUpTools.
 
bool nextDetectorElement(const_iterator &b, const_iterator &e)
sets an iterator range with the hits of current detector element returns a bool when done
 
std::vector< std::string > intersection(std::vector< std::string > &v1, std::vector< std::string > &v2)
 
#define AmgSymMatrix(dim)
 
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
 
std::list< value_t > type
type of the collection of timed data object
 
virtual SiCellId cellIdFromIdentifier(const Identifier &identifier) const override final
SiCellId from Identifier.
 
IdentifierHash wafer_hash(Identifier wafer_id) const
wafer hash from id
 
size_type wafer_hash_max() const
 
void setHashAndIndex(unsigned short collHash, unsigned short objIndex)
TEMP for testing: might make some classes friends later ...
 
IdentifierHash wafer_hash(const Identifier &wafer_id) const
wafer hash from id - optimized
 
size_type wafer_hash_max() const
 
Ensure that the ATLAS eigen extensions are properly loaded.
 
Definition of ATLAS Math & Geometry primitives (Amg)
 
A wrapper class for event-slot-local random engines.
 
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
 
const Amg::Vector2D & localPosition() const
return the local position reference
 
StatusCode initialize(bool used=true)
 
Trk::PrepRawDataContainer< SiClusterCollection > SiClusterContainer
 
Eigen::Matrix< double, 3, 1 > Vector3D
 
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
 
AtlasHitsVector< SiHit > SiHitCollection
 
const Amg::Vector3D & globalPosition() const
return global position reference
 
#define ATH_MSG_WARNING(x)
 
const Amg::Vector2D & colRow() const
 
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
 
Trk::PrepRawDataCollection< SCT_Cluster > SCT_ClusterCollection
 
constexpr int pow(int base, int exp) noexcept
 
a struct encapsulating the identifier of a pile-up event
 
virtual std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const override=0
give the ends of strips
 
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const
 
virtual Identifier identify() const override final
identifier of this detector element (inline)
 
Trk::PrepRawDataCollection< PixelCluster > PixelClusterCollection