Phase2ITChip

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
#ifndef DataFormats_Phase2TrackerDigi_Phase2ITChip_H
#define DataFormats_Phase2TrackerDigi_Phase2ITChip_H
#include <vector>
#include <utility>
#include <string>
#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h"
#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITDigiHit.h"

class Phase2ITChip {
  // Quarter cores collected into a chip (only active quarter cores with hits gets collected)

public:
  Phase2ITChip(int rocnum, const std::vector<Phase2ITDigiHit> hl);

  unsigned int size();
  int rocnum() const { return rocnum_; }

  std::vector<Phase2ITQCore> get_organized_QCores();
  std::vector<bool> get_chip_code();

private:
  std::vector<Phase2ITDigiHit> hitList_;
  int rocnum_;

  std::pair<int, int> get_QCore_pos(Phase2ITDigiHit hit);

  Phase2ITQCore get_QCore_from_hit(Phase2ITDigiHit pixel);
  std::vector<Phase2ITQCore> rem_duplicates(std::vector<Phase2ITQCore> qcores);
  std::vector<Phase2ITQCore> organize_QCores(std::vector<Phase2ITQCore> qcores);
};

#endif  // DataFormats_Phase2TrackerDigi_Phase2ITChip_H