52 #include "Utilities/AssociationUtil.h" 59 class DataProductSkimmer;
97 std::vector<std::shared_ptr<skim::BaseSkimmer> >
fSkimmers;
112 instance = skimmer->InstanceLabel();
114 if(instance.find(
"fhc") != std::string::npos ||
115 instance.find(
"rhc") != std::string::npos){
117 if( instance.find(
"nue2017") != std::string::npos ||
118 instance.find(
"nue2018") != std::string::npos){
119 produces< std::vector<rb::Shower> >(instance);
120 produces< std::vector<rb::Prong> >(instance);
121 produces< std::vector<rb::Cluster> >(instance);
122 produces< std::vector<rb::Vertex> >(instance);
123 produces< std::vector<slid::EventLID> >(instance);
124 produces< std::vector<slid::ShowerLID> >(instance);
126 produces< std::vector<cvn::Result> >(instance);
127 produces< std::vector<cosrej::NueCosRej> >(instance);
128 produces< std::vector<presel::Veto> >(instance);
129 produces< std::vector<me::SlcME> >(instance);
130 produces< std::vector<me::TrkME> >(instance);
131 produces< std::vector<rb::PID> >(instance);
132 produces< art::Assns<rb::Cluster, rb::Shower> >(instance);
133 produces< art::Assns<rb::Cluster, rb::Prong> >(instance);
134 produces< art::Assns<rb::Cluster, rb::Vertex> >(instance);
135 produces< art::Assns<rb::Cluster, slid::EventLID> >(instance);
136 produces< art::Assns<rb::Cluster, slid::ShowerLID> >(instance);
137 produces< art::Assns<rb::Shower, slid::ShowerLID> >(instance);
139 produces< art::Assns<rb::Cluster, cosrej::NueCosRej> >(instance);
140 produces< art::Assns<rb::Cluster, simb::MCTruth> >(instance);
141 produces< art::Assns<rb::Cluster, simb::MCFlux> >(instance);
142 produces< art::Assns<rb::Cluster, fxwgt::FluxWeights> >(instance);
143 produces< art::Assns<rb::Cluster, simb::GTruth> >(instance);
144 produces< art::Assns<rb::Cluster, cvn::Result> >(instance);
145 produces< art::Assns<rb::Cluster, presel::Veto> >(instance);
146 produces< art::Assns<rb::Cluster, me::SlcME> >(instance);
147 produces< art::Assns<rb::Cluster, me::TrkME> >(instance);
148 produces< art::Assns<rb::Cluster, rb::PID> >(instance);
149 produces< art::Assns<rb::Prong, rb::PID> >(instance);
150 produces< art::Assns<rb::Shower, rb::Prong> >(instance);
152 }
else if( instance.find(
"nue") != std::string::npos){
153 produces< std::vector<rb::Shower> >(instance);
154 produces< std::vector<rb::Prong> >(instance);
155 produces< std::vector<rb::Cluster> >(instance);
156 produces< std::vector<rb::Vertex> >(instance);
157 produces< std::vector<slid::EventLID> >(instance);
158 produces< std::vector<slid::ShowerLID> >(instance);
159 produces< std::vector<lem::PIDDetails> >(instance);
160 produces< std::vector<cvn::Result> >(instance);
161 produces< std::vector<cosrej::NueCosRej> >(instance);
162 produces< std::vector<presel::Veto> >(instance);
163 produces< std::vector<me::SlcME> >(instance);
164 produces< std::vector<me::TrkME> >(instance);
165 produces< std::vector<rb::PID> >(instance);
166 produces< art::Assns<rb::Cluster, rb::Shower> >(instance);
167 produces< art::Assns<rb::Cluster, rb::Prong> >(instance);
168 produces< art::Assns<rb::Cluster, rb::Vertex> >(instance);
169 produces< art::Assns<rb::Cluster, slid::EventLID> >(instance);
170 produces< art::Assns<rb::Cluster, slid::ShowerLID> >(instance);
171 produces< art::Assns<rb::Shower, slid::ShowerLID> >(instance);
172 produces< art::Assns<rb::Cluster, lem::PIDDetails> >(instance);
173 produces< art::Assns<rb::Cluster, cosrej::NueCosRej> >(instance);
174 produces< art::Assns<rb::Cluster, simb::MCTruth> >(instance);
175 produces< art::Assns<rb::Cluster, simb::MCFlux> >(instance);
176 produces< art::Assns<rb::Cluster, fxwgt::FluxWeights> >(instance);
177 produces< art::Assns<rb::Cluster, cvn::Result> >(instance);
178 produces< art::Assns<rb::Cluster, presel::Veto> >(instance);
179 produces< art::Assns<rb::Cluster, me::SlcME> >(instance);
180 produces< art::Assns<rb::Cluster, me::TrkME> >(instance);
181 produces< art::Assns<rb::Cluster, rb::PID> >(instance);
182 produces< art::Assns<rb::Prong, rb::PID> >(instance);
186 if(instance.find(
"numu") != std::string::npos){
187 produces< std::vector<rb::Cluster> >(instance);
188 produces< std::vector<rb::Energy> >(instance);
189 produces< std::vector<rb::Track> >(instance);
190 produces< std::vector<cosrej::CosRejObj> >(instance);
191 produces< std::vector<cosrej::NueCosRej> >(instance);
192 produces< std::vector<cvn::Result> >(instance);
193 produces< std::vector<rb::Shower> >(instance);
194 produces< std::vector<rb::Prong> >(instance);
195 produces< std::vector<rb::Vertex> >(instance);
196 produces< std::vector<slid::ShowerLID> >(instance);
197 produces< std::vector<numusand::NumuSandObj> >(instance);
198 produces< std::vector<presel::Veto> >(instance);
199 produces< std::vector<qeef::QePId> >(instance);
200 produces< std::vector<remid::ReMId> >(instance);
201 produces< std::vector<numue::NumuE> >(instance);
202 produces< art::Assns<rb::Cluster, rb::Track> >(instance);
203 produces< art::Assns<rb::Cluster, cosrej::CosRejObj> >(instance);
204 produces< art::Assns<rb::Cluster, cosrej::NueCosRej> >(instance);
205 produces< art::Assns<rb::Cluster, cvn::Result> >(instance);
206 produces< art::Assns<rb::Cluster, rb::Shower> >(instance);
207 produces< art::Assns<rb::Cluster, rb::Prong> >(instance);
208 produces< art::Assns<rb::Cluster, rb::Vertex> >(instance);
209 produces< art::Assns<rb::Cluster, slid::ShowerLID> >(instance);
210 produces< art::Assns<rb::Shower, slid::ShowerLID> >(instance);
211 produces< art::Assns<rb::Cluster, fxwgt::FluxWeights> >(instance);
212 produces< art::Assns<rb::Cluster, simb::GTruth> >(instance);
214 produces< art::Assns<rb::Cluster, numusand::NumuSandObj> >(instance);
215 produces< art::Assns<rb::Cluster, presel::Veto> >(instance);
216 produces< art::Assns<rb::Cluster, qeef::QePId> >(instance);
217 produces< art::Assns<rb::Cluster, numue::NumuE> >(instance);
218 produces< art::Assns<rb::Track, remid::ReMId> >(instance);
219 produces< art::Assns<rb::Track, rb::Energy> >(instance);
220 produces< art::Assns<rb::Cluster, simb::MCTruth> >(instance);
221 produces< art::Assns<rb::Cluster, simb::MCFlux> >(instance);
224 produces< std::vector<rb::Track> >(instance +
"Cosmics");
225 produces< art::Assns<rb::Cluster, rb::Track> >(instance +
"Cosmics");
228 if(instance.compare(
"ccpi") == 0){
229 produces< std::vector<rb::Cluster> >(instance);
230 produces< std::vector<rb::Energy> >(instance);
231 produces< std::vector<rb::Track > >(instance);
232 produces< std::vector<cosrej::CosRejObj> >(instance);
233 produces< std::vector<numusand::NumuSandObj> >(instance);
234 produces< std::vector<presel::Veto> >(instance);
235 produces< std::vector<qeef::QePId> >(instance);
236 produces< std::vector<remid::ReMId> >(instance);
237 produces< std::vector<numue::NumuE> >(instance);
238 produces< art::Assns<rb::Cluster, rb::Track> >(instance);
239 produces< art::Assns<rb::Cluster, cosrej::CosRejObj> >(instance);
240 produces< art::Assns<rb::Cluster, numusand::NumuSandObj> >(instance);
241 produces< art::Assns<rb::Cluster, presel::Veto> >(instance);
242 produces< art::Assns<rb::Cluster, qeef::QePId> >(instance);
243 produces< art::Assns<rb::Cluster, numue::NumuE> >(instance);
244 produces< art::Assns<rb::Track, remid::ReMId> >(instance);
245 produces< art::Assns<rb::Track, rb::Energy> >(instance);
246 produces< art::Assns<rb::Cluster, simb::MCTruth> >(instance);
247 produces< art::Assns<rb::Cluster, simb::MCFlux> >(instance);
248 produces< art::Assns<rb::Cluster, fxwgt::FluxWeights> >(instance);
254 produces< sumdata::SubRunData >();
268 auto cycleStart =
fileName.find(
"_c");
269 if(cycleStart != std::string::npos){
270 auto cycleStr =
fileName.substr(cycleStart + 2, 3);
271 fCycle = std::atoi(cycleStr.c_str());
292 for(
auto skimmer :
fSkimmers) skimmer->Skim(e, *
this);
296 e.
put(std::move(srd));
305 auto skimmers = p.
get< std::vector<fhicl::ParameterSet> >(
"SkimmerConfigs");
308 for(
auto itr : skimmers){
309 skimmerType = itr.get<
std::string>(
"InstanceLabel");
310 if(skimmerType.find(
"nue" ) != std::string::npos)
fSkimmers.push_back(std::make_shared<skim::NueSkimmer> (itr));
311 else if(skimmerType.find(
"numu") != std::string::npos)
fSkimmers.push_back(std::make_shared<skim::NumuSkimmer> (itr));
312 else if(skimmerType.find(
"ccpi") != std::string::npos)
fSkimmers.push_back(std::make_shared<skim::NumuCCpiSkimmer>(itr));
317 <<
"No skimmers were created, something is very wrong";
std::vector< std::shared_ptr< skim::BaseSkimmer > > fSkimmers
does the heavy lifting of skimming
std::string const & fileName() const
void respondToOpenInputFile(art::FileBlock const &fb) override
::xsd::cxx::tree::exception< char > exception
DataProductSkimmer & operator=(DataProductSkimmer const &)=delete
DEFINE_ART_MODULE(TestTMapFile)
int fCycle
cycle number, default is 0
Module to create a summary of total POT seen in a job.
object containing MC flux information
ProductID put(std::unique_ptr< PROD > &&product)
void produce(art::Event &e) override
T get(std::string const &key) const
Vertex location in position and time.
void reconfigure(fhicl::ParameterSet const &p)
DataProductSkimmer(fhicl::ParameterSet const &p)
Object collecting Preselection variables.