113 for (
unsigned int i=0;
i<tp.product()->size();
i++) {
147 theEndcapGeometry = &(*theEndcapGeometry_handle);
148 theBarrelGeometry = &(*theBarrelGeometry_handle);
152 map<EcalTrigTowerDetId, float> mapTow_Et;
155 for (
unsigned int i=0;
i<rechit_EB_col.product()->size();
i++) {
156 const EBDetId & myid1=(*rechit_EB_col.product())[
i].
id();
158 float theta = theBarrelGeometry->getGeometry(myid1)->getPosition().theta();
159 float Etsum=((*rechit_EB_col.product())[
i].
energy())*
sin(theta);
160 bool test_alreadyin=
false;
161 map<EcalTrigTowerDetId, float>::iterator ittest= mapTow_Et.find(towid1);
162 if (ittest!= mapTow_Et.end()) test_alreadyin=
true;
163 if (test_alreadyin)
continue;
166 unsigned int count=0;
167 while( j<rechit_EB_col.product()->size() && !loopend){
169 const EBDetId & myid2=(*rechit_EB_col.product())[j].
id();
171 if( towid1==towid2 ) {
172 float theta=theBarrelGeometry->getGeometry(myid2)->getPosition().theta();
173 Etsum += (*rechit_EB_col.product())[j].
energy()*
sin(theta);
176 if (count>1800) loopend=
true;
178 mapTow_Et.insert(pair<EcalTrigTowerDetId,float>(towid1, Etsum));
182 for (
unsigned int i=0;
i<rechit_EE_col.product()->size();
i++) {
183 const EEDetId & myid1=(*rechit_EE_col.product())[
i].
id();
185 float theta=theEndcapGeometry->getGeometry(myid1)->getPosition().theta();
186 float Etsum=(*rechit_EE_col.product())[
i].
energy()*
sin(theta);
187 bool test_alreadyin=
false;
188 map<EcalTrigTowerDetId, float>::iterator ittest= mapTow_Et.find(towid1);
189 if (ittest!= mapTow_Et.end()) test_alreadyin=
true;
190 if (test_alreadyin)
continue;
193 unsigned int count=0;
194 while( j<rechit_EE_col.product()->size() && !loopend){
195 const EEDetId & myid2=(*rechit_EE_col.product())[j].
id();
197 if( towid1==towid2 ) {
198 float theta=theEndcapGeometry->getGeometry(myid2)->getPosition().theta();
199 Etsum += (*rechit_EE_col.product())[j].
energy()*
sin(theta);
203 if (count>500) loopend=
true;
206 mapTow_Et.insert(pair<EcalTrigTowerDetId,float>(towid1, Etsum));
212 for (
unsigned int i=0;
i<tp.product()->size();
i++) {
215 map<EcalTrigTowerDetId, float>::iterator it= mapTow_Et.find(TPtowid);
216 float Et = ecalScale.getTPGInGeV(d.
compressedEt(), TPtowid) ;
224 if (it!= mapTow_Et.end()) {
void setEventSetup(const edm::EventSetup &evtSetup)
Sin< T >::type sin(const T &t)
Geom::Theta< T > theta() const
int ieta() const
get the tower ieta
int compressedEt() const
get the encoded/compressed Et of interesting sample
int ietaAbs() const
get the absolute value of the tower ieta
EcalTrigTowerDetId tower() const
get the HCAL/trigger iphi of this crystal
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
int iphi() const
get the tower iphi
const EcalTrigTowerDetId & id() const
edm::InputTag rechits_labelEE_
edm::InputTag rechits_labelEB_
EcalSubdetector subDet() const
get the subDetector associated to the Trigger Tower
bool fineGrain() const
get the fine-grain bit of interesting sample
int ttFlag() const
get the Trigger tower Flag of interesting sample