CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SiPixelChargeReweightingAlgorithm.h
Go to the documentation of this file.
1 #ifndef SimTracker_SiPixelDigitizer_SiPixelChargeReweightingAlgorithm_h
2 #define SimTracker_SiPixelDigitizer_SiPixelChargeReweightingAlgorithm_h
3 
8 
9 // forward declarations
10 class DetId;
12 class PixelDigi;
13 class PixelDigiSimLink;
14 class PixelGeomDetUnit;
16 
18 public:
21 
22  // initialization that cannot be done in the constructor
23  void init(const edm::EventSetup& es);
24 
25  typedef std::map<int, SiPixelDigitizerAlgorithm::Amplitude, std::less<int> > signal_map_type; // from Digi.Skel.
26  typedef signal_map_type::iterator signal_map_iterator; // from Digi.Skel.
27  typedef signal_map_type::const_iterator signal_map_const_iterator; // from Digi.Skel.
28 
29  bool hitSignalReweight(const PSimHit& hit,
30  std::map<int, float, std::less<int> >& hit_signal,
31  const size_t hitIndex,
32  const unsigned int tofBin,
33  const PixelTopology* topol,
34  uint32_t detID,
35  signal_map_type& theSignal,
36  unsigned short int processType,
37  const bool& boolmakeDigiSimLinks);
38 
39 private:
40  // Internal typedef
41  typedef std::map<uint32_t, signal_map_type> signalMaps;
43  typedef std::vector<edm::ParameterSet> Parameters;
44  typedef boost::multi_array<float, 2> array_2d;
45 
46  // Variables and objects for the charge reweighting using 2D templates
48  std::vector<bool> xdouble;
49  std::vector<bool> ydouble;
50  std::vector<float> track;
51  int IDnum, IDden;
52 
53  const bool UseReweighting;
54  const bool PrintClusters;
55  const bool PrintTemplates;
56 
57  std::vector<SiPixelTemplateStore2D> templateStores_;
58 
63 
64  // methods for charge reweighting in irradiated sensors
65  int PixelTempRewgt2D(int id_gen, int id_rewgt, array_2d& cluster);
66  void printCluster(array_2d& cluster);
67  void printCluster(float arr[BXM2][BYM2]);
68  void printCluster(float arr[TXSIZE][TYSIZE]);
69 };
70 
71 #endif
edm::ESGetToken< SiPixel2DTemplateDBObject, SiPixel2DTemplateDBObjectRcd > SiPixel2DTemp_num_token_
#define TXSIZE
std::map< int, SiPixelDigitizerAlgorithm::Amplitude, std::less< int > > signal_map_type
bool hitSignalReweight(const PSimHit &hit, std::map< int, float, std::less< int > > &hit_signal, const size_t hitIndex, const unsigned int tofBin, const PixelTopology *topol, uint32_t detID, signal_map_type &theSignal, unsigned short int processType, const bool &boolmakeDigiSimLinks)
const SiPixel2DTemplateDBObject * dbobject_den
std::map< uint32_t, signal_map_type > signalMaps
#define BXM2
#define BYM2
signal_map_type::const_iterator signal_map_const_iterator
const SiPixel2DTemplateDBObject * dbobject_num
Definition: DetId.h:17
int PixelTempRewgt2D(int id_gen, int id_rewgt, array_2d &cluster)
#define TYSIZE
SiPixelChargeReweightingAlgorithm(const edm::ParameterSet &conf, edm::ConsumesCollector iC)
edm::ESGetToken< SiPixel2DTemplateDBObject, SiPixel2DTemplateDBObjectRcd > SiPixel2DTemp_den_token_
std::vector< SiPixelTemplateStore2D > templateStores_