//------------- // C Headers -- //------------- #include //--------------- // C++ Headers -- //--------------- #include //------------------------------- // Collaborating Class Headers -- //------------------------------- #include "CalorObjects/CprWireSet.hh" #include "RawDataBanks/CPRD_StorableBank.hh" #include "BaBar/Cdf.hh" #include "AbsEnv/AbsEnv.hh" #include "StripChamberGeometry/CdfCprWedge.hh" #include "StripChamberGeometry/CprWedgeCode.hh" //---------------- // Constructors -- //---------------- CprWireSet::CprWireSet( AbsEvent* anEvent) { EventRecord::ConstIterator bankIter(anEvent,"CPRD_StorableBank"); if(bankIter.is_valid() ) { ConstHandle cprdBank(bankIter); for (CPRD_StorableBank::ConstGrandBankIter data_iter(cprdBank); data_iter.is_valid(); data_iter++) { // The following code compiles, but I am not // sure if it is really correct. I mean this // start_word() part. - ikrav int number = cprdBank->get_wire(data_iter); int module = cprdBank->get_module(data_iter); int energy = cprdBank->get_data(data_iter); int i_ew = cprdBank->get_we(data_iter); // Create the space if it doesn't exist. CprWedgeCode c(i_ew,module); std::vector & myWireVector = _wireVector[c]; CprWire wire; wire.setPulseHeight(energy); wire.setWireNo(number); wire.setModule(module); wire.setSide(i_ew); myWireVector.push_back(wire); } } } //-------------- // Destructor -- //-------------- CprWireSet::~CprWireSet( ) { } //-------------- // Operations -- //-------------- int CprWireSet::nWires(const CdfCprWedge* wedge) const { CprWedgeCode c = wedge->getDetectorCode(); return _wireVector[c].size(); } CprWire CprWireSet::get_wire(const CdfCprWedge* wedge, int j) const { CprWedgeCode c = wedge->getDetectorCode(); return _wireVector[c][j]; }