CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EcalFenixTcp.h
Go to the documentation of this file.
1 #ifndef ECAL_FENIX_TCP_H
2 #define ECAL_FENIX_TCP_H
3 
10 
11 
15 
17 
18 #include <vector>
19 #include <iostream>
20 
22 class EcalTPGLutGroup;
23 class EcalTPGLutIdMap;
26 class EcalTrigTowerDetId;
27 class EcalTPGTowerStatus;
28 
33 class EcalFenixTcp {
34 
35  private:
36  bool debug_;
37 
39 
41  std::vector<EcalFenixBypassLin *> bypasslin_;
45 
47 
48  // permanent data structures
49  std::vector<std::vector<int> > bypasslin_out_;
50  std::vector<int> adder_out_;
51  std::vector<int> maxOf2_out_;
52  std::vector<int> fgvb_out_;
53 
54  public:
55  // temporary, for timing tests
56  void setPointers( const EcalTPGFineGrainEBGroup * ecaltpgFgEBGroup,
57  const EcalTPGLutGroup * ecaltpgLutGroup,
58  const EcalTPGLutIdMap * ecaltpgLut,
59  const EcalTPGFineGrainEBIdMap * ecaltpgFineGrainEB,
60  const EcalTPGFineGrainTowerEE * ecaltpgFineGrainTowerEE,
61  const EcalTPGTowerStatus * ecaltpgBadTT)
62  {
63  ecaltpgFgEBGroup_=ecaltpgFgEBGroup;
64  ecaltpgLutGroup_=ecaltpgLutGroup;
65  ecaltpgLut_=ecaltpgLut;
66  ecaltpgFineGrainEB_=ecaltpgFineGrainEB;
67  ecaltpgFineGrainTowerEE_=ecaltpgFineGrainTowerEE;
68  ecaltpgBadTT_=ecaltpgBadTT;
69  }
70  // end temporary, for timing tests
71 
72  EcalFenixTcp(const edm::EventSetup & setup, bool tcpFormat, bool debug, bool famos, int binOfMax, int maxNrSamples,int nbMaxStrips);
73  virtual ~EcalFenixTcp() ;
74 
75  void process(const edm::EventSetup & setup,
76  std::vector <EBDataFrame> &bid, //dummy argument for template call
77  std::vector<std::vector<int> > & tpframetow, int nStr,
78  std::vector< EcalTriggerPrimitiveSample> & tptow,
79  std::vector< EcalTriggerPrimitiveSample> & tptow2,
80  bool isInInnerRings, EcalTrigTowerDetId thisTower);
81  void process(const edm::EventSetup & setup,
82  std::vector <EEDataFrame> &bid, //dummy argument for template call
83  std::vector<std::vector<int> > & tpframetow, int nStr,
84  std::vector< EcalTriggerPrimitiveSample> & tptow,
85  std::vector< EcalTriggerPrimitiveSample> & tptow2,
86  bool isInInnerRings, EcalTrigTowerDetId thisTower);
87 
88  void process_part1(std::vector<std::vector<int> > &tpframetow, int nStr,int bitMask);
89 
90  void process_part2_barrel(std::vector<std::vector<int> > &, int nStr,
91  const EcalTPGFineGrainEBGroup *ecaltpgFgEBGroup,
92  const EcalTPGLutGroup*ecaltpgLutGroup,
93  const EcalTPGLutIdMap *ecaltpgLut,
94  const EcalTPGFineGrainEBIdMap *ecaltpgFineGrainEB,
95  const EcalTPGTowerStatus *ecaltpgBadTT,
96  std::vector< EcalTriggerPrimitiveSample> &tptow,
97  std::vector< EcalTriggerPrimitiveSample> &tptow2,
98  EcalTrigTowerDetId towid);
99 
100  void process_part2_endcap(std::vector<std::vector<int> > &, int nStr,int bitMask,
101  const EcalTPGLutGroup *ecaltpgLutGroup,
102  const EcalTPGLutIdMap *ecaltpgLut,
103  const EcalTPGFineGrainTowerEE *ecaltpgFineGrainTowerEE,
104  const EcalTPGTowerStatus *ecaltpgBadTT,
105  std::vector< EcalTriggerPrimitiveSample> &tptow,
106  std::vector< EcalTriggerPrimitiveSample> &tptow2,bool isInInnerRings,
107  EcalTrigTowerDetId towid);
108 
109 
111  EcalFenixEtTot *getAdder() const { return adder_;}
112  EcalFenixMaxof2 *getMaxOf2() const {return maxOf2_;}
114  EcalFenixFgvbEB *getFGVBEB() const {return fgvbEB_;}
116 
123 };
124 
125 
126 #endif
int i
Definition: DBlmapReader.cc:9
void setPointers(const EcalTPGFineGrainEBGroup *ecaltpgFgEBGroup, const EcalTPGLutGroup *ecaltpgLutGroup, const EcalTPGLutIdMap *ecaltpgLut, const EcalTPGFineGrainEBIdMap *ecaltpgFineGrainEB, const EcalTPGFineGrainTowerEE *ecaltpgFineGrainTowerEE, const EcalTPGTowerStatus *ecaltpgBadTT)
Definition: EcalFenixTcp.h:56
const EcalTPGFineGrainEBIdMap * ecaltpgFineGrainEB_
Definition: EcalFenixTcp.h:120
void process_part2_barrel(std::vector< std::vector< int > > &, int nStr, const EcalTPGFineGrainEBGroup *ecaltpgFgEBGroup, const EcalTPGLutGroup *ecaltpgLutGroup, const EcalTPGLutIdMap *ecaltpgLut, const EcalTPGFineGrainEBIdMap *ecaltpgFineGrainEB, const EcalTPGTowerStatus *ecaltpgBadTT, std::vector< EcalTriggerPrimitiveSample > &tptow, std::vector< EcalTriggerPrimitiveSample > &tptow2, EcalTrigTowerDetId towid)
class for calculation of Et for Fenix tcp calculates the sum
EcalFenixMaxof2 * maxOf2_
Definition: EcalFenixTcp.h:40
EcalFenixTcpFormat * formatter_
Definition: EcalFenixTcp.h:46
calculation of Fgvb for Fenix Tcp, format barrel calculates fgvb for the barrel
EcalFenixFgvbEB * getFGVBEB() const
Definition: EcalFenixTcp.h:114
EcalFenixMaxof2 * getMaxOf2() const
Definition: EcalFenixTcp.h:112
virtual ~EcalFenixTcp()
Definition: EcalFenixTcp.cc:34
EcalFenixTcpFgvbEE * getFGVBEE() const
Definition: EcalFenixTcp.h:115
EcalFenixBypassLin * getBypasslin(int i) const
Definition: EcalFenixTcp.h:110
std::vector< int > fgvb_out_
Definition: EcalFenixTcp.h:52
const EcalTPGTowerStatus * ecaltpgBadTT_
Definition: EcalFenixTcp.h:122
EcalFenixTcpFgvbEE * fgvbEE_
Definition: EcalFenixTcp.h:44
std::vector< EcalFenixBypassLin * > bypasslin_
Definition: EcalFenixTcp.h:41
const EcalTPGFineGrainEBGroup * ecaltpgFgEBGroup_
Definition: EcalFenixTcp.h:117
const EcalTPGLutIdMap * ecaltpgLut_
Definition: EcalFenixTcp.h:119
void process_part1(std::vector< std::vector< int > > &tpframetow, int nStr, int bitMask)
Definition: EcalFenixTcp.cc:73
const EcalTPGFineGrainTowerEE * ecaltpgFineGrainTowerEE_
Definition: EcalFenixTcp.h:121
EcalFenixEtTot * getAdder() const
Definition: EcalFenixTcp.h:111
void process_part2_endcap(std::vector< std::vector< int > > &, int nStr, int bitMask, const EcalTPGLutGroup *ecaltpgLutGroup, const EcalTPGLutIdMap *ecaltpgLut, const EcalTPGFineGrainTowerEE *ecaltpgFineGrainTowerEE, const EcalTPGTowerStatus *ecaltpgBadTT, std::vector< EcalTriggerPrimitiveSample > &tptow, std::vector< EcalTriggerPrimitiveSample > &tptow2, bool isInInnerRings, EcalTrigTowerDetId towid)
EcalFenixFgvbEB * fgvbEB_
Definition: EcalFenixTcp.h:43
calculation of Fgvb for Fenix Tcp, format endcap calculates fgvb for the endcap
std::vector< int > maxOf2_out_
Definition: EcalFenixTcp.h:51
EcalFenixTcpFormat * getFormatter() const
Definition: EcalFenixTcp.h:113
class representing the Fenix chip, format strip
Definition: EcalFenixTcp.h:33
#define debug
Definition: MEtoEDMFormat.h:34
const EcalTPGLutGroup * ecaltpgLutGroup_
Definition: EcalFenixTcp.h:118
void process(const edm::EventSetup &setup, std::vector< EBDataFrame > &bid, std::vector< std::vector< int > > &tpframetow, int nStr, std::vector< EcalTriggerPrimitiveSample > &tptow, std::vector< EcalTriggerPrimitiveSample > &tptow2, bool isInInnerRings, EcalTrigTowerDetId thisTower)
Definition: EcalFenixTcp.cc:44
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
std::vector< std::vector< int > > bypasslin_out_
Definition: EcalFenixTcp.h:49
EcalFenixEtTot * adder_
Definition: EcalFenixTcp.h:42
std::vector< int > adder_out_
Definition: EcalFenixTcp.h:50
EcalFenixTcp(const edm::EventSetup &setup, bool tcpFormat, bool debug, bool famos, int binOfMax, int maxNrSamples, int nbMaxStrips)
Definition: EcalFenixTcp.cc:14
Linearisation for Tcp input: 16 bits output: 12 bits +1 going to fgvb (???)