DTT0

DTT0Data

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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
#ifndef DTT0_H
#define DTT0_H
/** \class DTT0
 *
 *  Description:
 *       Class to hold drift tubes T0s
 *             ( cell by cell time offsets )
 *
 *  \author Paolo Ronchese INFN Padova
 *
 */

//----------------------
// Base Class Headers --
//----------------------

//------------------------------------
// Collaborating Class Declarations --
//------------------------------------
#include "CondFormats/Serialization/interface/Serializable.h"

#include "CondFormats/DTObjects/interface/DTTimeUnits.h"
#include "DataFormats/MuonDetId/interface/DTWireId.h"

//---------------
// C++ Headers --
//---------------
#include <string>
#include <vector>
#include <map>

//              ---------------------
//              -- Class Interface --
//              ---------------------

class DTT0Data {
public:
  DTT0Data();
  ~DTT0Data();

  uint32_t channelId;
  float t0mean;
  float t0rms;

  COND_SERIALIZABLE;
};

class DTT0 {
public:
  /** Constructor
   */
  DTT0();
  DTT0(const std::string& version);

  /** Destructor
   */
  ~DTT0();

  /** Operations
   */
  /// get content
  int cellT0(int wheelId,
             int stationId,
             int sectorId,
             int slId,
             int layerId,
             int cellId,
             float& t0mean,
             float& t0rms,
             DTTimeUnits::type unit) const {
    return get(wheelId, stationId, sectorId, slId, layerId, cellId, t0mean, t0rms, unit);
  };
  int cellT0(const DTWireId& id, float& t0mean, float& t0rms, DTTimeUnits::type unit) const {
    return get(id, t0mean, t0rms, unit);
  };
  int get(int wheelId,
          int stationId,
          int sectorId,
          int slId,
          int layerId,
          int cellId,
          float& t0mean,
          float& t0rms,
          DTTimeUnits::type unit) const;
  int get(const DTWireId& id, float& t0mean, float& t0rms, DTTimeUnits::type unit) const;
  float unit() const;

  /// access version
  const std::string& version() const;
  std::string& version();

  /// reset content
  void clear();

  int setCellT0(int wheelId,
                int stationId,
                int sectorId,
                int slId,
                int layerId,
                int cellId,
                float t0mean,
                float t0rms,
                DTTimeUnits::type unit) {
    return set(wheelId, stationId, sectorId, slId, layerId, cellId, t0mean, t0rms, unit);
  };
  int setCellT0(const DTWireId& id, float t0mean, float t0rms, DTTimeUnits::type unit) {
    return set(id, t0mean, t0rms, unit);
  };
  int set(int wheelId,
          int stationId,
          int sectorId,
          int slId,
          int layerId,
          int cellId,
          float t0mean,
          float t0rms,
          DTTimeUnits::type unit);
  int set(const DTWireId& id, float t0mean, float t0rms, DTTimeUnits::type unit);
  void setUnit(float unit);

  /// Access methods to data
  typedef std::vector<DTT0Data>::const_iterator const_iterator;
  const_iterator begin() const;
  const_iterator end() const;

private:
  std::string dataVersion;
  float nsPerCount;

  std::vector<DTT0Data> dataList;

  COND_SERIALIZABLE;
};

#endif  // DTT0_H