#include <HcalDataIntegrityTask.h>
Public Member Functions | |
void | analyze (const edm::Event &, const edm::EventSetup &) |
void | beginRun (const edm::Run &run, const edm::EventSetup &c) |
void | cleanup () |
HcalDataIntegrityTask (const edm::ParameterSet &ps) | |
void | processEvent (const FEDRawDataCollection &rawraw, const HcalUnpackerReport &report, const HcalElectronicsMap &emap) |
void | reset () |
void | setup () |
void | unpack (const FEDRawData &raw, const HcalElectronicsMap &emap) |
~HcalDataIntegrityTask () | |
Public Attributes | |
std::map< uint32_t, std::vector< HcalDetId > > | DCCtoCell |
std::map< uint32_t, std::vector< HcalDetId > >::iterator | thisDCC |
Private Member Functions | |
void | fillzoos (int bin, int dccid) |
void | mapDCCproblem (int dcc) |
void | mapHTRproblem (int dcc, int spigot) |
void | UpdateMap () |
Private Attributes | |
std::map< int, short > | CDFEventType_list |
std::map< int, short >::iterator | CDFEvT_it |
std::map< int, short >::iterator | CDFReservedBits_it |
std::map< int, short > | CDFReservedBits_list |
std::map< int, short >::iterator | CDFvers_it |
std::map< int, short > | CDFversionNumber_list |
std::vector< int > | dccCrate_ |
std::map< int, short >::iterator | DCCEvtFormat_it |
std::map< int, short > | DCCEvtFormat_list |
std::map< int, short >::iterator | DCCRsvdBits_it |
std::map< int, short > | DCCRsvdBits_list |
std::vector< HcalSubdetector > | dccSubdet_ |
MonitorElement * | fedEntries_ |
MonitorElement * | fedFatal_ |
MonitorElement * | fedNonFatal_ |
std::vector< int > | fedUnpackList_ |
int | firstFED_ |
std::vector< std::vector < uint64_t > > | HBmap |
std::vector< std::vector < uint64_t > > | HEmap |
std::vector< std::vector < uint64_t > > | HFmap |
std::vector< std::vector < uint64_t > > | HOmap |
edm::InputTag | inputLabelRawData_ |
edm::InputTag | inputLabelReport_ |
int | lastBCN_ |
int | lastEvtN_ |
std::vector< std::vector < uint64_t > > | phatmap |
std::vector< std::vector< bool > > | problemHB |
std::vector< std::vector< bool > > | problemHE |
std::vector< std::vector< bool > > | problemhere |
std::vector< std::vector< bool > > | problemHF |
std::vector< std::vector< bool > > | problemHO |
int | prtlvl_ |
const HcalElectronicsMap * | readoutMap_ |
Static Private Attributes | |
static float | DIMbin [32] |
static size_t | ietarange |
static size_t | iphirange |
HcalDataIntegrityTask::HcalDataIntegrityTask | ( | const edm::ParameterSet & | ps | ) |
Definition at line 8 of file HcalDataIntegrityTask.cc.
References HcalBaseDQMonitor::AllowedCalibTypes_, HcalBaseDQMonitor::debug_, HcalBaseDQMonitor::enableCleanup_, edm::ParameterSet::getUntrackedParameter(), inputLabelRawData_, inputLabelReport_, HcalBaseDQMonitor::makeDiagnostics_, HcalBaseDQMonitor::mergeRuns_, HcalBaseDQMonitor::NLumiBlocks_, HcalBaseDQMonitor::Online_, HcalBaseDQMonitor::prefixME_, HcalBaseDQMonitor::skipOutOfOrderLS_, and HcalBaseDQMonitor::subdir_.
{ Online_ = ps.getUntrackedParameter<bool>("online",false); mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns",false); enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup",false); debug_ = ps.getUntrackedParameter<int>("debug",0); prefixME_ = ps.getUntrackedParameter<std::string>("subSystemFolder","Hcal"); if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!="/") prefixME_.append("/"); subdir_ = ps.getUntrackedParameter<std::string>("TaskFolder","HcalDataIntegrityTask"); if (subdir_.size()>0 && subdir_.substr(subdir_.size()-1,subdir_.size())!="/") subdir_.append("/"); subdir_=prefixME_+subdir_; AllowedCalibTypes_ = ps.getUntrackedParameter<std::vector<int> > ("AllowedCalibTypes"); skipOutOfOrderLS_ = ps.getUntrackedParameter<bool>("skipOutOfOrderLS",false); NLumiBlocks_ = ps.getUntrackedParameter<int>("NLumiBlocks",4000); makeDiagnostics_ = ps.getUntrackedParameter<bool>("makeDiagnostics",false); // Specific Data Integrity Task parameters inputLabelRawData_ = ps.getUntrackedParameter<edm::InputTag>("RawDataLabel"); inputLabelReport_ = ps.getUntrackedParameter<edm::InputTag>("UnpackerReportLabel"); } // HcalDataIntegrityTask::HcalDataIntegrityTask()
HcalDataIntegrityTask::~HcalDataIntegrityTask | ( | ) |
Definition at line 33 of file HcalDataIntegrityTask.cc.
{}
void HcalDataIntegrityTask::analyze | ( | const edm::Event & | e, |
const edm::EventSetup & | s | ||
) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 148 of file HcalDataIntegrityTask.cc.
References HcalBaseDQMonitor::debug_, edm::Event::getByLabel(), inputLabelRawData_, inputLabelReport_, HcalBaseDQMonitor::IsAllowedCalibType(), HcalBaseDQMonitor::LumiInOrder(), edm::EventBase::luminosityBlock(), processEvent(), readoutMap_, and zeeHLT_cff::report.
{ if (!IsAllowedCalibType()) return; if (LumiInOrder(e.luminosityBlock())==false) return; // Now get the collections we need edm::Handle<FEDRawDataCollection> rawraw; // Trying new getByLabel if (!(e.getByLabel(inputLabelRawData_,rawraw))) { if (debug_>0) edm::LogWarning("HcalDataIntegrityTask")<<" raw data with label "<<inputLabelRawData_<<" not available"; return; } edm::Handle<HcalUnpackerReport> report; if (!(e.getByLabel(inputLabelReport_,report))) { if (debug_>0) edm::LogWarning("HcalDataIntegrityTask")<<" UnpackerReport with label "<<inputLabelReport_<<" \not available"; return; } // Collections were found; increment counters HcalBaseDQMonitor::analyze(e,s); processEvent(*rawraw, *report, *readoutMap_); }
void HcalDataIntegrityTask::beginRun | ( | const edm::Run & | run, |
const edm::EventSetup & | c | ||
) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 56 of file HcalDataIntegrityTask.cc.
References gather_cfg::cout, HcalBaseDQMonitor::debug_, edm::EventSetup::get(), HcalBaseDQMonitor::mergeRuns_, readoutMap_, reset(), setup(), HcalBaseDQMonitor::subdir_, and HcalBaseDQMonitor::tevt_.
{ if (debug_>0) std::cout <<"HcalDataIntegrityTask::beginRun(): task = '"<<subdir_<<"'"<<std::endl; HcalBaseDQMonitor::beginRun(run, c); if (mergeRuns_ && tevt_>0) return; if (debug_>1) std::cout<<"\t<HcalDataIntegrityTask::getting eMap..."<<std::endl; edm::ESHandle<HcalDbService> pSetup; c.get<HcalDbRecord>().get( pSetup ); readoutMap_=pSetup->getHcalMapping(); if (tevt_==0) // create histograms, if they haven't been created already this->setup(); // Clear histograms at the start of each run if not merging runs if (mergeRuns_==false) this->reset(); } // beginRun(const edm::Run& run, const edm::EventSetup& c)
void HcalDataIntegrityTask::cleanup | ( | void | ) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 45 of file HcalDataIntegrityTask.cc.
References HcalBaseDQMonitor::dbe_, DQMStore::removeContents(), DQMStore::setCurrentFolder(), and HcalBaseDQMonitor::subdir_.
{ if(dbe_) { dbe_->setCurrentFolder(subdir_); dbe_->removeContents(); } } // void HcalDataIntegrityTask::cleanup()
void HcalDataIntegrityTask::fillzoos | ( | int | bin, |
int | dccid | ||
) | [private] |
void HcalDataIntegrityTask::mapDCCproblem | ( | int | dcc | ) | [private] |
void HcalDataIntegrityTask::mapHTRproblem | ( | int | dcc, |
int | spigot | ||
) | [private] |
void HcalDataIntegrityTask::processEvent | ( | const FEDRawDataCollection & | rawraw, |
const HcalUnpackerReport & | report, | ||
const HcalElectronicsMap & | emap | ||
) |
Definition at line 179 of file HcalDataIntegrityTask.cc.
References gather_cfg::cout, HcalBaseDQMonitor::dbe_, FEDRawDataCollection::FEDData(), fedUnpackList_, i, FEDRawData::size(), and unpack().
Referenced by analyze().
{ if(!dbe_) { std::cout<<"HcalDataIntegrityTask::processEvent DQMStore not instantiated!!!"<<std::endl; return; } // Loop over all FEDs reporting the event, unpacking if good. for (std::vector<int>::const_iterator i=fedUnpackList_.begin();i!=fedUnpackList_.end(); i++) { const FEDRawData& fed = rawraw.FEDData(*i); if (fed.size()<12) continue; // Was 16. How do such tiny events even get here? unpack(fed,emap); } return; } //void HcalDataIntegrityTask::processEvent()
void HcalDataIntegrityTask::reset | ( | void | ) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 35 of file HcalDataIntegrityTask.cc.
References gather_cfg::cout, HcalBaseDQMonitor::debug_, fedEntries_, fedFatal_, fedNonFatal_, and MonitorElement::Reset().
Referenced by beginRun(), and setup().
{ if (debug_>0) std::cout <<"HcalDataIntegrityTask::reset()"<<std::endl; HcalBaseDQMonitor::reset(); fedEntries_->Reset(); fedFatal_->Reset(); fedNonFatal_->Reset(); }
void HcalDataIntegrityTask::setup | ( | void | ) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 78 of file HcalDataIntegrityTask.cc.
References DQMStore::book1D(), gather_cfg::cout, HcalBaseDQMonitor::dbe_, HcalBaseDQMonitor::debug_, fedEntries_, fedFatal_, fedNonFatal_, fedUnpackList_, firstFED_, HBmap, HEmap, HFmap, HOmap, i, IETAMAX, IETAMIN, ietarange, IPHIMAX, IPHIMIN, iphirange, FEDNumbering::MAXHCALFEDID, FEDNumbering::MINHCALFEDID, phatmap, problemHB, problemHE, problemhere, problemHF, problemHO, reset(), DQMStore::setCurrentFolder(), and HcalBaseDQMonitor::subdir_.
Referenced by beginRun().
{ // Setup Creates all necessary histograms HcalBaseDQMonitor::setup(); //Initialize phatmap to a vector of vectors of uint64_t 0 static size_t iphirange = IPHIMAX - IPHIMIN; static size_t ietarange = IETAMAX - IETAMIN; std::vector<uint64_t> phatv (iphirange + 1, 0); if (debug_>0) std::cout <<"<HcalDataIntegrityTask::setup> Clearing old vectors"<<std::endl; // Clear any old vectors phatmap.clear(); HBmap.clear(); HEmap.clear(); HFmap.clear(); HOmap.clear(); problemhere.clear(); problemHB.clear(); problemHE.clear(); problemHF.clear(); problemHO.clear(); // ... nothing goes at ieta=0, so an extra bin goes there. phatmap = std::vector< std::vector < uint64_t> > ( ietarange + 1, phatv); HBmap = std::vector< std::vector < uint64_t> > ( ietarange + 1, phatv); HEmap = std::vector< std::vector < uint64_t> > ( ietarange + 1, phatv); HFmap = std::vector< std::vector < uint64_t> > ( ietarange + 1, phatv); HOmap = std::vector< std::vector < uint64_t> > ( ietarange + 1, phatv); std::vector<bool> probvect (iphirange + 1, 0); // ... nothing goes at ieta=0, so an extra bin goes there. problemhere = std::vector< std::vector <bool> > ( ietarange + 1, probvect); problemHB = std::vector< std::vector <bool> > ( ietarange + 1, probvect); problemHE = std::vector< std::vector <bool> > ( ietarange + 1, probvect); problemHF = std::vector< std::vector <bool> > ( ietarange + 1, probvect); problemHO = std::vector< std::vector <bool> > ( ietarange + 1, probvect); if(debug_>1) std::cout << "About to pushback fedUnpackList_" << std::endl; // Use this in CMSSW_3_0_X and above: firstFED_ = FEDNumbering::MINHCALFEDID; for (int i=FEDNumbering::MINHCALFEDID; i<=FEDNumbering::MAXHCALFEDID; ++i) { if(debug_>1) std::cout << "[DFMon:]Pushback for fedUnpackList_: " << i <<std::endl; fedUnpackList_.push_back(i); } if ( dbe_ ) { if (debug_>1) std::cout <<"\t<HcalDataIntegrityTask> Setting folder to "<<subdir_<<std::endl; dbe_->setCurrentFolder(subdir_); fedEntries_ = dbe_->book1D("FEDEntries","# entries per HCAL FED",32,700,732); fedFatal_ = dbe_->book1D("FEDFatal","# fatal errors HCAL FED",32,700,732); fedNonFatal_ = dbe_->book1D("FEDNonFatal","# non-fatal errors HCAL FED",32,700,732); } // if (dbe_) this->reset(); // clear all histograms at start return; }
void HcalDataIntegrityTask::unpack | ( | const FEDRawData & | raw, |
const HcalElectronicsMap & | emap | ||
) |
Definition at line 202 of file HcalDataIntegrityTask.cc.
References HcalDCCHeader::BOEshouldBe5Always(), HcalDCCHeader::BOEshouldBeZeroAlways(), CDFEventType_list, CDFEvT_it, CDFReservedBits_it, CDFReservedBits_list, CDFvers_it, CDFversionNumber_list, FEDTrailer::check(), FEDRawData::data(), fedEntries_, fedFatal_, MonitorElement::Fill(), HcalDCCHeader::getCDFEventType(), HcalDCCHeader::getCDFversionNumber(), HcalDCCHeader::getSlink64ReservedBits(), HcalDCCHeader::getSourceId(), FEDTrailer::lenght(), FEDTrailer::moreTrailers(), FEDRawData::size(), HcalDCCHeader::thereIsASecondCDFHeaderWord(), and HcalDCCHeader::thereIsAThirdCDFHeaderWord().
Referenced by processEvent().
{ // get the DCC header const HcalDCCHeader* dccHeader=(const HcalDCCHeader*)(raw.data()); if(!dccHeader) return; // get the DCC trailer unsigned char* trailer_ptr = (unsigned char*) (raw.data()+raw.size()-sizeof(uint64_t)); FEDTrailer trailer = FEDTrailer(trailer_ptr); int dccid=dccHeader->getSourceId(); bool CDFProbThisDCC = false; /* 1 */ //There should always be a second CDF header word indicated. if (!dccHeader->thereIsASecondCDFHeaderWord()) { CDFProbThisDCC = true; } /* 2 */ //Make sure a reference CDF Version value has been recorded for this dccid CDFvers_it = CDFversionNumber_list.find(dccid); if (CDFvers_it == CDFversionNumber_list.end()) { CDFversionNumber_list.insert(std::pair<int,short> (dccid,dccHeader->getCDFversionNumber() ) ); CDFvers_it = CDFversionNumber_list.find(dccid); } // then check against it. if (dccHeader->getCDFversionNumber()!= CDFvers_it->second) { CDFProbThisDCC = true; } /* 3 */ //Make sure a reference CDF EventType value has been recorded for this dccid CDFEvT_it = CDFEventType_list.find(dccid); if (CDFEvT_it == CDFEventType_list.end()) { CDFEventType_list.insert(std::pair<int,short> (dccid,dccHeader->getCDFEventType() ) ); CDFEvT_it = CDFEventType_list.find(dccid); } // then check against it. if (dccHeader->getCDFEventType()!= CDFEvT_it->second) { // On probation until safe against Orbit Gap Calibration Triggers... // CDFProbThisDCC = true; } /* 4 */ //There should always be a '5' in CDF Header word 0, bits [63:60] if (dccHeader->BOEshouldBe5Always()!=5) { CDFProbThisDCC = true; } /* 5 */ //There should never be a third CDF Header word indicated. if (dccHeader->thereIsAThirdCDFHeaderWord()) { CDFProbThisDCC = true; } /* 6 */ //Make sure a reference value of Reserved Bits has been recorded for this dccid CDFReservedBits_it = CDFReservedBits_list.find(dccid); if (CDFReservedBits_it == CDFReservedBits_list.end()) { CDFReservedBits_list.insert(std::pair<int,short> (dccid,dccHeader->getSlink64ReservedBits() ) ); CDFReservedBits_it = CDFReservedBits_list.find(dccid); } // then check against it. if ((int) dccHeader->getSlink64ReservedBits()!= CDFReservedBits_it->second) { // On probation until safe against Orbit Gap Calibration Triggers... // CDFProbThisDCC = true; } /* 7 */ //There should always be 0x0 in CDF Header word 1, bits [63:60] if (dccHeader->BOEshouldBeZeroAlways() !=0) { CDFProbThisDCC = true; } /* 8 */ //There should only be one trailer if (trailer.moreTrailers()) { CDFProbThisDCC = true; } // if trailer. /* 9 */ //CDF Trailer [55:30] should be the # 64-bit words in the EvFragment if ((uint64_t) raw.size() != ( (uint64_t) trailer.lenght()*sizeof(uint64_t)) ) //The function name is a typo! Awesome. { CDFProbThisDCC = true; } /*10 */ //There is a rudimentary sanity check built into the FEDTrailer class if (!trailer.check()) { CDFProbThisDCC = true; } if (CDFProbThisDCC) fedFatal_->Fill(dccid); fedEntries_->Fill(dccid); return; } // void HcalDataIntegrityTask::unpack()
void HcalDataIntegrityTask::UpdateMap | ( | ) | [private] |
std::map<int, short> HcalDataIntegrityTask::CDFEventType_list [private] |
Definition at line 91 of file HcalDataIntegrityTask.h.
Referenced by unpack().
std::map<int, short>::iterator HcalDataIntegrityTask::CDFEvT_it [private] |
Definition at line 92 of file HcalDataIntegrityTask.h.
Referenced by unpack().
std::map<int, short>::iterator HcalDataIntegrityTask::CDFReservedBits_it [private] |
Definition at line 94 of file HcalDataIntegrityTask.h.
Referenced by unpack().
std::map<int, short> HcalDataIntegrityTask::CDFReservedBits_list [private] |
Definition at line 93 of file HcalDataIntegrityTask.h.
Referenced by unpack().
std::map<int, short>::iterator HcalDataIntegrityTask::CDFvers_it [private] |
Definition at line 90 of file HcalDataIntegrityTask.h.
Referenced by unpack().
std::map<int, short> HcalDataIntegrityTask::CDFversionNumber_list [private] |
Definition at line 89 of file HcalDataIntegrityTask.h.
Referenced by unpack().
std::vector<int> HcalDataIntegrityTask::dccCrate_ [private] |
Definition at line 72 of file HcalDataIntegrityTask.h.
std::map<int, short>::iterator HcalDataIntegrityTask::DCCEvtFormat_it [private] |
Definition at line 96 of file HcalDataIntegrityTask.h.
std::map<int, short> HcalDataIntegrityTask::DCCEvtFormat_list [private] |
Definition at line 95 of file HcalDataIntegrityTask.h.
std::map<int, short>::iterator HcalDataIntegrityTask::DCCRsvdBits_it [private] |
Definition at line 98 of file HcalDataIntegrityTask.h.
std::map<int, short> HcalDataIntegrityTask::DCCRsvdBits_list [private] |
Definition at line 97 of file HcalDataIntegrityTask.h.
std::vector<HcalSubdetector> HcalDataIntegrityTask::dccSubdet_ [private] |
Definition at line 73 of file HcalDataIntegrityTask.h.
std::map<uint32_t, std::vector<HcalDetId> > HcalDataIntegrityTask::DCCtoCell |
Definition at line 48 of file HcalDataIntegrityTask.h.
float HcalDataIntegrityTask::DIMbin [static, private] |
{ 4, 4.5, 0, 0.5, 1, 1.5, 5, 5.5, 11, 11.5, 15, 15.5, 17, 17.5, 14, 14.5, 10, 10.5, 2, 2.5, 9, 9.5, 12, 12.5, 3, 3.5, 7, 7.5, 6, 6.5, 13, 13.5 }
Definition at line 101 of file HcalDataIntegrityTask.h.
MonitorElement* HcalDataIntegrityTask::fedEntries_ [private] |
Definition at line 84 of file HcalDataIntegrityTask.h.
MonitorElement* HcalDataIntegrityTask::fedFatal_ [private] |
Definition at line 85 of file HcalDataIntegrityTask.h.
Definition at line 86 of file HcalDataIntegrityTask.h.
std::vector<int> HcalDataIntegrityTask::fedUnpackList_ [private] |
Definition at line 71 of file HcalDataIntegrityTask.h.
Referenced by processEvent(), and setup().
int HcalDataIntegrityTask::firstFED_ [private] |
Definition at line 74 of file HcalDataIntegrityTask.h.
Referenced by setup().
std::vector<std::vector<uint64_t> > HcalDataIntegrityTask::HBmap [private] |
Definition at line 64 of file HcalDataIntegrityTask.h.
Referenced by setup().
std::vector<std::vector<uint64_t> > HcalDataIntegrityTask::HEmap [private] |
Definition at line 65 of file HcalDataIntegrityTask.h.
Referenced by setup().
std::vector<std::vector<uint64_t> > HcalDataIntegrityTask::HFmap [private] |
Definition at line 66 of file HcalDataIntegrityTask.h.
Referenced by setup().
std::vector<std::vector<uint64_t> > HcalDataIntegrityTask::HOmap [private] |
Definition at line 67 of file HcalDataIntegrityTask.h.
Referenced by setup().
size_t HcalDataIntegrityTask::ietarange [static, private] |
Definition at line 54 of file HcalDataIntegrityTask.h.
Referenced by setup().
Definition at line 104 of file HcalDataIntegrityTask.h.
Referenced by analyze(), and HcalDataIntegrityTask().
Definition at line 105 of file HcalDataIntegrityTask.h.
Referenced by analyze(), and HcalDataIntegrityTask().
size_t HcalDataIntegrityTask::iphirange [static, private] |
Definition at line 53 of file HcalDataIntegrityTask.h.
Referenced by setup().
int HcalDataIntegrityTask::lastBCN_ [private] |
Definition at line 76 of file HcalDataIntegrityTask.h.
int HcalDataIntegrityTask::lastEvtN_ [private] |
Definition at line 75 of file HcalDataIntegrityTask.h.
std::vector<std::vector<uint64_t> > HcalDataIntegrityTask::phatmap [private] |
Definition at line 63 of file HcalDataIntegrityTask.h.
Referenced by setup().
std::vector<std::vector<bool> > HcalDataIntegrityTask::problemHB [private] |
Definition at line 56 of file HcalDataIntegrityTask.h.
Referenced by setup().
std::vector<std::vector<bool> > HcalDataIntegrityTask::problemHE [private] |
Definition at line 57 of file HcalDataIntegrityTask.h.
Referenced by setup().
std::vector<std::vector<bool> > HcalDataIntegrityTask::problemhere [private] |
Definition at line 55 of file HcalDataIntegrityTask.h.
Referenced by setup().
std::vector<std::vector<bool> > HcalDataIntegrityTask::problemHF [private] |
Definition at line 58 of file HcalDataIntegrityTask.h.
Referenced by setup().
std::vector<std::vector<bool> > HcalDataIntegrityTask::problemHO [private] |
Definition at line 59 of file HcalDataIntegrityTask.h.
Referenced by setup().
int HcalDataIntegrityTask::prtlvl_ [private] |
Definition at line 80 of file HcalDataIntegrityTask.h.
const HcalElectronicsMap* HcalDataIntegrityTask::readoutMap_ [private] |
Definition at line 103 of file HcalDataIntegrityTask.h.
Referenced by analyze(), and beginRun().
std::map<uint32_t, std::vector<HcalDetId> >::iterator HcalDataIntegrityTask::thisDCC |
Definition at line 49 of file HcalDataIntegrityTask.h.