18 #include "NovaDAQConventions/DAQConventions.h" 25 #include "Utilities/AssociationUtil.h" 30 #include "TMVA/Reader.h" 69 produces< std::vector<wsnumu::WSNumuObj> >();
70 produces< art::Assns<wsnumu::WSNumuObj, rb::Cluster> >();
97 fReader->BookMVA(
"BDTG",pidpath+
"WSNumu_BDTG_prod3_NDtraining.weights.xml");
111 if(slicevec->empty()) {
119 std::unique_ptr< std::vector<wsnumu::WSNumuObj> > outputObjects(
new std::vector<wsnumu::WSNumuObj>);
122 for(
size_t i = 0;
i < slicevec->size(); ++
i){
132 unsigned int bestIdx = 999;
134 if(!trackAssnList.isValid()) {
136 outputObjects->push_back(wsnumuobj);
137 util::CreateAssn(*
this, evt, *(outputObjects.get()), slice, *(assoc.get()));
141 const std::vector< art::Ptr<rb::Track> > sliceTracks = trackAssnList.at(
i);
146 if(sliceTracks.size() == 0) {
147 outputObjects->push_back(wsnumuobj);
152 outputObjects->push_back(wsnumuobj);
156 else if(!remidVec.isValid()) {
158 outputObjects->push_back(wsnumuobj);
159 util::CreateAssn(*
this, evt, *(outputObjects.get()), slice, *(assoc.get()));
179 if (!energy)
continue;
181 double tdx = track->
Dir().X();
182 double tdy = track->
Dir().Y();
183 double tdz = track->
Dir().Z();
185 if(!(tdx>=-1&&tdx<=1&&tdy>=-1&&tdy<=1&&tdz>=-1&&tdz<=1))
continue;
187 theta = TMath::ACos(tdz)*180./TMath::Pi();
195 if( energy->
TrkCCE() > 0 ) {
220 outputObjects->push_back(wsnumuobj);
221 util::CreateAssn(*
this, evt, *(outputObjects.get()), slice, *(assoc.get()));
225 evt.
put(std::move(outputObjects));
226 evt.
put(std::move(assoc));
static bool CreateAssn(art::EDProducer const &prod, art::Event &evt, std::vector< T > &a, art::Ptr< U > b, art::Assns< T, U > &assn, size_t indx=UINT_MAX, std::string const &instance=std::string())
Create a 1 to 1 association between a new product and one already in the event.
unsigned int NCell(geo::View_t view) const
Number of cells in view view.
void SetHadEfrac(float hadefrac)
hadronic energy fraction of the slice
void SetWSPID(float wspid)
numu-focused wrong sign PID
Wrong-sign BDT estimator for Numu analysis.
std::string EnvExpansion(const std::string &inString)
Function to expand environment variables.
WSNumu(fhicl::ParameterSet const &pset)
DEFINE_ART_MODULE(TestTMapFile)
void SetHadEhit(float hadehit)
hadronic energy per hit in the slice
rb::Cluster HadCluster() const
float RecoTrkCCHadE() const
ProductID put(std::unique_ptr< PROD > &&product)
void SetNPlaneGap(int nplanegap)
number of plane gaps in the main track
void SetMuonE(float muonE)
muon energy
novadaq::cnv::DetId DetId() const
Prefer ds::DetectorService::DetId() instead.
virtual TVector3 Dir() const
Unit vector describing prong direction.
Near Detector in the NuMI cavern.
void SetTheta(float theta)
direction angle of the leading muon (in deg)
int NMissingPlanes(geo::View_t view) const
Total number of missing planes in cluster.
void produce(art::Event &evt)
bool getByLabel(std::string const &label, std::string const &productInstanceName, Handle< PROD > &result) const
void beginRun(art::Run &run)
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
bool IsNoise() const
Is the noise flag set?
Encapsulate the geometry of one entire detector (near, far, ndos)
virtual bool Is3D() const
unsigned int HighestPIDTrack(const std::vector< art::Ptr< rb::Track > > &sliceTracks, const std::string &remidModuleLabel, const art::Event &e)