BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnProfAsic2Raw.cxx
Go to the documentation of this file.
1
#include "
BmnProfAsic2Raw.h
"
2
3
#include "FairRootManager.h"
4
#include "
TSystem.h
"
5
6
#include <
TChain.h
>
7
#include <
TRandom.h
>
8
#include <
TStopwatch.h
>
9
#include <zlib.h>
10
11
static
Double_t
workTime
= 0.0;
12
13
BmnProfAsic2Raw::BmnProfAsic2Raw
(
Int_t
run_period,
Int_t
run_number,
Int_t
verbosity)
14
:
FairTask
(
"BmnProfAsic2Raw"
, verbosity)
15
,
fPeriodId
(run_period)
16
,
fRunId
(run_number)
17
,
fPedEvCntr
(0)
18
,
fNoiseEvCntr
(0)
19
,
fEvForPedestals
(100)
20
,
fEv
(0)
21
,
fPedEnough
(
kFALSE
)
22
,
fInputEventHeaderName
(
"BmnEventHeader."
)
23
,
fInputAdcBranchName
(
"ADC192ASIC"
)
24
,
fWorkAdcBranchName
(
"ADC32PROF"
)
25
,
fOutputProfBranchName
(
"BmnProfDigit"
)
26
{}
27
28
BmnProfAsic2Raw::~BmnProfAsic2Raw
() {}
29
30
InitStatus
BmnProfAsic2Raw::Init
()
31
{
32
33
if
(fVerbose > 1)
34
cout <<
"=================== BmnProfAsic2Raw::Init() started ===================="
<< endl;
35
36
FairRootManager* ioman = FairRootManager::Instance();
37
38
fEventHead
=
static_cast<
BmnEventHeader
*
>
(ioman->GetObject(
fInputEventHeaderName
));
39
fInAsicArray
= (
TClonesArray
*)ioman->GetObject(
fInputAdcBranchName
);
40
if
(!
fInAsicArray
) {
41
cout <<
"BmnProfAsic2Raw::Init(): branch "
<<
fInputAdcBranchName
<<
" not found! Task will be deactivated"
42
<< endl;
43
SetActive(
kFALSE
);
44
return
kERROR;
45
}
46
47
fWorkAdcArray
=
new
TClonesArray
(
BmnADCDigit::Class
());
48
ioman->Register(
fWorkAdcBranchName
,
"ADC32Prof"
,
fWorkAdcArray
,
kTRUE
);
49
50
fBmnProfDigitArray
=
new
TClonesArray
(
BmnSiProfDigit::Class
());
51
ioman->Register(
fOutputProfBranchName
,
"Prof"
,
fBmnProfDigitArray
,
kTRUE
);
52
53
TString
gPathCSCConfig =
gSystem
->Getenv(
"VMCWORKDIR"
);
54
gPathCSCConfig +=
"/parameters/csc/XMLConfigs/"
;
55
56
//--------------------------------------------------------------------------
57
fMapper
=
new
BmnProfRaw2Digit
(8, 0);
58
fMapper
->SetVerbose(1);
59
if
(fVerbose > 1)
60
cout <<
"=================== BmnProfAsic2Raw::Init() finished ==================="
<< endl;
61
62
return
kSUCCESS;
63
}
64
65
void
BmnProfAsic2Raw::Exec
(
Option_t
* opt)
66
{
67
fEv
++;
68
TStopwatch
sw;
69
sw.
Start
();
70
if
(!IsActive())
71
return
;
72
fBmnProfDigitArray
->Delete();
73
fWorkAdcArray
->Delete();
74
75
if
(fVerbose > 1)
76
cout <<
"=================== BmnProfAsic2Raw::Exec() started ===================="
<< endl;
77
if
(fVerbose > 1)
78
cout <<
" BmnProfAsic2Raw::Exec(), Number of BmnAdcDigits = "
<<
fInAsicArray
->GetEntriesFast() <<
"\n"
;
79
80
ProcessDigits
();
81
82
if
(fVerbose > 1)
83
cout <<
"=================== BmnProfAsic2Raw::Exec() finished ==================="
<< endl;
84
85
sw.
Stop
();
86
workTime
+= sw.
RealTime
();
87
return
;
88
}
89
90
void
BmnProfAsic2Raw::ProcessDigits
()
91
{
92
93
fMapper
->FillExtractedBits(
fInAsicArray
,
fWorkAdcArray
);
94
fPedEnough
=
kTRUE
;
95
if
(!
fPedEnough
) {
96
if
((
Int_t
)
fPedEvCntr
!=
fEvForPedestals
) {
97
fMapper
->CopyData2PedMap(
fWorkAdcArray
,
fPedEvCntr
);
98
fPedEvCntr
++;
99
if
(fVerbose == 1) {
100
if
(
fPedEvCntr
% 100 == 0 &&
fPedEvCntr
> 0)
101
cout <<
"Pedestal event #"
<<
fPedEvCntr
<<
"/"
<<
fEvForPedestals
<<
";"
<< endl;
102
}
else
if
(fVerbose == 0)
103
DrawBar
(
fPedEvCntr
,
fEvForPedestals
);
104
}
else
{
105
fPedEnough
=
kTRUE
;
106
fMapper
->RecalculatePedestalsAugmented();
107
}
108
}
else
109
fMapper
->FillEvent(
fWorkAdcArray
,
fBmnProfDigitArray
);
110
return
;
111
}
112
113
void
BmnProfAsic2Raw::Finish
()
114
{
115
delete
fMapper
;
116
if
(fVerbose > 0) {
117
printf(
"Work time of BmnProfAsic2Raw: %4.2f sec.\n"
,
workTime
);
118
printf(
"Processed events: %d\n"
,
fEv
);
119
}
120
return
;
121
}
DrawBar
void DrawBar(UInt_t iEv, UInt_t nEv)
Definition
BmnMath.cxx:940
BmnProfAsic2Raw.h
workTime
static Double_t workTime
Definition
BmnProfAsic2Raw.cxx:11
Int_t
int Int_t
kFALSE
constexpr Bool_t kFALSE
Double_t
double Double_t
kTRUE
constexpr Bool_t kTRUE
Option_t
const char Option_t
TChain.h
TRandom.h
TStopwatch.h
TSystem.h
gSystem
R__EXTERN TSystem * gSystem
BmnEventHeader
Definition
BmnEventHeader.h:24
BmnProfAsic2Raw::fPeriodId
UInt_t fPeriodId
Definition
BmnProfAsic2Raw.h:38
BmnProfAsic2Raw::Exec
virtual void Exec(Option_t *opt)
Definition
BmnProfAsic2Raw.cxx:65
BmnProfAsic2Raw::fEvForPedestals
Int_t fEvForPedestals
Definition
BmnProfAsic2Raw.h:42
BmnProfAsic2Raw::fInputAdcBranchName
TString fInputAdcBranchName
Definition
BmnProfAsic2Raw.h:49
BmnProfAsic2Raw::fBmnProfDigitArray
TClonesArray * fBmnProfDigitArray
Output array of Profilometer digits.
Definition
BmnProfAsic2Raw.h:61
BmnProfAsic2Raw::fMapper
BmnProfRaw2Digit * fMapper
Definition
BmnProfAsic2Raw.h:46
BmnProfAsic2Raw::fPedEvCntr
UInt_t fPedEvCntr
Definition
BmnProfAsic2Raw.h:40
BmnProfAsic2Raw::Finish
virtual void Finish()
Definition
BmnProfAsic2Raw.cxx:113
BmnProfAsic2Raw::fEventHead
BmnEventHeader * fEventHead
Definition
BmnProfAsic2Raw.h:54
BmnProfAsic2Raw::fPedEnough
Bool_t fPedEnough
Definition
BmnProfAsic2Raw.h:44
BmnProfAsic2Raw::fOutputProfBranchName
TString fOutputProfBranchName
Definition
BmnProfAsic2Raw.h:52
BmnProfAsic2Raw::BmnProfAsic2Raw
BmnProfAsic2Raw(Int_t run_period=9, Int_t run_number=0, Int_t verb=0)
Definition
BmnProfAsic2Raw.cxx:13
BmnProfAsic2Raw::ProcessDigits
void ProcessDigits()
Definition
BmnProfAsic2Raw.cxx:90
BmnProfAsic2Raw::fNoiseEvCntr
UInt_t fNoiseEvCntr
Definition
BmnProfAsic2Raw.h:41
BmnProfAsic2Raw::Init
virtual InitStatus Init()
Definition
BmnProfAsic2Raw.cxx:30
BmnProfAsic2Raw::fInAsicArray
TClonesArray * fInAsicArray
Input array of ADC signals.
Definition
BmnProfAsic2Raw.h:56
BmnProfAsic2Raw::fEv
Int_t fEv
Definition
BmnProfAsic2Raw.h:43
BmnProfAsic2Raw::fWorkAdcArray
TClonesArray * fWorkAdcArray
Intermediate array of ADC signals.
Definition
BmnProfAsic2Raw.h:58
BmnProfAsic2Raw::~BmnProfAsic2Raw
virtual ~BmnProfAsic2Raw()
Definition
BmnProfAsic2Raw.cxx:28
BmnProfAsic2Raw::fInputEventHeaderName
TString fInputEventHeaderName
Definition
BmnProfAsic2Raw.h:48
BmnProfAsic2Raw::fRunId
UInt_t fRunId
Definition
BmnProfAsic2Raw.h:39
BmnProfAsic2Raw::fWorkAdcBranchName
TString fWorkAdcBranchName
Definition
BmnProfAsic2Raw.h:50
BmnProfRaw2Digit
Definition
BmnProfRaw2Digit.h:50
FairTask
TClonesArray
TNamed::Class
static TClass * Class()
TObject::Class
static TClass * Class()
TStopwatch
TStopwatch::RealTime
Double_t RealTime()
TStopwatch::Start
void Start(Bool_t reset=kTRUE)
TStopwatch::Stop
void Stop()
TString
decoder
BmnProfAsic2Raw.cxx
Generated on
for BmnRoot by
1.17.0