1 #ifndef CompositeLogicalTrajectoryFilter_H 2 #define CompositeLogicalTrajectoryFilter_H 19 std::vector<edm::ParameterSet> vpset=pset.
getParameter<std::vector<edm::ParameterSet> >(
"filters");
20 for (
unsigned int i=0;
i!= vpset.size();
i++)
25 else if (ls ==
"AND") l=
AND;
27 edm::LogError(
"CompositeLogicalTrajectoryFilter")<<
"I don't understand the logic: "<<
ls 39 item.second->setEvent(iEvent, iSetup);
52 template <
class T>
bool TBC(
T& traj)
const{
55 for (;i<
n;i++){
if (!
filters[i].
second->toBeContinued(traj))
return false; }
59 template <
class T>
bool QF(
const T& traj)
const{
63 if (n==0) {
edm::LogError(
"CompositeLogicalTrajectoryFilter")<<n<<
" filters !." ;
return false;}
64 condition=
filters[0].second->qualityFilter(traj);
68 bool lcondition =
filters[
i].second->qualityFilter(traj);
70 condition= condition || lcondition;
72 condition= condition && lcondition;
78 std::vector< std::pair< logic, std::unique_ptr<TrajectoryFilter> > >
filters;
T getParameter(std::string const &) const
void setEvent(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
~CompositeLogicalTrajectoryFilter() override
CompositeLogicalTrajectoryFilter()
def create(alignables, pedeDump, additionalData, outputFile, config)
std::vector< std::pair< logic, std::unique_ptr< TrajectoryFilter > > > filters
std::string name() const override
CompositeLogicalTrajectoryFilter(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
U second(std::pair< T, U > const &p)
bool qualityFilter(const TempTrajectory &traj) const override
bool toBeContinued(TempTrajectory &traj) const override
bool qualityFilter(const Trajectory &traj) const override
bool toBeContinued(Trajectory &traj) const override
T get(const Candidate &c)
bool QF(const T &traj) const