ATLAS Offline Software
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
DerivationFramework::TrackParticleThinning Class Reference

#include <TrackParticleThinning.h>

Inheritance diagram for DerivationFramework::TrackParticleThinning:
Collaboration diagram for DerivationFramework::TrackParticleThinning:

Public Member Functions

 TrackParticleThinning (const std::string &t, const std::string &n, const IInterface *p)
 
virtual ~TrackParticleThinning ()
 
virtual StatusCode initialize () override
 
virtual StatusCode finalize () override
 
virtual StatusCode doThinning () const override
 

Private Types

enum  MeasurementType {
  TrkState_unidentified = 0, TrkState_Pixel = 1, TrkState_SCT = 2, TrkState_TRT = 3,
  TrkState_Pseudo = 8, TrkState_Vertex = 9, TrkState_SpacePoint = 11, TrkState_NumberOfMeasurementTypes =16
}
 

Private Member Functions

void selectTrackHits (const xAOD::TrackParticleContainer &inputTrackParticles, const std::vector< bool > &inputMask, MeasurementType detTypeToSelect, std::vector< bool > &outputStatesMask, std::vector< bool > &outputMeasurementsMask) const
 Select TrackStateValidation and TrackMeasurementValidation objects that are used in the (thinned) track container. More...
 
void filterTrackHits (const EventContext &ctx, MeasurementType detTypeToSelect, const xAOD::TrackParticleContainer &inputTrackParticles, const std::vector< bool > &inputMask, const SG::ThinningHandleKey< xAOD::TrackStateValidationContainer > &statesKey, const SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainer > &measurementsKey, std::atomic< unsigned int > &ntot_states, std::atomic< unsigned int > &ntot_measurements, std::atomic< unsigned int > &npass_states, std::atomic< unsigned int > &npass_measurements) const
 

Private Attributes

std::string m_selectionString
 
std::atomic< unsigned int > m_ntot
 
std::atomic< unsigned int > m_npass
 
StringProperty m_streamName { this, "StreamName", "", "Name of the stream being thinned" }
 
SG::ThinningHandleKey< xAOD::TrackParticleContainerm_inDetSGKey { this, "InDetTrackParticlesKey", "InDetTrackParticles", "" }
 
std::atomic< unsigned int > m_ntot_pix_states
 
std::atomic< unsigned int > m_npass_pix_states
 
SG::ThinningHandleKey< xAOD::TrackStateValidationContainerm_statesPixSGKey { this, "InDetTrackStatesPixKey", "PixelMSOSs", "" }
 
std::atomic< unsigned int > m_ntot_pix_measurements
 
std::atomic< unsigned int > m_npass_pix_measurements
 
SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainerm_measurementsPixSGKey { this, "InDetTrackMeasurementsPixKey", "PixelClusters", "" }
 
std::atomic< unsigned int > m_ntot_sct_states
 
std::atomic< unsigned int > m_npass_sct_states
 
SG::ThinningHandleKey< xAOD::TrackStateValidationContainerm_statesSctSGKey { this, "InDetTrackStatesSctKey", "SCT_MSOSs", "" }
 
std::atomic< unsigned int > m_ntot_sct_measurements
 
std::atomic< unsigned int > m_npass_sct_measurements
 
SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainerm_measurementsSctSGKey { this, "InDetTrackMeasurementsSctKey", "SCT_Clusters", "" }
 
std::atomic< unsigned int > m_ntot_trt_states
 
std::atomic< unsigned int > m_npass_trt_states
 
SG::ThinningHandleKey< xAOD::TrackStateValidationContainerm_statesTrtSGKey { this, "InDetTrackStatesTrtKey", "TRT_MSOSs", "" }
 
std::atomic< unsigned int > m_ntot_trt_measurements
 
std::atomic< unsigned int > m_npass_trt_measurements
 
SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainerm_measurementsTrtSGKey { this, "InDetTrackMeasurementsTrtKey", "TRT_DriftCircles", "" }
 
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollectionm_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}
 
bool m_thinHitsOnTrack
 

Detailed Description

Definition at line 32 of file TrackParticleThinning.h.

Member Enumeration Documentation

◆ MeasurementType

