SND@LHC Software
Loading...
Searching...
No Matches
sndPlaneTools.cxx
Go to the documentation of this file.
1#include "sndPlaneTools.h"
2
3#include <vector>
4
5#include "TClonesArray.h"
6#include "Scifi.h"
7#include "MuFilter.h"
8#include "sndConfiguration.h"
9#include "sndScifiPlane.h"
10#include "sndUSPlane.h"
11#include "sndScifiHit.h"
12#include "MuFilterHit.h"
13
14std::vector<snd::analysis_tools::ScifiPlane> snd::analysis_tools::FillScifi(const snd::Configuration &configuration, TClonesArray *sf_hits, Scifi *scifi_geometry)
15{
16
17 std::vector<snd::analysis_tools::ScifiPlane> scifi_planes;
18
19 int begin{0};
20 int count{0};
21
22 int n_sf_hits{sf_hits->GetEntries()};
23
24 for (int st{1}; st <= configuration.scifi_n_stations; ++st)
25 {
26 begin = count;
27 while (count < n_sf_hits &&
28 st == static_cast<sndScifiHit *>(sf_hits->At(count))->GetStation())
29 {
30 ++count;
31 }
32 scifi_planes.emplace_back(snd::analysis_tools::ScifiPlane(sf_hits, configuration, scifi_geometry, begin, count, st));
33 }
34 return scifi_planes;
35}
36
37std::vector<snd::analysis_tools::USPlane> snd::analysis_tools::FillUS(const snd::Configuration &configuration, TClonesArray *mufi_hits, MuFilter *mufilter_geometry)
38{
39
40 std::vector<snd::analysis_tools::USPlane> us_planes;
41
42 int begin{0};
43 int count{0};
44
45 int n_mufi_hits{mufi_hits->GetEntries()};
46 // skip veto/beam monitor
47 while (count < n_mufi_hits &&
48 static_cast<MuFilterHit *>(mufi_hits->At(count))->GetSystem() != 2)
49 {
50 ++count;
51 }
52 // plane count starts from 0
53 for (int pl{0}; pl < configuration.us_n_stations; ++pl)
54 {
55 begin = count;
56 while (count < n_mufi_hits &&
57 pl == static_cast<MuFilterHit *>(mufi_hits->At(count))->GetPlane() &&
58 static_cast<MuFilterHit *>(mufi_hits->At(count))->GetSystem() == 2) // stop before DS
59 {
60 ++count;
61 }
62 us_planes.emplace_back(snd::analysis_tools::USPlane(mufi_hits, configuration, mufilter_geometry, begin, count, pl + 1));
63 }
64 return us_planes;
65}
int GetPlane()
Definition MuFilterHit.h:42
int GetSystem()
Definition MuFilterHit.h:41
Definition Scifi.h:20
Int_t GetStation()
Definition sndScifiHit.h:31
std::vector< ScifiPlane > FillScifi(const Configuration &configuration, TClonesArray *sf_hits, Scifi *scifi_geometry)
std::vector< USPlane > FillUS(const Configuration &configuration, TClonesArray *mufi_hits, MuFilter *mufilter_geometry)