-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathORL2551ScalersTreeWriter.cc
55 lines (45 loc) · 1.5 KB
/
ORL2551ScalersTreeWriter.cc
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
// ORL2551ScalersTreeWriter.cc
#include "ORL2551ScalersTreeWriter.hh"
#include "ORLogger.hh"
using namespace std;
ORL2551ScalersTreeWriter::ORL2551ScalersTreeWriter(string treeName) :
ORVTreeWriter(new ORL2551ScalersDecoder, treeName)
{
fScalersDecoder = dynamic_cast<ORL2551ScalersDecoder*>(fDataDecoder);
fCrate = 0;
fCard = 0;
fChannel = 0;
fScaler = 0;
SetDoNotAutoFillTree();
}
ORL2551ScalersTreeWriter::~ORL2551ScalersTreeWriter()
{
delete fScalersDecoder;
}
ORDataProcessor::EReturnCode ORL2551ScalersTreeWriter::InitializeBranches()
{
fTree->Branch("crate", &fCrate, "crate/I");
fTree->Branch("card", &fCard, "card/I");
fTree->Branch("channel", &fChannel, "channel/I");
fTree->Branch("scaler", &fScaler, "scaler/I");
return kSuccess;
}
ORDataProcessor::EReturnCode ORL2551ScalersTreeWriter::ProcessMyDataRecord(UInt_t* record)
{
// check severity to improve speed
if (ORLogger::GetSeverity() >= ORLogger::kDebug) {
ORLog(kDebug) << "ProcessMyDataRecord(): got one: "
<< "crate-card-nscalers = "
<< fScalersDecoder->CrateOf(record) << "-"
<< fScalersDecoder->CardOf(record) << "-"
<< fScalersDecoder->NScalersOf(record) << endl;
}
fCrate = fScalersDecoder->CrateOf(record);
fCard = fScalersDecoder->CardOf(record);
for(size_t i=0; i<fScalersDecoder->NScalersOf(record); i++) {
fChannel = fScalersDecoder->IthChannelOf(record, i);
fScaler = fScalersDecoder->IthScalerOf(record, i);
fTree->Fill();
}
return kSuccess;
}