106 m_h_layerDisk =
new TH1F(
"h_layerDisk",
"Barrel layer or Endcap disk", 100, 0, 10);
134 m_h_phi_v_eta =
new TH2F(
"h_phi_v_eta",
"Phi module vs eta module", 100, -7, 7, 100, 0, 60);
162 m_h_brl_phi_v_eta =
new TH2F(
"h_brl_phi_v_eta",
"Barrel phi module vs eta module", 100, -7, 7, 100, 0, 60);
190 m_h_ec_phi_v_eta =
new TH2F(
"h_ec_phi_v_eta",
"Endcap phi module vs eta module", 100, -7.5, 7.5, 100, 0, 60);
242 m_h_phi_v_eta_sdo =
new TH2F(
"h_phi_v_eta_sdo",
"Phi module vs eta module (SDO)", 100, -7, 7, 100, 0, 60);
246 m_h_belowThresh_brl =
new TH1F(
"h_belowThresh_brl",
"Below threshold strips - Barrel; # below threshold strips; layer", 8, -0.5, 7.5);
250 m_h_belowThresh_ec =
new TH1F(
"h_belowThresh_ec",
"Below threshold strips - Endcap; # below threshold strips; layer", 8, -0.5, 7.5);
254 m_h_disabled_brl =
new TH1F(
"m_h_disabled_brl",
"Disabled strips - Barrel; # disabled strips; layer", 8, -0.5, 7.5);
258 m_h_disabled_ec =
new TH1F(
"m_h_disabled_ec",
"Disabled strips - Endcap; # disabled strips; layer", 8, -0.5, 7.5);
274 m_h_globalXY =
new TH2F(
"m_h_globalXY",
"m_h_globalXY; x [mm]; y [mm]",2200,-1100.,1100.,2200,1100.,1100.);
276 m_h_globalZR =
new TH2F(
"m_h_globalZR",
"m_h_globalZR; z [mm]; r [mm]",6800,-3400.,3400.,1100,0.,1100.);
278 m_h_globalX =
new TH1F(
"m_h_globalX",
"m_h_globalX; x [mm]",2200,-1100.,1100.);
280 m_h_globalY =
new TH1F(
"m_h_globalY",
"m_h_globalY; y [mm]",2200,-1100.,1100.);
282 m_h_globalZ =
new TH1F(
"m_h_globalZ",
"m_h_globalZ; z [mm]",6800,-3400.,3400.);
286 std::string xy_name =
"h_ITk_xy";
287 auto xy = std::make_unique<TH2D>(xy_name.c_str(), xy_name.c_str(), 2200, -1100, 1100, 2200, -1100, 1100);
291 std::string zr_name =
"h_ITk_zr";
292 auto zr = std::make_unique<TH2D>(zr_name.c_str(), zr_name.c_str(), 6800, -3400, 3400, 1100, 0, 1100);
297 TString truthMatchBinLables[4] = {
"All RDOs",
"Truth Matched",
"HS Matched",
"Unmatched" };
298 for(
unsigned int ibin = 1; ibin < 5; ibin++) {
303 return StatusCode::SUCCESS;
355 const HepMC::GenEvent* hardScatterEvent(
nullptr);
356 bool doTruthMatching =
true;
357 if (mcEventCollection->
size()==0){
358 ATH_MSG_WARNING(
"Failed to retrieve a nonzero sized truth event collection, disabling truthMatching");
359 doTruthMatching =
false;
361 if(doTruthMatching) hardScatterEvent = mcEventCollection->
at(0);
368 for ( ; rdoCont_itr != rdoCont_end; ++rdoCont_itr ) {
373 for ( ; rdo_itr != rdo_end; ++rdo_itr ) {
376 bool findMatch =
false;
378 InDetSimDataCollection::const_iterator iter = (*simDataMapSCT).find((*rdo_itr)->identify());
380 if ( iter != (*simDataMapSCT).end() ) {
382 const std::vector< InDetSimData::Deposit >& deposits = sdo.
getdeposits();
383 std::vector< InDetSimData::Deposit >::const_iterator nextdeposit = deposits.begin();
384 std::vector< InDetSimData::Deposit >::const_iterator lastdeposit = deposits.end();
385 for( ; nextdeposit!=lastdeposit; ++nextdeposit) {
387 if(particleLink.
isValid() && !findMatch){
398 const Identifier rdoID((*rdo_itr)->identify());
399 const unsigned int rdoWord((*rdo_itr)->getWord());
407 const int sctGroupSize((*rdo_itr)->getGroupSize());
409 const unsigned long long rdoID_int = rdoID.
get_compact();
425 std::pair<Amg::Vector3D, Amg::Vector3D> endsOfStrip = detEl->
endsOfStrip(localPos);
433 m_globalX1->push_back(endsOfStrip.second.x());
434 m_globalY1->push_back(endsOfStrip.second.y());
435 m_globalZ1->push_back(endsOfStrip.second.z());
442 float stripradius0 = sqrt(endsOfStrip.first.x()*endsOfStrip.first.x()+endsOfStrip.first.y()*endsOfStrip.first.y());
443 float stripradius1 = sqrt(endsOfStrip.second.x()*endsOfStrip.second.x()+endsOfStrip.second.y()*endsOfStrip.second.y());
445 m_h_globalXY->Fill(endsOfStrip.first.x(),endsOfStrip.first.y());
446 m_h_globalXY->Fill(endsOfStrip.second.x(),endsOfStrip.second.y());
450 m_h_globalZR->Fill(endsOfStrip.second.z(),stripradius1);
466 m_side->push_back(sctSide);
467 m_row->push_back(sctRow);
494 else if (abs(sctBrlEc) == 2) {
512 InDetSimDataCollection::const_iterator sdo_itr(simDataMapSCT->begin());
513 const InDetSimDataCollection::const_iterator sdo_end(simDataMapSCT->end());
515 std::vector<int> barcode_vec;
516 std::vector<int> eventIndex_vec;
517 std::vector<float> charge_vec;
518 for ( ; sdo_itr != sdo_end; ++sdo_itr ) {
521 const unsigned long long sdoID_int = sdoID.
get_compact();
522 const int sdoWord(sdo.
word());
550 else if (abs(sctBrlEc_sdo)==2)
557 else if (abs(sctBrlEc_sdo)==2)
574 const std::vector<InDetSimData::Deposit>& deposits = sdo.
getdeposits();
575 std::vector<InDetSimData::Deposit>::const_iterator dep_itr(deposits.begin());
576 const std::vector<InDetSimData::Deposit>::const_iterator dep_end(deposits.end());
578 for ( ; dep_itr != dep_end; ++dep_itr ) {
582 const float charge((*dep_itr).second);
592 barcode_vec.push_back(
bar);
593 eventIndex_vec.push_back(eventIx);
594 charge_vec.push_back(
charge);
600 eventIndex_vec.clear();
609 return StatusCode::SUCCESS;