CMS 3D CMS Logo

HcalTestHistoClass Class Reference

#include <SimDataFormats/CaloTest/interface/HcalTestHistoClass.h>

List of all members.

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< Hithits
std::vector< Layerlayers
int nGroupQIE
int nHits
int nLayers
int nQIE
int nTowerQIE
std::vector< QIEqie

Static Private Attributes

static const int nLayersMAX = 20

Classes

struct  Hit
struct  Layer
struct  QIE


Detailed Description

Definition at line 16 of file HcalTestHistoClass.h.


Constructor & Destructor Documentation

HcalTestHistoClass::HcalTestHistoClass ( int  i  )  [inline]

Definition at line 20 of file HcalTestHistoClass.h.

00020 {}

HcalTestHistoClass::HcalTestHistoClass (  )  [inline, explicit]

Definition at line 21 of file HcalTestHistoClass.h.

00021 {}

virtual HcalTestHistoClass::~HcalTestHistoClass (  )  [inline, virtual]

Definition at line 22 of file HcalTestHistoClass.h.

00022 {}


Member Function Documentation

void HcalTestHistoClass::fillHits ( std::vector< CaloHit hitcache  ) 

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 (  ) 

Definition at line 12 of file HcalTestHistoClass.cc.

References nGroupQIE, nHits, nLayers, nQIE, and nTowerQIE.

Referenced by HcalTestAnalysis::update().

00012                                     {
00013   nLayers   = 0;
00014   nHits     = 0;
00015   nQIE      = 0;
00016   nTowerQIE = 0;
00017   nGroupQIE = 0;
00018 }


Member Data Documentation

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]

Definition at line 67 of file HcalTestHistoClass.h.

Referenced by fillHits().

std::vector<Layer> HcalTestHistoClass::layers [private]

Definition at line 63 of file HcalTestHistoClass.h.

int HcalTestHistoClass::nGroupQIE [private]

Definition at line 69 of file HcalTestHistoClass.h.

Referenced by fillQie(), and setCounters().

int HcalTestHistoClass::nHits [private]

Definition at line 66 of file HcalTestHistoClass.h.

Referenced by fillHits(), and setCounters().

int HcalTestHistoClass::nLayers [private]

Definition at line 62 of file HcalTestHistoClass.h.

Referenced by setCounters().

const int HcalTestHistoClass::nLayersMAX = 20 [static, private]

Definition at line 61 of file HcalTestHistoClass.h.

int HcalTestHistoClass::nQIE [private]

Definition at line 69 of file HcalTestHistoClass.h.

Referenced by fillQie(), and setCounters().

int HcalTestHistoClass::nTowerQIE [private]

Definition at line 69 of file HcalTestHistoClass.h.

Referenced by fillQie(), and setCounters().

std::vector<QIE> HcalTestHistoClass::qie [private]

Definition at line 70 of file HcalTestHistoClass.h.

Referenced by fillQie().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:23:59 2009 for CMSSW by  doxygen 1.5.4