REST-for-Physics  v2.3
Rare Event Searches ToolKit for Physics
TRestEventSelectionProcess.cxx
1/*************************************************************************
2 * This file is part of the REST software framework. *
3 * *
4 * Copyright (C) 2016 GIFNA/TREX (University of Zaragoza) *
5 * For more information see http://gifna.unizar.es/trex *
6 * *
7 * REST is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * REST is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have a copy of the GNU General Public License along with *
18 * REST in $REST_PATH/LICENSE. *
19 * If not, see http://www.gnu.org/licenses/. *
20 * For the list of contributors see $REST_PATH/CREDITS. *
21 *************************************************************************/
22
75
76#include "TRestEventSelectionProcess.h"
77
78using namespace std;
80
85
94 SetSectionName(this->ClassName());
95
96 fEvent = nullptr;
97}
98
104 if (TRestTools::GetFileNameExtension(fFileWithIDs) == "txt") {
105 string line;
106 ifstream File(fFileWithIDs);
107
108 if (File.is_open()) {
109 while (getline(File, line)) {
110 fList.push_back(stoi(line));
111 }
112 File.close();
113 }
114 } else if (TRestTools::GetFileNameExtension(fFileWithIDs) == "root") {
115 TRestRun* run = new TRestRun(fFileWithIDs);
116 fList = run->GetEventIdsWithConditions(fConditions);
117 delete run;
118 }
119}
120
125 fEvent = inputEvent;
126
127 for (unsigned int i = 0; i < fList.size(); i++) {
128 if (fList[i] == fEvent->GetID()) {
129 return fEvent;
130 }
131 }
132
133 return nullptr;
134}
135
141
142 RESTMetadata << "File with IDs: " << fFileWithIDs << RESTendl;
143 if (fFileWithIDs.substr(fFileWithIDs.length() - 4) == "root") {
144 RESTMetadata << "Conditions: " << fConditions << RESTendl;
145 }
146
147 EndPrintProcess();
148}
void BeginPrintProcess()
[name, cut range]
A template process to serve as an example to create new TRestRawSignalEventProcess.
void PrintMetadata() override
Prints on screen the process data members.
TRestEventSelectionProcess()
Default constructor.
void Initialize() override
A list with the event ids that have been selected.
TRestEvent * ProcessEvent(TRestEvent *inputEvent) override
The main processing event function.
void InitProcess() override
Process initialization.
A base class for any REST event.
Definition: TRestEvent.h:38
endl_t RESTendl
Termination flag object for TRestStringOutput.
void SetSectionName(std::string sName)
set the section name, clear the section content
Data provider and manager in REST.
Definition: TRestRun.h:18
static std::string GetFileNameExtension(const std::string &fullname)
Gets the file extension as the substring found after the latest ".".
Definition: TRestTools.cxx:823