ARTEMIS-CRIB
 
Loading...
Searching...
No Matches
TTSMappingProcessor.cc
Go to the documentation of this file.
1/**
2 * @file TTSMappingProcessor.cc
3 * @brief
4 * @author Kodai Okawa <okawa@cns.s.u-tokyo.ac.jp>
5 * @date 2022?
6 * @note last modified: 2024-08-23 21:01:55
7 * @details
8 */
9
10#include "TTSMappingProcessor.h"
11
12#include "TTSData.h"
13#include <TCategorizedData.h>
14#include <TRawDataObject.h>
15
17
19
21 : fOutputArray(nullptr) {
22 RegisterInputCollection("InputCollection", "rawdata object returned by TRIDFEventStore",
23 fInputColName, TString("catdata"),
24 reinterpret_cast<void ***>(&fCategorizedData),
25 "art::TCategorizedData");
26 RegisterOutputCollection("OutputCollection", "output collection name",
27 fOutputColName, TString("simple"),
28 reinterpret_cast<void **>(&fOutputArray),
29 "TClonesArray", "art::crib::TTSData");
30 RegisterProcessorParameter("CatID", "Category ID", fCatID, 0);
31 RegisterProcessorParameter("DataTypeID", "data type id for input",
32 fDataTypeID, 0);
33}
34
39
40void TTSMappingProcessor::Init(TEventCollection *) {
41 Info("Init", "CatID: %d, DataTypeID: %d => %s",
43}
44
47 return;
48
49 fOutputArray->Clear("C");
50
51 const TObjArray *const cat = (*fCategorizedData)->FindCategory(fCatID);
52 if (!cat)
53 return;
54
55 const Int_t n = cat->GetEntriesFast();
56
57 for (Int_t i = 0; i != n; ++i) {
58 const TObjArray *const det = static_cast<TObjArray *>(cat->At(i));
59 const TObjArray *const dataArray = static_cast<TObjArray *>(det->At(fDataTypeID));
60 if (!dataArray)
61 continue;
62
63 const TRawDataObject *const hit = dynamic_cast<TRawDataObject *>(dataArray->At(0));
64 if (!hit)
65 continue;
66 const Int_t detID = hit->GetDetID();
67 const Int_t idx = detID;
68 TTSData *const data = static_cast<TTSData *>(fOutputArray->ConstructedAt(idx));
69
70 data->SetID(detID);
71 data->SetTS(hit->GetValue());
72 data->SetTScal(hit->GetValue() * 0.01);
73 }
74}
ClassImp(TTSMappingProcessor)
void SetTScal(Double_t arg)
Definition TTSData.h:36
void SetTS(ULong64_t arg)
Definition TTSData.h:34
void Init(TEventCollection *) override
return to the guide