CMS 3D CMS Logo

HcalCondObjectContainer< Item > Class Template Reference

#include <CondFormats/HcalObjects/interface/HcalCondObjectContainer.h>

List of all members.

Public Member Functions

bool addValues (const Item &myItem)
const bool exists (DetId fId) const
std::vector< DetIdgetAllChannels () const
const ItemgetValues (DetId fId) const
 HcalCondObjectContainer ()
 ~HcalCondObjectContainer ()

Private Member Functions

void initContainer (int container)

Private Attributes

std::vector< ItemCALIBcontainer
std::vector< ItemCASTORcontainer
std::vector< ItemHBcontainer
std::vector< ItemHEcontainer
std::vector< ItemHFcontainer
std::vector< ItemHOcontainer
std::vector< ItemHTcontainer
std::vector< ItemZDCcontainer


Detailed Description

template<class Item>
class HcalCondObjectContainer< Item >

Definition at line 12 of file HcalCondObjectContainer.h.


Constructor & Destructor Documentation

template<class Item>
HcalCondObjectContainer< Item >::HcalCondObjectContainer (  )  [inline]

Definition at line 49 of file HcalCondObjectContainer.h.

00050 {
00051 }

template<class Item>
HcalCondObjectContainer< Item >::~HcalCondObjectContainer (  )  [inline]

Definition at line 54 of file HcalCondObjectContainer.h.

00055 {
00056 }


Member Function Documentation

template<class Item>
bool HcalCondObjectContainer< Item >::addValues ( const Item myItem  )  [inline]

Definition at line 178 of file HcalCondObjectContainer.h.

References HcalCondObjectContainer< Item >::CALIBcontainer, HcalCondObjectContainer< Item >::CASTORcontainer, HcalGenericDetId::genericSubdet(), HcalGenericDetId::hashedId(), HcalCondObjectContainer< Item >::HBcontainer, HcalGenericDetId::HcalGenBarrel, HcalGenericDetId::HcalGenCalibration, HcalGenericDetId::HcalGenCastor, HcalGenericDetId::HcalGenEndcap, HcalGenericDetId::HcalGenForward, HcalGenericDetId::HcalGenOuter, HcalGenericDetId::HcalGenTriggerTower, HcalGenericDetId::HcalGenZDC, HcalCondObjectContainer< Item >::HEcontainer, HcalCondObjectContainer< Item >::HFcontainer, HcalCondObjectContainer< Item >::HOcontainer, HcalCondObjectContainer< Item >::HTcontainer, index, HcalCondObjectContainer< Item >::initContainer(), and HcalCondObjectContainer< Item >::ZDCcontainer.

Referenced by cms::HcalConstantsASCIIWriter::analyze(), and HcalPedestalsAnalysis::~HcalPedestalsAnalysis().

00179 {
00180   unsigned long myRawId = myItem.rawId();
00181   HcalGenericDetId myId(myRawId);
00182   int index = myId.hashedId();
00183   if (index < 0) return false;
00184   bool success = false;
00185 
00186   switch (myId.genericSubdet() ) {
00187   case HcalGenericDetId::HcalGenBarrel:
00188     if (!HBcontainer.size() ) initContainer(myId.genericSubdet() );
00189     HBcontainer.at(index)  = myItem;
00190     success = true;
00191     break;
00192   case HcalGenericDetId::HcalGenEndcap: 
00193     if (!HEcontainer.size() ) initContainer(myId.genericSubdet() );
00194     HEcontainer.at(index)  = myItem; 
00195     success = true;
00196     break;
00197   case HcalGenericDetId::HcalGenOuter:  
00198     if (!HOcontainer.size() ) initContainer(myId.genericSubdet() );
00199     HOcontainer.at(index)  = myItem; 
00200     success = true;
00201     break;
00202   case HcalGenericDetId::HcalGenForward: 
00203     if (!HFcontainer.size() ) initContainer(myId.genericSubdet() );
00204     HFcontainer.at(index)  = myItem;
00205     success = true;
00206     break;
00207   case HcalGenericDetId::HcalGenTriggerTower: 
00208     if (!HTcontainer.size() ) initContainer(myId.genericSubdet() );
00209     HTcontainer.at(index)  = myItem;
00210     success = true;
00211     break;
00212   case HcalGenericDetId::HcalGenZDC: 
00213     if (!ZDCcontainer.size() ) initContainer(myId.genericSubdet() );
00214     ZDCcontainer.at(index)  = myItem; 
00215     success = true;
00216     break;
00217   case HcalGenericDetId::HcalGenCastor: 
00218     if (!CASTORcontainer.size() ) initContainer(myId.genericSubdet() );
00219     CASTORcontainer.at(index)  = myItem; 
00220     success = true;
00221     break;
00222   case HcalGenericDetId::HcalGenCalibration: 
00223     if (!CALIBcontainer.size() ) initContainer(myId.genericSubdet() );
00224     CALIBcontainer.at(index)  = myItem;  
00225     success = true;
00226     break;
00227   default: break;
00228   }
00229 
00230   return success;
00231 }

