![]() |
![]() |
#include <SimDataFormats/CaloTest/interface/HcalTestHistoClass.h>
Public Member Functions | |
void | fillHits (std::vector< CaloHit >) |
void | fillLayers (double el[], double ho, double hbhe, double muxy[]) |
void | fillQie (int id, double esimtot, double eqietot, int nGroup, std::vector< double > longs, std::vector< double > longq, int nTower, std::vector< double > latphi, std::vector< double > latfs, std::vector< double > latfq) |
HcalTestHistoClass () | |
HcalTestHistoClass (int i) | |
void | setCounters () |
virtual | ~HcalTestHistoClass () |
Private Attributes | |
float | eHBHE |
float | eHO |
std::vector< Hit > | hits |
std::vector< Layer > | layers |
int | nGroupQIE |
int | nHits |
int | nLayers |
int | nQIE |
int | nTowerQIE |
std::vector< QIE > | qie |
Static Private Attributes | |
static const int | nLayersMAX = 20 |
Classes | |
struct | Hit |
struct | Layer |
struct | QIE |
Definition at line 16 of file HcalTestHistoClass.h.
HcalTestHistoClass::HcalTestHistoClass | ( | int | i | ) | [inline] |
HcalTestHistoClass::HcalTestHistoClass | ( | ) | [inline, explicit] |
virtual HcalTestHistoClass::~HcalTestHistoClass | ( | ) | [inline, virtual] |
Definition at line 40 of file HcalTestHistoClass.cc.
References eta, group, hits, i, LogDebug, nHits, phi, python::multivaluedict::sort(), t, and HcalTestNumbering::unpackHcalIndex().
Referenced by HcalTestAnalysis::qieAnalysis().
00040 { 00041 00042 int nHit = hitcache.size(); 00043 int hit = 0; 00044 int i; 00045 std::vector<CaloHit>::iterator itr; 00046 std::vector<CaloHit*> lhits(nHit); 00047 for (i = 0, itr = hitcache.begin(); itr != hitcache.end(); i++, itr++) { 00048 uint32_t unitID=itr->id(); 00049 int subdet, zside, group, ieta, iphi, lay; 00050 HcalTestNumbering::unpackHcalIndex(unitID, subdet, zside, group, 00051 ieta, iphi, lay); 00052 subdet = itr->det(); 00053 lay = itr->layer(); 00054 group = (subdet&15)<<20; 00055 group += ((lay-1)&31)<<15; 00056 group += (zside&1)<<14; 00057 group += (ieta&127)<<7; 00058 group += (iphi&127); 00059 itr->setId(group); 00060 lhits[i] = &hitcache[i]; 00061 LogDebug("HcalSim") << "HcalTestHistoClass::fillHits:Original " << i 00062 << " " << hitcache[i]; 00063 LogDebug("HcalSim") << "HcalTestHistoClass::fillHits:Copied " << i 00064 << " " << *lhits[i]; 00065 } 00066 sort(lhits.begin(),lhits.end(),CaloHitIdMore()); 00067 std::vector<CaloHit*>::iterator k1, k2; 00068 for (i = 0, k1 = lhits.begin(); k1 != lhits.end(); i++, k1++) 00069 LogDebug("HcalSim") << "HcalTestHistoClass::fillHits:Sorted " << i << " " 00070 << **k1; 00071 00072 hits.resize(lhits.size()); 00073 for (i = 0, k1 = lhits.begin(); k1 != lhits.end(); i++, k1++) { 00074 double ehit = (**k1).e(); 00075 double jitter= (**k1).t(); 00076 unsigned int unitID= (**k1).id(); 00077 int jump = 0; 00078 LogDebug("HcalSim") << "HcalTestHistoClass::fillHits:Start " << i 00079 << " U/T/E 0x" << std::hex << unitID << std::dec << " " 00080 << jitter << " " << ehit; 00081 for (k2 = k1+1; k2 != lhits.end() && (jitter-(**k2).t())<1. && 00082 (jitter-(**k2).t())>-1. && unitID==(**k2).id(); k2++) { 00083 ehit += (**k2).e(); 00084 LogDebug("HcalSim") << " + " << (**k2).e(); 00085 jump++; 00086 } 00087 LogDebug("HcalSim") << " = " << ehit << " in " << jump; 00088 00089 float eta = itr->eta(); 00090 float phi = itr->phi(); 00091 float t = itr->t(); 00092 int lay = (unitID>>15)&31 + 1; 00093 00094 hits[nHits].layer = lay; 00095 hits[nHits].id = unitID; 00096 hits[nHits].eta = eta; 00097 hits[nHits].phi = phi; 00098 hits[nHits].e = ehit; 00099 hits[nHits].t = t; 00100 hits[nHits].jitter = jitter; 00101 nHits++; 00102 hit++; 00103 00104 int subdet = (unitID>>20)&15; 00105 int zside = (unitID>>14)&1; 00106 int ieta = (unitID>>7)&127; 00107 int iphi = (unitID)&127; 00108 LogDebug("HcalSim") << "HcalTestHistoClass::fillHits:Hit " << hit << " " 00109 << i << " ID 0x" << std::hex << unitID << std::dec 00110 << " " << subdet << " " << lay << " " << zside << " " 00111 << ieta << " " << iphi << " Time " << jitter << " E " 00112 << ehit; 00113 00114 i += jump; 00115 k1 += jump; 00116 } 00117 00118 LogDebug("HcalSim") << "HcalTestHistoClass::fillHits called with " << nHit 00119 << " hits" << " and writes out " << nHits << '(' << hit 00120 << ") hits"; 00121 00122 }
void HcalTestHistoClass::fillLayers | ( | double | el[], | |
double | ho, | |||
double | hbhe, | |||
double | muxy[] | |||
) |
Referenced by HcalTestAnalysis::layerAnalysis().
void HcalTestHistoClass::fillQie | ( | int | id, | |
double | esimtot, | |||
double | eqietot, | |||
int | nGroup, | |||
std::vector< double > | longs, | |||
std::vector< double > | longq, | |||
int | nTower, | |||
std::vector< double > | latphi, | |||
std::vector< double > | latfs, | |||
std::vector< double > | latfq | |||
) |
Definition at line 124 of file HcalTestHistoClass.cc.
References i, int, LogDebug, nGroupQIE, nQIE, nTowerQIE, and qie.
Referenced by HcalTestAnalysis::qieAnalysis().
00129 { 00130 00131 nGroupQIE = 0; 00132 nTowerQIE = 0; 00133 00134 if (id>=0 && id<4) { 00135 unsigned int qiesiz = (unsigned int)(id+1); 00136 if (qie.size()<qiesiz) { 00137 qie.resize(qiesiz); 00138 } 00139 00140 qie[id].sim=esimtot; 00141 qie[id].qie=eqietot; 00142 qie[id].id = id; 00143 nQIE++; 00144 00145 LogDebug("HcalSim") << "HcalTestHistoClass::fillQie: id, esimtot, eqietot" 00146 << " = " << id << " " << esimtot << " " << eqietot; 00147 00148 for (int i=0; i<nGroup; i++) { 00149 LogDebug("HcalSim") << "HcalTestHistoClass::fillQie: id, nGroupQIE, " 00150 << "longs, longq = " << id << " " << nGroupQIE 00151 << " " << longs[i] << " " << longq[i]; 00152 qie[id].lngs.push_back(longs[i]); 00153 qie[id].lngq.push_back(longq[i]); 00154 nGroupQIE++; 00155 } 00156 00157 for (int i=0; i<nTower; i++) { 00158 int tow = (int)latphi[i]; 00159 LogDebug("HcalSim") << "HcalTestHistoClass::fillQie: id, nTowerQIE, " 00160 << "tower, latfs, latfq = " << id << " " << nTowerQIE 00161 << " " << tow << " " << latfs[i] << " " << latfq[i]; 00162 qie[id].lats.push_back(latfs[i]); 00163 qie[id].latq.push_back(latfq[i]); 00164 qie[id].tow.push_back(tow); 00165 nTowerQIE++; 00166 } 00167 } 00168 LogDebug("HcalSim") << "HcalTestHistoClass::fillQie: Called with ID " << id 00169 << " nQIE " << nQIE << " nGroup " << nGroupQIE 00170 << " nTower " << nTowerQIE; 00171 }
void HcalTestHistoClass::setCounters | ( | ) |
float HcalTestHistoClass::eHBHE [private] |
Definition at line 64 of file HcalTestHistoClass.h.
float HcalTestHistoClass::eHO [private] |
Definition at line 64 of file HcalTestHistoClass.h.
std::vector<Hit> HcalTestHistoClass::hits [private] |
std::vector<Layer> HcalTestHistoClass::layers [private] |
Definition at line 63 of file HcalTestHistoClass.h.
int HcalTestHistoClass::nGroupQIE [private] |
int HcalTestHistoClass::nHits [private] |
int HcalTestHistoClass::nLayers [private] |
const int HcalTestHistoClass::nLayersMAX = 20 [static, private] |
Definition at line 61 of file HcalTestHistoClass.h.
int HcalTestHistoClass::nQIE [private] |
int HcalTestHistoClass::nTowerQIE [private] |
std::vector<QIE> HcalTestHistoClass::qie [private] |