Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
FPGATrackSimEventSelectionSvc Class Reference

#include <FPGATrackSimEventSelectionSvc.h>

Inheritance diagram for FPGATrackSimEventSelectionSvc:
Collaboration diagram for FPGATrackSimEventSelectionSvc:

Public Member Functions

 FPGATrackSimEventSelectionSvc (const std::string &name, ISvcLocator *svc)
 
virtual ~FPGATrackSimEventSelectionSvc ()=default
 
virtual StatusCode initialize () override
 
virtual StatusCode finalize () override
 
virtual unsigned getRegionID () const override
 
virtual SampleType getSampleType () const override
 
virtual bool checkPU () const override
 
virtual const FPGATrackSimRegionSlicesgetRegions () override
 
virtual int getLRTpdgID () const override
 
virtual FPGATrackSimTrackPars getMin () const override
 
virtual FPGATrackSimTrackPars getMax () const override
 
virtual bool passCuts (const FPGATrackSimHit &) const override
 
virtual bool passCuts (const FPGATrackSimTrack &) const override
 
virtual bool passCuts (const FPGATrackSimOfflineTrack &) const override
 
virtual bool passCuts (const FPGATrackSimTruthTrack &) const override
 
virtual bool passQOverPt (const FPGATrackSimTrack &) const override
 
virtual bool passEta (const FPGATrackSimTrack &) const override
 
virtual bool passPhi (const FPGATrackSimTrack &) const override
 
virtual bool passD0 (const FPGATrackSimTrack &) const override
 
virtual bool passZ0 (const FPGATrackSimTrack &) const override
 
virtual bool passQOverPt (const FPGATrackSimOfflineTrack &) const override
 
virtual bool passEta (const FPGATrackSimOfflineTrack &) const override
 
virtual bool passPhi (const FPGATrackSimOfflineTrack &) const override
 
virtual bool passD0 (const FPGATrackSimOfflineTrack &) const override
 
virtual bool passZ0 (const FPGATrackSimOfflineTrack &) const override
 
virtual bool passMatching (FPGATrackSimTrack const &) const override
 
virtual bool passMatching (FPGATrackSimTruthTrack const &) const override
 
virtual bool selectEvent (FPGATrackSimEventInputHeader *) override
 
virtual bool selectEvent (FPGATrackSimLogicalEventInputHeader *) override
 
virtual bool getSelectedEvent () const override
 
virtual void setSelectedEvent (bool s) override
 

Private Member Functions

void createRegions ()
 
bool checkTruthTracks (const std::vector< FPGATrackSimTruthTrack > &) const
 
bool checkTruthTracksLRT (const std::vector< FPGATrackSimTruthTrack > &) const
 

Private Attributes

Gaudi::Property< unsigned int > m_regionID { this, "regionID", 0, "current region under processing"}
 
Gaudi::Property< unsigned int > m_skipRegionCheck { this, "skipRegionCheck", false, "this should be set to true for DataPrep or in cases where region cuts don't matter"}
 
Gaudi::Property< std::string > m_regions_path { this, "regions", "", "path of the slices file"}
 
Gaudi::Property< std::string > m_sampleType { this, "sampleType", "singleMuons", "type of sample under processing (skipTruth, singleElectrons, singleMuons, singlePions, or LLPs)"}
 
Gaudi::Property< bool > m_withPU { this, "withPU", false, "flag to say if there is pile-up or not"}
 
Gaudi::Property< bool > m_LRT { this, "doLRT", false, "Change track selection to LRT quantities; hit selection unchanged"}
 
Gaudi::Property< float > m_minLRTpT { this, "minLRTpT", 5., "Minimum pT to use in LRT selection, in GeV"}
 
Gaudi::Property< int > m_LRT_pdgID { this, "lrt_truthMatchPDGID", 0, "If we are running an LLP sample but want only some PDGID of output in the truth selection, set this"}
 
Gaudi::Property< bool > m_allowHighBarcode { this, "allowHighBarcode", false, "Whether or not to allow barcodes over 200000 in truth matching"}
 
Gaudi::Property< bool > m_oldRegionDefs {this, "oldRegionDefs", true, "If True, use old region definitions, otherwise new ones where eta-phi for a region is automatically calculated and the rest are passed on"}
 
Gaudi::Property< float > m_mind0 {this, "mind0", -2.0, "Min d0 for region selection"}
 
Gaudi::Property< float > m_minz0 {this, "minz0", -150, "Min z0 for region selection"}
 
Gaudi::Property< float > m_minqOverPt {this, "minqOverPt", -0.001, "Min qOverPt for region selection (MeV)"}
 
Gaudi::Property< float > m_maxd0 {this, "maxd0", 2.0, "Max d0 for region selection"}
 
Gaudi::Property< float > m_maxz0 {this, "maxz0", 150, "Max z0 for region selection"}
 
Gaudi::Property< float > m_maxqOverPt {this, "maxqOverPt", 0.001, "Max qOverPt for region selection (MeV)"}
 
SampleType m_st = SampleType::skipTruth
 
