PyLamarr
Pythonizations for the ultra-fast simulation option for the LHCb experiment
 
Loading...
Searching...
No Matches
AssignCategory.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] = "tmp_particles_recoed_as"
12 output_columns: Optional[Tuple[str, ...]] = ("mcparticle_id", "track_type")
13 make_persistent: Optional[bool] = True
14
15 def query(self):
16 return """
17 SELECT
18 eff.mcparticle_id,
19 random_category(not_recoed, 0, 0, long, upstream) AS track_type
20 FROM tmp_efficiency_out AS eff
21 INNER JOIN tmp_acceptance_out AS acc
22 ON eff.mcparticle_id = acc.mcparticle_id
23 WHERE random_category(1 - acc.acceptance, acc.acceptance) == 1;
24 """
25
26 implements: str = "TemporaryTable"
27
28 @property
29 def config(self):
30 return dict(
31 output_table=self.output_table,
32 outputs=self.output_columns,
33 query=self.query(),
34 make_persistent=self.make_persistent,
35 )