template<class Item>
const bool HcalCondObjectContainer< Item >::exists ( DetId  fId  )  const [inline]

Definition at line 133 of file HcalCondObjectContainer.h.

References funct::abs(), HcalCondObjectContainer< Item >::CALIBcontainer, HcalCondObjectContainer< Item >::CASTORcontainer, HcalGenericDetId::genericSubdet(), HcalGenericDetId::hashedId(), HcalCondObjectContainer< Item >::HBcontainer, HcalGenericDetId::HcalGenBarrel, HcalGenericDetId::HcalGenCalibration, HcalGenericDetId::HcalGenCastor, HcalGenericDetId::HcalGenEndcap, HcalGenericDetId::HcalGenForward, HcalGenericDetId::HcalGenOuter, HcalGenericDetId::HcalGenTriggerTower, HcalGenericDetId::HcalGenZDC, HcalCondObjectContainer< Item >::HEcontainer, HcalCondObjectContainer< Item >::HFcontainer, HcalCondObjectContainer< Item >::HOcontainer, HcalCondObjectContainer< Item >::HTcontainer, index, NULL, and HcalCondObjectContainer< Item >::ZDCcontainer.

Referenced by cms::HitReCalibrator::produce().

00134 {
00135   HcalGenericDetId myId(fId);
00136   int index = myId.hashedId();
00137   if (index < 0) return false;
00138   unsigned int index1 = abs(index); // b/c I'm fed up with compiler warnings about comparison betw. signed and unsigned int
00139   const Item* cell = NULL;
00140   switch (myId.genericSubdet() ) {
00141   case HcalGenericDetId::HcalGenBarrel: 
00142     if (index1 < HBcontainer.size()) cell = &(HBcontainer.at(index1) );  
00143     break;
00144   case HcalGenericDetId::HcalGenEndcap: 
00145     if (index1 < HEcontainer.size()) cell = &(HEcontainer.at(index1) );  
00146     break;
00147   case HcalGenericDetId::HcalGenOuter: 
00148     if (index1 < HOcontainer.size()) cell = &(HOcontainer.at(index1) );  
00149     break;
00150   case HcalGenericDetId::HcalGenForward: 
00151     if (index1 < HFcontainer.size()) cell = &(HFcontainer.at(index1) );  
00152     break;
00153   case HcalGenericDetId::HcalGenTriggerTower: 
00154     if (index1 < HTcontainer.size()) cell = &(HTcontainer.at(index1) );  
00155     break;
00156   case HcalGenericDetId::HcalGenZDC: 
00157     if (index1 < ZDCcontainer.size()) cell = &(ZDCcontainer.at(index1) );  
00158     break;
00159   case HcalGenericDetId::HcalGenCastor: 
00160     if (index1 < CASTORcontainer.size()) cell = &(CASTORcontainer.at(index1) );  
00161     break;
00162   case HcalGenericDetId::HcalGenCalibration: 
00163     if (index1 < CALIBcontainer.size()) cell = &(CALIBcontainer.at(index1) );  
00164     break;
00165   default: return false; break;
00166   }
00167   
00168   //  Item emptyItem;
00169   if (cell)
00170     //    if (cell->rawId() != emptyItem.rawId() ) 
00171     if (cell->rawId() == fId ) 
00172       return true;
00173 
00174   return false;
00175 }

