CalibrationScanAlgorithm

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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
#ifndef DQM_SiStripCommissioningAnalysis_CalibrationScanAlgorithm_H
#define DQM_SiStripCommissioningAnalysis_CalibrationScanAlgorithm_H

#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "DQM/SiStripCommissioningAnalysis/interface/CommissioningAlgorithm.h"
#include <vector>
#include <map>
#include "TGraph.h"

class CalibrationScanAnalysis;
class TH1;
class TF1;

/**
   @class CalibrationScanAlgorithm
   @author C. Delaere
   @brief Algorithm for calibration runs
*/

class CalibrationScanAlgorithm : public CommissioningAlgorithm {
public:
  CalibrationScanAlgorithm(const edm::ParameterSet &pset, CalibrationScanAnalysis *const);
  ~CalibrationScanAlgorithm() override { ; }

  inline const Histo &histo(std::string &key, int &i) { return histo_[key][i]; }

  void tuneIndependently(const int &, const float &, const float &);
  void tuneSimultaneously(const int &, const float &, const float &);
  void fillTunedObservables(const int &);

private:
  CalibrationScanAlgorithm() { ; }

  void extract(const std::vector<TH1 *> &) override;

  void analyse() override;

  void correctDistribution(TH1 *, const bool &) const;
  float baseLine(TF1 *);
  float turnOn(TF1 *, const float &);
  float decayTime(TF1 *);

  /** pulse shape*/
  std::map<std::string, std::vector<Histo> > histo_;

  /** analysis object */
  CalibrationScanAnalysis *cal_;

  /** values of the scanned isha and vfs **/
  std::vector<int> scanned_isha_;
  std::vector<int> scanned_vfs_;
};

#endif  // DQM_SiStripCommissioningAnalysis_CalibrationScanAlgorithm_H