Enumerator
TrkState_unidentified 
TrkState_Pixel 
TrkState_SCT 
TrkState_TRT 
TrkState_Pseudo 
TrkState_Vertex 
TrkState_SpacePoint 
TrkState_NumberOfMeasurementTypes 

Definition at line 79 of file TrackParticleThinning.h.

79  {
81  TrkState_Pixel = 1,
82  TrkState_SCT = 2,
83  TrkState_TRT = 3,
84  TrkState_Pseudo = 8,
85  TrkState_Vertex = 9,
88  };

Constructor & Destructor Documentation

◆ TrackParticleThinning()

DerivationFramework::TrackParticleThinning::TrackParticleThinning ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Definition at line 23 of file TrackParticleThinning.cxx.

25  :
26 base_class(t,n,p),
28 m_ntot(0),
29 m_npass(0),
42 m_thinHitsOnTrack(false)
43 {
44  // logic and selection settings
45  declareProperty("SelectionString", m_selectionString);
46  declareProperty("ThinHitsOnTrack", m_thinHitsOnTrack);
47 }

◆ ~TrackParticleThinning()

DerivationFramework::TrackParticleThinning::~TrackParticleThinning ( )
virtualdefault

Member Function Documentation

◆ doThinning()

StatusCode DerivationFramework::TrackParticleThinning::doThinning ( ) const
overridevirtual

Definition at line 119 of file TrackParticleThinning.cxx.

