//------------- // C Headers -- //------------- #include //--------------- // C++ Headers -- //--------------- #include //------------------------------- // Collaborating Class Headers -- //------------------------------- #include "CalorObjects/Cp2PadSet.hh" #include "RawDataBanks/CP2D_StorableBank.hh" #include "BaBar/Cdf.hh" #include "AbsEnv/AbsEnv.hh" //#include "StripChamberGeometry/CdfCp2Wedge.hh" //#include "StripChamberGeometry/Cp2WedgeCode.hh" //---------------- // Constructors -- //---------------- Cp2PadSet::Cp2PadSet( AbsEvent* anEvent) { EventRecord::ConstIterator bankIter(anEvent,"CP2D_StorableBank"); if(bankIter.is_valid() ) { ConstHandle cp2dBank(bankIter); for (CP2D_StorableBank::ConstGrandBankIter data_iter(cp2dBank); 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 = cp2dBank->get_pad(data_iter); int module = cp2dBank->get_module(data_iter); int energy = cp2dBank->get_data(data_iter); int i_ew = cp2dBank->get_we(data_iter); // Create the space if it doesn't exist. CprWedgeCode c(i_ew,module); std::vector & myPadVector = _padVector[c]; Cp2Pad pad; pad.setPulseHeight(energy); pad.setPadNo(number); pad.setModule(module); pad.setSide(i_ew); myPadVector.push_back(pad); } } } //-------------- // Destructor -- //-------------- Cp2PadSet::~Cp2PadSet( ) { } //-------------- // Operations -- //-------------- int Cp2PadSet::nPads(const CdfCprWedge* wedge) const { CprWedgeCode c = wedge->getDetectorCode(); return _padVector[c].size(); } Cp2Pad Cp2PadSet::get_pad(const CdfCprWedge* wedge, int j) const { CprWedgeCode c = wedge->getDetectorCode(); return _padVector[c][j]; }