CMS 3D CMS Logo

GEMTrackMatch.h
Go to the documentation of this file.
1 #ifndef Validation_MuonGEMHits_GEMTrackMatch_H
2 #define Validation_MuonGEMHits_GEMTrackMatch_H
3 
7 
9 
15 
24 
25 struct MySimTrack
26 {
27  Float_t pt, eta, phi;
34  bool gem_sh[3][2] ;
35  bool gem_dg[3][2] ;
36  bool gem_pad[3][2] ;
37  bool gem_rh[3][2] ;
38  bool hitOdd[3];
39  bool hitEven[3];
40 };
41 
43 {
44 public:
45  explicit GEMTrackMatch( const edm::ParameterSet& cfg);
46  ~GEMTrackMatch() override;
47  void analyze(const edm::Event& e, const edm::EventSetup&) override = 0 ;
48 
49  void buildLUT(const int maxChamberId);
50  std::pair<int,int> getClosestChambers(const int maxChamberId, int region, float phi);
51  std::pair<double, double> getEtaRangeForPhi( int station );
52  bool isSimTrackGood(const SimTrack& );
53  void setGeometry(const GEMGeometry& geom);
54  std::pair<double,double> getEtaRange(int station, int chamber ) ;
55 
56  void FillWithTrigger( MonitorElement* me[3], Float_t eta);
57  void FillWithTrigger( MonitorElement* me[3][3], Float_t eta, Float_t phi, bool odd[3], bool even[3]);
58  void FillWithTrigger( MonitorElement* me[4][3], bool array[3][2], Float_t value);
59  void FillWithTrigger( MonitorElement* me[4][3][3], bool array[3][2], Float_t eta, Float_t phi, bool odd[3], bool even[3]);
60 
61 
62  protected:
67 
68  std::pair<std::vector<float>,std::vector<int> > positiveLUT_;
69  std::pair<std::vector<float>,std::vector<int> > negativeLUT_;
70 
71  std::vector< double > etaRangeForPhi;
72 
73 
74  float minPt_;
75  float minEta_;
76  float maxEta_;
77  float radiusCenter_, chamberHeight_;
78  int useRoll_;
80  unsigned int nstation;
82 };
83 
84 #endif
Char_t gem_sh_layer1
Definition: GEMTrackMatch.h:28
float radiusCenter_
Definition: GEMTrackMatch.h:77
unsigned int nstation
Definition: GEMTrackMatch.h:80
virtual example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
Char_t has_gem_pad_l1
Definition: GEMTrackMatch.h:32
edm::ParameterSet cfg_
Definition: GEMTrackMatch.h:63
edm::EDGetToken simHitsToken_
Definition: GEMTrackMatch.h:64
edm::EDGetToken simVerticesToken_
Definition: GEMTrackMatch.h:66
Char_t has_gem_dg_l2
Definition: GEMTrackMatch.h:31
Char_t has_gem_sh_l1
Definition: GEMTrackMatch.h:33
std::pair< std::vector< float >, std::vector< int > > negativeLUT_
Definition: GEMTrackMatch.h:69
bool hitOdd[3]
Definition: GEMTrackMatch.h:38
Char_t has_gem_dg_l1
Definition: GEMTrackMatch.h:31
std::vector< double > etaRangeForPhi
Definition: GEMTrackMatch.h:71
Char_t gem_pad_layer2
Definition: GEMTrackMatch.h:30
Char_t gem_dg_layer2
Definition: GEMTrackMatch.h:29
Float_t eta
Definition: GEMTrackMatch.h:27
Char_t has_gem_sh_l2
Definition: GEMTrackMatch.h:33
edm::EDGetToken simTracksToken_
Definition: GEMTrackMatch.h:65
Char_t has_gem_pad_l2
Definition: GEMTrackMatch.h:32
Char_t gem_sh_layer2
Definition: GEMTrackMatch.h:28
void setGeometry(CaloGeometry const *)
bool gem_dg[3][2]
Definition: GEMTrackMatch.h:35
Char_t gem_pad_layer1
Definition: GEMTrackMatch.h:30
Definition: value.py:1
bool hitEven[3]
Definition: GEMTrackMatch.h:39
Float_t pt
Definition: GEMTrackMatch.h:27
bool gem_pad[3][2]
Definition: GEMTrackMatch.h:36
const GEMGeometry * gem_geom_
Definition: GEMTrackMatch.h:79
Char_t gem_dg_layer1
Definition: GEMTrackMatch.h:29
std::pair< std::vector< float >, std::vector< int > > positiveLUT_
Definition: GEMTrackMatch.h:68
Float_t phi
Definition: GEMTrackMatch.h:27
bool gem_rh[3][2]
Definition: GEMTrackMatch.h:37
bool gem_sh[3][2]
Definition: GEMTrackMatch.h:34