34 {
35
36
37
38
39 SG::WriteDecorHandle<xAOD::EventInfo,char> dec_isBadBatman(
m_isBadBatmanKey, ctx);
40
42 if (!eventInfo.isValid()){
45 return StatusCode::FAILURE;
46 }
47 auto ei = eventInfo.cptr();
48
50 if(!clusterContainer.isValid()){
53 return StatusCode::FAILURE;
54 }
55 auto clusters = clusterContainer.cptr();
56
57
58 bool isBatman=false;
59 size_t nBatman=0;
60 const static SG::AuxElement::ConstAccessor<float> acc_AVGLARQ("AVG_LAR_Q");
61 for ( auto ipart : *clusters ) {
62 if (std::fabs(ipart->rawEta())<=2.5) continue;
63 if (std::fabs(ipart->rawEta())>=3.2) continue;
64 if (ipart->rawE()/cosh(ipart->rawEta())<500.) continue;
65 if (acc_AVGLARQ(*ipart)/65535.<=0.2) continue;
66 nBatman++;
67 }
68
69 if (nBatman>20) isBatman=true;
70 dec_isBadBatman(*ei) = isBatman;
71
72 return StatusCode::SUCCESS;
73 }
#define ATH_MSG_WARNING(x)
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())