PixelBarrelNameUpgrade

Shell

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
#ifndef SiPixelDetId_PixelBarrelNameUpgrade_H
#define SiPixelDetId_PixelBarrelNameUpgrade_H

/** \class PixelBarrelNameUpgrade
 * Module name (as in PixelDatabase) in barrel
 */

#include "DataFormats/SiPixelDetId/interface/PixelModuleName.h"
#include <string>
#include "DataFormats/SiPixelDetId/interface/PXBDetId.h"

class DetId;

class PixelBarrelNameUpgrade : public PixelModuleName {
public:
  enum Shell { mO = 1, mI = 2, pO = 3, pI = 4 };

  /// ctor from DetId
  PixelBarrelNameUpgrade(const DetId&);

  /// ctor for defined name with dummy parameters
  PixelBarrelNameUpgrade(Shell shell = mO, int layer = 0, int module = 0, int ladder = 0)
      : PixelModuleName(true), thePart(shell), theLayer(layer), theModule(module), theLadder(ladder) {}

  /// ctor from name string
  PixelBarrelNameUpgrade(std::string name);

  ~PixelBarrelNameUpgrade() override {}

  /// from base class
  std::string name() const override;

  Shell shell() const { return thePart; }

  /// layer id
  int layerName() const { return theLayer; }

  /// module id (index in z)
  int moduleName() const { return theModule; }

  /// ladder id (index in phi)
  int ladderName() const { return theLadder; }

  /// sector id
  int sectorName() const;

  /// full or half module
  bool isHalfModule() const;

  /// module Type
  PixelModuleName::ModuleType moduleType() const override;

  /// return the DetId
  PXBDetId getDetId();

  /// check equality of modules from datamemebers
  bool operator==(const PixelModuleName&) const override;
  bool operator==(const PixelBarrelNameUpgrade& other) const {
    return (thePart == other.thePart && theLayer == other.theLayer && theModule == other.theModule &&
            theLadder == other.theLadder);
  }

private:
  Shell thePart;
  int theLayer, theModule, theLadder;
};

std::ostream& operator<<(std::ostream& out, const PixelBarrelNameUpgrade::Shell& t);
#endif