FPGATrackSimRegionSlicesm_regions = nullptr
 
FPGATrackSimTrackPars m_min
 
FPGATrackSimTrackPars m_max
 
FPGATrackSimTrackPars m_trackmin
 
FPGATrackSimTrackPars m_trackmax
 
bool m_selectEvent = false
 

Detailed Description

Definition at line 24 of file FPGATrackSimEventSelectionSvc.h.

Constructor & Destructor Documentation

◆ FPGATrackSimEventSelectionSvc()

FPGATrackSimEventSelectionSvc::FPGATrackSimEventSelectionSvc ( const std::string &  name,
ISvcLocator *  svc 
)

Definition at line 22 of file FPGATrackSimEventSelectionSvc.cxx.

22  :
23  base_class(name,svc)
24 {}

◆ ~FPGATrackSimEventSelectionSvc()

virtual FPGATrackSimEventSelectionSvc::~FPGATrackSimEventSelectionSvc ( )
virtualdefault

Member Function Documentation

◆ checkPU()

virtual bool FPGATrackSimEventSelectionSvc::checkPU ( ) const
inlineoverridevirtual

Definition at line 36 of file FPGATrackSimEventSelectionSvc.h.

36 { return m_withPU.value(); }

◆ checkTruthTracks()

bool FPGATrackSimEventSelectionSvc::checkTruthTracks ( const std::vector< FPGATrackSimTruthTrack > &  truthTracks) const
private

Definition at line 301 of file FPGATrackSimEventSelectionSvc.cxx.

302 {
303 // find at least one track in the region
304  bool good=false;
305  for (const FPGATrackSimTruthTrack& track : truthTracks){
307  good=true;
308  if (std::abs(track.getPDGCode()) != static_cast<int>(m_st)) {
309  ATH_MSG_WARNING("selectEvent(): TruthTrack PDGCode != sampleType");
310  good=false;
311  }
312  else {
313  ATH_MSG_DEBUG("selectEvent(): found one truth track, in region "
314  <<getRegionID() <<"; track pars: "<< track.getPars());
315  break;
316  }
317  }
318  else {
319  ATH_MSG_DEBUG("selectEvent(): found one truth track over "<<truthTracks.size()<<", out of region "
320  <<getRegionID() <<"; track pars: "<< track.getPars());
321  }
322  }
323  return good;
324 
325 }

◆ checkTruthTracksLRT()

bool FPGATrackSimEventSelectionSvc::checkTruthTracksLRT ( const std::vector< FPGATrackSimTruthTrack > &  truthTracks) const
private

Definition at line 327 of file FPGATrackSimEventSelectionSvc.cxx.

328 {
329  ATH_MSG_DEBUG("selectEvent(): Checking truth tracks with LRT requirements");
330  // Ideally we would make this flexible to use either of two conditions
331  // 1) there is a truth track that passes our region criteria with our modified selections, or
332  // 2) there is a truth track that passes all but the eta and phi requirements, but has
333  // the majority of its associated hits in the region.
334 
335  // Check for 1)
336  for (const auto& truthtrack : truthTracks ) {
337  // If we specified a PDG ID selection, it can go here - but by default this is false
338  if ((m_LRT_pdgID != 0) && (m_LRT_pdgID != truthtrack.getPDGCode())) {
339  if (passCuts(truthtrack)) ANA_MSG_DEBUG("Skipping an otherwise passing track due to wrong PDGID: " << truthtrack.getPDGCode());
340  continue;
341  }
342  if (passCuts(truthtrack)) return true;
343  }
344 
345  // Check for 2)
346  // TODO someday.
347 
348 
349  // Otherwise return false
350  return false;
351 }

◆ createRegions()

void FPGATrackSimEventSelectionSvc::createRegions ( )
private

Definition at line 286 of file FPGATrackSimEventSelectionSvc.cxx.

287 {
288  if (!m_regions)
289  {
290  ATH_MSG_INFO("Creating the slices object");
291  MsgStream cmsg(msgSvc(), "FPGATrackSimRegionSlices");
292  cmsg.setLevel(msg().level()); // cause AthMessaging is stupid and doesn't have this function
293  if (m_oldRegionDefs.value())
295  else
296  m_regions = new FPGATrackSimRegionSlices(m_mind0.value(), m_minz0.value(), m_minqOverPt.value(),
297  m_maxd0.value(), m_maxz0.value(), m_maxqOverPt.value());
298  }
299 }

◆ finalize()

StatusCode FPGATrackSimEventSelectionSvc::finalize ( )
overridevirtual

Definition at line 71 of file FPGATrackSimEventSelectionSvc.cxx.

72 {
73  if (m_regions) delete m_regions;
74  ATH_MSG_INFO("FPGATrackSimEventSelectionSvc::finalize()");
75 
76  return StatusCode::SUCCESS;
77 }

◆ getLRTpdgID()

virtual int FPGATrackSimEventSelectionSvc::getLRTpdgID ( ) const
inlineoverridevirtual

Definition at line 38 of file FPGATrackSimEventSelectionSvc.h.

38 { return m_LRT_pdgID; }

