LASProfileJudge

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

#ifndef __LASPROFILEJUDGE_H
#define __LASPROFILEJUDGE_H

#include <iostream>
#include <utility>

#include "Alignment/LaserAlignment/interface/LASModuleProfile.h"

///
/// check if a LASModuleProfile is usable
/// for being stored and fitted
///
class LASProfileJudge {
public:
  LASProfileJudge();
  bool IsSignalIn(const LASModuleProfile&, double);
  bool JudgeProfile(const LASModuleProfile&, double);
  void EnableZeroFilter(bool);
  void SetOverdriveThreshold(unsigned int);

private:
  double GetNegativity(int);
  bool IsPeaksInProfile(int);
  bool IsNegativePeaksInProfile(int);
  bool IsOverdrive(int);

  LASModuleProfile profile;
  std::pair<unsigned int, double> thePeak;
  bool isZeroFilter;
  unsigned int overdriveThreshold;
};

#endif