template<class Item>
std::vector< DetId > HcalCondObjectContainer< Item >::getAllChannels (  )  const [inline]

Definition at line 234 of file HcalCondObjectContainer.h.

References HcalCondObjectContainer< Item >::CALIBcontainer, HcalCondObjectContainer< Item >::CASTORcontainer, HcalCondObjectContainer< Item >::HBcontainer, HcalCondObjectContainer< Item >::HEcontainer, HcalCondObjectContainer< Item >::HFcontainer, HcalCondObjectContainer< Item >::HOcontainer, HcalCondObjectContainer< Item >::HTcontainer, i, and HcalCondObjectContainer< Item >::ZDCcontainer.

Referenced by HcalQIEDataCheck::analyze().

00235 {
00236   std::vector<DetId> channels;
00237   Item emptyItem;
00238   for (unsigned int i=0; i<HBcontainer.size(); i++)
00239     {
00240       if (emptyItem.rawId() != HBcontainer.at(i).rawId() )
00241         channels.push_back( DetId(HBcontainer.at(i).rawId()) );
00242     }
00243   for (unsigned int i=0; i<HEcontainer.size(); i++)
00244     {
00245       if (emptyItem.rawId() != HEcontainer.at(i).rawId() )
00246         channels.push_back( DetId(HEcontainer.at(i).rawId()) );
00247     }
00248   for (unsigned int i=0; i<HOcontainer.size(); i++)
00249     {
00250       if (emptyItem.rawId() != HOcontainer.at(i).rawId() )
00251         channels.push_back( DetId(HOcontainer.at(i).rawId()) );
00252     }
00253   for (unsigned int i=0; i<HFcontainer.size(); i++)
00254     {
00255       if (emptyItem.rawId() != HFcontainer.at(i).rawId() )
00256         channels.push_back( DetId(HFcontainer.at(i).rawId()) );
00257     }
00258   for (unsigned int i=0; i<HTcontainer.size(); i++)
00259     {
00260       if (emptyItem.rawId() != HTcontainer.at(i).rawId() )
00261         channels.push_back( DetId(HTcontainer.at(i).rawId()) );
00262     }
00263   for (unsigned int i=0; i<ZDCcontainer.size(); i++)
00264     {
00265       if (emptyItem.rawId() != ZDCcontainer.at(i).rawId() )
00266         channels.push_back( DetId(ZDCcontainer.at(i).rawId()) );
00267     }
00268   for (unsigned int i=0; i<CALIBcontainer.size(); i++)
00269     {
00270       if (emptyItem.rawId() != CALIBcontainer.at(i).rawId() )
00271         channels.push_back( DetId(CALIBcontainer.at(i).rawId()) );
00272     }
00273   for (unsigned int i=0; i<CASTORcontainer.size(); i++)
00274     {
00275       if (emptyItem.rawId() != CASTORcontainer.at(i).rawId() )
00276         channels.push_back( DetId(CASTORcontainer.at(i).rawId()) );
00277     }
00278 
00279   return channels;
00280 }

template<class Item>
const Item * HcalCondObjectContainer< Item >::getValues ( DetId  fId  )  const [inline]

Definition at line 79 of file HcalCondObjectContainer.h.

References funct::abs(), HcalCondObjectContainer< Item >::CALIBcontainer, HcalCondObjectContainer< Item >::CASTORcontainer, Exception, HcalGenericDetId::genericSubdet(), HcalGenericDetId::hashedId(), HcalCondObjectContainer< Item >::HBcontainer, HcalGenericDetId::HcalGenBarrel, HcalGenericDetId::HcalGenCalibration, HcalGenericDetId::HcalGenCastor, HcalGenericDetId::HcalGenEndcap, HcalGenericDetId::HcalGenForward, HcalGenericDetId::HcalGenOuter, HcalGenericDetId::HcalGenTriggerTower, HcalGenericDetId::HcalGenZDC, HcalCondObjectContainer< Item >::HEcontainer, HcalCondObjectContainer< Item >::HFcontainer, HcalCondObjectContainer< Item >::HOcontainer, HcalCondObjectContainer< Item >::HTcontainer, index, NULL, and HcalCondObjectContainer< Item >::ZDCcontainer.