◆ getMax()

virtual FPGATrackSimTrackPars FPGATrackSimEventSelectionSvc::getMax ( ) const
inlineoverridevirtual

Definition at line 41 of file FPGATrackSimEventSelectionSvc.h.

41 { return m_max; }

◆ getMin()

virtual FPGATrackSimTrackPars FPGATrackSimEventSelectionSvc::getMin ( ) const
inlineoverridevirtual

Definition at line 40 of file FPGATrackSimEventSelectionSvc.h.

40 { return m_min; }

◆ getRegionID()

virtual unsigned FPGATrackSimEventSelectionSvc::getRegionID ( ) const
inlineoverridevirtual

Definition at line 34 of file FPGATrackSimEventSelectionSvc.h.

34 { return m_regionID; }

◆ getRegions()

const FPGATrackSimRegionSlices * FPGATrackSimEventSelectionSvc::getRegions ( )
overridevirtual

Definition at line 280 of file FPGATrackSimEventSelectionSvc.cxx.

281 {
282  if (!m_regions) createRegions();
283  return m_regions;
284 }

◆ getSampleType()

virtual SampleType FPGATrackSimEventSelectionSvc::getSampleType ( ) const
inlineoverridevirtual

Definition at line 35 of file FPGATrackSimEventSelectionSvc.h.

35 { return m_st; }

◆ getSelectedEvent()

virtual bool FPGATrackSimEventSelectionSvc::getSelectedEvent ( ) const
inlineoverridevirtual

Definition at line 67 of file FPGATrackSimEventSelectionSvc.h.

67 { return m_selectEvent; }

◆ initialize()

StatusCode FPGATrackSimEventSelectionSvc::initialize ( )
overridevirtual

Definition at line 26 of file FPGATrackSimEventSelectionSvc.cxx.

27 {
28  if (!m_regions) createRegions();
29 
32 
33  if (m_sampleType.value() == "skipTruth") m_st = SampleType::skipTruth;
34  else if (m_sampleType.value() == "singleElectrons") m_st = SampleType::singleElectrons;
35  else if (m_sampleType.value() == "singleMuons") m_st = SampleType::singleMuons;
36  else if (m_sampleType.value() == "singlePions") m_st = SampleType::singlePions;
37  else if (m_sampleType.value() == "LLPs") m_st = SampleType::LLPs;
38  else {
39  ATH_MSG_ERROR("initialize(): sampleType doesn't exist. ");
40  return StatusCode::FAILURE;
41  }
42 
43  // If we are doing large-radius tracks, we want to restrict the hits entering the
44  // process as before, but we will accept any track as belonging to this region that has
45  // most of its hits within the region, regardless of eta and phi.
46  // We will also set a minimum pT of 5 GeV.
47  m_trackmin = m_min;
48  m_trackmax = m_max;
49  double pTCutVal = 1./(1000.*m_minLRTpT);
50  if (m_LRT) {
51  m_trackmin.qOverPt = -1*pTCutVal;
52  m_trackmin.d0 = -300;
53  m_trackmin.z0 = -500;
54  m_trackmax.qOverPt = pTCutVal;
55  m_trackmax.d0 = 300;
56  m_trackmax.z0 = 500;
57  }
58 
59  // Should really be printing the full information, but it conflicts with
60  // the requirement that log files be identical .....
61  ATH_MSG_INFO("FPGATrackSimEventSelectionSvc::initialize(): " <<
62  "regionID = " << m_regionID << ", " <<
63  "min = {" << m_min << "}, " <<
64  "max = {" << m_max << "}, " <<
65  "sampleType = " << std::string(m_sampleType) << ", " <<
66  "withPU = " << static_cast<bool>(m_withPU));
67 
68  return StatusCode::SUCCESS;
69 }

◆ passCuts() [1/4]

bool FPGATrackSimEventSelectionSvc::passCuts ( const FPGATrackSimHit hit) const
overridevirtual

Definition at line 79 of file FPGATrackSimEventSelectionSvc.cxx.

80 {
81  float eta = TMath::ASinH(hit.getGCotTheta());
82  float phi = hit.getGPhi();
83 
84  if (eta >= m_min.eta && eta <= m_max.eta
85  && phi >= m_min.phi && phi <= m_max.phi)
86  return true;
87  else
88  return false;
89 }

◆ passCuts() [2/4]

bool FPGATrackSimEventSelectionSvc::passCuts ( const FPGATrackSimOfflineTrack offlineTrack) const
overridevirtual

Definition at line 143 of file FPGATrackSimEventSelectionSvc.cxx.

144 {
145  if (offlineTrack.getQOverPt() >= m_trackmin.qOverPt && offlineTrack.getQOverPt() <= m_trackmax.qOverPt
146  && offlineTrack.getEta() >= m_trackmin.eta && offlineTrack.getEta() <= m_trackmax.eta
147  && offlineTrack.getPhi() >= m_trackmin.phi && offlineTrack.getPhi() <= m_trackmax.phi
148  && offlineTrack.getD0() >= m_trackmin.d0 && offlineTrack.getD0() <= m_trackmax.d0
149  && offlineTrack.getZ0() >= m_trackmin.z0 && offlineTrack.getZ0() <= m_trackmax.z0)
150  return true;
151  else
152  return false;
153 }

