|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
   23   , m_barrelEndcap{
nullptr}
 
   24   , m_layerDisk{
nullptr}
 
   25   , m_phiModule{
nullptr}
 
   26   , m_etaModule{
nullptr}
 
   29   , m_groupSize{
nullptr}
 
   32   , m_barrelEndcap_sdo{
nullptr}
 
   33   , m_layerDisk_sdo{
nullptr}
 
   34   , m_phiModule_sdo{
nullptr}
 
   35   , m_etaModule_sdo{
nullptr}
 
   37   , m_strip_sdo{
nullptr}
 
   39   , m_belowThresh{
nullptr}
 
   42   , m_eventIndex{
nullptr}
 
   44   , m_barcode_vec{
nullptr}
 
   45   , m_eventIndex_vec{
nullptr}
 
   46   , m_charge_vec{
nullptr}
 
   49   , m_h_rdoWord{
nullptr}
 
   50   , m_h_barrelEndcap{
nullptr}
 
   51   , m_h_layerDisk{
nullptr}
 
   52   , m_h_phiModule{
nullptr}
 
   53   , m_h_etaModule{
nullptr}
 
   56   , m_h_groupSize{
nullptr}
 
   57   , m_h_phi_v_eta{
nullptr}
 
   58   , m_h_brlLayer{
nullptr}
 
   59   , m_h_brlPhiMod{
nullptr}
 
   60   , m_h_brlEtaMod{
nullptr}
 
   61   , m_h_brlSide{
nullptr}
 
   62   , m_h_brlStrip{
nullptr}
 
   63   , m_h_brlGroupSize{
nullptr}
 
   64   , m_h_brl_phi_v_eta{
nullptr}
 
   66   , m_h_ecPhiMod{
nullptr}
 
   67   , m_h_ecEtaMod{
nullptr}
 
   69   , m_h_ecStrip{
nullptr}
 
   70   , m_h_ecGroupSize{
nullptr}
 
   71   , m_h_ec_phi_v_eta{
nullptr}
 
   73   , m_h_sdoWord{
nullptr}
 
   74   , m_h_barrelEndcap_sdo{
nullptr}
 
   75   , m_h_layerDisk_sdo{
nullptr}
 
   76   , m_h_phiModule_sdo{
nullptr}
 
   77   , m_h_etaModule_sdo{
nullptr}
 
   78   , m_h_side_sdo{
nullptr}
 
   79   , m_h_strip_sdo{
nullptr}
 
   80   , m_h_barcode{
nullptr}
 
   81   , m_h_eventIndex{
nullptr}
 
   83   , m_h_phi_v_eta_sdo{
nullptr}
 
   84   , m_h_TruthMatchedRDOs{
nullptr}
 
   87   , m_thistSvc(
"THistSvc", 
name)
 
  155   m_h_layerDisk = 
new TH1F(
"h_layerDisk", 
"Barrel layer or Endcap disk", 100, 0, 10);
 
  179   m_h_phi_v_eta = 
