ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/interface/HitPatternReader.h
Revision: 1.1
Committed: Thu Oct 16 16:17:17 2008 UTC (16 years, 6 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_008pre2, Mit_008pre1, Mit_006b, Mit_006a, Mit_006, Mit_005
Log Message:
Moved HitPattern parsing to a seperate class with more checks and now compatible with fixed hit layer mask format

File Contents

# User Rev Content
1 bendavid 1.1 //--------------------------------------------------------------------------------------------------
2     // $Id: FillerTracks.h,v 1.16 2008/10/13 10:41:36 bendavid Exp $
3     //
4     // HitPatternReader
5     //
6     // Helper class to translate track hits from the format they are stored in within reco::HitPattern
7     // to the corresponding mithep::Track::EHitLayer
8     //
9     // Authors: J.Bendavid
10     //--------------------------------------------------------------------------------------------------
11    
12     #ifndef MITPROD_TREEFILLER_HITPATTERNREADER_H
13     #define MITPROD_TREEFILLER_HITPATTERNREADER_H
14    
15     #include <map>
16     #include "FWCore/MessageLogger/interface/MessageLogger.h"
17     #include "MitAna/DataTree/interface/Track.h"
18    
19    
20     namespace mithep
21     {
22     class HitPatternReader
23     {
24     public:
25     HitPatternReader() : layerMask_(0xFFFFFFFC) { InitLayerMap(); }
26     virtual ~HitPatternReader() { layerMap_.clear(); }
27    
28     mithep::Track::EHitLayer Layer(const uint32_t &hit) const;
29    
30     protected:
31     void InitLayerMap();
32    
33     const uint32_t layerMask_; //needed for bitwise operations
34     std::map<uint32_t,mithep::Track::EHitLayer> layerMap_; //hitlayer bitmap map
35    
36     };
37     }
38    
39     //--------------------------------------------------------------------------------------------------
40     inline mithep::Track::EHitLayer mithep::HitPatternReader::Layer(const uint32_t &hit) const
41     {
42     std::map<uint32_t,mithep::Track::EHitLayer>::const_iterator iter
43     = layerMap_.find(hit & layerMask_);
44    
45     if (iter != layerMap_.end())
46     return iter->second;
47     else throw edm::Exception(edm::errors::Configuration, "HitPatternReader::Layer()\n")
48     << "Error! Layer not found corresponding to hit pattern (" << hit << "." << std::endl;
49     }
50     #endif