◆ passCuts() [3/4]

bool FPGATrackSimEventSelectionSvc::passCuts ( const FPGATrackSimTrack track) const
overridevirtual

Definition at line 91 of file FPGATrackSimEventSelectionSvc.cxx.

92 {
93  if (track.getQOverPt() >= m_trackmin.qOverPt && track.getQOverPt() <= m_trackmax.qOverPt
94  && track.getEta() >= m_trackmin.eta && track.getEta() <= m_trackmax.eta
95  && track.getPhi() >= m_trackmin.phi && track.getPhi() <= m_trackmax.phi
96  && track.getD0() >= m_trackmin.d0 && track.getD0() <= m_trackmax.d0
97  && track.getZ0() >= m_trackmin.z0 && track.getZ0() <= m_trackmax.z0)
98  return true;
99  else
100  return false;
101 }

◆ passCuts() [4/4]

bool FPGATrackSimEventSelectionSvc::passCuts ( const FPGATrackSimTruthTrack truthTrack) const
overridevirtual

Definition at line 195 of file FPGATrackSimEventSelectionSvc.cxx.

196 {
197  // Want a version that allows us to modify the selection parameters here.
198  // If m_trackmin and m_trackmax are unmodified from the region definitions
199  // this should return exactly the same.
200  FPGATrackSimTrackPars cur = truthTrack.getPars();
201  for (unsigned i = 0; i < FPGATrackSimTrackPars::NPARS; i++)
202  {
203  if (cur[i] < m_trackmin[i]) {
204  return false;
205  }
206  if (cur[i] > m_trackmax[i]) {
207  return false;
208  }
209  }
210 
211  ATH_MSG_DEBUG("Passing it. PDGid = " << truthTrack.getPDGCode() << "; barcode = " << truthTrack.getBarcode());
212  return true;
213 }

◆ passD0() [1/2]

bool FPGATrackSimEventSelectionSvc::passD0 ( const FPGATrackSimOfflineTrack offlineTrack) const
overridevirtual

Definition at line 179 of file FPGATrackSimEventSelectionSvc.cxx.

180 {
181  if (offlineTrack.getD0() >= m_trackmin.d0 && offlineTrack.getD0() <= m_trackmax.d0)
182  return true;
183  else
184  return false;
185 }

◆ passD0() [2/2]

bool FPGATrackSimEventSelectionSvc::passD0 ( const FPGATrackSimTrack track) const
overridevirtual

Definition at line 127 of file FPGATrackSimEventSelectionSvc.cxx.

128 {
129  if (track.getD0() >= m_trackmin.d0 && track.getD0() <= m_trackmax.d0)
130  return true;
131  else
132  return false;
133 }

◆ passEta() [1/2]

bool FPGATrackSimEventSelectionSvc::passEta ( const FPGATrackSimOfflineTrack offlineTrack) const
overridevirtual

Definition at line 163 of file FPGATrackSimEventSelectionSvc.cxx.

164 {
165  if (offlineTrack.getEta() >= m_trackmin.eta && offlineTrack.getEta() <= m_trackmax.eta)
166  return true;
167  else
168  return false;
169 }

◆ passEta() [2/2]

bool FPGATrackSimEventSelectionSvc::passEta ( const FPGATrackSimTrack track) const
overridevirtual

Definition at line 111 of file FPGATrackSimEventSelectionSvc.cxx.

112 {
113  if (track.getEta() >= m_trackmin.eta && track.getEta() <= m_trackmax.eta)
114  return true;
115  else
116  return false;
117 }

◆ passMatching() [1/2]

bool FPGATrackSimEventSelectionSvc::passMatching ( FPGATrackSimTrack const track) const
overridevirtual

Definition at line 215 of file FPGATrackSimEventSelectionSvc.cxx.

216 {
217  if (track.getBarcode() == 0 || track.getBarcode() == std::numeric_limits<HepMcParticleLink::barcode_type>::max()) return false;
218  if (track.getEventIndex() == std::numeric_limits<long>::max()) return false;
219  if (track.getQOverPt() == 0) return false;
220 
221  return true;
222 }

◆ passMatching() [2/2]

bool FPGATrackSimEventSelectionSvc::passMatching ( FPGATrackSimTruthTrack const truthTrack) const
overridevirtual

Definition at line 224 of file FPGATrackSimEventSelectionSvc.cxx.

225 {
226  if (truthTrack.getBarcode() == 0 || truthTrack.getQ() == 0) return false;
227  if ((!m_allowHighBarcode) && m_st != SampleType::skipTruth && HepMC::is_simulation_particle(&truthTrack)) return false;
228  if (!passCuts(truthTrack)) return false;
229 
230  return true;
231 }

◆ passPhi() [1/2]

bool FPGATrackSimEventSelectionSvc::passPhi ( const FPGATrackSimOfflineTrack offlineTrack) const
overridevirtual

