R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BCoarseTimeStitch.cxx
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#include "R3BCoarseTimeStitch.h"
15#include "R3BLogger.h"
16
17#include <TMath.h>
18#define IS_NAN(x) TMath::IsNaN(x)
19
20// Standard constructur
22 : fRange1(2048 * 1000. / 200.) // ns
23 , fRange2(2048 * 1000. / 200.) // ns
24 , fRangeTamex(2048 * 1000. / 200.) // ns
25 , fRangeTrb(2048 * 1000. / 200.) // ns
26 , fRangeVftx(8192 * 1000. / 200.) // ns
27 , fRangeClockTDC(4096 * 1000. / 250.) // ns
28 , fRangeClockTDC150(4096 * 1000. / 150.) // ns
29{
30}
31
32double R3BCoarseTimeStitch::GetTime(double time, TString const& name1, TString const& name2)
33{
34 if (name1 == "tamex")
35 {
36 fRange1 = fRangeTamex;
37 }
38 else if (name1 == "trb")
39 {
40 fRange1 = fRangeTrb;
41 }
42 else if (name1 == "vftx")
43 {
44 fRange1 = fRangeVftx;
45 }
46 else if (name1 == "clocktdc")
47 {
48 fRange1 = fRangeClockTDC;
49 }
50 else
51 {
52 R3BLOG(fatal, "Module " << name1 << " does not exist.");
53 }
54
55 if (name2 == "tamex")
56 {
57 fRange2 = fRangeTamex;
58 }
59 else if (name2 == "trb")
60 {
61 fRange2 = fRangeTrb;
62 }
63 else if (name2 == "vftx")
64 {
65 fRange2 = fRangeVftx;
66 }
67 else if (name2 == "clocktdc")
68 {
69 fRange2 = fRangeClockTDC;
70 }
71 else
72 {
73 R3BLOG(fatal, "Module " << name2 << " does not exist.");
74 }
75
76 const double const1 = TMath::Min(fRange1, fRange2);
77 const double const2 = TMath::Max(fRange1, fRange2);
78
79 R3BLOG(debug,
80 "Time: " << time << " , range1(" << name1 << "): " << fRange1 << " , range2(" << name1 << "): " << fRange2);
81 return fmod(time + const2 + const1 / 2., const1) - const1 / 2.;
82}
83
#define R3BLOG(severity, x)
Definition R3BLogger.h:35
ClassImp(R3B::Neuland::Cal2HitPar)
double GetTime(double, TString const &name1="tamex", TString const &name2="tamex")