new TH2F(
"h_phi_v_eta", 
"Phi module vs eta module", 100, -7, 7, 100, 0, 60);
 
  207   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);
 
  235   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);
 
  283   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);
 
  288   TString truthMatchBinLables[4] = { 
"All RDOs", 
"Truth Matched", 
"HS Matched", 
"Unmatched" };
 
  289   for(
unsigned int ibin = 1; ibin < 5; ibin++) {
 
  296   return StatusCode::SUCCESS;
 
  335   const HepMC::GenEvent* hardScatterEvent(
nullptr);
 
  336   bool doTruthMatching = 
true;
 
  337   if ((!mcEventCollection.
isValid())||mcEventCollection->
size()==0){
 
  338     ATH_MSG_WARNING(
"Failed to retrieve a nonzero sized truth event collection, disabling truthMatching");
 
  339     doTruthMatching = 
false;
 
  341   if(doTruthMatching) hardScatterEvent = mcEventCollection->
at(0);
 
  348     for ( ; rdoCont_itr != rdoCont_end; ++rdoCont_itr ) {
 
  353       for ( ; rdo_itr != rdo_end; ++rdo_itr ) {
 
  356           bool findMatch = 
false; 
 
  358             InDetSimDataCollection::const_iterator 
iter = (*simDataMapSCT).find((*rdo_itr)->identify());
 
  360             if ( 
iter != (*simDataMapSCT).end() ) {
 
  362               const std::vector< InDetSimData::Deposit >& deposits = sdo.
getdeposits();
 
  363               std::vector< InDetSimData::Deposit >::const_iterator nextdeposit = deposits.begin();
 
  364               std::vector< InDetSimData::Deposit >::const_iterator lastdeposit = deposits.end();
 
  365               for( ; nextdeposit!=lastdeposit; ++nextdeposit) {
 
  367                 if(particleLink.
isValid() && !findMatch){
 
  378         const Identifier rdoID((*rdo_itr)->identify());
 
  379         const unsigned int rdoWord((*rdo_itr)->getWord());
 
  386         const int sctGroupSize((*rdo_itr)->getGroupSize());
 
  388         const unsigned long long rdoID_int = rdoID.
get_compact();
 
  395         m_side->push_back(sctSide);
 
  419         else if (std::abs(sctBrlEc) == 2) {
 
  435     InDetSimDataCollection::const_iterator sdo_itr(simDataMapSCT->begin());
 
  436     const InDetSimDataCollection::const_iterator sdo_end(simDataMapSCT->end());
 
  438     std::vector<int> barcode_vec;
 
  439     std::vector<int> eventIndex_vec;
 
  440     std::vector<float> charge_vec;
 
  441     for (; sdo_itr != sdo_end; ++sdo_itr) {
 
  444       const unsigned long long sdoID_int = sdoID.
get_compact();
 
  445       const int sdoWord(sdo.
word());
 
  480       const std::vector<InDetSimData::Deposit>& deposits = sdo.
getdeposits();
 
  481       std::vector<InDetSimData::Deposit>::const_iterator dep_itr(deposits.begin());
 
  482       const std::vector<InDetSimData::Deposit>::const_iterator dep_end(deposits.end());
 
  484       for (; dep_itr != dep_end; ++dep_itr) {
 
  488         const float charge((*dep_itr).second);
 
  498         barcode_vec.push_back(
bar);
 
  499         eventIndex_vec.push_back(eventIx);
 
  500         charge_vec.push_back(
charge);
 
  506       eventIndex_vec.clear();
 
  515   return StatusCode::SUCCESS;
 
  520   return StatusCode::SUCCESS;
 
  
std::vector< int > * m_groupSize
def retrieve(aClass, aKey=None)
SCT_RDOAnalysis(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< unsigned int > * m_rdoWord
std::vector< bool > * m_disabled
std::vector< int > * m_phiModule
Const iterator class for DataVector/DataList.
This is an Identifier helper class for the SCT subdetector. This class is a factory for creating comp...
std::vector< bool > * m_noise
std::vector< std::vector< int > > * m_barcode_vec
const std::vector< Deposit > & getdeposits() const
std::vector< int > * m_barrelEndcap_sdo
static bool isDisabled(const InDetSimData &sdo)
std::vector< unsigned long long > * m_rdoID
std::vector< int > * m_strip_sdo
TH1 * m_h_barrelEndcap_sdo
value_type get_compact() const
Get the compact id.
ServiceHandle< ITHistSvc > m_thistSvc
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
int phi_module(const Identifier &id) const
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
StringProperty m_ntupleDirName
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
HepMC::ConstGenParticlePtr cptr() const
Dereference.
a link optimized in size for a GenParticle in a McEventCollection
virtual StatusCode finalize() override final
TH1 * m_h_TruthMatchedRDOs
std::vector< unsigned long long > * m_sdoID
StringProperty m_ntupleTreeName
std::vector< int > * m_eventIndex
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual StatusCode initialize() override final
SG::ReadHandleKey< McEventCollection > m_inputMcEventCollectionKey
virtual StatusCode execute() override final
std::vector< int > * m_side
const_iterator end() const
return const_iterator for end of container
std::vector< int > * m_layerDisk_sdo
std::vector< int > * m_etaModule
const_iterator begin() const
return const_iterator for first entry
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
bool isValid() const
Validity check.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
std::vector< int > * m_phiModule_sdo
SG::ReadHandleKey< SCT_RDO_Container > m_inputKey
std::vector< int > * m_side_sdo
index_type eventIndex() const
Return the event number of the referenced GenEvent.
const GenParticle * ConstGenParticlePtr
std::vector< int > * m_barrelEndcap
double charge(const T &p)
int layer_disk(const Identifier &id) const
SG::ReadHandleKey< InDetSimDataCollection > m_inputTruthKey
std::vector< int > * m_layerDisk
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
static bool isNoise(const InDetSimData &sdo)
std::vector< int > * m_etaModule_sdo
std::vector< float > * m_charge
#define ATH_MSG_WARNING(x)
int strip(const Identifier &id) const
int eta_module(const Identifier &id) const
int side(const Identifier &id) const
std::vector< int > * m_strip
std::vector< int > * m_barcode
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
const T * at(size_type n) const
Access an element, as an rvalue.
Handle class for reading from StoreGate.
StringProperty m_ntupleFileName
std::vector< bool > * m_belowThresh
size_type size() const noexcept
Returns the number of elements in the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
static bool isBelowThreshold(const InDetSimData &sdo)
std::vector< int > * m_sdoWord
std::vector< std::vector< float > > * m_charge_vec
std::vector< std::vector< int > > * m_eventIndex_vec