Definition at line 171 of file FPGATrackSimEventSelectionSvc.cxx.

172 {
173  if (offlineTrack.getPhi() >= m_trackmin.phi && offlineTrack.getPhi() <= m_trackmax.phi)
174  return true;
175  else
176  return false;
177 }

◆ passPhi() [2/2]

bool FPGATrackSimEventSelectionSvc::passPhi ( const FPGATrackSimTrack track) const
overridevirtual

Definition at line 119 of file FPGATrackSimEventSelectionSvc.cxx.

120 {
121  if (track.getPhi() >= m_trackmin.phi && track.getPhi() <= m_trackmax.phi)
122  return true;
123  else
124  return false;
125 }

◆ passQOverPt() [1/2]

bool FPGATrackSimEventSelectionSvc::passQOverPt ( const FPGATrackSimOfflineTrack offlineTrack) const
overridevirtual

Definition at line 155 of file FPGATrackSimEventSelectionSvc.cxx.

156 {
157  if (offlineTrack.getQOverPt() >= m_trackmin.qOverPt && offlineTrack.getQOverPt() <= m_trackmax.qOverPt)
158  return true;
159  else
160  return false;
161 }

◆ passQOverPt() [2/2]

bool FPGATrackSimEventSelectionSvc::passQOverPt ( const FPGATrackSimTrack track) const
overridevirtual

Definition at line 103 of file FPGATrackSimEventSelectionSvc.cxx.

104 {
105  if (track.getQOverPt() >= m_trackmin.qOverPt && track.getQOverPt() <= m_trackmax.qOverPt)
106  return true;
107  else
108  return false;
109 }

◆ passZ0() [1/2]

bool FPGATrackSimEventSelectionSvc::passZ0 ( const FPGATrackSimOfflineTrack offlineTrack) const
overridevirtual

Definition at line 187 of file FPGATrackSimEventSelectionSvc.cxx.

188 {
189  if (offlineTrack.getZ0() >= m_trackmin.z0 && offlineTrack.getZ0() <= m_trackmax.z0)
190  return true;
191  else
192  return false;
193 }

◆ passZ0() [2/2]

bool FPGATrackSimEventSelectionSvc::passZ0 ( const FPGATrackSimTrack track) const
overridevirtual

Definition at line 135 of file FPGATrackSimEventSelectionSvc.cxx.

136 {
137  if (track.getZ0() >= m_trackmin.z0 && track.getZ0() <= m_trackmax.z0)
138  return true;
139  else
140  return false;
141 }

◆ selectEvent() [1/2]

bool FPGATrackSimEventSelectionSvc::selectEvent ( FPGATrackSimEventInputHeader eventHeader)
overridevirtual

Definition at line 233 of file FPGATrackSimEventSelectionSvc.cxx.

234 {
235  bool retval = false;
237  retval = true;
239  const auto& truthTracks = eventHeader->optional().getTruthTracks();
240  retval = checkTruthTracks(truthTracks);
241  }
242  else if (m_st == SampleType::LLPs) {
243  const auto& truthTracks = eventHeader->optional().getTruthTracks();
244  // Maybe change this later - could be we want LRT selection in all cases but I suspect not
245  if (m_LRT) retval = checkTruthTracksLRT(truthTracks);
246  else retval = checkTruthTracks(truthTracks);
247  }
248  else {
249  ATH_MSG_DEBUG("selectEvent(): Error with sampleType property");
250  }
251 
253  return retval;
254 }

◆ selectEvent() [2/2]

bool FPGATrackSimEventSelectionSvc::selectEvent ( FPGATrackSimLogicalEventInputHeader eventHeader)
overridevirtual

Definition at line 256 of file FPGATrackSimEventSelectionSvc.cxx.

257 {
258  bool retval = false;
260  retval = true;
262  const auto& truthTracks = eventHeader->optional().getTruthTracks();
263  retval = checkTruthTracks(truthTracks);
264  }
265  else if (m_st == SampleType::LLPs) {
266  const auto& truthTracks = eventHeader->optional().getTruthTracks();
267  // Maybe change this later - could be we want LRT selection in all cases but I suspect not
268  if (m_LRT) retval = checkTruthTracksLRT(truthTracks);
269  else retval = checkTruthTracks(truthTracks);
270  }
271  else {
272  ATH_MSG_DEBUG("selectEvent(): Error with sampleType property");
273  }
274 
276  return retval;
277 
278 }

◆ setSelectedEvent()

virtual void FPGATrackSimEventSelectionSvc::setSelectedEvent ( bool  s)
inlineoverridevirtual

Definition at line 68 of file FPGATrackSimEventSelectionSvc.h.

68 { m_selectEvent = s; }

Member Data Documentation

◆ m_allowHighBarcode

Gaudi::Property<bool> FPGATrackSimEventSelectionSvc::m_allowHighBarcode { this, "allowHighBarcode", false, "Whether or not to allow barcodes over 200000 in truth matching"}
private

Definition at line 81 of file FPGATrackSimEventSelectionSvc.h.

◆ m_LRT

