PyLamarr
Pythonizations for the ultra-fast simulation option for the LHCb experiment
 
Loading...
Searching...
No Matches
ParticleMaker.py
1from typing import Tuple, Optional
2from dataclasses import dataclass
3from pydantic import validate_arguments
4
5from PyLamarr import RemoteResource, Wrapper
6
7
8@validate_arguments
9@dataclass(frozen=True)
11 output_table: Optional[str] = "particles"
12 output_columns: Optional[Tuple[str, ...]] = (
13 "mcparticle_id", "track_type",
14 "dx", "dy", "dz", "dtx", "dty", "dp",
15 "chi2PerDoF", "nDoF_f", "ghostProb"
16 )
17 make_persistent: Optional[bool] = True
18
19 def query(self):
20 return """
21 SELECT
22 reco.mcparticle_id AS mcparticle_id,
23 reco.track_type AS track_type,
24 res.dx, res.dy, res.dz, res.dtx, res.dty, res.dp,
25 res.chi2PerDoF, res.nDoF_f, res.ghostProb
26 FROM tmp_particles_recoed_as AS reco
27 LEFT JOIN tmp_resolution_out AS res ON reco.mcparticle_id == res.mcparticle_id
28 WHERE reco.track_type != 0
29 """
30
31 implements: str = "TemporaryTable"
32
33 @property
34 def config(self):
35 return dict(
36 output_table=self.output_table,
37 outputs=self.output_columns,
38 query=self.query(),
39 make_persistent=self.make_persistent,
40 )
41