Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:12

0001 #ifndef __L1Analysis_L1AnalysisRecoMuonDataFormat_H__
0002 #define __L1Analysis_L1AnalysisRecoMuonDataFormat_H__
0003 
0004 //-------------------------------------------------------------------------------
0005 // Created 20/04/2010 - E. Conte, A.C. Le Bihan
0006 //
0007 //
0008 // Original code : L1Trigger/L1TNtuples/L1RecoMuonDataFormatProducer - Luigi Guiducci
0009 //-------------------------------------------------------------------------------
0010 
0011 #include <vector>
0012 
0013 namespace L1Analysis {
0014   struct L1AnalysisRecoMuonDataFormat {
0015     L1AnalysisRecoMuonDataFormat() { Reset(); };
0016     ~L1AnalysisRecoMuonDataFormat() { Reset(); };
0017 
0018     void Reset() {
0019       nMuons = 0;
0020 
0021       // what muon kind? 0=global 1=SA 2=trackeronly
0022       type.clear();
0023       howmanytypes.clear();
0024       // global muons quantities
0025       ch.clear();
0026       pt.clear();
0027       p.clear();
0028       eta.clear();
0029       phi.clear();
0030       validhits.clear();
0031       numberOfMatchedStations.clear();
0032       numberOfValidMuonHits.clear();
0033       normchi2.clear();
0034       imp_point_x.clear();
0035       imp_point_y.clear();
0036       imp_point_z.clear();
0037       imp_point_p.clear();
0038       imp_point_pt.clear();
0039       phi_hb.clear();
0040       z_hb.clear();
0041       r_he_p.clear();
0042       r_he_n.clear();
0043       phi_he_p.clear();
0044       phi_he_n.clear();
0045 
0046       // tracker muons quantities
0047       tr_ch.clear();
0048       tr_pt.clear();
0049       tr_p.clear();
0050       tr_eta.clear();
0051       tr_phi.clear();
0052       tr_validhits.clear();
0053       tr_validpixhits.clear();
0054       tr_normchi2.clear();
0055       tr_d0.clear();
0056       tr_imp_point_x.clear();
0057       tr_imp_point_y.clear();
0058       tr_imp_point_z.clear();
0059       tr_imp_point_p.clear();
0060       tr_imp_point_pt.clear();
0061 
0062       tr_z_mb2.clear();
0063       tr_phi_mb2.clear();
0064       tr_r_me2_p.clear();
0065       tr_phi_me2_p.clear();
0066       tr_r_me2_n.clear();
0067       tr_phi_me2_n.clear();
0068 
0069       tr_z_mb1.clear();
0070       tr_phi_mb1.clear();
0071       tr_r_me1_p.clear();
0072       tr_phi_me1_p.clear();
0073       tr_r_me1_n.clear();
0074       tr_phi_me1_n.clear();
0075 
0076       // standalone muons (either part of global or SA only)
0077       sa_phi_mb2.clear();
0078       sa_z_mb2.clear();
0079       sa_pseta.clear();
0080       sa_normchi2.clear();
0081       sa_validhits.clear();
0082       sa_ch.clear();
0083       sa_pt.clear();
0084       sa_p.clear();
0085       sa_eta.clear();
0086       sa_phi.clear();
0087       sa_outer_pt.clear();
0088       sa_inner_pt.clear();
0089       sa_outer_eta.clear();
0090       sa_inner_eta.clear();
0091       sa_outer_phi.clear();
0092       sa_inner_phi.clear();
0093       sa_outer_x.clear();
0094       sa_outer_y.clear();
0095       sa_outer_z.clear();
0096       sa_inner_x.clear();
0097       sa_inner_y.clear();
0098       sa_inner_z.clear();
0099       sa_imp_point_x.clear();
0100       sa_imp_point_y.clear();
0101       sa_imp_point_z.clear();
0102       sa_imp_point_p.clear();
0103       sa_imp_point_pt.clear();
0104       sa_phi_hb.clear();
0105       sa_z_hb.clear();
0106       sa_r_he_p.clear();
0107       sa_r_he_n.clear();
0108       sa_phi_he_p.clear();
0109       sa_phi_he_n.clear();
0110       sa_phi_me2_p.clear();
0111       sa_phi_me2_n.clear();
0112       sa_r_me2_p.clear();
0113       sa_r_me2_n.clear();
0114 
0115       sa_z_mb1.clear();
0116       sa_phi_mb1.clear();
0117       sa_r_me1_p.clear();
0118       sa_phi_me1_p.clear();
0119       sa_r_me1_n.clear();
0120       sa_phi_me1_n.clear();
0121 
0122       calo_energy.clear();
0123       calo_energy3x3.clear();
0124       ecal_time.clear();
0125       ecal_terr.clear();
0126       hcal_time.clear();
0127       hcal_terr.clear();
0128       time_dir.clear();  // -1 = outsideIn 0=undefined 1=insideOut
0129       time_inout.clear();
0130       time_inout_err.clear();
0131       time_outin.clear();
0132       time_outin_err.clear();
0133 
0134       sa_nChambers.clear();
0135       sa_nMatches.clear();
0136 
0137       // RECHIT information from CSC: only for standalone/global muons!
0138       rchCSCtype.clear();
0139       rchPhi.clear();
0140       rchEta.clear();
0141 
0142       // Trigger matching information:
0143       hlt_isomu.clear();
0144       hlt_mu.clear();
0145       hlt_isoDeltaR.clear();
0146       hlt_deltaR.clear();
0147     }
0148 
0149     // how many muons of any kind
0150     int nMuons;
0151 
0152     // what muon kind? 0=global 1=SA 2=trackeronly 3=trsa
0153     std::vector<int> type;
0154     std::vector<int> howmanytypes;
0155     // global muons quantities
0156     std::vector<double> ch;
0157     std::vector<double> pt;
0158     std::vector<double> p;
0159     std::vector<double> eta;
0160     std::vector<double> phi;
0161     std::vector<double> validhits;
0162     std::vector<double> numberOfMatchedStations;
0163     std::vector<double> numberOfValidMuonHits;
0164     std::vector<double> normchi2;
0165     std::vector<double> imp_point_x;
0166     std::vector<double> imp_point_y;
0167     std::vector<double> imp_point_z;
0168     std::vector<double> imp_point_p;
0169     std::vector<double> imp_point_pt;
0170     std::vector<double> phi_hb;
0171     std::vector<double> z_hb;
0172     std::vector<double> r_he_p;
0173     std::vector<double> r_he_n;
0174     std::vector<double> phi_he_p;
0175     std::vector<double> phi_he_n;
0176 
0177     // tracker muons quantities
0178     std::vector<double> tr_ch;
0179     std::vector<double> tr_pt;
0180     std::vector<double> tr_p;
0181     std::vector<double> tr_eta;
0182     std::vector<double> tr_phi;
0183     std::vector<double> tr_validhits;
0184     std::vector<double> tr_validpixhits;
0185     std::vector<double> tr_normchi2;
0186     std::vector<double> tr_d0;
0187     std::vector<double> tr_imp_point_x;
0188     std::vector<double> tr_imp_point_y;
0189     std::vector<double> tr_imp_point_z;
0190     std::vector<double> tr_imp_point_p;
0191     std::vector<double> tr_imp_point_pt;
0192 
0193     std::vector<double> tr_z_mb2;
0194     std::vector<double> tr_phi_mb2;
0195     std::vector<double> tr_r_me2_p;
0196     std::vector<double> tr_phi_me2_p;
0197     std::vector<double> tr_r_me2_n;
0198     std::vector<double> tr_phi_me2_n;
0199 
0200     std::vector<double> tr_z_mb1;
0201     std::vector<double> tr_phi_mb1;
0202     std::vector<double> tr_r_me1_p;
0203     std::vector<double> tr_phi_me1_p;
0204     std::vector<double> tr_r_me1_n;
0205     std::vector<double> tr_phi_me1_n;
0206 
0207     // standalone muons (either part of global or SA only)
0208     std::vector<double> sa_phi_mb2;
0209     std::vector<double> sa_z_mb2;
0210     std::vector<double> sa_pseta;
0211     std::vector<double> sa_normchi2;
0212     std::vector<double> sa_validhits;
0213     std::vector<double> sa_ch;
0214     std::vector<double> sa_pt;
0215     std::vector<double> sa_p;
0216     std::vector<double> sa_eta;
0217     std::vector<double> sa_phi;
0218     std::vector<double> sa_outer_pt;
0219     std::vector<double> sa_inner_pt;
0220     std::vector<double> sa_outer_eta;
0221     std::vector<double> sa_inner_eta;
0222     std::vector<double> sa_outer_phi;
0223     std::vector<double> sa_inner_phi;
0224     std::vector<double> sa_outer_x;
0225     std::vector<double> sa_outer_y;
0226     std::vector<double> sa_outer_z;
0227     std::vector<double> sa_inner_x;
0228     std::vector<double> sa_inner_y;
0229     std::vector<double> sa_inner_z;
0230     std::vector<double> sa_imp_point_x;
0231     std::vector<double> sa_imp_point_y;
0232     std::vector<double> sa_imp_point_z;
0233     std::vector<double> sa_imp_point_p;
0234     std::vector<double> sa_imp_point_pt;
0235     std::vector<double> sa_phi_hb;
0236     std::vector<double> sa_z_hb;
0237     std::vector<double> sa_r_he_p;
0238     std::vector<double> sa_r_he_n;
0239     std::vector<double> sa_phi_he_p;
0240     std::vector<double> sa_phi_he_n;
0241     std::vector<double> sa_r_me2_p;
0242     std::vector<double> sa_r_me2_n;
0243     std::vector<double> sa_phi_me2_p;
0244     std::vector<double> sa_phi_me2_n;
0245 
0246     std::vector<double> sa_z_mb1;
0247     std::vector<double> sa_phi_mb1;
0248     std::vector<double> sa_r_me1_p;
0249     std::vector<double> sa_phi_me1_p;
0250     std::vector<double> sa_r_me1_n;
0251     std::vector<double> sa_phi_me1_n;
0252 
0253     std::vector<double> calo_energy;
0254     std::vector<double> calo_energy3x3;
0255     std::vector<double> ecal_time;
0256     std::vector<double> ecal_terr;
0257     std::vector<double> hcal_time;
0258     std::vector<double> hcal_terr;
0259 
0260     std::vector<double> time_dir;  // -1 = outsideIn ; 0=undefined; 1=insideOut
0261     std::vector<double> time_inout;
0262     std::vector<double> time_inout_err;
0263     std::vector<double> time_outin;
0264     std::vector<double> time_outin_err;
0265 
0266     std::vector<int> sa_nChambers;
0267     std::vector<int> sa_nMatches;
0268 
0269     // RECHIT information from CSC: only for standalone/global muons!
0270     std::vector<int> rchCSCtype;
0271     std::vector<double> rchPhi;
0272     std::vector<double> rchEta;
0273 
0274     // Trigger matching information:
0275     std::vector<int> hlt_isomu;
0276     std::vector<int> hlt_mu;
0277     std::vector<double> hlt_isoDeltaR;
0278     std::vector<double> hlt_deltaR;
0279   };
0280 }  // namespace L1Analysis
0281 #endif