Gaudi::Property<bool> FPGATrackSimEventSelectionSvc::m_LRT { this, "doLRT", false, "Change track selection to LRT quantities; hit selection unchanged"}
private

Definition at line 78 of file FPGATrackSimEventSelectionSvc.h.

◆ m_LRT_pdgID

Gaudi::Property<int> FPGATrackSimEventSelectionSvc::m_LRT_pdgID { this, "lrt_truthMatchPDGID", 0, "If we are running an LLP sample but want only some PDGID of output in the truth selection, set this"}
private

Definition at line 80 of file FPGATrackSimEventSelectionSvc.h.

◆ m_max

FPGATrackSimTrackPars FPGATrackSimEventSelectionSvc::m_max
private

Definition at line 95 of file FPGATrackSimEventSelectionSvc.h.

◆ m_maxd0

Gaudi::Property<float> FPGATrackSimEventSelectionSvc::m_maxd0 {this, "maxd0", 2.0, "Max d0 for region selection"}
private

Definition at line 86 of file FPGATrackSimEventSelectionSvc.h.

◆ m_maxqOverPt

Gaudi::Property<float> FPGATrackSimEventSelectionSvc::m_maxqOverPt {this, "maxqOverPt", 0.001, "Max qOverPt for region selection (MeV)"}
private

Definition at line 88 of file FPGATrackSimEventSelectionSvc.h.

◆ m_maxz0

Gaudi::Property<float> FPGATrackSimEventSelectionSvc::m_maxz0 {this, "maxz0", 150, "Max z0 for region selection"}
private

Definition at line 87 of file FPGATrackSimEventSelectionSvc.h.

◆ m_min

FPGATrackSimTrackPars FPGATrackSimEventSelectionSvc::m_min
private

Definition at line 94 of file FPGATrackSimEventSelectionSvc.h.

◆ m_mind0

Gaudi::Property<float> FPGATrackSimEventSelectionSvc::m_mind0 {this, "mind0", -2.0, "Min d0 for region selection"}
private

Definition at line 83 of file FPGATrackSimEventSelectionSvc.h.

◆ m_minLRTpT

Gaudi::Property<float> FPGATrackSimEventSelectionSvc::m_minLRTpT { this, "minLRTpT", 5., "Minimum pT to use in LRT selection, in GeV"}
private

Definition at line 79 of file FPGATrackSimEventSelectionSvc.h.

◆ m_minqOverPt

Gaudi::Property<float> FPGATrackSimEventSelectionSvc::m_minqOverPt {this, "minqOverPt", -0.001, "Min qOverPt for region selection (MeV)"}
private

Definition at line 85 of file FPGATrackSimEventSelectionSvc.h.

◆ m_minz0

Gaudi::Property<float> FPGATrackSimEventSelectionSvc::m_minz0 {this, "minz0", -150, "Min z0 for region selection"}
private

Definition at line 84 of file FPGATrackSimEventSelectionSvc.h.

◆ m_oldRegionDefs

Gaudi::Property<bool> FPGATrackSimEventSelectionSvc::m_oldRegionDefs {this, "oldRegionDefs", true, "If True, use old region definitions, otherwise new ones where eta-phi for a region is automatically calculated and the rest are passed on"}
private

Definition at line 82 of file FPGATrackSimEventSelectionSvc.h.

◆ m_regionID

Gaudi::Property<unsigned int> FPGATrackSimEventSelectionSvc::m_regionID { this, "regionID", 0, "current region under processing"}
private

Definition at line 73 of file FPGATrackSimEventSelectionSvc.h.

◆ m_regions

FPGATrackSimRegionSlices* FPGATrackSimEventSelectionSvc::m_regions = nullptr
private

Definition at line 92 of file FPGATrackSimEventSelectionSvc.h.

◆ m_regions_path

Gaudi::Property<std::string> FPGATrackSimEventSelectionSvc::m_regions_path { this, "regions", "", "path of the slices file"}
private

Definition at line 75 of file FPGATrackSimEventSelectionSvc.h.

◆ m_sampleType

Gaudi::Property<std::string> FPGATrackSimEventSelectionSvc::m_sampleType { this, "sampleType", "singleMuons", "type of sample under processing (skipTruth, singleElectrons, singleMuons, singlePions, or LLPs)"}
private

Definition at line 76 of file FPGATrackSimEventSelectionSvc.h.

◆ m_selectEvent

bool FPGATrackSimEventSelectionSvc::m_selectEvent = false
private

Definition at line 105 of file FPGATrackSimEventSelectionSvc.h.

◆ m_skipRegionCheck

Gaudi::Property<unsigned int> FPGATrackSimEventSelectionSvc::m_skipRegionCheck { this, "skipRegionCheck", false, "this should be set to true for DataPrep or in cases where region cuts don't matter"}
private

Definition at line 74 of file FPGATrackSimEventSelectionSvc.h.

◆ m_st

SampleType FPGATrackSimEventSelectionSvc::m_st = SampleType::skipTruth
private

Definition at line 91 of file FPGATrackSimEventSelectionSvc.h.