Referenced by cms::HcalConstantsASCIIWriter::analyze(), cms::Analyzer_minbias::analyze(), HcalDbService::getHcalRespCorr(), main(), and cms::HitReCalibrator::produce().

00080 {
00081   HcalGenericDetId myId(fId);
00082   int index = myId.hashedId();
00083   //  std::cout << "::::: getting values at index " << index  << ", DetId " << myId << std::endl;
00084   unsigned int index1 = abs(index); // b/c I'm fed up with compiler warnings about comparison betw. signed and unsigned int
00085 
00086   const Item* cell = NULL;
00087   if (index >= 0)
00088     switch (myId.genericSubdet() ) {
00089     case HcalGenericDetId::HcalGenBarrel: 
00090       if (index1 < HBcontainer.size()) 
00091         cell = &(HBcontainer.at(index1) );  
00092       break;
00093     case HcalGenericDetId::HcalGenEndcap: 
00094       if (index1 < HEcontainer.size()) 
00095         cell = &(HEcontainer.at(index1) ); 
00096       break;
00097     case HcalGenericDetId::HcalGenOuter: 
00098       if (index1 < HOcontainer.size())
00099         cell = &(HOcontainer.at(index1) ); 
00100       break;
00101     case HcalGenericDetId::HcalGenForward:
00102       if (index1 < HFcontainer.size()) 
00103         cell = &(HFcontainer.at(index1) ); 
00104       break;
00105     case HcalGenericDetId::HcalGenTriggerTower: 
00106       if (index1 < HTcontainer.size()) 
00107         cell = &(HTcontainer.at(index1) ); 
00108       break;
00109     case HcalGenericDetId::HcalGenZDC:    
00110       if (index1 < ZDCcontainer.size()) 
00111         cell = &(ZDCcontainer.at(index1) ); 
00112       break;
00113     case HcalGenericDetId::HcalGenCastor:
00114       if (index1 < CASTORcontainer.size()) 
00115         cell = &(CASTORcontainer.at(index1) ); 
00116       break;
00117     case HcalGenericDetId::HcalGenCalibration:
00118       if (index1 < CALIBcontainer.size())
00119         cell = &(CALIBcontainer.at(index1) ); 
00120       break;
00121     default: break;
00122     }
00123   
00124   //  Item emptyItem;
00125   //  if (cell->rawId() == emptyItem.rawId() ) 
00126   if ((!cell) || (cell->rawId() != fId ) )
00127     throw cms::Exception ("Conditions not found") 
00128       << "Unavailable Conditions for cell " << myId;
00129   return cell;
00130 }

template<class Item>
void HcalCondObjectContainer< Item >::initContainer ( int  container  )  [inline, private]

Definition at line 59 of file HcalCondObjectContainer.h.

References HcalCondObjectContainer< Item >::CALIBcontainer, HcalCondObjectContainer< Item >::CASTORcontainer, HcalCondObjectContainer< Item >::HBcontainer, HcalGenericDetId::HcalGenBarrel, HcalGenericDetId::HcalGenCalibration, HcalGenericDetId::HcalGenCastor, HcalGenericDetId::HcalGenEndcap, HcalGenericDetId::HcalGenForward, HcalGenericDetId::HcalGenOuter, HcalGenericDetId::HcalGenTriggerTower, HcalGenericDetId::HcalGenZDC, HcalCondObjectContainer< Item >::HEcontainer, HcalCondObjectContainer< Item >::HFcontainer, HcalCondObjectContainer< Item >::HOcontainer, HcalCondObjectContainer< Item >::HTcontainer, i, and HcalCondObjectContainer< Item >::ZDCcontainer.

Referenced by HcalCondObjectContainer< Item >::addValues().

