MS_E2_ZS_CollectorOverLanes *
NLDetectorBuilder::buildMultiLaneE2Det(const std::string &id, DetectorUsage usage,
                                       MSLane *lane, SUMOReal pos, SUMOReal length,
                                       SUMOTime haltingTimeThreshold,
                                       SUMOReal haltingSpeedThreshold,
                                       SUMOReal jamDistThreshold) throw() {
    MS_E2_ZS_CollectorOverLanes *ret = createMultiLaneE2Detector(id, usage,
                                       lane, pos, haltingTimeThreshold, haltingSpeedThreshold,
                                       jamDistThreshold);
    ret->init(lane, length);
    return ret;
}
MSDetectorFileOutput*
NLDetectorBuilder::buildMultiLaneE2Det(const std::string& id, DetectorUsage usage,
                                       MSLane* lane, SUMOReal pos, SUMOReal length,
                                       SUMOTime haltingTimeThreshold,
                                       SUMOReal haltingSpeedThreshold,
                                       SUMOReal jamDistThreshold,
                                       const std::string& vTypes) {
    MSDetectorFileOutput* ret = createMultiLaneE2Detector(id, usage,
                                lane, pos, haltingTimeThreshold, haltingSpeedThreshold,
                                jamDistThreshold, vTypes);
    static_cast<MS_E2_ZS_CollectorOverLanes*>(ret)->init(lane, length);
    return ret;
}