1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
use crate::event::{Event, TriggerMask};
use crate::primary_vertex::PrimaryVertex;
use crate::track::{Flags, ItsClusters, Track};
pub fn default_event_filter(event: &Event) -> bool {
let good_vertex = match event.primary_vertex() {
Some(pv) => pv.z.abs() < 10.0,
None => false,
};
good_vertex
& (event.multiplicity() > 0.0)
& event.trigger_mask().contains(TriggerMask::MINIMUM_BIAS)
}
pub fn default_track_filter(tr: &Track, prime_vtx: &PrimaryVertex) -> bool {
tr.flags.contains(Flags::ITS_REFIT)
&& tr.flags.contains(Flags::TPC_REFIT)
&& tr.dca_to_point_xy(prime_vtx.x, prime_vtx.y) < 2.4
&& tr.dca_to_point_z(prime_vtx.z) < 3.2
&& tr.eta().abs() < 0.9
&& tr.pt() > 0.15
&& tr.tpc_ncls > 70
&& tr.tpc_chi2_per_cluster() <= 4.0
&& tr.its_chi2_per_cluster() <= 36.0
}
pub fn is_hybrid_track(tr: &Track) -> bool {
tr.its_clustermap.intersects(ItsClusters::SPD_INNER | ItsClusters::SPD_OUTER)
& tr.flags.contains(Flags::ITS_REFIT) ||
!tr.its_clustermap.intersects(ItsClusters::SPD_INNER | ItsClusters::SPD_OUTER)
& tr.flags.contains(Flags::ITS_REFIT) ||
!tr.its_clustermap.intersects(ItsClusters::SPD_INNER | ItsClusters::SPD_OUTER)
& !tr.flags.contains(Flags::ITS_REFIT)
}