Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:11

0001 #ifndef RecoMuon_MuonSeedParameterHisto_H
0002 #define RecoMuon_MuonSeedParameterHisto_H
0003 
0004 /** \class SeedParameterHisto
0005  *  Collection of histograms for SeedGenerator test.
0006  *
0007  * Author: S.C. Kao  - UC Riverside
0008  */
0009 
0010 #include "TH1F.h"
0011 #include "TH2F.h"
0012 #include "TFile.h"
0013 #include "TString.h"
0014 #include <string>
0015 #include <iostream>
0016 
0017 class H2DRecHit1 {
0018 public:
0019   H2DRecHit1(std::string name_) {
0020     TString N1 = name_.c_str();
0021     name = N1;
0022     hcsc_dt = new TH2F(N1 + "_hcsc_dt", " CSC Seg vs DT Seg ", 20, -0.25, 9.75, 20, -0.25, 9.75);
0023     heta_csc = new TH2F(N1 + "_heta_csc", " CSC Seg vs eta ", 180, 0.7, 2.5, 20, -0.25, 9.75);
0024     heta_dt = new TH2F(N1 + "_heta_dt", " DT  Seg vs eta ", 130, 0.0, 1.3, 20, -0.25, 9.75);
0025     heta_mu = new TH2F(N1 + "_heta_mu", " All Seg vs eta ", 300, 0.0, 3.0, 20, -0.25, 9.75);
0026     heta_mu1 = new TH2F(N1 + "_heta_mu1", " All Seg vs eta from track", 300, 0.0, 3.0, 20, -0.25, 9.75);
0027     heta_mu2 = new TH2F(N1 + "_heta_mu2", " All Seg vs eta from simseg", 300, 0.0, 3.0, 20, -0.25, 9.75);
0028 
0029     heta_eta = new TH2F(N1 + "_heta_eta", " eta_simhits vs eta_track", 300, 0.0, 3.0, 300, 0.0, 3.0);
0030 
0031     heta_rh = new TH2F(N1 + "_heta_rh", " All rechits vs eta ", 250, 0.0, 2.5, 20, -0.25, 9.75);
0032     heta_cscrh = new TH2F(N1 + "_heta_cscrh", " csc rechits vs eta ", 250, 0.0, 2.5, 20, -0.25, 9.75);
0033     heta_dtrh = new TH2F(N1 + "_heta_dtrh", " dt  rechits vs eta ", 250, 0.0, 2.5, 20, -0.25, 9.75);
0034     heta_trk = new TH1F(N1 + "_heta_trk", " eta from track", 300, 0.0, 3.0);
0035 
0036     heta_nSeg_seed = new TH2F(N1 + "_heta_nSeg_seed", " eta vs nSeg from rec seed", 300, 0.0, 3., 20, -0.25, 9.75);
0037 
0038     heta_ptLossC1 = new TH2F(N1 + "_heta_ptLossC1", "CSC eta vs ptLoss at layer1", 18, 0.7, 2.5, 60, 0.5, 1.1);
0039     heta_ptLossC2 = new TH2F(N1 + "_heta_ptLossC2", "CSC eta vs ptLoss at layer2", 18, 0.7, 2.5, 60, 0.5, 1.1);
0040     heta_ptLossC3 = new TH2F(N1 + "_heta_ptLossC3", "CSC eta vs ptLoss at layer3", 18, 0.7, 2.5, 60, 0.5, 1.1);
0041     heta_ptLossC4 = new TH2F(N1 + "_heta_ptLossC4", "CSC eta vs ptLoss at layer4", 18, 0.7, 2.5, 60, 0.5, 1.1);
0042 
0043     heta_ptLossD1 = new TH2F(N1 + "_heta_ptLossD1", "DT eta vs ptLoss at layer1", 13, 0., 1.3, 60, 0.5, 1.1);
0044     heta_ptLossD2 = new TH2F(N1 + "_heta_ptLossD2", "DT eta vs ptLoss at layer2", 13, 0., 1.3, 60, 0.5, 1.1);
0045     heta_ptLossD3 = new TH2F(N1 + "_heta_ptLossD3", "DT eta vs ptLoss at layer3", 13, 0., 1.3, 60, 0.5, 1.1);
0046     heta_ptLossD4 = new TH2F(N1 + "_heta_ptLossD4", "DT eta vs ptLoss at layer4", 13, 0., 1.3, 60, 0.5, 1.1);
0047 
0048     hpt_ptLossC2 = new TH2F(N1 + "_hpt_ptLossC2", "CSC pt vs ptLoss at layer2", 250, 0., 250., 80, 0.3, 1.1);
0049     hpt_ptLossD1 = new TH2F(N1 + "_hpt_ptLossD1", "DT pt vs ptLoss at layer1", 250, 0., 250., 80, 0.3, 1.1);
0050   }
0051 
0052   H2DRecHit1(TString name_, TFile *file) {
0053     name = name_;
0054     hcsc_dt = (TH2F *)file->Get(name + "_hcsc_dt");
0055     heta_csc = (TH2F *)file->Get(name + "_heta_csc");
0056     heta_dt = (TH2F *)file->Get(name + "_heta_dt");
0057     heta_mu = (TH2F *)file->Get(name + "_heta_mu");
0058     heta_mu1 = (TH2F *)file->Get(name + "_heta_mu1");
0059     heta_mu2 = (TH2F *)file->Get(name + "_heta_mu2");
0060 
0061     heta_eta = (TH2F *)file->Get(name + "_heta_eta");
0062 
0063     heta_rh = (TH2F *)file->Get(name + "_heta_rh");
0064     heta_cscrh = (TH2F *)file->Get(name + "_heta_cscrh");
0065     heta_dtrh = (TH2F *)file->Get(name + "_heta_dtrh");
0066     heta_trk = (TH1F *)file->Get(name + "_heta_trk");
0067 
0068     heta_nSeg_seed = (TH2F *)file->Get(name + "_heta_nSeg_seed");
0069 
0070     heta_ptLossC1 = (TH2F *)file->Get(name + "_heta_ptLossC1");
0071     heta_ptLossC2 = (TH2F *)file->Get(name + "_heta_ptLossC2");
0072     heta_ptLossC3 = (TH2F *)file->Get(name + "_heta_ptLossC3");
0073     heta_ptLossC4 = (TH2F *)file->Get(name + "_heta_ptLossC4");
0074 
0075     heta_ptLossD1 = (TH2F *)file->Get(name + "_heta_ptLossD1");
0076     heta_ptLossD2 = (TH2F *)file->Get(name + "_heta_ptLossD2");
0077     heta_ptLossD3 = (TH2F *)file->Get(name + "_heta_ptLossD3");
0078     heta_ptLossD4 = (TH2F *)file->Get(name + "_heta_ptLossD4");
0079 
0080     hpt_ptLossC2 = (TH2F *)file->Get(name + "_hpt_ptLossC2");
0081     hpt_ptLossD1 = (TH2F *)file->Get(name + "_hpt_ptLossD1");
0082   }
0083 
0084   /// Destructor
0085   virtual ~H2DRecHit1() {
0086     delete hcsc_dt;
0087     delete heta_csc;
0088     delete heta_dt;
0089     delete heta_mu;
0090     delete heta_mu1;
0091     delete heta_mu2;
0092 
0093     delete heta_eta;
0094 
0095     delete heta_rh;
0096     delete heta_cscrh;
0097     delete heta_dtrh;
0098     delete heta_trk;
0099 
0100     delete heta_nSeg_seed;
0101 
0102     delete heta_ptLossC1;
0103     delete heta_ptLossC2;
0104     delete heta_ptLossC3;
0105     delete heta_ptLossC4;
0106 
0107     delete heta_ptLossD1;
0108     delete heta_ptLossD2;
0109     delete heta_ptLossD3;
0110     delete heta_ptLossD4;
0111 
0112     delete hpt_ptLossC2;
0113     delete hpt_ptLossD1;
0114   }
0115 
0116   void Fill1(int csc_nu, int dt_nu, int all_nu, double eta_c, double eta_d, double eta_a, double eta_trk) {
0117     hcsc_dt->Fill(csc_nu, dt_nu);
0118     heta_csc->Fill(eta_c, csc_nu);
0119     heta_dt->Fill(eta_d, dt_nu);
0120     heta_mu->Fill(eta_a, all_nu);
0121     heta_mu1->Fill(eta_trk, all_nu);
0122     heta_trk->Fill(eta_trk);
0123     heta_eta->Fill(eta_a, eta_trk);
0124   }
0125   void Fill1a(double eta_a, int rh_nu, int cscrh_nu, int dtrh_nu) {
0126     heta_rh->Fill(eta_a, rh_nu);
0127     heta_cscrh->Fill(eta_a, cscrh_nu);
0128     heta_dtrh->Fill(eta_a, dtrh_nu);
0129   }
0130   void Fill1b(int sim_nu, double eta_sim) { heta_mu2->Fill(eta_sim, sim_nu); }
0131 
0132   void Fill1c1(double eta, double ptloss) { heta_ptLossC1->Fill(eta, ptloss); }
0133   void Fill1c2(double eta, double ptloss, double pt) {
0134     heta_ptLossC2->Fill(eta, ptloss);
0135     hpt_ptLossC2->Fill(pt, ptloss);
0136   }
0137   void Fill1c3(double eta, double ptloss) { heta_ptLossC3->Fill(eta, ptloss); }
0138   void Fill1c4(double eta, double ptloss) { heta_ptLossC4->Fill(eta, ptloss); }
0139   void Fill1d1(double eta, double ptloss, double pt) {
0140     heta_ptLossD1->Fill(eta, ptloss);
0141     hpt_ptLossD1->Fill(pt, ptloss);
0142   }
0143   void Fill1d2(double eta, double ptloss) { heta_ptLossD2->Fill(eta, ptloss); }
0144   void Fill1d3(double eta, double ptloss) { heta_ptLossD3->Fill(eta, ptloss); }
0145   void Fill1d4(double eta, double ptloss) { heta_ptLossD4->Fill(eta, ptloss); }
0146 
0147   void Fill1h(int nSeg_seed, float eta_seed) { heta_nSeg_seed->Fill(eta_seed, nSeg_seed); }
0148 
0149   void Write() {
0150     hcsc_dt->Write();
0151     heta_csc->Write();
0152     heta_dt->Write();
0153     heta_mu->Write();
0154     heta_mu1->Write();
0155     heta_mu2->Write();
0156 
0157     heta_eta->Write();
0158 
0159     heta_rh->Write();
0160     heta_cscrh->Write();
0161     heta_dtrh->Write();
0162     heta_trk->Write();
0163 
0164     heta_nSeg_seed->Write();
0165 
0166     heta_ptLossC1->Write();
0167     heta_ptLossC2->Write();
0168     heta_ptLossC3->Write();
0169     heta_ptLossC4->Write();
0170 
0171     heta_ptLossD1->Write();
0172     heta_ptLossD2->Write();
0173     heta_ptLossD3->Write();
0174     heta_ptLossD4->Write();
0175 
0176     hpt_ptLossC2->Write();
0177     hpt_ptLossD1->Write();
0178   }
0179 
0180   TH2F *hcsc_dt;
0181   TH2F *heta_csc;
0182   TH2F *heta_dt;
0183   TH2F *heta_mu;
0184   TH2F *heta_mu1;
0185   TH2F *heta_mu2;
0186 
0187   TH2F *heta_eta;
0188 
0189   TH2F *heta_rh;
0190   TH2F *heta_cscrh;
0191   TH2F *heta_dtrh;
0192   TH1F *heta_trk;
0193 
0194   TH2F *heta_nSeg_seed;
0195 
0196   TH2F *heta_ptLossC1;
0197   TH2F *heta_ptLossC2;
0198   TH2F *heta_ptLossC3;
0199   TH2F *heta_ptLossC4;
0200 
0201   TH2F *heta_ptLossD1;
0202   TH2F *heta_ptLossD2;
0203   TH2F *heta_ptLossD3;
0204   TH2F *heta_ptLossD4;
0205 
0206   TH2F *hpt_ptLossC2;
0207   TH2F *hpt_ptLossD1;
0208 
0209   TString name;
0210 };
0211 
0212 // For all CSC
0213 class H2DRecHit2 {
0214 public:
0215   H2DRecHit2(std::string name_) {
0216     TString N2 = name_.c_str();
0217     name = N2;
0218 
0219     hPt = new TH1F(N2 + "_hPt", " Pt of Tracks ", 100, 5., 205.);
0220     hPa_Pt = new TH2F(N2 + "_hPa_Pt", "P vs Pt", 50, 5., 205., 100, 0., 1000.);
0221     hPt_CSCSeg = new TH2F(N2 + "_hPt_CSCSeg", "Pt vs total CSC segments number", 40, 5., 205., 40, -0.25, 19.75);
0222     hst_csc_nu = new TH2F(N2 + "_hst_csc_nu", "station vs csc seg number", 6, 0, 6, 20, -0.25, 9.75);
0223     hst_csc_nu1 = new TH2F(N2 + "_hst_csc_nu1", "station vs csc seg number w/ > 5 hits seg", 6, 0, 6, 20, -0.25, 9.75);
0224     hChi2_d_Dof = new TH1F(N2 + "_hChi2_d_Dof", " chi2/dof ", 5000, 0., 50.);
0225 
0226     eta_dphi01 = new TH2F(N2 + "01_eta_dphi", "eta vs dphi01", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0227     eta_dphi12 = new TH2F(N2 + "12_eta_dphi", "eta vs dphi12", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0228     eta_dphi13 = new TH2F(N2 + "13_eta_dphi", "eta vs dphi13", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0229     eta_dphi14 = new TH2F(N2 + "14_eta_dphi", "eta vs dphi14", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0230     eta_dphi23 = new TH2F(N2 + "23_eta_dphi", "eta vs dphi23", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0231     eta_dphi24 = new TH2F(N2 + "24_eta_dphi", "eta vs dphi24", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0232     eta_dphi34 = new TH2F(N2 + "34_eta_dphi", "eta vs dphi34", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0233 
0234     eta_rdphi01 = new TH2F(N2 + "01_eta_rdphi", "eta vs rdphi01", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0235     eta_rdphi12 = new TH2F(N2 + "12_eta_rdphi", "eta vs rdphi12", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0236     eta_rdphi13 = new TH2F(N2 + "13_eta_rdphi", "eta vs rdphi13", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0237     eta_rdphi14 = new TH2F(N2 + "14_eta_rdphi", "eta vs rdphi14", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0238     eta_rdphi23 = new TH2F(N2 + "23_eta_rdphi", "eta vs rdphi23", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0239     eta_rdphi24 = new TH2F(N2 + "24_eta_rdphi", "eta vs rdphi24", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0240     eta_rdphi34 = new TH2F(N2 + "34_eta_rdphi", "eta vs rdphi34", 180, 0.9, 2.7, 2000, -0.2, 0.2);
0241 
0242     eta_dphiPt01 = new TH2F(N2 + "01_eta_dphiPt", "eta vs dphi*Pt01", 180, 0.9, 2.7, 600, -3., 3.);
0243     eta_dphiPt12 = new TH2F(N2 + "12_eta_dphiPt", "eta vs dphi*Pt12", 180, 0.9, 2.7, 600, -3., 3.);
0244     eta_dphiPt13 = new TH2F(N2 + "13_eta_dphiPt", "eta vs dphi*Pt13", 180, 0.9, 2.7, 600, -3., 3.);
0245     eta_dphiPt14 = new TH2F(N2 + "14_eta_dphiPt", "eta vs dphi*Pt14", 180, 0.9, 2.7, 600, -3., 3.);
0246     eta_dphiPt23 = new TH2F(N2 + "23_eta_dphiPt", "eta vs dphi*Pt23", 180, 0.9, 2.7, 600, -3., 3.);
0247     eta_dphiPt24 = new TH2F(N2 + "24_eta_dphiPt", "eta vs dphi*Pt24", 180, 0.9, 2.7, 600, -3., 3.);
0248     eta_dphiPt34 = new TH2F(N2 + "34_eta_dphiPt", "eta vs dphi*Pt34", 180, 0.9, 2.7, 600, -3., 3.);
0249 
0250     eta_rdphiPt01 = new TH2F(N2 + "01_eta_rdphiPt", "eta vs rdphi*Pt01", 180, 0.9, 2.7, 600, -3., 3.);
0251     eta_rdphiPt12 = new TH2F(N2 + "12_eta_rdphiPt", "eta vs rdphi*Pt12", 180, 0.9, 2.7, 600, -3., 3.);
0252     eta_rdphiPt13 = new TH2F(N2 + "13_eta_rdphiPt", "eta vs rdphi*Pt13", 180, 0.9, 2.7, 600, -3., 3.);
0253     eta_rdphiPt14 = new TH2F(N2 + "14_eta_rdphiPt", "eta vs rdphi*Pt14", 180, 0.9, 2.7, 600, -3., 3.);
0254     eta_rdphiPt23 = new TH2F(N2 + "23_eta_rdphiPt", "eta vs rdphi*Pt23", 180, 0.9, 2.7, 600, -3., 3.);
0255     eta_rdphiPt24 = new TH2F(N2 + "24_eta_rdphiPt", "eta vs rdphi*Pt24", 180, 0.9, 2.7, 600, -3., 3.);
0256     eta_rdphiPt34 = new TH2F(N2 + "34_eta_rdphiPt", "eta vs rdphi*Pt34", 180, 0.9, 2.7, 600, -3., 3.);
0257   }
0258 
0259   H2DRecHit2(TString name_, TFile *file) {
0260     name = name_;
0261 
0262     hPt = (TH1F *)file->Get(name + "_hPt");
0263     hPa_Pt = (TH2F *)file->Get(name + "_hPa_Pt");
0264     hPt_CSCSeg = (TH2F *)file->Get(name + "_hPt_CSCSeg");
0265     hst_csc_nu = (TH2F *)file->Get(name + "_hst_csc_nu");
0266     hst_csc_nu1 = (TH2F *)file->Get(name + "_hst_csc_nu1");
0267     hChi2_d_Dof = (TH1F *)file->Get(name + "_hChi2_d_Dof");
0268 
0269     eta_dphi01 = (TH2F *)file->Get(name + "01_eta_dphi");
0270     eta_dphi12 = (TH2F *)file->Get(name + "12_eta_dphi");
0271     eta_dphi13 = (TH2F *)file->Get(name + "13_eta_dphi");
0272     eta_dphi14 = (TH2F *)file->Get(name + "14_eta_dphi");
0273     eta_dphi23 = (TH2F *)file->Get(name + "23_eta_dphi");
0274     eta_dphi24 = (TH2F *)file->Get(name + "24_eta_dphi");
0275     eta_dphi34 = (TH2F *)file->Get(name + "34_eta_dphi");
0276 
0277     eta_rdphi01 = (TH2F *)file->Get(name + "01_eta_rdphi");
0278     eta_rdphi12 = (TH2F *)file->Get(name + "12_eta_rdphi");
0279     eta_rdphi13 = (TH2F *)file->Get(name + "13_eta_rdphi");
0280     eta_rdphi14 = (TH2F *)file->Get(name + "14_eta_rdphi");
0281     eta_rdphi23 = (TH2F *)file->Get(name + "23_eta_rdphi");
0282     eta_rdphi24 = (TH2F *)file->Get(name + "24_eta_rdphi");
0283     eta_rdphi34 = (TH2F *)file->Get(name + "34_eta_rdphi");
0284 
0285     eta_dphiPt01 = (TH2F *)file->Get(name + "01_eta_dphiPt");
0286     eta_dphiPt12 = (TH2F *)file->Get(name + "12_eta_dphiPt");
0287     eta_dphiPt13 = (TH2F *)file->Get(name + "13_eta_dphiPt");
0288     eta_dphiPt14 = (TH2F *)file->Get(name + "14_eta_dphiPt");
0289     eta_dphiPt23 = (TH2F *)file->Get(name + "23_eta_dphiPt");
0290     eta_dphiPt24 = (TH2F *)file->Get(name + "24_eta_dphiPt");
0291     eta_dphiPt34 = (TH2F *)file->Get(name + "34_eta_dphiPt");
0292 
0293     eta_rdphiPt01 = (TH2F *)file->Get(name + "01_eta_rdphiPt");
0294     eta_rdphiPt12 = (TH2F *)file->Get(name + "12_eta_rdphiPt");
0295     eta_rdphiPt13 = (TH2F *)file->Get(name + "13_eta_rdphiPt");
0296     eta_rdphiPt14 = (TH2F *)file->Get(name + "14_eta_rdphiPt");
0297     eta_rdphiPt23 = (TH2F *)file->Get(name + "23_eta_rdphiPt");
0298     eta_rdphiPt24 = (TH2F *)file->Get(name + "24_eta_rdphiPt");
0299     eta_rdphiPt34 = (TH2F *)file->Get(name + "43_eta_rdphiPt");
0300   }
0301 
0302   /// Destructor
0303   virtual ~H2DRecHit2() {
0304     delete hPt;
0305     delete hPa_Pt;
0306     delete hPt_CSCSeg;
0307     delete hst_csc_nu;
0308     delete hst_csc_nu1;
0309     delete hChi2_d_Dof;
0310 
0311     delete eta_dphi01;
0312     delete eta_dphi12;
0313     delete eta_dphi13;
0314     delete eta_dphi14;
0315     delete eta_dphi23;
0316     delete eta_dphi24;
0317     delete eta_dphi34;
0318 
0319     delete eta_rdphi01;
0320     delete eta_rdphi12;
0321     delete eta_rdphi13;
0322     delete eta_rdphi14;
0323     delete eta_rdphi23;
0324     delete eta_rdphi24;
0325     delete eta_rdphi34;
0326 
0327     delete eta_dphiPt01;
0328     delete eta_dphiPt12;
0329     delete eta_dphiPt13;
0330     delete eta_dphiPt14;
0331     delete eta_dphiPt23;
0332     delete eta_dphiPt24;
0333     delete eta_dphiPt34;
0334 
0335     delete eta_rdphiPt01;
0336     delete eta_rdphiPt12;
0337     delete eta_rdphiPt13;
0338     delete eta_rdphiPt14;
0339     delete eta_rdphiPt23;
0340     delete eta_rdphiPt24;
0341     delete eta_rdphiPt34;
0342   }
0343 
0344   void Fill3(float Pt, float Pa, int csc_nu) {
0345     hPt->Fill(Pt);
0346     hPa_Pt->Fill(Pt, Pa);
0347     hPt_CSCSeg->Fill(Pt, csc_nu);
0348   }
0349 
0350   void Fill3b(float chi2) { hChi2_d_Dof->Fill(chi2); }
0351 
0352   void Fill4(int k, int csc_nu, int csc_nu1) {
0353     hst_csc_nu->Fill(k, csc_nu);
0354     hst_csc_nu1->Fill(k, csc_nu1);
0355   }
0356 
0357   void Fill5_0(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0358     eta_dphi01->Fill(eta, dphi);
0359     eta_rdphi01->Fill(eta_r, dphir);
0360     eta_dphiPt01->Fill(eta, ptxdphi);
0361     eta_rdphiPt01->Fill(eta_r, ptxdphir);
0362   }
0363   void Fill5_1(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0364     eta_dphi12->Fill(eta, dphi);
0365     eta_rdphi12->Fill(eta_r, dphir);
0366     eta_dphiPt12->Fill(eta, ptxdphi);
0367     eta_rdphiPt12->Fill(eta_r, ptxdphir);
0368   }
0369   void Fill5_2(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0370     eta_dphi13->Fill(eta, dphi);
0371     eta_rdphi13->Fill(eta_r, dphir);
0372     eta_dphiPt13->Fill(eta, ptxdphi);
0373     eta_rdphiPt13->Fill(eta_r, ptxdphir);
0374   }
0375   void Fill5_3(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0376     eta_dphi14->Fill(eta, dphi);
0377     eta_rdphi14->Fill(eta_r, dphir);
0378     eta_dphiPt14->Fill(eta, ptxdphi);
0379     eta_rdphiPt14->Fill(eta_r, ptxdphir);
0380   }
0381   void Fill5_4(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0382     eta_dphi23->Fill(eta, dphi);
0383     eta_rdphi23->Fill(eta_r, dphir);
0384     eta_dphiPt23->Fill(eta, ptxdphi);
0385     eta_rdphiPt23->Fill(eta_r, ptxdphir);
0386   }
0387   void Fill5_5(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0388     eta_dphi24->Fill(eta, dphi);
0389     eta_rdphi24->Fill(eta_r, dphir);
0390     eta_dphiPt24->Fill(eta, ptxdphi);
0391     eta_rdphiPt24->Fill(eta_r, ptxdphir);
0392   }
0393   void Fill5_6(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0394     eta_dphi34->Fill(eta, dphi);
0395     eta_rdphi34->Fill(eta_r, dphir);
0396     eta_dphiPt34->Fill(eta, ptxdphi);
0397     eta_rdphiPt34->Fill(eta_r, ptxdphir);
0398   }
0399 
0400   void Write() {
0401     hPt->Write();
0402     hPa_Pt->Write();
0403     hPt_CSCSeg->Write();
0404     hst_csc_nu->Write();
0405     hst_csc_nu1->Write();
0406     hChi2_d_Dof->Write();
0407 
0408     eta_dphi01->Write();
0409     eta_dphi12->Write();
0410     eta_dphi13->Write();
0411     eta_dphi14->Write();
0412     eta_dphi23->Write();
0413     eta_dphi24->Write();
0414     eta_dphi34->Write();
0415 
0416     eta_rdphi01->Write();
0417     eta_rdphi12->Write();
0418     eta_rdphi13->Write();
0419     eta_rdphi14->Write();
0420     eta_rdphi23->Write();
0421     eta_rdphi24->Write();
0422     eta_rdphi34->Write();
0423 
0424     eta_dphiPt01->Write();
0425     eta_dphiPt12->Write();
0426     eta_dphiPt13->Write();
0427     eta_dphiPt14->Write();
0428     eta_dphiPt23->Write();
0429     eta_dphiPt24->Write();
0430     eta_dphiPt34->Write();
0431 
0432     eta_rdphiPt01->Write();
0433     eta_rdphiPt12->Write();
0434     eta_rdphiPt13->Write();
0435     eta_rdphiPt14->Write();
0436     eta_rdphiPt23->Write();
0437     eta_rdphiPt24->Write();
0438     eta_rdphiPt34->Write();
0439   }
0440 
0441   TH1F *hPt;
0442   TH2F *hPa_Pt;
0443   TH2F *hPt_CSCSeg;
0444   TH2F *hst_csc_nu;
0445   TH2F *hst_csc_nu1;
0446   TH1F *hChi2_d_Dof;
0447 
0448   TH2F *eta_dphi01;
0449   TH2F *eta_dphi12;
0450   TH2F *eta_dphi13;
0451   TH2F *eta_dphi14;
0452   TH2F *eta_dphi23;
0453   TH2F *eta_dphi24;
0454   TH2F *eta_dphi34;
0455 
0456   TH2F *eta_rdphi01;
0457   TH2F *eta_rdphi12;
0458   TH2F *eta_rdphi13;
0459   TH2F *eta_rdphi14;
0460   TH2F *eta_rdphi23;
0461   TH2F *eta_rdphi24;
0462   TH2F *eta_rdphi34;
0463 
0464   TH2F *eta_dphiPt01;
0465   TH2F *eta_dphiPt12;
0466   TH2F *eta_dphiPt13;
0467   TH2F *eta_dphiPt14;
0468   TH2F *eta_dphiPt23;
0469   TH2F *eta_dphiPt24;
0470   TH2F *eta_dphiPt34;
0471 
0472   TH2F *eta_rdphiPt01;
0473   TH2F *eta_rdphiPt12;
0474   TH2F *eta_rdphiPt13;
0475   TH2F *eta_rdphiPt14;
0476   TH2F *eta_rdphiPt23;
0477   TH2F *eta_rdphiPt24;
0478   TH2F *eta_rdphiPt34;
0479 
0480   TString name;
0481 };
0482 
0483 class H2DRecHit3 {
0484 public:
0485   H2DRecHit3(std::string name_) {
0486     TString N3 = name_.c_str();
0487     name = N3;
0488 
0489     hPt = new TH1F(N3 + "_hPt", " Pt of Tracks ", 100, 5., 205.);
0490     hPa_Pt = new TH2F(N3 + "_hPa_Pt", "P vs Pt", 50, 5., 205., 100, 0., 1000.);
0491     hPt_DTSeg = new TH2F(N3 + "_hPt_DTSeg", "Pt vs total DT segments number", 40, 5., 205., 40, -0.25, 19.75);
0492     hst_dt_nu = new TH2F(N3 + "_hst_dt_nu", "station vs dt seg number", 6, 0, 6, 20, -0.25, 9.75);
0493     hst_dt_nu1 = new TH2F(N3 + "_hst_dt_nu1", "station vs dt seg number w/ > 5 hits seg", 6, 0, 6, 20, -0.25, 9.75);
0494     hChi2_d_Dof = new TH1F(N3 + "_hChi2_d_Dof", " chi2/dof ", 5000, 0., 50.);
0495 
0496     hrdphi_Pt = new TH2F(N3 + "_hrdphi_Pt", "rec dphi vs Pt", 50, 5., 205., 200, -0.06, 0.06);
0497     hrdeta_Pt = new TH2F(N3 + "_hrdeta_Pt", "rec deta vs Pt", 50, 5., 205., 202, -0.01, 0.01);
0498 
0499     hbeta_dphi12 = new TH2F(N3 + "12_eta_dphi", "eta vs dphi12", 120, 0., 1.2, 2000, -0.1, 0.1);
0500     hbeta_dphi13 = new TH2F(N3 + "13_eta_dphi", "eta vs dphi13", 120, 0., 1.2, 2000, -0.1, 0.1);
0501     hbeta_dphi14 = new TH2F(N3 + "14_eta_dphi", "eta vs dphi14", 120, 0., 1.2, 2000, -0.1, 0.1);
0502     hbeta_dphi23 = new TH2F(N3 + "23_eta_dphi", "eta vs dphi23", 120, 0., 1.2, 2000, -0.1, 0.1);
0503     hbeta_dphi24 = new TH2F(N3 + "24_eta_dphi", "eta vs dphi24", 120, 0., 1.2, 2000, -0.1, 0.1);
0504     hbeta_dphi34 = new TH2F(N3 + "34_eta_dphi", "eta vs dphi34", 120, 0., 1.2, 2000, -0.1, 0.1);
0505 
0506     hbeta_rdphi12 = new TH2F(N3 + "12_eta_rdphi", "eta vs rdphi12", 120, 0., 1.2, 2000, -0.1, 0.1);
0507     hbeta_rdphi13 = new TH2F(N3 + "13_eta_rdphi", "eta vs rdphi13", 120, 0., 1.2, 2000, -0.1, 0.1);
0508     hbeta_rdphi14 = new TH2F(N3 + "14_eta_rdphi", "eta vs rdphi14", 120, 0., 1.2, 2000, -0.1, 0.1);
0509     hbeta_rdphi23 = new TH2F(N3 + "23_eta_rdphi", "eta vs rdphi23", 120, 0., 1.2, 2000, -0.1, 0.1);
0510     hbeta_rdphi24 = new TH2F(N3 + "24_eta_rdphi", "eta vs rdphi24", 120, 0., 1.2, 2000, -0.1, 0.1);
0511     hbeta_rdphi34 = new TH2F(N3 + "34_eta_rdphi", "eta vs rdphi34", 120, 0., 1.2, 2000, -0.1, 0.1);
0512 
0513     hbeta_dphiPt12 = new TH2F(N3 + "12_eta_dphiPt", "eta vs dphi*Pt12", 120, 0., 1.2, 200, -1.5, 1.5);
0514     hbeta_dphiPt13 = new TH2F(N3 + "13_eta_dphiPt", "eta vs dphi*Pt13", 120, 0., 1.2, 200, -1.5, 1.5);
0515     hbeta_dphiPt14 = new TH2F(N3 + "14_eta_dphiPt", "eta vs dphi*Pt14", 120, 0., 1.2, 200, -1.5, 1.5);
0516     hbeta_dphiPt23 = new TH2F(N3 + "23_eta_dphiPt", "eta vs dphi*Pt23", 120, 0., 1.2, 200, -1.5, 1.5);
0517     hbeta_dphiPt24 = new TH2F(N3 + "24_eta_dphiPt", "eta vs dphi*Pt24", 120, 0., 1.2, 200, -1.5, 1.5);
0518     hbeta_dphiPt34 = new TH2F(N3 + "34_eta_dphiPt", "eta vs dphi*Pt34", 120, 0., 1.2, 200, -1.5, 1.5);
0519 
0520     hbeta_rdphiPt12 = new TH2F(N3 + "12_eta_rdphiPt", "eta vs rdphi*Pt12", 120, 0., 1.2, 200, -1.5, 1.5);
0521     hbeta_rdphiPt13 = new TH2F(N3 + "13_eta_rdphiPt", "eta vs rdphi*Pt13", 120, 0., 1.2, 200, -1.5, 1.5);
0522     hbeta_rdphiPt14 = new TH2F(N3 + "14_eta_rdphiPt", "eta vs rdphi*Pt14", 120, 0., 1.2, 200, -1.5, 1.5);
0523     hbeta_rdphiPt23 = new TH2F(N3 + "23_eta_rdphiPt", "eta vs rdphi*Pt23", 120, 0., 1.2, 200, -1.5, 1.5);
0524     hbeta_rdphiPt24 = new TH2F(N3 + "24_eta_rdphiPt", "eta vs rdphi*Pt24", 120, 0., 1.2, 200, -1.5, 1.5);
0525     hbeta_rdphiPt34 = new TH2F(N3 + "34_eta_rdphiPt", "eta vs rdphi*Pt34", 120, 0., 1.2, 200, -1.5, 1.5);
0526   }
0527 
0528   H2DRecHit3(TString name_, TFile *file) {
0529     name = name_;
0530 
0531     hPt = (TH1F *)file->Get(name + "_hPt");
0532     hPa_Pt = (TH2F *)file->Get(name + "_hPa_Pt");
0533     hPt_DTSeg = (TH2F *)file->Get(name + "_hPt_DTSeg");
0534     hst_dt_nu = (TH2F *)file->Get(name + "_hst_dt_nu");
0535     hst_dt_nu1 = (TH2F *)file->Get(name + "_hst_dt_nu1");
0536     hChi2_d_Dof = (TH1F *)file->Get(name + "_hChi2_d_Dof");
0537 
0538     hrdeta_Pt = (TH2F *)file->Get(name + "_hrdeta_Pt");
0539     hrdphi_Pt = (TH2F *)file->Get(name + "_hrdphi_Pt");
0540 
0541     hbeta_dphi12 = (TH2F *)file->Get(name + "12_eta_dphi");
0542     hbeta_dphi13 = (TH2F *)file->Get(name + "13_eta_dphi");
0543     hbeta_dphi14 = (TH2F *)file->Get(name + "14_eta_dphi");
0544     hbeta_dphi23 = (TH2F *)file->Get(name + "23_eta_dphi");
0545     hbeta_dphi24 = (TH2F *)file->Get(name + "24_eta_dphi");
0546     hbeta_dphi34 = (TH2F *)file->Get(name + "34_eta_dphi");
0547 
0548     hbeta_rdphi12 = (TH2F *)file->Get(name + "12_eta_rdphi");
0549     hbeta_rdphi13 = (TH2F *)file->Get(name + "13_eta_rdphi");
0550     hbeta_rdphi14 = (TH2F *)file->Get(name + "14_eta_rdphi");
0551     hbeta_rdphi23 = (TH2F *)file->Get(name + "23_eta_rdphi");
0552     hbeta_rdphi24 = (TH2F *)file->Get(name + "24_eta_rdphi");
0553     hbeta_rdphi34 = (TH2F *)file->Get(name + "34_eta_rdphi");
0554 
0555     hbeta_dphiPt12 = (TH2F *)file->Get(name + "12_eta_dphiPt");
0556     hbeta_dphiPt13 = (TH2F *)file->Get(name + "13_eta_dphiPt");
0557     hbeta_dphiPt14 = (TH2F *)file->Get(name + "14_eta_dphiPt");
0558     hbeta_dphiPt23 = (TH2F *)file->Get(name + "23_eta_dphiPt");
0559     hbeta_dphiPt24 = (TH2F *)file->Get(name + "24_eta_dphiPt");
0560     hbeta_dphiPt34 = (TH2F *)file->Get(name + "34_eta_dphiPt");
0561 
0562     hbeta_rdphiPt12 = (TH2F *)file->Get(name + "12_eta_rdphiPt");
0563     hbeta_rdphiPt13 = (TH2F *)file->Get(name + "13_eta_rdphiPt");
0564     hbeta_rdphiPt14 = (TH2F *)file->Get(name + "14_eta_rdphiPt");
0565     hbeta_rdphiPt23 = (TH2F *)file->Get(name + "23_eta_rdphiPt");
0566     hbeta_rdphiPt24 = (TH2F *)file->Get(name + "24_eta_rdphiPt");
0567     hbeta_rdphiPt34 = (TH2F *)file->Get(name + "34_eta_rdphiPt");
0568   }
0569 
0570   /// Destructor
0571   virtual ~H2DRecHit3() {
0572     delete hPt;
0573     delete hPa_Pt;
0574     delete hPt_DTSeg;
0575     delete hst_dt_nu;
0576     delete hst_dt_nu1;
0577     delete hChi2_d_Dof;
0578 
0579     delete hrdphi_Pt;
0580     delete hrdeta_Pt;
0581 
0582     delete hbeta_dphi12;
0583     delete hbeta_dphi13;
0584     delete hbeta_dphi14;
0585     delete hbeta_dphi23;
0586     delete hbeta_dphi24;
0587     delete hbeta_dphi34;
0588 
0589     delete hbeta_rdphi12;
0590     delete hbeta_rdphi13;
0591     delete hbeta_rdphi14;
0592     delete hbeta_rdphi23;
0593     delete hbeta_rdphi24;
0594     delete hbeta_rdphi34;
0595 
0596     delete hbeta_dphiPt12;
0597     delete hbeta_dphiPt13;
0598     delete hbeta_dphiPt14;
0599     delete hbeta_dphiPt23;
0600     delete hbeta_dphiPt24;
0601     delete hbeta_dphiPt34;
0602 
0603     delete hbeta_rdphiPt12;
0604     delete hbeta_rdphiPt13;
0605     delete hbeta_rdphiPt14;
0606     delete hbeta_rdphiPt23;
0607     delete hbeta_rdphiPt24;
0608     delete hbeta_rdphiPt34;
0609   }
0610 
0611   void Fill3a(float Pt, float Pa, int dt_nu) {
0612     hPt->Fill(Pt);
0613     hPa_Pt->Fill(Pt, Pa);
0614     hPt_DTSeg->Fill(Pt, dt_nu);
0615   }
0616 
0617   void Fill3c(float chi2) { hChi2_d_Dof->Fill(chi2); }
0618 
0619   void Fill4a(int k, int dt_nu, int dt_nu1) {
0620     hst_dt_nu->Fill(k, dt_nu);
0621     hst_dt_nu1->Fill(k, dt_nu1);
0622   }
0623 
0624   void Fill6_1(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0625     hbeta_dphi12->Fill(eta, dphi);
0626     hbeta_rdphi12->Fill(eta_r, dphir);
0627     hbeta_dphiPt12->Fill(eta, ptxdphi);
0628     hbeta_rdphiPt12->Fill(eta_r, ptxdphir);
0629   }
0630   void Fill6_2(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0631     hbeta_dphi13->Fill(eta, dphi);
0632     hbeta_rdphi13->Fill(eta_r, dphir);
0633     hbeta_dphiPt13->Fill(eta, ptxdphi);
0634     hbeta_rdphiPt13->Fill(eta_r, ptxdphir);
0635   }
0636   void Fill6_3(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0637     hbeta_dphi14->Fill(eta, dphi);
0638     hbeta_rdphi14->Fill(eta_r, dphir);
0639     hbeta_dphiPt14->Fill(eta, ptxdphi);
0640     hbeta_rdphiPt14->Fill(eta_r, ptxdphir);
0641   }
0642   void Fill6_4(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0643     hbeta_dphi23->Fill(eta, dphi);
0644     hbeta_rdphi23->Fill(eta_r, dphir);
0645     hbeta_dphiPt23->Fill(eta, ptxdphi);
0646     hbeta_rdphiPt23->Fill(eta_r, ptxdphir);
0647   }
0648   void Fill6_5(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0649     hbeta_dphi24->Fill(eta, dphi);
0650     hbeta_rdphi24->Fill(eta_r, dphir);
0651     hbeta_dphiPt24->Fill(eta, ptxdphi);
0652     hbeta_rdphiPt24->Fill(eta_r, ptxdphir);
0653   }
0654   void Fill6_6(double dphi, double dphir, double ptxdphi, double ptxdphir, double eta, double eta_r) {
0655     hbeta_dphi34->Fill(eta, dphi);
0656     hbeta_rdphi34->Fill(eta_r, dphir);
0657     hbeta_dphiPt34->Fill(eta, ptxdphi);
0658     hbeta_rdphiPt34->Fill(eta_r, ptxdphir);
0659   }
0660 
0661   void Write() {
0662     hPt->Write();
0663     hPa_Pt->Write();
0664     hPt_DTSeg->Write();
0665     hst_dt_nu->Write();
0666     hst_dt_nu1->Write();
0667     hChi2_d_Dof->Write();
0668 
0669     hrdphi_Pt->Write();
0670     hrdeta_Pt->Write();
0671 
0672     hbeta_dphi12->Write();
0673     hbeta_dphi13->Write();
0674     hbeta_dphi14->Write();
0675     hbeta_dphi23->Write();
0676     hbeta_dphi24->Write();
0677     hbeta_dphi34->Write();
0678 
0679     hbeta_rdphi12->Write();
0680     hbeta_rdphi13->Write();
0681     hbeta_rdphi14->Write();
0682     hbeta_rdphi23->Write();
0683     hbeta_rdphi24->Write();
0684     hbeta_rdphi34->Write();
0685 
0686     hbeta_dphiPt12->Write();
0687     hbeta_dphiPt13->Write();
0688     hbeta_dphiPt14->Write();
0689     hbeta_dphiPt23->Write();
0690     hbeta_dphiPt24->Write();
0691     hbeta_dphiPt34->Write();
0692 
0693     hbeta_rdphiPt12->Write();
0694     hbeta_rdphiPt13->Write();
0695     hbeta_rdphiPt14->Write();
0696     hbeta_rdphiPt23->Write();
0697     hbeta_rdphiPt24->Write();
0698     hbeta_rdphiPt34->Write();
0699   }
0700 
0701   TH1F *hPt;
0702   TH2F *hPa_Pt;
0703   TH2F *hPt_DTSeg;
0704   TH2F *hst_dt_nu;
0705   TH2F *hst_dt_nu1;
0706   TH1F *hChi2_d_Dof;
0707 
0708   TH2F *hrdphi_Pt;
0709   TH2F *hrdeta_Pt;
0710 
0711   TH2F *hbeta_dphi12;
0712   TH2F *hbeta_dphi13;
0713   TH2F *hbeta_dphi14;
0714   TH2F *hbeta_dphi23;
0715   TH2F *hbeta_dphi24;
0716   TH2F *hbeta_dphi34;
0717 
0718   TH2F *hbeta_rdphi12;
0719   TH2F *hbeta_rdphi13;
0720   TH2F *hbeta_rdphi14;
0721   TH2F *hbeta_rdphi23;
0722   TH2F *hbeta_rdphi24;
0723   TH2F *hbeta_rdphi34;
0724 
0725   TH2F *hbeta_dphiPt12;
0726   TH2F *hbeta_dphiPt13;
0727   TH2F *hbeta_dphiPt14;
0728   TH2F *hbeta_dphiPt23;
0729   TH2F *hbeta_dphiPt24;
0730   TH2F *hbeta_dphiPt34;
0731 
0732   TH2F *hbeta_rdphiPt12;
0733   TH2F *hbeta_rdphiPt13;
0734   TH2F *hbeta_rdphiPt14;
0735   TH2F *hbeta_rdphiPt23;
0736   TH2F *hbeta_rdphiPt24;
0737   TH2F *hbeta_rdphiPt34;
0738 
0739   TString name;
0740 };
0741 
0742 class H2DRecHit4 {
0743 public:
0744   H2DRecHit4(std::string name_) {
0745     TString N4 = name_.c_str();
0746     name = N4;
0747 
0748     eta_dphiA = new TH2F(N4 + "_eta_dphiA", "eta vs dphit @ME", 180, 0.9, 2.7, 200, -0.03, 0.03);
0749     eta_rdphiA = new TH2F(N4 + "_eta_rdphiA", "eta vs rdphi @ME", 180, 0.9, 2.7, 200, -0.03, 0.03);
0750     eta_detaA = new TH2F(N4 + "_eta_detaA", "eta vs deta  @ME", 180, 0.9, 2.7, 101, -0.01, 0.01);
0751     eta_rdetaA = new TH2F(N4 + "_eta_rdetaA", "eta vs rdeta  @ME", 180, 0.9, 2.7, 101, -0.01, 0.01);
0752 
0753     eta_dphiPtA = new TH2F(N4 + "_eta_dphiPtA", "eta vs dphi*Pt @ME", 180, 0.9, 2.7, 200, -1.0, 1.0);
0754     eta_rdphiPtA = new TH2F(N4 + "_eta_rdphiPtA", "eta vs rdphi*Pt @ME", 180, 0.9, 2.7, 200, -1.0, 1.0);
0755 
0756     eta_Pt = new TH2F(N4 + "_eta_Pt", "eta vs Pt @ME", 180, 0.9, 2.7, 50, 5.0, 205.0);
0757     eta_dphir = new TH2F(N4 + "_eta_dphir", "eta vs dphi resolution @ME", 180, 0.9, 2.7, 101, -0.0005, 0.0005);
0758     hpt_dphiA = new TH2F(N4 + "_hpt_dphiA", "pt vs dphi @ME", 50, 5., 205, 200, 0.0, 0.1);
0759     hpt_rdphiA = new TH2F(N4 + "_hpt_rdphiA", "pt vs rdphi @ME", 50, 5., 205, 200, 0.0, 0.1);
0760   }
0761 
0762   H2DRecHit4(TString name_, TFile *file) {
0763     name = name_;
0764 
0765     eta_dphiA = (TH2F *)file->Get(name + "_eta_dphiA");
0766     eta_rdphiA = (TH2F *)file->Get(name + "_eta_rdphiA");
0767     eta_detaA = (TH2F *)file->Get(name + "_eta_detaA");
0768     eta_rdetaA = (TH2F *)file->Get(name + "_eta_rdetaA");
0769 
0770     eta_dphiPtA = (TH2F *)file->Get(name + "_eta_dphiPtA");
0771     eta_rdphiPtA = (TH2F *)file->Get(name + "_eta_rdphiPtA");
0772 
0773     eta_Pt = (TH2F *)file->Get(name + "_eta_Pt");
0774     eta_dphir = (TH2F *)file->Get(name + "_eta_dphir");
0775     hpt_dphiA = (TH2F *)file->Get(name + "_hpt_dphiA");
0776     hpt_rdphiA = (TH2F *)file->Get(name + "_hpt_rdphiA");
0777   }
0778 
0779   /// Destructor
0780   virtual ~H2DRecHit4() {
0781     delete eta_dphiA;
0782     delete eta_rdphiA;
0783     delete eta_detaA;
0784     delete eta_rdetaA;
0785 
0786     delete eta_dphiPtA;
0787     delete eta_rdphiPtA;
0788 
0789     delete eta_dphir;
0790     delete eta_Pt;
0791     delete hpt_dphiA;
0792     delete hpt_rdphiA;
0793   }
0794 
0795   void Fill8(double ptxdphi, double dphi, double deta, double eta, double pt) {
0796     eta_dphiA->Fill(eta, dphi);
0797     eta_detaA->Fill(eta, deta);
0798     eta_dphiPtA->Fill(eta, ptxdphi);
0799     hpt_dphiA->Fill(pt, dphi);
0800   }
0801   void Fill8a(double ptxrdphi, double rdphi, double rdeta, double reta, double pt, double dphir) {
0802     eta_rdphiA->Fill(reta, rdphi);
0803     eta_rdetaA->Fill(reta, rdeta);
0804     eta_rdphiPtA->Fill(reta, ptxrdphi);
0805     hpt_rdphiA->Fill(pt, rdphi);
0806     eta_Pt->Fill(reta, pt);
0807     eta_dphir->Fill(reta, dphir);
0808   }
0809 
0810   void Write() {
0811     eta_dphiA->Write();
0812     eta_rdphiA->Write();
0813     eta_detaA->Write();
0814     eta_rdetaA->Write();
0815 
0816     eta_dphiPtA->Write();
0817     eta_rdphiPtA->Write();
0818 
0819     hpt_dphiA->Write();
0820     hpt_rdphiA->Write();
0821     eta_Pt->Write();
0822     eta_dphir->Write();
0823   }
0824 
0825   TH2F *eta_dphiA;
0826   TH2F *eta_rdphiA;
0827   TH2F *eta_detaA;
0828   TH2F *eta_rdetaA;
0829 
0830   TH2F *eta_dphiPtA;
0831   TH2F *eta_rdphiPtA;
0832 
0833   TH2F *hpt_dphiA;
0834   TH2F *hpt_rdphiA;
0835   TH2F *eta_Pt;
0836   TH2F *eta_dphir;
0837 
0838   TString name;
0839 };
0840 
0841 class H2DRecHit5 {
0842 public:
0843   H2DRecHit5(std::string name_) {
0844     TString N5 = name_.c_str();
0845     name = N5;
0846 
0847     eta_dphiA = new TH2F(N5 + "_eta_dphiA", "eta vs dphi @MB", 120, 0., 1.2, 200, -0.03, 0.03);
0848     eta_rdphiA = new TH2F(N5 + "_eta_rdphiA", "eta vs rdphi @MB", 120, 0., 1.2, 200, -0.03, 0.03);
0849     eta_detaA = new TH2F(N5 + "_eta_detaA", "eta vs deta  @MB", 120, 0., 1.2, 101, -0.01, 0.01);
0850     eta_rdetaA = new TH2F(N5 + "_eta_rdetaA", "eta vs rdeta  @MB", 120, 0., 1.2, 101, -0.01, 0.01);
0851 
0852     eta_dphiPtA = new TH2F(N5 + "_eta_dphiPtA", "eta vs dphi*Pt @MB", 120, 0., 1.2, 200, -1.0, 1.0);
0853     eta_rdphiPtA = new TH2F(N5 + "_eta_rdphiPtA", "eta vs rdphi*Pt @MB", 120, 0., 1.2, 200, -1.0, 1.0);
0854 
0855     eta_Pt = new TH2F(N5 + "_eta_Pt", "eta vs Pt @MB", 120, 0., 1.2, 50, 5.0, 205.0);
0856     eta_dphir = new TH2F(N5 + "_eta_dphir", "eta vs dphi resolution @MB", 120, 0., 1.2, 101, -0.0005, 0.0005);
0857     hpt_dphiA = new TH2F(N5 + "_hpt_dphiA", "pt vs dphi @MB", 50, 5., 205.0, 200, 0.0, 0.1);
0858     hpt_rdphiA = new TH2F(N5 + "_hpt_rdphiA", "pt vs rdphi @MB", 50, 5., 205.0, 200, 0.0, 0.1);
0859   }
0860 
0861   H2DRecHit5(TString name_, TFile *file) {
0862     name = name_;
0863 
0864     eta_dphiA = (TH2F *)file->Get(name + "_eta_dphiA");
0865     eta_rdphiA = (TH2F *)file->Get(name + "_eta_rdphiA");
0866     eta_detaA = (TH2F *)file->Get(name + "_eta_detaA");
0867     eta_rdetaA = (TH2F *)file->Get(name + "_eta_rdetaA");
0868 
0869     eta_dphiPtA = (TH2F *)file->Get(name + "_eta_dphiPtA");
0870     eta_rdphiPtA = (TH2F *)file->Get(name + "_eta_rdphiPtA");
0871 
0872     eta_Pt = (TH2F *)file->Get(name + "_eta_Pt");
0873     eta_dphir = (TH2F *)file->Get(name + "_eta_dphir");
0874     hpt_dphiA = (TH2F *)file->Get(name + "_hpt_dphiA");
0875     hpt_rdphiA = (TH2F *)file->Get(name + "_hpt_rdphiA");
0876   }
0877 
0878   /// Destructor
0879   virtual ~H2DRecHit5() {
0880     delete eta_dphiA;
0881     delete eta_rdphiA;
0882     delete eta_detaA;
0883     delete eta_rdetaA;
0884 
0885     delete eta_dphiPtA;
0886     delete eta_rdphiPtA;
0887 
0888     delete eta_Pt;
0889     delete eta_dphir;
0890     delete hpt_dphiA;
0891     delete hpt_rdphiA;
0892   }
0893 
0894   void Fill9(double ptxdphi, double dphi, double deta, double eta, double pt) {
0895     eta_dphiA->Fill(eta, dphi);
0896     eta_detaA->Fill(eta, deta);
0897     eta_dphiPtA->Fill(eta, ptxdphi);
0898     hpt_dphiA->Fill(pt, dphi);
0899   }
0900   void Fill9a(double ptxrdphi, double rdphi, double rdeta, double reta, double pt, double dphir) {
0901     eta_rdphiA->Fill(reta, rdphi);
0902     eta_rdetaA->Fill(reta, rdeta);
0903     eta_rdphiPtA->Fill(reta, ptxrdphi);
0904     hpt_rdphiA->Fill(pt, rdphi);
0905     eta_Pt->Fill(reta, pt);
0906     eta_dphir->Fill(reta, dphir);
0907   }
0908 
0909   void Write() {
0910     eta_dphiA->Write();
0911     eta_rdphiA->Write();
0912     eta_detaA->Write();
0913     eta_rdetaA->Write();
0914 
0915     eta_dphiPtA->Write();
0916     eta_rdphiPtA->Write();
0917 
0918     hpt_dphiA->Write();
0919     hpt_rdphiA->Write();
0920     eta_Pt->Write();
0921     eta_dphir->Write();
0922   }
0923 
0924   TH2F *eta_dphiA;
0925   TH2F *eta_rdphiA;
0926   TH2F *eta_detaA;
0927   TH2F *eta_rdetaA;
0928 
0929   TH2F *eta_dphiPtA;
0930   TH2F *eta_rdphiPtA;
0931 
0932   TH2F *hpt_dphiA;
0933   TH2F *hpt_rdphiA;
0934   TH2F *eta_Pt;
0935   TH2F *eta_dphir;
0936 
0937   TString name;
0938 };
0939 
0940 class H2DRecHit6 {
0941 public:
0942   H2DRecHit6(std::string name_) {
0943     TString N6 = name_.c_str();
0944     name = N6;
0945 
0946     eta_dphi = new TH2F(N6 + "_eta_dphi", "eta vs dphit @ME", 180, 0.9, 2.7, 800, -0.2, 0.2);
0947     eta_rdphi = new TH2F(N6 + "_eta_rdphi", "eta vs rdphi @ME", 180, 0.9, 2.7, 800, -0.2, 0.2);
0948 
0949     eta_phir = new TH2F(N6 + "_eta_phir", "eta vs phi resolution  @ME", 180, 0.9, 2.7, 101, -0.01, 0.01);
0950     eta_etar = new TH2F(N6 + "_eta_etar", "eta vs eta resolution  @ME", 180, 0.9, 2.7, 101, -0.01, 0.01);
0951 
0952     eta_dphiPt = new TH2F(N6 + "_eta_dphiPt", "eta vs dphi*Pt 1", 180, 0.9, 2.7, 400, -3., 3.);
0953     eta_rdphiPt = new TH2F(N6 + "_eta_rdphiPt", "eta vs rdphi*Pt 1", 180, 0.9, 2.7, 400, -3., 3.);
0954 
0955     eta_Pt1 = new TH2F(N6 + "_eta_Pt1", "eta vs Pt @ME", 180, 0.9, 2.7, 50, 5.0, 205.0);
0956     hpt_dphi = new TH2F(N6 + "_hpt_dphi", "pt vs dphi @ME", 50, 5., 205, 200, 0.0, 0.1);
0957     hpt_rdphi = new TH2F(N6 + "_hpt_rdphi", "pt vs rdphi @ME", 50, 5., 205, 200, 0.0, 0.1);
0958   }
0959 
0960   H2DRecHit6(TString name_, TFile *file) {
0961     name = name_;
0962 
0963     eta_dphi = (TH2F *)file->Get(name + "_eta_dphi");
0964     eta_rdphi = (TH2F *)file->Get(name + "_eta_rdphi");
0965 
0966     eta_phir = (TH2F *)file->Get(name + "_eta_phir");
0967     eta_etar = (TH2F *)file->Get(name + "_eta_etar");
0968 
0969     eta_Pt1 = (TH2F *)file->Get(name + "_eta_Pt1");
0970     eta_dphiPt = (TH2F *)file->Get(name + "_eta_dphiPt");
0971     eta_rdphiPt = (TH2F *)file->Get(name + "_eta_rdphiPt");
0972 
0973     hpt_dphi = (TH2F *)file->Get(name + "_hpt_dphiA");
0974     hpt_rdphi = (TH2F *)file->Get(name + "_hpt_rdphiA");
0975   }
0976 
0977   /// Destructor
0978   virtual ~H2DRecHit6() {
0979     delete eta_dphi;
0980     delete eta_rdphi;
0981 
0982     delete eta_phir;
0983     delete eta_etar;
0984 
0985     delete eta_dphiPt;
0986     delete eta_rdphiPt;
0987 
0988     delete eta_Pt1;
0989     delete hpt_dphi;
0990     delete hpt_rdphi;
0991   }
0992 
0993   void Fill8b(double ptxdphi, double dphi, double eta, double pt) {
0994     eta_dphiPt->Fill(eta, ptxdphi);
0995     eta_dphi->Fill(eta, dphi);
0996     hpt_dphi->Fill(pt, dphi);
0997   }
0998   void Fill8c(double ptxrdphi, double rdphi, double phir, double etar, double reta, double pt) {
0999     eta_rdphiPt->Fill(reta, ptxrdphi);
1000     eta_rdphi->Fill(reta, rdphi);
1001 
1002     eta_phir->Fill(reta, phir);
1003     eta_etar->Fill(reta, etar);
1004     hpt_rdphi->Fill(pt, rdphi);
1005     eta_Pt1->Fill(reta, pt);
1006   }
1007 
1008   void Write() {
1009     eta_dphi->Write();
1010     eta_rdphi->Write();
1011 
1012     eta_phir->Write();
1013     eta_etar->Write();
1014 
1015     eta_dphiPt->Write();
1016     eta_rdphiPt->Write();
1017 
1018     hpt_dphi->Write();
1019     hpt_rdphi->Write();
1020     eta_Pt1->Write();
1021   }
1022 
1023   TH2F *eta_dphi;
1024   TH2F *eta_rdphi;
1025 
1026   TH2F *eta_phir;
1027   TH2F *eta_etar;
1028 
1029   TH2F *eta_dphiPt;
1030   TH2F *eta_rdphiPt;
1031 
1032   TH2F *hpt_dphi;
1033   TH2F *hpt_rdphi;
1034   TH2F *eta_Pt1;
1035 
1036   TString name;
1037 };
1038 
1039 class H2DRecHit7 {
1040 public:
1041   H2DRecHit7(std::string name_) {
1042     TString N7 = name_.c_str();
1043     name = N7;
1044 
1045     eta_dphi = new TH2F(N7 + "_eta_dphi", "eta vs dphit @MB", 120, 0., 1.2, 800, -0.2, 0.2);
1046     eta_rdphi = new TH2F(N7 + "_eta_rdphi", "eta vs rdphi @MB", 120, 0., 1.2, 800, -0.2, 0.2);
1047 
1048     eta_phir = new TH2F(N7 + "_eta_phir", "eta vs phi resolution  @MB", 120, 0., 1.2, 101, -0.01, 0.01);
1049     eta_etar = new TH2F(N7 + "_eta_etar", "eta vs eta resolution  @MB", 120, 0., 1.2, 101, -0.01, 0.01);
1050 
1051     eta_dphiPt = new TH2F(N7 + "_eta_dphiPt", "eta vs dphi*Pt @MB", 120, 0., 1.2, 400, -3., 3.);
1052     eta_rdphiPt = new TH2F(N7 + "_eta_rdphiPt", "eta vs rdphi*Pt @MB", 120, 0., 1.2, 400, -3., 3.);
1053 
1054     eta_Pt1 = new TH2F(N7 + "_eta_Pt1", "eta vs Pt @MB", 180, 0.9, 2.7, 50, 5.0, 205.0);
1055     hpt_dphi = new TH2F(N7 + "_hpt_dphi", "pt vs dphi @MB", 50, 5., 205, 200, 0.0, 0.1);
1056     hpt_rdphi = new TH2F(N7 + "_hpt_rdphi", "pt vs rdphi @MB", 50, 5., 205, 200, 0.0, 0.1);
1057   }
1058 
1059   H2DRecHit7(TString name_, TFile *file) {
1060     name = name_;
1061 
1062     eta_dphi = (TH2F *)file->Get(name + "_eta_dphi");
1063     eta_rdphi = (TH2F *)file->Get(name + "_eta_rdphi");
1064 
1065     eta_phir = (TH2F *)file->Get(name + "_eta_phir");
1066     eta_etar = (TH2F *)file->Get(name + "_eta_etar");
1067 
1068     eta_dphiPt = (TH2F *)file->Get(name + "_eta_dphiPt");
1069     eta_rdphiPt = (TH2F *)file->Get(name + "_eta_rdphiPt");
1070 
1071     eta_Pt1 = (TH2F *)file->Get(name + "_eta_Pt1");
1072     hpt_dphi = (TH2F *)file->Get(name + "_hpt_dphiA");
1073     hpt_rdphi = (TH2F *)file->Get(name + "_hpt_rdphiA");
1074   }
1075 
1076   /// Destructor
1077   virtual ~H2DRecHit7() {
1078     delete eta_dphi;
1079     delete eta_rdphi;
1080 
1081     delete eta_phir;
1082     delete eta_etar;
1083 
1084     delete eta_dphiPt;
1085     delete eta_rdphiPt;
1086 
1087     delete eta_Pt1;
1088     delete hpt_dphi;
1089     delete hpt_rdphi;
1090   }
1091 
1092   void Fill9b(double ptxdphi, double dphi, double eta, double pt) {
1093     eta_dphiPt->Fill(eta, ptxdphi);
1094     eta_dphi->Fill(eta, dphi);
1095     hpt_dphi->Fill(pt, dphi);
1096   }
1097   void Fill9c(double ptxrdphi, double rdphi, double phir, double etar, double reta, double pt) {
1098     eta_rdphiPt->Fill(reta, ptxrdphi);
1099     eta_rdphi->Fill(reta, rdphi);
1100 
1101     eta_phir->Fill(reta, phir);
1102     eta_etar->Fill(reta, etar);
1103     hpt_rdphi->Fill(pt, rdphi);
1104     eta_Pt1->Fill(reta, pt);
1105   }
1106 
1107   void Write() {
1108     eta_dphi->Write();
1109     eta_rdphi->Write();
1110 
1111     eta_phir->Write();
1112     eta_etar->Write();
1113 
1114     eta_dphiPt->Write();
1115     eta_rdphiPt->Write();
1116 
1117     hpt_dphi->Write();
1118     hpt_rdphi->Write();
1119     eta_Pt1->Write();
1120   }
1121 
1122   TH2F *eta_dphi;
1123   TH2F *eta_rdphi;
1124 
1125   TH2F *eta_phir;
1126   TH2F *eta_etar;
1127 
1128   TH2F *eta_dphiPt;
1129   TH2F *eta_rdphiPt;
1130 
1131   TH2F *hpt_dphi;
1132   TH2F *hpt_rdphi;
1133   TH2F *eta_Pt1;
1134 
1135   TString name;
1136 };
1137 
1138 class H2DRecHit10 {
1139 public:
1140   H2DRecHit10(std::string name_) {
1141     TString N10 = name_.c_str();
1142     name = N10;
1143 
1144     eta_dphiA = new TH2F(N10 + "_eta_dphiA", "eta vs dphi @OL", 60, 0.7, 1.3, 200, -0.08, 0.08);
1145     eta_rdphiA = new TH2F(N10 + "_eta_rdphiA", "eta vs rdphi @OL", 60, 0.7, 1.3, 200, -0.08, 0.08);
1146     eta_detaA = new TH2F(N10 + "_eta_detaA", "eta vs deta  @OL", 60, 0.7, 1.3, 101, -0.01, 0.01);
1147     eta_rdetaA = new TH2F(N10 + "_eta_rdetaA", "eta vs rdeta  @OL", 60, 0.7, 1.3, 101, -0.01, 0.01);
1148 
1149     eta_dphiPtA = new TH2F(N10 + "_eta_dphiPtA", "eta vs dphi*Pt @OL", 60, 0.7, 1.3, 200, -1.0, 1.0);
1150     eta_rdphiPtA = new TH2F(N10 + "_eta_rdphiPtA", "eta vs rdphi*Pt @OL", 60, 0.7, 1.3, 200, -1.0, 1.0);
1151 
1152     eta_Pt = new TH2F(N10 + "_eta_Pt", "eta vs Pt @OL", 60, 0.7, 1.3, 50, 5.0, 205.0);
1153     eta_dphir = new TH2F(N10 + "_eta_dphir", "eta vs dphi resolution @OL", 60, 0.7, 1.3, 101, -0.0005, 0.0005);
1154     hpt_dphiA = new TH2F(N10 + "_hpt_dphiA", "pt vs dphi @OL", 50, 5., 205.0, 200, 0.0, 0.1);
1155     hpt_rdphiA = new TH2F(N10 + "_hpt_rdphiA", "pt vs rdphi @OL", 50, 5., 205.0, 200, 0.0, 0.1);
1156   }
1157 
1158   H2DRecHit10(TString name_, TFile *file) {
1159     name = name_;
1160 
1161     eta_dphiA = (TH2F *)file->Get(name + "_eta_dphiA");
1162     eta_rdphiA = (TH2F *)file->Get(name + "_eta_rdphiA");
1163     eta_detaA = (TH2F *)file->Get(name + "_eta_detaA");
1164     eta_rdetaA = (TH2F *)file->Get(name + "_eta_rdetaA");
1165 
1166     eta_dphiPtA = (TH2F *)file->Get(name + "_eta_dphiPtA");
1167     eta_rdphiPtA = (TH2F *)file->Get(name + "_eta_rdphiPtA");
1168 
1169     eta_Pt = (TH2F *)file->Get(name + "_eta_Pt");
1170     eta_dphir = (TH2F *)file->Get(name + "_eta_dphir");
1171     hpt_dphiA = (TH2F *)file->Get(name + "_hpt_dphiA");
1172     hpt_rdphiA = (TH2F *)file->Get(name + "_hpt_rdphiA");
1173   }
1174 
1175   /// Destructor
1176   virtual ~H2DRecHit10() {
1177     delete eta_dphiA;
1178     delete eta_rdphiA;
1179     delete eta_detaA;
1180     delete eta_rdetaA;
1181 
1182     delete eta_dphiPtA;
1183     delete eta_rdphiPtA;
1184 
1185     delete eta_Pt;
1186     delete eta_dphir;
1187     delete hpt_dphiA;
1188     delete hpt_rdphiA;
1189   }
1190 
1191   void Fill12(double ptxdphi, double dphi, double deta, double eta, double pt) {
1192     eta_dphiA->Fill(eta, dphi);
1193     eta_detaA->Fill(eta, deta);
1194     eta_dphiPtA->Fill(eta, ptxdphi);
1195     hpt_dphiA->Fill(pt, dphi);
1196   }
1197   void Fill12a(double ptxrdphi, double rdphi, double rdeta, double reta, double pt, double dphir) {
1198     eta_rdphiA->Fill(reta, rdphi);
1199     eta_rdetaA->Fill(reta, rdeta);
1200     eta_rdphiPtA->Fill(reta, ptxrdphi);
1201     hpt_rdphiA->Fill(pt, rdphi);
1202     eta_Pt->Fill(reta, pt);
1203     eta_dphir->Fill(reta, dphir);
1204   }
1205 
1206   void Write() {
1207     eta_dphiA->Write();
1208     eta_rdphiA->Write();
1209     eta_detaA->Write();
1210     eta_rdetaA->Write();
1211 
1212     eta_dphiPtA->Write();
1213     eta_rdphiPtA->Write();
1214 
1215     hpt_dphiA->Write();
1216     hpt_rdphiA->Write();
1217     eta_Pt->Write();
1218     eta_dphir->Write();
1219   }
1220 
1221   TH2F *eta_dphiA;
1222   TH2F *eta_rdphiA;
1223   TH2F *eta_detaA;
1224   TH2F *eta_rdetaA;
1225 
1226   TH2F *eta_dphiPtA;
1227   TH2F *eta_rdphiPtA;
1228 
1229   TH2F *hpt_dphiA;
1230   TH2F *hpt_rdphiA;
1231   TH2F *eta_Pt;
1232   TH2F *eta_dphir;
1233 
1234   TString name;
1235 };
1236 
1237 #endif