R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BNeulandHitCalibrationEngine.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (C) 2019 GSI Helmholtzzentrum für Schwerionenforschung GmbH *
3 * Copyright (C) 2019-2025 Members of R3B Collaboration *
4 * *
5 * This software is distributed under the terms of the *
6 * GNU General Public Licence (GPL) version 3, *
7 * copied verbatim in the file "LICENSE". *
8 * *
9 * In applying this license GSI does not waive the privileges and immunities *
10 * granted to it by virtue of its status as an Intergovernmental Organization *
11 * or submit itself to any jurisdiction. *
12 ******************************************************************************/
13
14#ifndef R3BNEULANDHITCALIBRATIONENGINE_H
15#define R3BNEULANDHITCALIBRATIONENGINE_H
16
17#include <vector>
18
19#include "TH1F.h"
20#include "TH2F.h"
21#include "TH3F.h"
22
26#include "R3BNeulandTSyncer.h"
27
29class TDirectory;
30
31namespace R3B::Neuland // NOLINT
32{
33 namespace Calibration
34 {
36 {
37 public:
39
40 void Init(const R3BNeulandHitPar* hitpar);
41 void Set(const Int_t id, const Int_t side, const Double_t time, const Int_t qdc);
42 inline Bool_t IsValid(const Int_t id) { return fBars[id].IsValid(); }
43 inline Double_t GetPosition(const Int_t id) { return fBars[id].GetPosition(); }
44 void Add(const R3BNeulandCosmicTrack& track, const UInt_t eventNumber);
45 void Reset();
46 std::vector<R3BNeulandHitModulePar> Calibrate(TDirectory* histoDir = nullptr);
47
48 private:
49 void draw() const;
50
51 TSyncer fTSyncer;
52 std::vector<HitCalibrationBar> fBars;
53 std::vector<ULong64_t> fHitMask;
54
55 TH1F fBarDistribution;
56 TH1F fStoppedDistribution;
57 TH1F fInteractionsDistribution;
58 TH1F fStoppedInteractionsDistribution;
59 TH1F fTrackLengthDistribution;
60 TH1F fTotalTrackLengthDistribution;
61 TH1F fTotalStoppedTrackLengthDistribution;
62 TH2F fCorrelationMatrix;
63 TH3F fTrackEntryPointDistribution; // Z X Y
64 TH3F fTrackDirectionDistribution; // Z X Y
65 };
66 } // namespace Calibration
67} // namespace R3B::Neuland
68#endif
std::vector< R3BNeulandHitModulePar > Calibrate(TDirectory *histoDir=nullptr)
void Set(const Int_t id, const Int_t side, const Double_t time, const Int_t qdc)
void Add(const R3BNeulandCosmicTrack &track, const UInt_t eventNumber)
Simulation of NeuLAND Bar/Paddle.