#include "PndPidListMaker.h" #include #include "RhoBase/RhoCandidate.h" #include "RhoBase/RhoCandList.h" #include "RhoBase/RhoParticleSelectorBase.h" PndPidListMaker::PndPidListMaker() { Init(); } PndPidListMaker::PndPidListMaker(RhoCandList& l) { SetBaseList(l); Init(); } PndPidListMaker::~PndPidListMaker() { fBaseList.Cleanup(); } void PndPidListMaker::Init() { // init the selectors; plusSel = new RhoPlusParticleSelector; minusSel = new RhoMinusParticleSelector; // **** pid selectors for generic list creation // eSel = new RhoSimpleElectronSelector(); muSel = new RhoSimpleMuonSelector(); piSel = new RhoSimplePionSelector(); kSel = new RhoSimpleKaonSelector(); pSel = new RhoSimpleProtonSelector(); // initialize Known Names std::vector pNames; std::vector critNames; pNames.push_back("Electron"); pNames.push_back("Muon"); pNames.push_back("Pion"); pNames.push_back("Kaon"); pNames.push_back("Proton"); critNames.push_back("VeryLoose"); critNames.push_back("Loose"); critNames.push_back("Tight"); critNames.push_back("VeryTight"); critNames.push_back("Best"); // critNames.push_back("All"); // fListNames.clear(); for (unsigned int i=0; iSetCriterion(veryLoose); break; case 1: pidSel->SetCriterion(loose); break; case 2: pidSel->SetCriterion(tight); break; case 3: pidSel->SetCriterion(veryTight); break; case 4: pidSel->SetCriterion(best); break; // case 5: pidSel->SetCriterion(all); break; // } if (select_chrg>0) { l.Select(pidSel); } else { l.Select(fBaseList,pidSel); } return true; }