120 {
121  const EventContext& ctx = Gaudi::Hive::currentContext();
122 
123  // Retrieve main TrackParticle collection
125  (m_inDetSGKey, ctx);
126 
127  // Check the event contains tracks
128  unsigned int nTracks = importedTrackParticles->size();
129  if (nTracks==0) return StatusCode::SUCCESS;
130 
131  // Set up a mask with the same entries as the full TrackParticle collection
132  std::vector<bool> mask;
133  mask.assign(nTracks,false); // default: don't keep any tracks
134  m_ntot += nTracks;
135 
136  // Execute the text parser and update the mask
137  if (m_parser) {
138  std::vector<int> entries = m_parser->evaluateAsVector();
139  unsigned int nEntries = entries.size();
140  // check the sizes are compatible
141  if (nTracks != nEntries ) {
142  ATH_MSG_ERROR("Sizes incompatible! Are you sure your selection string used ID TrackParticles?");
143  return StatusCode::FAILURE;
144  } else {
145  // set mask
146  for (unsigned int i=0; i<nTracks; ++i) if (entries[i]==1) mask[i]=true;
147  }
148  }
149  // Count the mask
150  m_npass += std::count (mask.begin(), mask.end(), true);
151 
152  // Execute the thinning service based on the mask.
153  importedTrackParticles.keep (mask);
154 
155  //If thinning hits on track, look over States and Measurements collections as well
156  if (m_thinHitsOnTrack) {
157  filterTrackHits (ctx,
159  *importedTrackParticles,
160  mask,
167  filterTrackHits (ctx,
168  TrkState_SCT,
169  *importedTrackParticles,
170  mask,
177  filterTrackHits (ctx,
178  TrkState_TRT,
179  *importedTrackParticles,
180  mask,
187  }
188 
189  return StatusCode::SUCCESS;
190 }

◆ filterTrackHits()

void DerivationFramework::TrackParticleThinning::filterTrackHits ( const EventContext &  ctx,
MeasurementType  detTypeToSelect,
const xAOD::TrackParticleContainer inputTrackParticles,
const std::vector< bool > &  inputMask,
const SG::ThinningHandleKey< xAOD::TrackStateValidationContainer > &  statesKey,
const SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainer > &  measurementsKey,
std::atomic< unsigned int > &  ntot_states,
std::atomic< unsigned int > &  ntot_measurements,
std::atomic< unsigned int > &  npass_states,
std::atomic< unsigned int > &  npass_measurements 
) const
private

Definition at line 193 of file TrackParticleThinning.cxx.

204 {
205  std::vector<bool> maskStates;
206  std::vector<bool> maskMeasurements;
207 
208  selectTrackHits (inputTrackParticles, inputMask, detTypeToSelect,
209  maskStates, maskMeasurements);
210 
211  auto count = [] (const std::vector<bool>& m)
212  { return std::count (m.begin(), m.end(), true); };
213  npass_states += count (maskStates);
214  npass_measurements += count (maskMeasurements);
215 
216  if (!statesKey.empty()) {
218  (statesKey, ctx);
219  unsigned int size_states = importedStates->size();
220  if (size_states == 0) {
221  ATH_MSG_WARNING("States container is empty: " << statesKey.key());
222  }
223  else {
224  ntot_states += size_states;
225  if (maskStates.size() > size_states) {
226  ATH_MSG_ERROR("States mask size mismatch " << maskStates.size() <<
227  " > " << size_states);
228  }
229  maskStates.resize (size_states);
230  importedStates.keep (maskStates);
231  }
232  }
233 
234  if (!measurementsKey.empty()) {
236  (measurementsKey, ctx);
237  unsigned int size_measurements = importedMeasurements->size();
238  if (size_measurements == 0) {
239  ATH_MSG_WARNING("Measurements container is empty: " << measurementsKey.key());
240  }
241  else {
242  ntot_measurements += size_measurements;
243  if (maskMeasurements.size() > size_measurements) {
244  ATH_MSG_ERROR("Measurements mask size mismatch " << maskMeasurements.size() <<
245  " > " << size_measurements);
246  }
247  maskMeasurements.resize (size_measurements);
248  importedMeasurements.keep (maskMeasurements);
249  }
250  }
251 }

◆ finalize()

StatusCode DerivationFramework::TrackParticleThinning::finalize ( )
overridevirtual

Definition at line 90 of file TrackParticleThinning.cxx.

91 {
92  ATH_MSG_VERBOSE("finalize() ...");
93  ATH_MSG_INFO("Processed "<< m_ntot <<" tracks, "<< m_npass<< " were retained ");
94  if (m_thinHitsOnTrack) {
95  ATH_MSG_INFO("Pixel state objects thinning, Total / Passed (Efficiency): "
97  << " (" << (m_ntot_pix_states == 0 ? 0 : static_cast<float>(m_npass_pix_states) / m_ntot_pix_states) << ")");
98  ATH_MSG_INFO("Pixel measurements objects thinning, Total / Passed (Efficiency): "
100  << " (" << (m_ntot_pix_measurements == 0 ? 0 : static_cast<float>(m_npass_pix_measurements) / m_ntot_pix_measurements) << ")");
101  ATH_MSG_INFO("SCT state objects thinning, Total / Passed (Efficiency): "
102  << m_ntot_sct_states << " / " << m_npass_sct_states
103  << " (" << (m_ntot_sct_states == 0 ? 0 : static_cast<float>(m_npass_sct_states) / m_ntot_sct_states) << ")");
104  ATH_MSG_INFO("SCT measurements objects thinning, Total / Passed (Efficiency): "
106  << " (" << (m_ntot_sct_measurements == 0 ? 0 : static_cast<float>(m_npass_sct_measurements) / m_ntot_sct_measurements) << ")");
107  ATH_MSG_INFO("TRT state objects thinning, Total / Passed (Efficiency): "
108  << m_ntot_trt_states << " / " << m_npass_trt_states
109  << " (" << (m_ntot_trt_states == 0 ? 0 : static_cast<float>(m_npass_trt_states) / m_ntot_trt_states) << ")");
110  ATH_MSG_INFO("TRT measurements objects thinning, Total / Passed (Efficiency): "
112  << " (" << (m_ntot_trt_measurements == 0 ? 0 : static_cast<float>(m_npass_trt_measurements) / m_ntot_trt_measurements) << ")");
113  }
114  ATH_CHECK( finalizeParser() );
115  return StatusCode::SUCCESS;
116 }

◆ initialize()

StatusCode DerivationFramework::TrackParticleThinning::initialize ( )
overridevirtual

Definition at line 53 of file TrackParticleThinning.cxx.

54 {
55  ATH_MSG_VERBOSE("initialize() ...");
56  if (m_selectionString.empty()) {
57  ATH_MSG_FATAL("No inner detector track selection string provided!");
58  return StatusCode::FAILURE;
59  } else {ATH_MSG_INFO("Track thinning selection string: " << m_selectionString);}
60 
61  // Set up the text-parsing machinery for thinning the tracks directly according to user cuts
62  if (!m_selectionString.empty()) {
63  ATH_CHECK(initializeParser(m_selectionString));
64  }
65 
66  //check xAOD::InDetTrackParticle collection
67  ATH_CHECK( m_inDetSGKey.initialize (m_streamName) );
68  ATH_MSG_INFO("Using " << m_inDetSGKey << "as the source collection for inner detector track particles");
69  //check availability of xAOD::TrackStateValidation and xAOD::TrackMeasurementValidation containers
70  if (m_thinHitsOnTrack) {
71  ATH_MSG_INFO("Pixel states collection as source for thinning: " << m_statesPixSGKey.key());
72  ATH_MSG_INFO("Pixel measurements collection as source for thinning: " << m_measurementsPixSGKey.key());
73  ATH_MSG_INFO("SCT states collection as source for thinning: " << m_statesSctSGKey.key());
74  ATH_MSG_INFO("SCT measurements collection as source for thinning: " << m_measurementsSctSGKey.key());
75  ATH_MSG_INFO("TRT states collection as source for thinning: " << m_statesTrtSGKey.key());
76  ATH_MSG_INFO("TRT measurements collection as source for thinning: " << m_measurementsTrtSGKey.key());
77  }
84 
86 
87  return StatusCode::SUCCESS;
88 }

◆ selectTrackHits()

void DerivationFramework::TrackParticleThinning::selectTrackHits ( const xAOD::TrackParticleContainer inputTrackParticles,
const std::vector< bool > &  inputMask,
MeasurementType  detTypeToSelect,
std::vector< bool > &  outputStatesMask,
std::vector< bool > &  outputMeasurementsMask 
) const
private

Select TrackStateValidation and TrackMeasurementValidation objects that are used in the (thinned) track container.

Definition at line 254 of file TrackParticleThinning.cxx.

258 {
259  // loop over track particles, consider only the ones pre-selected by the mask
260  int trkIndex=-1;
261  for (const xAOD::TrackParticle* trkIt : inputTrackParticles) {
262  trkIndex++;
263  if (not inputMask[trkIndex]) continue;
264 
265  // loop over the TrackStateValidation objects, and add them to the outputStatesMask
266  using StatesOnTrack = std::vector<ElementLink<xAOD::TrackStateValidationContainer>>;
267  static const SG::ConstAccessor< StatesOnTrack > msosLinkAcc( "msosLink" );
268  if( ! msosLinkAcc.isAvailable(*trkIt) ) {
269  ATH_MSG_DEBUG("Cannot find TrackState link from xAOD::TrackParticle. Skipping track.");
270  continue;
271  }
272  const StatesOnTrack& measurementsOnTrack = msosLinkAcc(*trkIt);
273  for( const ElementLink<xAOD::TrackStateValidationContainer>& trkState_el : measurementsOnTrack) {
274  if (not trkState_el.isValid()) {
275  ATH_MSG_DEBUG("Cannot find a valid link to TrackStateValidation object for track index: " << trkIndex);
276  continue; //not a valid link
277  }
278  if ((*trkState_el)->detType() != detTypeToSelect) {
279  ATH_MSG_VERBOSE("Discarding TrackState as not of correct type " << detTypeToSelect);
280  continue;
281  }
282  if (trkState_el.index() >= outputStatesMask.size()) {
283  outputStatesMask.resize (trkState_el.index()+1);
284  }
285  outputStatesMask[trkState_el.index()] = true;
286 
287  // get the corresponding TrackMeasurementValidation object, if any, and add it to the outputMeasurementsMask
288  const ElementLink<xAOD::TrackMeasurementValidationContainer> trkMeasurement_el = (*trkState_el)->trackMeasurementValidationLink();
289  if (not trkMeasurement_el.isValid()) {
290  ATH_MSG_VERBOSE("Cannot find a valid link to TrackMeasurementValidation object from track state for track index: " << trkIndex
291  << ", trackState index: " << trkState_el.index());
292  continue; //not a valid link
293  }
294  if (*trkMeasurement_el == nullptr) {
295  ATH_MSG_VERBOSE("Invalid pointer to TrackMeasurementValidation object from track state for track index: " << trkIndex
296  << ", trackState index: " << trkState_el.index());
297  continue; //not linking to a valid object -- is it necessary?
298  }
299  if (trkMeasurement_el.index() >= outputMeasurementsMask.size()) {
300  outputMeasurementsMask.resize (trkMeasurement_el.index()+1);
301  }
302  outputMeasurementsMask[trkMeasurement_el.index()] = true;
303  }
304  } // end loop over xAOD::TrackParticle container
305 }

Member Data Documentation

◆ m_inDetSGKey

SG::ThinningHandleKey<xAOD::TrackParticleContainer> DerivationFramework::TrackParticleThinning::m_inDetSGKey { this, "InDetTrackParticlesKey", "InDetTrackParticles", "" }
private

Definition at line 48 of file TrackParticleThinning.h.

◆ m_measurementsPixSGKey

SG::ThinningHandleKey<xAOD::TrackMeasurementValidationContainer> DerivationFramework::TrackParticleThinning::m_measurementsPixSGKey { this, "InDetTrackMeasurementsPixKey", "PixelClusters", "" }
private

Definition at line 56 of file TrackParticleThinning.h.

◆ m_measurementsSctSGKey

SG::ThinningHandleKey<xAOD::TrackMeasurementValidationContainer> DerivationFramework::TrackParticleThinning::m_measurementsSctSGKey { this, "InDetTrackMeasurementsSctKey", "SCT_Clusters", "" }
private

Definition at line 62 of file TrackParticleThinning.h.

◆ m_measurementsTrtSGKey

SG::ThinningHandleKey<xAOD::TrackMeasurementValidationContainer> DerivationFramework::TrackParticleThinning::m_measurementsTrtSGKey { this, "InDetTrackMeasurementsTrtKey", "TRT_DriftCircles", "" }
private

Definition at line 68 of file TrackParticleThinning.h.

◆ m_npass

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_npass
private

Definition at line 45 of file TrackParticleThinning.h.

◆ m_npass_pix_measurements

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_npass_pix_measurements
private

Definition at line 55 of file TrackParticleThinning.h.

◆ m_npass_pix_states

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_npass_pix_states
private

Definition at line 52 of file TrackParticleThinning.h.

◆ m_npass_sct_measurements

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_npass_sct_measurements
private

Definition at line 61 of file TrackParticleThinning.h.

◆ m_npass_sct_states

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_npass_sct_states
private

Definition at line 58 of file TrackParticleThinning.h.

◆ m_npass_trt_measurements

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_npass_trt_measurements
private

Definition at line 67 of file TrackParticleThinning.h.

◆ m_npass_trt_states

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_npass_trt_states
private

Definition at line 64 of file TrackParticleThinning.h.

◆ m_ntot

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_ntot
mutableprivate

Definition at line 45 of file TrackParticleThinning.h.

◆ m_ntot_pix_measurements

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_ntot_pix_measurements
mutableprivate

Definition at line 55 of file TrackParticleThinning.h.

◆ m_ntot_pix_states

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_ntot_pix_states
mutableprivate

Definition at line 52 of file TrackParticleThinning.h.

◆ m_ntot_sct_measurements

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_ntot_sct_measurements
mutableprivate

Definition at line 61 of file TrackParticleThinning.h.

◆ m_ntot_sct_states

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_ntot_sct_states
mutableprivate

Definition at line 58 of file TrackParticleThinning.h.

◆ m_ntot_trt_measurements

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_ntot_trt_measurements
mutableprivate

Definition at line 67 of file TrackParticleThinning.h.

◆ m_ntot_trt_states

std::atomic<unsigned int> DerivationFramework::TrackParticleThinning::m_ntot_trt_states
mutableprivate

Definition at line 64 of file TrackParticleThinning.h.

◆ m_SCTDetEleCollKey

SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> DerivationFramework::TrackParticleThinning::m_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}
private

Definition at line 72 of file TrackParticleThinning.h.

◆ m_selectionString

std::string DerivationFramework::TrackParticleThinning::m_selectionString
private

Definition at line 42 of file TrackParticleThinning.h.

◆ m_statesPixSGKey

SG::ThinningHandleKey<xAOD::TrackStateValidationContainer> DerivationFramework::TrackParticleThinning::m_statesPixSGKey { this, "InDetTrackStatesPixKey", "PixelMSOSs", "" }
private

Definition at line 53 of file TrackParticleThinning.h.

◆ m_statesSctSGKey

SG::ThinningHandleKey<xAOD::TrackStateValidationContainer> DerivationFramework::TrackParticleThinning::m_statesSctSGKey { this, "InDetTrackStatesSctKey", "SCT_MSOSs", "" }
private

Definition at line 59 of file TrackParticleThinning.h.

◆ m_statesTrtSGKey

SG::ThinningHandleKey<xAOD::TrackStateValidationContainer> DerivationFramework::TrackParticleThinning::m_statesTrtSGKey { this, "InDetTrackStatesTrtKey", "TRT_MSOSs", "" }
private

Definition at line 65 of file TrackParticleThinning.h.

◆ m_streamName

StringProperty DerivationFramework::TrackParticleThinning::m_streamName { this, "StreamName", "", "Name of the stream being thinned" }
private

Definition at line 46 of file TrackParticleThinning.h.

◆ m_thinHitsOnTrack

bool DerivationFramework::TrackParticleThinning::m_thinHitsOnTrack
private

Definition at line 75 of file TrackParticleThinning.h.


The documentation for this class was generated from the following files:
DerivationFramework::TrackParticleThinning::m_npass_trt_measurements
std::atomic< unsigned int > m_npass_trt_measurements
Definition: TrackParticleThinning.h:67
DerivationFramework::TrackParticleThinning::m_measurementsPixSGKey
SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurementsPixSGKey
Definition: TrackParticleThinning.h:57
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DerivationFramework::TrackParticleThinning::m_npass_pix_states
std::atomic< unsigned int > m_npass_pix_states
Definition: TrackParticleThinning.h:52
DerivationFramework::TrackParticleThinning::TrkState_SpacePoint
@ TrkState_SpacePoint
Definition: TrackParticleThinning.h:86
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
DerivationFramework::TrackParticleThinning::m_ntot_trt_measurements
std::atomic< unsigned int > m_ntot_trt_measurements
Definition: TrackParticleThinning.h:67
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
DerivationFramework::TrackParticleThinning::filterTrackHits
void filterTrackHits(const EventContext &ctx, MeasurementType detTypeToSelect, const xAOD::TrackParticleContainer &inputTrackParticles, const std::vector< bool > &inputMask, const SG::ThinningHandleKey< xAOD::TrackStateValidationContainer > &statesKey, const SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainer > &measurementsKey, std::atomic< unsigned int > &ntot_states, std::atomic< unsigned int > &ntot_measurements, std::atomic< unsigned int > &npass_states, std::atomic< unsigned int > &npass_measurements) const
Definition: TrackParticleThinning.cxx:194
DerivationFramework::TrackParticleThinning::m_ntot_sct_measurements
std::atomic< unsigned int > m_ntot_sct_measurements
Definition: TrackParticleThinning.h:61
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
DerivationFramework::TrackParticleThinning::m_thinHitsOnTrack
bool m_thinHitsOnTrack
Definition: TrackParticleThinning.h:75
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:460
SG::ThinningHandle
Handle for requesting thinning for a data object.
Definition: ThinningHandle.h:84
DerivationFramework::TrackParticleThinning::m_npass_sct_measurements
std::atomic< unsigned int > m_npass_sct_measurements
Definition: TrackParticleThinning.h:61
DerivationFramework::TrackParticleThinning::m_statesSctSGKey
SG::ThinningHandleKey< xAOD::TrackStateValidationContainer > m_statesSctSGKey
Definition: TrackParticleThinning.h:60
DerivationFramework::TrackParticleThinning::TrkState_unidentified
@ TrkState_unidentified
Definition: TrackParticleThinning.h:80
DerivationFramework::TrackParticleThinning::m_npass_pix_measurements
std::atomic< unsigned int > m_npass_pix_measurements
Definition: TrackParticleThinning.h:55
DerivationFramework::TrackParticleThinning::TrkState_SCT
@ TrkState_SCT
Definition: TrackParticleThinning.h:82
DerivationFramework::TrackParticleThinning::TrkState_Vertex
@ TrkState_Vertex
Definition: TrackParticleThinning.h:85
DerivationFramework::TrackParticleThinning::m_npass_sct_states
std::atomic< unsigned int > m_npass_sct_states
Definition: TrackParticleThinning.h:58
DerivationFramework::TrackParticleThinning::selectTrackHits
void selectTrackHits(const xAOD::TrackParticleContainer &inputTrackParticles, const std::vector< bool > &inputMask, MeasurementType detTypeToSelect, std::vector< bool > &outputStatesMask, std::vector< bool > &outputMeasurementsMask) const
Select TrackStateValidation and TrackMeasurementValidation objects that are used in the (thinned) tra...
Definition: TrackParticleThinning.cxx:254
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
DerivationFramework::TrackParticleThinning::m_inDetSGKey
SG::ThinningHandleKey< xAOD::TrackParticleContainer > m_inDetSGKey
Definition: TrackParticleThinning.h:49
lumiFormat.i
int i
Definition: lumiFormat.py:92
beamspotman.n
n
Definition: beamspotman.py:731
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
DerivationFramework::TrackParticleThinning::m_ntot_trt_states
std::atomic< unsigned int > m_ntot_trt_states
Definition: TrackParticleThinning.h:64
DerivationFramework::TrackParticleThinning::m_statesTrtSGKey
SG::ThinningHandleKey< xAOD::TrackStateValidationContainer > m_statesTrtSGKey
Definition: TrackParticleThinning.h:66
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DerivationFramework::TrackParticleThinning::TrkState_NumberOfMeasurementTypes
@ TrkState_NumberOfMeasurementTypes
Definition: TrackParticleThinning.h:87
DerivationFramework::TrackParticleThinning::m_selectionString
std::string m_selectionString
Definition: TrackParticleThinning.h:42
DerivationFramework::TrackParticleThinning::m_ntot_pix_measurements
std::atomic< unsigned int > m_ntot_pix_measurements
Definition: TrackParticleThinning.h:55
DerivationFramework::TrackParticleThinning::m_npass
std::atomic< unsigned int > m_npass
Definition: TrackParticleThinning.h:45
DerivationFramework::TrackParticleThinning::m_streamName
StringProperty m_streamName
Definition: TrackParticleThinning.h:47
DerivationFramework::TrackParticleThinning::m_SCTDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
Definition: TrackParticleThinning.h:72
DerivationFramework::TrackParticleThinning::m_npass_trt_states
std::atomic< unsigned int > m_npass_trt_states
Definition: TrackParticleThinning.h:64
DerivationFramework::TrackParticleThinning::TrkState_TRT
@ TrkState_TRT
Definition: TrackParticleThinning.h:83
DerivationFramework::TrackParticleThinning::m_ntot_sct_states
std::atomic< unsigned int > m_ntot_sct_states
Definition: TrackParticleThinning.h:58
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
DerivationFramework::TrackParticleThinning::m_measurementsSctSGKey
SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurementsSctSGKey
Definition: TrackParticleThinning.h:63
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DerivationFramework::TrackParticleThinning::TrkState_Pixel
@ TrkState_Pixel
Definition: TrackParticleThinning.h:81
DerivationFramework::TrackParticleThinning::m_statesPixSGKey
SG::ThinningHandleKey< xAOD::TrackStateValidationContainer > m_statesPixSGKey
Definition: TrackParticleThinning.h:54
entries
double entries
Definition: listroot.cxx:49
DerivationFramework::TrackParticleThinning::m_ntot_pix_states
std::atomic< unsigned int > m_ntot_pix_states
Definition: TrackParticleThinning.h:52
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
DerivationFramework::TrackParticleThinning::m_ntot
std::atomic< unsigned int > m_ntot
Definition: TrackParticleThinning.h:45
DerivationFramework::TrackParticleThinning::TrkState_Pseudo
@ TrkState_Pseudo
Definition: TrackParticleThinning.h:84
dqBeamSpot.nEntries
int nEntries
Definition: dqBeamSpot.py:73
DerivationFramework::TrackParticleThinning::m_measurementsTrtSGKey
SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurementsTrtSGKey
Definition: TrackParticleThinning.h:69