DTTPGParameters

DTTPGParametersData

DTTPGParametersId

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
#ifndef DTTPGParameters_H
#define DTTPGParameters_H
/** \class DTTPGParameters
 *
 *  Description:
 *       Class to hold drift tubes TPG parameters
 *
 *  \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/DTChamberId.h"
#include "FWCore/Utilities/interface/ConstRespectingPtr.h"

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

template <class Key, class Content>
class DTBufferTree;

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

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

  int wheelId;
  int stationId;
  int sectorId;

  COND_SERIALIZABLE;
};

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

  int nClock;
  float tPhase;

  COND_SERIALIZABLE;
};

class DTTPGParameters {
public:
  /** Constructor
   */
  DTTPGParameters();
  DTTPGParameters(DTTPGParameters const&) = delete;
  DTTPGParameters(const std::string& version);

  /** Destructor
   */
  ~DTTPGParameters();

  /** Operations
   */
  /// get content
  int get(int wheelId, int stationId, int sectorId, int& nc, float& ph, DTTimeUnits::type unit) const;
  int get(const DTChamberId& id, int& nc, float& ph, DTTimeUnits::type unit) const;
  float totalTime(int wheelId, int stationId, int sectorId, DTTimeUnits::type unit) const;
  float totalTime(const DTChamberId& id, DTTimeUnits::type unit) const;
  int clock() const;
  float unit() const;

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

  /// reset content
  void clear();

  int set(int wheelId, int stationId, int sectorId, int nc, float ph, DTTimeUnits::type unit);
  int set(const DTChamberId& id, int nc, float ph, DTTimeUnits::type unit);
  void setClock(int clock);
  void setUnit(float unit);

  /// Access methods to data
  typedef std::vector<std::pair<DTTPGParametersId, DTTPGParametersData> >::const_iterator const_iterator;
  const_iterator begin() const;
  const_iterator end() const;

  void initialize();

  DTTPGParameters& operator=(DTTPGParameters const&);

private:
  std::string dataVersion;
  float nsPerCount;
  int clockLength;

  std::vector<std::pair<DTTPGParametersId, DTTPGParametersData> > dataList;

  edm::ConstRespectingPtr<DTBufferTree<int, int> > dBuf COND_TRANSIENT;

  std::string mapName() const;

  COND_SERIALIZABLE;
};
#endif  // DTTPGParameters_H