◆ m_trackmax

FPGATrackSimTrackPars FPGATrackSimEventSelectionSvc::m_trackmax
private

Definition at line 97 of file FPGATrackSimEventSelectionSvc.h.

◆ m_trackmin

FPGATrackSimTrackPars FPGATrackSimEventSelectionSvc::m_trackmin
private

Definition at line 96 of file FPGATrackSimEventSelectionSvc.h.

◆ m_withPU

Gaudi::Property<bool> FPGATrackSimEventSelectionSvc::m_withPU { this, "withPU", false, "flag to say if there is pile-up or not"}
private

Definition at line 77 of file FPGATrackSimEventSelectionSvc.h.


The documentation for this class was generated from the following files:
FPGATrackSimEventSelectionSvc::checkTruthTracksLRT
bool checkTruthTracksLRT(const std::vector< FPGATrackSimTruthTrack > &) const
Definition: FPGATrackSimEventSelectionSvc.cxx:327
SampleType::LLPs
@ LLPs
FPGATrackSimTrackPars::phi
double phi
Definition: FPGATrackSimTrackPars.h:24
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
FPGATrackSimEventSelectionSvc::checkTruthTracks
bool checkTruthTracks(const std::vector< FPGATrackSimTruthTrack > &) const
Definition: FPGATrackSimEventSelectionSvc.cxx:301
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
FPGATrackSimRegionSlices
Definition: FPGATrackSimRegionSlices.h:25
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
FPGATrackSimTrackPars
Definition: FPGATrackSimTrackPars.h:22
beamspotman.cur
def cur
Definition: beamspotman.py:671
FPGATrackSimTrackPars::qOverPt
double qOverPt
Definition: FPGATrackSimTrackPars.h:25
FPGATrackSimOfflineTrack::getZ0
double getZ0() const
Definition: FPGATrackSimOfflineTrack.h:29
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
FPGATrackSimOfflineTrack::getEta
double getEta() const
Definition: FPGATrackSimOfflineTrack.h:26
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
FPGATrackSimRegionSlices::inRegion
bool inRegion(unsigned region, FPGATrackSimTruthTrack const &t) const
Definition: FPGATrackSimRegionSlices.cxx:119
FPGATrackSimTruthTrack
Definition: FPGATrackSimTruthTrack.h:14
FPGATrackSimOfflineTrack::getPhi
double getPhi() const
Definition: FPGATrackSimOfflineTrack.h:27
FPGATrackSimTrackPars::d0
double d0
Definition: FPGATrackSimTrackPars.h:26
FPGATrackSimEventSelectionSvc::m_trackmin
FPGATrackSimTrackPars m_trackmin
Definition: FPGATrackSimEventSelectionSvc.h:96
FPGATrackSimEventSelectionSvc::m_regions
FPGATrackSimRegionSlices * m_regions
Definition: FPGATrackSimEventSelectionSvc.h:92
FPGATrackSimEventSelectionSvc::m_minz0
Gaudi::Property< float > m_minz0
Definition: FPGATrackSimEventSelectionSvc.h:84
SampleType::singleElectrons
@ singleElectrons
FPGATrackSimEventSelectionSvc::m_skipRegionCheck
Gaudi::Property< unsigned int > m_skipRegionCheck
Definition: FPGATrackSimEventSelectionSvc.h:74
FPGATrackSimTrackPars::eta
double eta
Definition: FPGATrackSimTrackPars.h:28
FPGATrackSimEventSelectionSvc::passCuts
virtual bool passCuts(const FPGATrackSimHit &) const override
Definition: FPGATrackSimEventSelectionSvc.cxx:79
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
FPGATrackSimOptionalEventInfo::getTruthTracks
const std::vector< FPGATrackSimTruthTrack > & getTruthTracks() const
Definition: FPGATrackSimOptionalEventInfo.h:37
FPGATrackSimHit::getGPhi
float getGPhi() const
Definition: FPGATrackSimHit.h:144
LArCellBinning_test.retval
def retval
Definition: LArCellBinning_test.py:112
FPGATrackSimLogicalEventInputHeader::optional
FPGATrackSimOptionalEventInfo const & optional() const
Definition: FPGATrackSimLogicalEventInputHeader.h:32
FPGATrackSimEventSelectionSvc::m_oldRegionDefs
Gaudi::Property< bool > m_oldRegionDefs
Definition: FPGATrackSimEventSelectionSvc.h:82
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
HepMC::is_simulation_particle
bool is_simulation_particle(const T &p)
Method to establish if a particle (or barcode) was created during the simulation (TODO update to be s...
Definition: MagicNumbers.h:355
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
FPGATrackSimOfflineTrack::getQOverPt
double getQOverPt() const
Definition: FPGATrackSimOfflineTrack.h:30
lumiFormat.i
int i
Definition: lumiFormat.py:85
FPGATrackSimEventSelectionSvc::m_selectEvent
bool m_selectEvent
Definition: FPGATrackSimEventSelectionSvc.h:105
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
FPGATrackSimEventSelectionSvc::m_sampleType
Gaudi::Property< std::string > m_sampleType
Definition: FPGATrackSimEventSelectionSvc.h:76
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
FPGATrackSimEventSelectionSvc::m_maxd0
Gaudi::Property< float > m_maxd0
Definition: FPGATrackSimEventSelectionSvc.h:86
FPGATrackSimEventSelectionSvc::m_maxqOverPt
Gaudi::Property< float > m_maxqOverPt
Definition: FPGATrackSimEventSelectionSvc.h:88
FPGATrackSimEventSelectionSvc::m_max
FPGATrackSimTrackPars m_max
Definition: FPGATrackSimEventSelectionSvc.h:95
SampleType::skipTruth
@ skipTruth
FPGATrackSimEventSelectionSvc::m_trackmax
FPGATrackSimTrackPars m_trackmax
Definition: FPGATrackSimEventSelectionSvc.h:97
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
FPGATrackSimTruthTrack::getPDGCode
int getPDGCode() const
Definition: FPGATrackSimTruthTrack.h:57
FPGATrackSimEventSelectionSvc::m_minLRTpT
Gaudi::Property< float > m_minLRTpT
Definition: FPGATrackSimEventSelectionSvc.h:79
FPGATrackSimEventSelectionSvc::m_maxz0
Gaudi::Property< float > m_maxz0
Definition: FPGATrackSimEventSelectionSvc.h:87
FPGATrackSimEventInputHeader::optional
FPGATrackSimOptionalEventInfo const & optional() const
Definition: FPGATrackSimEventInputHeader.h:34
FPGATrackSimEventSelectionSvc::m_regions_path
Gaudi::Property< std::string > m_regions_path
Definition: FPGATrackSimEventSelectionSvc.h:75
FPGATrackSimRegionSlices::getMax
FPGATrackSimTrackPars const & getMax(unsigned region) const
Definition: FPGATrackSimRegionSlices.h:35
PathResolverFindCalibFile
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:431
FPGATrackSimEventSelectionSvc::m_minqOverPt
Gaudi::Property< float > m_minqOverPt
Definition: FPGATrackSimEventSelectionSvc.h:85
FPGATrackSimEventSelectionSvc::m_LRT
Gaudi::Property< bool > m_LRT
Definition: FPGATrackSimEventSelectionSvc.h:78
FPGATrackSimEventSelectionSvc::m_LRT_pdgID
Gaudi::Property< int > m_LRT_pdgID
Definition: FPGATrackSimEventSelectionSvc.h:80
ReadBchFromCool.good
good
Definition: ReadBchFromCool.py:433
FPGATrackSimEventSelectionSvc::m_regionID
Gaudi::Property< unsigned int > m_regionID
Definition: FPGATrackSimEventSelectionSvc.h:73
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
FPGATrackSimEventSelectionSvc::m_st
SampleType m_st
Definition: FPGATrackSimEventSelectionSvc.h:91
FPGATrackSimRegionSlices::getMin
FPGATrackSimTrackPars const & getMin(unsigned region) const
Definition: FPGATrackSimRegionSlices.h:34
FPGATrackSimEventSelectionSvc::m_allowHighBarcode
Gaudi::Property< bool > m_allowHighBarcode
Definition: FPGATrackSimEventSelectionSvc.h:81
FPGATrackSimTrackPars::z0
double z0
Definition: FPGATrackSimTrackPars.h:27
FPGATrackSimOfflineTrack::getD0
double getD0() const
Definition: FPGATrackSimOfflineTrack.h:28
FPGATrackSimTrackPars::NPARS
@ NPARS
Definition: FPGATrackSimTrackPars.h:49
FPGATrackSimTruthTrack::getBarcode
HepMcParticleLink::barcode_type getBarcode() const
Definition: FPGATrackSimTruthTrack.h:60
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
SampleType::singlePions
@ singlePions
SampleType::singleMuons
@ singleMuons
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
FPGATrackSimEventSelectionSvc::createRegions
void createRegions()
Definition: FPGATrackSimEventSelectionSvc.cxx:286
FPGATrackSimTruthTrack::getPars
FPGATrackSimTrackPars getPars() const
Definition: FPGATrackSimTruthTrack.h:69
FPGATrackSimEventSelectionSvc::m_mind0
Gaudi::Property< float > m_mind0
Definition: FPGATrackSimEventSelectionSvc.h:83
FPGATrackSimEventSelectionSvc::m_withPU
Gaudi::Property< bool > m_withPU
Definition: FPGATrackSimEventSelectionSvc.h:77
FPGATrackSimHit::getGCotTheta
float getGCotTheta() const
Definition: FPGATrackSimHit.h:145
ANA_MSG_DEBUG
#define ANA_MSG_DEBUG(xmsg)
Macro printing debug messages.
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:288
FPGATrackSimEventSelectionSvc::m_min
FPGATrackSimTrackPars m_min
Definition: FPGATrackSimEventSelectionSvc.h:94
FPGATrackSimEventSelectionSvc::getRegionID
virtual unsigned getRegionID() const override
Definition: FPGATrackSimEventSelectionSvc.h:34