00060 {
00061   Item emptyItem;
00062 
00063   switch (container) 
00064     {
00065     case HcalGenericDetId::HcalGenBarrel: for (int i=0; i<2592; i++) HBcontainer.push_back(emptyItem); break;
00066     case HcalGenericDetId::HcalGenEndcap: for (int i=0; i<2592; i++) HEcontainer.push_back(emptyItem); break;
00067     case HcalGenericDetId::HcalGenOuter: for (int i=0; i<2160; i++) HOcontainer.push_back(emptyItem); break;
00068     case HcalGenericDetId::HcalGenForward: for (int i=0; i<1728; i++) HFcontainer.push_back(emptyItem); break;
00069     case HcalGenericDetId::HcalGenTriggerTower: for (int i=0; i<4176; i++) HTcontainer.push_back(emptyItem); break;
00070     case HcalGenericDetId::HcalGenZDC: for (int i=0; i<22; i++) ZDCcontainer.push_back(emptyItem); break;
00071     case HcalGenericDetId::HcalGenCalibration: for (int i=0; i<1386; i++) CALIBcontainer.push_back(emptyItem); break;
00072     case HcalGenericDetId::HcalGenCastor: for (int i=0; i<1; i++) CASTORcontainer.push_back(emptyItem); break;
00073     default: break;
00074     }
00075 }


Member Data Documentation

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::CALIBcontainer [private]

Definition at line 43 of file HcalCondObjectContainer.h.

Referenced by HcalCondObjectContainer< Item >::addValues(), HcalCondObjectContainer< Item >::exists(), HcalCondObjectContainer< Item >::getAllChannels(), HcalCondObjectContainer< Item >::getValues(), and HcalCondObjectContainer< Item >::initContainer().

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::CASTORcontainer [private]

Definition at line 44 of file HcalCondObjectContainer.h.

Referenced by HcalCondObjectContainer< Item >::addValues(), HcalCondObjectContainer< Item >::exists(), HcalCondObjectContainer< Item >::getAllChannels(), HcalCondObjectContainer< Item >::getValues(), and HcalCondObjectContainer< Item >::initContainer().

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HBcontainer [private]

Definition at line 37 of file HcalCondObjectContainer.h.

Referenced by HcalCondObjectContainer< Item >::addValues(), HcalCondObjectContainer< Item >::exists(), HcalCondObjectContainer< Item >::getAllChannels(), HcalCondObjectContainer< Item >::getValues(), and HcalCondObjectContainer< Item >::initContainer().

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HEcontainer [private]

Definition at line 38 of file HcalCondObjectContainer.h.

Referenced by HcalCondObjectContainer< Item >::addValues(), HcalCondObjectContainer< Item >::exists(), HcalCondObjectContainer< Item >::getAllChannels(), HcalCondObjectContainer< Item >::getValues(), and HcalCondObjectContainer< Item >::initContainer().

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HFcontainer [private]

Definition at line 40 of file HcalCondObjectContainer.h.

Referenced by HcalCondObjectContainer< Item >::addValues(), HcalCondObjectContainer< Item >::exists(), HcalCondObjectContainer< Item >::getAllChannels(), HcalCondObjectContainer< Item >::getValues(), and HcalCondObjectContainer< Item >::initContainer().

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HOcontainer [private]

Definition at line 39 of file HcalCondObjectContainer.h.

Referenced by HcalCondObjectContainer< Item >::addValues(), HcalCondObjectContainer< Item >::exists(), HcalCondObjectContainer< Item >::getAllChannels(), HcalCondObjectContainer< Item >::getValues(), and HcalCondObjectContainer< Item >::initContainer().

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::HTcontainer [private]

Definition at line 41 of file HcalCondObjectContainer.h.

Referenced by HcalCondObjectContainer< Item >::addValues(), HcalCondObjectContainer< Item >::exists(), HcalCondObjectContainer< Item >::getAllChannels(), HcalCondObjectContainer< Item >::getValues(), and HcalCondObjectContainer< Item >::initContainer().

template<class Item>
std::vector<Item> HcalCondObjectContainer< Item >::ZDCcontainer [private]

Definition at line 42 of file HcalCondObjectContainer.h.

Referenced by HcalCondObjectContainer< Item >::addValues(), HcalCondObjectContainer< Item >::exists(), HcalCondObjectContainer< Item >::getAllChannels(), HcalCondObjectContainer< Item >::getValues(), and HcalCondObjectContainer< Item >::initContainer().


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