00001 #include "Validation/Geometry/interface/MaterialBudgetTrackerHistos.h"
00002 #include "Validation/Geometry/interface/MaterialBudgetData.h"
00003
00004 template <class T> const T& max ( const T& a, const T& b ) {
00005 return (b<a)?a:b;
00006 }
00007
00008
00009
00010 MaterialBudgetTrackerHistos::MaterialBudgetTrackerHistos(MaterialBudgetData* data,
00011 TestHistoMgr* mgr,
00012 const std::string& fileName ): MaterialBudgetFormat( data ), hmgr(mgr)
00013 {
00014 theFileName = fileName;
00015 book();
00016
00017 }
00018
00019
00020 void MaterialBudgetTrackerHistos::book()
00021 {
00022 std::cout << "=== booking user histos ===" << std::endl;
00023
00024
00025 int nzbin = 1200;
00026 float zMax = 3000.;
00027 float zMin = -3000.;
00028 int nrbin = 290;
00029 float rMin = -50.;
00030 float rMax = 1400.;
00031
00032
00033 hmgr->addHistoProf1( new TProfile("10", "MB prof Eta;#eta;x/X_{0} ", 250, -5., 5. ) );
00034 hmgr->addHisto1( new TH1F("11", "Eta " , 501, -5., 5. ) );
00035 hmgr->addHistoProf1( new TProfile("20", "MB prof Phi;#varphi [rad];x/X_{0} ", 180, -3.1416, 3.1416 ) );
00036 hmgr->addHisto1( new TH1F("21", "Phi " , 180, -3.1416, 3.1416 ) );
00037 hmgr->addHistoProf2( new TProfile2D("30", "MB prof Eta Phi;#eta;#varphi;x/X_{0} ", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00038 hmgr->addHisto2( new TH2F("31", "Eta vs Phi " , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00039 hmgr->addHistoProf1( new TProfile("40", "MB prof R;R [mm];x/X_{0} ", 200, 0., 2000. ) );
00040 hmgr->addHisto1( new TH1F("41", "R " , 200, 0., 2000. ) );
00041 hmgr->addHistoProf2( new TProfile2D("50", "MB prof sum R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00042 hmgr->addHisto2( new TH2F("999", "Tot track length for MB", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00043 hmgr->addHisto2( new TH2F("51", "R vs z " , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00044 hmgr->addHisto2( new TH2F("60", "MB prof local R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00045 hmgr->addHisto2( new TH2F("61", "R vs z " , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00046
00047
00048 hmgr->addHistoProf1( new TProfile("110", "MB prof Eta [Support];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
00049 hmgr->addHisto1( new TH1F("111", "Eta [Support]" , 501, -5., 5. ) );
00050 hmgr->addHistoProf1( new TProfile("120", "MB prof Phi [Support];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
00051 hmgr->addHisto1( new TH1F("121", "Phi [Support]" , 180, -3.1416, 3.1416 ) );
00052 hmgr->addHistoProf2( new TProfile2D("130", "MB prof Eta Phi [Support];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00053 hmgr->addHisto2( new TH2F("131", "Eta vs Phi [Support]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00054 hmgr->addHistoProf1( new TProfile("140", "MB prof R [Support];R [mm];x/X_{0}", 200, 0., 2000. ) );
00055 hmgr->addHisto1( new TH1F("141", "R [Support]" , 200, 0., 2000. ) );
00056 hmgr->addHistoProf2( new TProfile2D("150", "MB prof sum R z [Support];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00057 hmgr->addHisto2( new TH2F("151", "R vs z [Support]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00058 hmgr->addHisto2( new TH2F("160", "MB prof local R z [Support];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00059 hmgr->addHisto2( new TH2F("161", "R vs z [Support]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00060
00061 hmgr->addHistoProf1( new TProfile("210", "MB prof Eta [Sensitive];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
00062 hmgr->addHisto1( new TH1F("211", "Eta [Sensitive]" , 501, -5., 5. ) );
00063 hmgr->addHistoProf1( new TProfile("220", "MB prof Phi [Sensitive];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
00064 hmgr->addHisto1( new TH1F("221", "Phi [Sensitive]" , 180, -3.1416, 3.1416 ) );
00065 hmgr->addHistoProf2( new TProfile2D("230", "MB prof Eta Phi [Sensitive];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00066 hmgr->addHisto2( new TH2F("231", "Eta vs Phi [Sensitive]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00067 hmgr->addHistoProf1( new TProfile("240", "MB prof R [Sensitive];R [mm];x/X_{0}", 200, 0., 2000. ) );
00068 hmgr->addHisto1( new TH1F("241", "R [Sensitive]" , 200, 0., 2000. ) );
00069 hmgr->addHistoProf2( new TProfile2D("250", "MB prof sum R z [Sensitive];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00070 hmgr->addHisto2( new TH2F("251", "R vs z [Sensitive]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00071 hmgr->addHisto2( new TH2F("260", "MB prof local R z [Sensitive];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00072 hmgr->addHisto2( new TH2F("261", "R vs z [Sensitive]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00073
00074 hmgr->addHistoProf1( new TProfile("310", "MB prof Eta [Cables];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
00075 hmgr->addHisto1( new TH1F("311", "Eta [Cables]" , 501, -5., 5. ) );
00076 hmgr->addHistoProf1( new TProfile("320", "MB prof Phi [Cables];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
00077 hmgr->addHisto1( new TH1F("321", "Phi [Cables]" , 180, -3.1416, 3.1416 ) );
00078 hmgr->addHistoProf2( new TProfile2D("330", "MB prof Eta Phi [Cables];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00079 hmgr->addHisto2( new TH2F("331", "Eta vs Phi [Cables]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00080 hmgr->addHistoProf1( new TProfile("340", "MB prof R [Cables];R [mm];x/X_{0}", 200, 0., 2000. ) );
00081 hmgr->addHisto1( new TH1F("341", "R [Cables]" , 200, 0., 2000. ) );
00082 hmgr->addHistoProf2( new TProfile2D("350", "MB prof sum R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00083 hmgr->addHisto2( new TH2F("351", "R vs z [Cables]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00084 hmgr->addHisto2( new TH2F("360", "MB prof local R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00085 hmgr->addHisto2( new TH2F("361", "R vs z [Cables]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00086
00087 hmgr->addHistoProf1( new TProfile("410", "MB prof Eta [Cooling];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
00088 hmgr->addHisto1( new TH1F("411", "Eta [Cooling]" , 501, -5., 5. ) );
00089 hmgr->addHistoProf1( new TProfile("420", "MB prof Phi [Cooling];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
00090 hmgr->addHisto1( new TH1F("421", "Phi [Cooling]" , 180, -3.1416, 3.1416 ) );
00091 hmgr->addHistoProf2( new TProfile2D("430", "MB prof Eta Phi [Cooling];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00092 hmgr->addHisto2( new TH2F("431", "Eta vs Phi [Cooling]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00093 hmgr->addHistoProf1( new TProfile("440", "MB prof R [Cooling];R [mm];x/X_{0}", 200, 0., 2000. ) );
00094 hmgr->addHisto1( new TH1F("441", "R [Cooling]" , 200, 0., 2000. ) );
00095 hmgr->addHistoProf2( new TProfile2D("450", "MB prof sum R z [Cooling];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00096 hmgr->addHisto2( new TH2F("451", "R vs z [Cooling]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00097 hmgr->addHisto2( new TH2F("460", "MB prof local R z [Cooling];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00098 hmgr->addHisto2( new TH2F("461", "R vs z [Cooling]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00099
00100 hmgr->addHistoProf1( new TProfile("510", "MB prof Eta [Electronics];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
00101 hmgr->addHisto1( new TH1F("511", "Eta [Electronics]" , 501, -5., 5. ) );
00102 hmgr->addHistoProf1( new TProfile("520", "MB prof Phi [Electronics];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
00103 hmgr->addHisto1( new TH1F("521", "Phi [Electronics]" , 180, -3.1416, 3.1416 ) );
00104 hmgr->addHistoProf2( new TProfile2D("530", "MB prof Eta Phi [Electronics];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00105 hmgr->addHisto2( new TH2F("531", "Eta vs Phi [Electronics]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00106 hmgr->addHistoProf1( new TProfile("540", "MB prof R [Electronics];R [mm];x/X_{0}", 200, 0., 2000. ) );
00107 hmgr->addHisto1( new TH1F("541", "R [Electronics]" , 200, 0., 2000. ) );
00108 hmgr->addHistoProf2( new TProfile2D("550", "MB prof sum R z [Electronics];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00109 hmgr->addHisto2( new TH2F("551", "R vs z [Electronics]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00110 hmgr->addHisto2( new TH2F("560", "MB prof local R z [Electronics];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00111 hmgr->addHisto2( new TH2F("561", "R vs z [Electronics]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00112
00113 hmgr->addHistoProf1( new TProfile("610", "MB prof Eta [Other];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
00114 hmgr->addHisto1( new TH1F("611", "Eta [Other]" , 501, -5., 5. ) );
00115 hmgr->addHistoProf1( new TProfile("620", "MB prof Phi [Other];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
00116 hmgr->addHisto1( new TH1F("621", "Phi [Other]" , 180, -3.1416, 3.1416 ) );
00117 hmgr->addHistoProf2( new TProfile2D("630", "MB prof Eta Phi [Other];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00118 hmgr->addHisto2( new TH2F("631", "Eta vs Phi [Other]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00119 hmgr->addHistoProf1( new TProfile("640", "MB prof R [Other];R [mm];x/X_{0}", 200, 0., 2000. ) );
00120 hmgr->addHisto1( new TH1F("641", "R [Other]" , 200, 0., 2000. ) );
00121 hmgr->addHistoProf2( new TProfile2D("650", "MB prof sum R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00122 hmgr->addHisto2( new TH2F("651", "R vs z [Other]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00123 hmgr->addHisto2( new TH2F("660", "MB prof local R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00124 hmgr->addHisto2( new TH2F("661", "R vs z [Other]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00125
00126 hmgr->addHistoProf1( new TProfile("710", "MB prof Eta [Air];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
00127 hmgr->addHisto1( new TH1F("711", "Eta [Air]" , 501, -5., 5. ) );
00128 hmgr->addHistoProf1( new TProfile("720", "MB prof Phi [Air];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
00129 hmgr->addHisto1( new TH1F("721", "Phi [Air]" , 180, -3.1416, 3.1416 ) );
00130 hmgr->addHistoProf2( new TProfile2D("730", "MB prof Eta Phi [Air];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00131 hmgr->addHisto2( new TH2F("731", "Eta vs Phi [Air]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00132 hmgr->addHistoProf1( new TProfile("740", "MB prof R [Air];R [mm];x/X_{0}", 200, 0., 2000. ) );
00133 hmgr->addHisto1( new TH1F("741", "R [Air]" , 200, 0., 2000. ) );
00134 hmgr->addHistoProf2( new TProfile2D("750", "MB prof sum R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00135 hmgr->addHisto2( new TH2F("751", "R vs z [Air]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00136 hmgr->addHisto2( new TH2F("760", "MB prof local R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00137 hmgr->addHisto2( new TH2F("761", "R vs z [Air]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00138
00139
00140
00141 hmgr->addHistoProf1( new TProfile("1010", "MB prof Eta;#eta;#lambda/#lambda_{0} ", 250, -5., 5. ) );
00142 hmgr->addHisto1( new TH1F("1011", "Eta " , 501, -5., 5. ) );
00143 hmgr->addHistoProf1( new TProfile("1020", "MB prof Phi;#varphi [rad];#lambda/#lambda_{0} ", 180, -3.1416, 3.1416 ) );
00144 hmgr->addHisto1( new TH1F("1021", "Phi " , 180, -3.1416, 3.1416 ) );
00145 hmgr->addHistoProf2( new TProfile2D("1030", "MB prof Eta Phi;#eta;#varphi;#lambda/#lambda_{0} ", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00146 hmgr->addHisto2( new TH2F("1031", "Eta vs Phi " , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00147
00148
00149 hmgr->addHistoProf1( new TProfile("1040", "MB prof R;R [mm];#lambda/#lambda_{0} ", 200, 0., 2000. ) );
00150 hmgr->addHisto1( new TH1F("1041", "R " , 200, 0., 2000. ) );
00151 hmgr->addHistoProf2( new TProfile2D("1050", "MB prof sum R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00152 hmgr->addHisto2( new TH2F("1999", "Tot track length for l0", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00153 hmgr->addHisto2( new TH2F("1051", "R vs z " , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00154 hmgr->addHisto2( new TH2F("1060", "MB prof local R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00155 hmgr->addHisto2( new TH2F("1061", "R vs z " , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00156
00157
00158 hmgr->addHistoProf1( new TProfile("1110", "MB prof Eta [Support];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
00159 hmgr->addHisto1( new TH1F("1111", "Eta [Support]" , 501, -5., 5. ) );
00160 hmgr->addHistoProf1( new TProfile("1120", "MB prof Phi [Support];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
00161 hmgr->addHisto1( new TH1F("1121", "Phi [Support]" , 180, -3.1416, 3.1416 ) );
00162 hmgr->addHistoProf2( new TProfile2D("1130", "MB prof Eta Phi [Support];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00163 hmgr->addHisto2( new TH2F("1131", "Eta vs Phi [Support]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00164 hmgr->addHistoProf1( new TProfile("1140", "MB prof R [Support];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
00165 hmgr->addHisto1( new TH1F("1141", "R [Support]" , 200, 0., 2000. ) );
00166 hmgr->addHistoProf2( new TProfile2D("1150", "MB prof sum R z [Support];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00167 hmgr->addHisto2( new TH2F("1151", "R vs z [Support]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00168 hmgr->addHisto2( new TH2F("1160", "MB prof local R z [Support];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00169 hmgr->addHisto2( new TH2F("1161", "R vs z [Support]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00170
00171 hmgr->addHistoProf1( new TProfile("1210", "MB prof Eta [Sensitive];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
00172 hmgr->addHisto1( new TH1F("1211", "Eta [Sensitive]" , 501, -5., 5. ) );
00173 hmgr->addHistoProf1( new TProfile("1220", "MB prof Phi [Sensitive];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
00174 hmgr->addHisto1( new TH1F("1221", "Phi [Sensitive]" , 180, -3.1416, 3.1416 ) );
00175 hmgr->addHistoProf2( new TProfile2D("1230", "MB prof Eta Phi [Sensitive];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00176 hmgr->addHisto2( new TH2F("1231", "Eta vs Phi [Sensitive]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00177 hmgr->addHistoProf1( new TProfile("1240", "MB prof R [Sensitive];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
00178 hmgr->addHisto1( new TH1F("1241", "R [Sensitive]" , 200, 0., 2000. ) );
00179 hmgr->addHistoProf2( new TProfile2D("1250", "MB prof sum R z [Sensitive];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00180 hmgr->addHisto2( new TH2F("1251", "R vs z [Sensitive]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00181 hmgr->addHisto2( new TH2F("1260", "MB prof local R z [Sensitive];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00182 hmgr->addHisto2( new TH2F("1261", "R vs z [Sensitive]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00183
00184 hmgr->addHistoProf1( new TProfile("1310", "MB prof Eta [Cables];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
00185 hmgr->addHisto1( new TH1F("1311", "Eta [Cables]" , 501, -5., 5. ) );
00186 hmgr->addHistoProf1( new TProfile("1320", "MB prof Phi [Cables];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
00187 hmgr->addHisto1( new TH1F("1321", "Phi [Cables]" , 180, -3.1416, 3.1416 ) );
00188 hmgr->addHistoProf2( new TProfile2D("1330", "MB prof Eta Phi [Cables];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00189 hmgr->addHisto2( new TH2F("1331", "Eta vs Phi [Cables]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00190 hmgr->addHistoProf1( new TProfile("1340", "MB prof R [Cables];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
00191 hmgr->addHisto1( new TH1F("1341", "R [Cables]" , 200, 0., 2000. ) );
00192 hmgr->addHistoProf2( new TProfile2D("1350", "MB prof sum R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00193 hmgr->addHisto2( new TH2F("1351", "R vs z [Cables]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00194 hmgr->addHisto2( new TH2F("1360", "MB prof local R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00195 hmgr->addHisto2( new TH2F("1361", "R vs z [Cables]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00196
00197 hmgr->addHistoProf1( new TProfile("1410", "MB prof Eta [Cooling];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
00198 hmgr->addHisto1( new TH1F("1411", "Eta [Cooling]" , 501, -5., 5. ) );
00199 hmgr->addHistoProf1( new TProfile("1420", "MB prof Phi [Cooling];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
00200 hmgr->addHisto1( new TH1F("1421", "Phi [Cooling]" , 180, -3.1416, 3.1416 ) );
00201 hmgr->addHistoProf2( new TProfile2D("1430", "MB prof Eta Phi [Cooling];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00202 hmgr->addHisto2( new TH2F("1431", "Eta vs Phi [Cooling]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00203 hmgr->addHistoProf1( new TProfile("1440", "MB prof R [Cooling];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
00204 hmgr->addHisto1( new TH1F("1441", "R [Cooling]" , 200, 0., 2000. ) );
00205 hmgr->addHistoProf2( new TProfile2D("1450", "MB prof sum R z [Cooling];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00206 hmgr->addHisto2( new TH2F("1451", "R vs z [Cooling]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00207 hmgr->addHisto2( new TH2F("1460", "MB prof local R z [Cooling];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00208 hmgr->addHisto2( new TH2F("1461", "R vs z [Cooling]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00209
00210 hmgr->addHistoProf1( new TProfile("1510", "MB prof Eta [Electronics];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
00211 hmgr->addHisto1( new TH1F("1511", "Eta [Electronics]" , 501, -5., 5. ) );
00212 hmgr->addHistoProf1( new TProfile("1520", "MB prof Phi [Electronics];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
00213 hmgr->addHisto1( new TH1F("1521", "Phi [Electronics]" , 180, -3.1416, 3.1416 ) );
00214 hmgr->addHistoProf2( new TProfile2D("1530", "MB prof Eta Phi [Electronics];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00215 hmgr->addHisto2( new TH2F("1531", "Eta vs Phi [Electronics]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00216 hmgr->addHistoProf1( new TProfile("1540", "MB prof R [Electronics];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
00217 hmgr->addHisto1( new TH1F("1541", "R [Electronics]" , 200, 0., 2000. ) );
00218 hmgr->addHistoProf2( new TProfile2D("1550", "MB prof sum R z [Electronics];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00219 hmgr->addHisto2( new TH2F("1551", "R vs z [Electronics]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00220 hmgr->addHisto2( new TH2F("1560", "MB prof local R z [Electronics];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00221 hmgr->addHisto2( new TH2F("1561", "R vs z [Electronics]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00222
00223 hmgr->addHistoProf1( new TProfile("1610", "MB prof Eta [Other];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
00224 hmgr->addHisto1( new TH1F("1611", "Eta [Other]" , 501, -5., 5. ) );
00225 hmgr->addHistoProf1( new TProfile("1620", "MB prof Phi [Other];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
00226 hmgr->addHisto1( new TH1F("1621", "Phi [Other]" , 180, -3.1416, 3.1416 ) );
00227 hmgr->addHistoProf2( new TProfile2D("1630", "MB prof Eta Phi [Other];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00228 hmgr->addHisto2( new TH2F("1631", "Eta vs Phi [Other]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00229 hmgr->addHistoProf1( new TProfile("1640", "MB prof R [Other];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
00230 hmgr->addHisto1( new TH1F("1641", "R [Other]" , 200, 0., 2000. ) );
00231 hmgr->addHistoProf2( new TProfile2D("1650", "MB prof sum R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00232 hmgr->addHisto2( new TH2F("1651", "R vs z [Other]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00233 hmgr->addHisto2( new TH2F("1660", "MB prof local R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00234 hmgr->addHisto2( new TH2F("1661", "R vs z [Other]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00235
00236 hmgr->addHistoProf1( new TProfile("1710", "MB prof Eta [Air];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
00237 hmgr->addHisto1( new TH1F("1711", "Eta [Air]" , 501, -5., 5. ) );
00238 hmgr->addHistoProf1( new TProfile("1720", "MB prof Phi [Air];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
00239 hmgr->addHisto1( new TH1F("1721", "Phi [Air]" , 180, -3.1416, 3.1416 ) );
00240 hmgr->addHistoProf2( new TProfile2D("1730", "MB prof Eta Phi [Air];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
00241 hmgr->addHisto2( new TH2F("1731", "Eta vs Phi [Air]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
00242 hmgr->addHistoProf1( new TProfile("1740", "MB prof R [Air];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
00243 hmgr->addHisto1( new TH1F("1741", "R [Air]" , 200, 0., 2000. ) );
00244 hmgr->addHistoProf2( new TProfile2D("1750", "MB prof sum R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00245 hmgr->addHisto2( new TH2F("1751", "R vs z [Air]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00246 hmgr->addHisto2( new TH2F("1760", "MB prof local R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00247 hmgr->addHisto2( new TH2F("1761", "R vs z [Air]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
00248
00249
00250
00251
00252 std::cout << "=== booking user histos done ===" << std::endl;
00253
00254 }
00255
00256
00257 void MaterialBudgetTrackerHistos::fillStartTrack()
00258 {
00259
00260 }
00261
00262
00263 void MaterialBudgetTrackerHistos::fillPerStep()
00264 {
00265
00266 }
00267
00268
00269 void MaterialBudgetTrackerHistos::fillEndTrack()
00270 {
00271
00272
00273
00274
00275 if( theData->getNumberOfSteps() != 0 ) {
00276
00277
00278 hmgr->getHisto1(11)->Fill(theData->getEta());
00279 hmgr->getHisto1(21)->Fill(theData->getPhi());
00280 hmgr->getHisto2(31)->Fill(theData->getEta(),theData->getPhi());
00281
00282 hmgr->getHistoProf1(10)->Fill(theData->getEta(),theData->getTotalMB());
00283 hmgr->getHistoProf1(20)->Fill(theData->getPhi(),theData->getTotalMB());
00284 hmgr->getHistoProf2(30)->Fill(theData->getEta(),theData->getPhi(),theData->getTotalMB());
00285
00286
00287
00288
00289 hmgr->getHisto1(111)->Fill(theData->getEta());
00290 hmgr->getHisto1(121)->Fill(theData->getPhi());
00291 hmgr->getHisto2(131)->Fill(theData->getEta(),theData->getPhi());
00292
00293 hmgr->getHistoProf1(110)->Fill(theData->getEta(),theData->getSupportMB());
00294 hmgr->getHistoProf1(120)->Fill(theData->getPhi(),theData->getSupportMB());
00295 hmgr->getHistoProf2(130)->Fill(theData->getEta(),theData->getPhi(),theData->getSupportMB());
00296
00297
00298 hmgr->getHisto1(211)->Fill(theData->getEta());
00299 hmgr->getHisto1(221)->Fill(theData->getPhi());
00300 hmgr->getHisto2(231)->Fill(theData->getEta(),theData->getPhi());
00301
00302 hmgr->getHistoProf1(210)->Fill(theData->getEta(),theData->getSensitiveMB());
00303 hmgr->getHistoProf1(220)->Fill(theData->getPhi(),theData->getSensitiveMB());
00304 hmgr->getHistoProf2(230)->Fill(theData->getEta(),theData->getPhi(),theData->getSensitiveMB());
00305
00306
00307 hmgr->getHisto1(311)->Fill(theData->getEta());
00308 hmgr->getHisto1(321)->Fill(theData->getPhi());
00309 hmgr->getHisto2(331)->Fill(theData->getEta(),theData->getPhi());
00310
00311 hmgr->getHistoProf1(310)->Fill(theData->getEta(),theData->getCablesMB());
00312 hmgr->getHistoProf1(320)->Fill(theData->getPhi(),theData->getCablesMB());
00313 hmgr->getHistoProf2(330)->Fill(theData->getEta(),theData->getPhi(),theData->getCablesMB());
00314
00315
00316 hmgr->getHisto1(411)->Fill(theData->getEta());
00317 hmgr->getHisto1(421)->Fill(theData->getPhi());
00318 hmgr->getHisto2(431)->Fill(theData->getEta(),theData->getPhi());
00319
00320 hmgr->getHistoProf1(410)->Fill(theData->getEta(),theData->getCoolingMB());
00321 hmgr->getHistoProf1(420)->Fill(theData->getPhi(),theData->getCoolingMB());
00322 hmgr->getHistoProf2(430)->Fill(theData->getEta(),theData->getPhi(),theData->getCoolingMB());
00323
00324
00325 hmgr->getHisto1(511)->Fill(theData->getEta());
00326 hmgr->getHisto1(521)->Fill(theData->getPhi());
00327 hmgr->getHisto2(531)->Fill(theData->getEta(),theData->getPhi());
00328
00329 hmgr->getHistoProf1(510)->Fill(theData->getEta(),theData->getElectronicsMB());
00330 hmgr->getHistoProf1(520)->Fill(theData->getPhi(),theData->getElectronicsMB());
00331 hmgr->getHistoProf2(530)->Fill(theData->getEta(),theData->getPhi(),theData->getElectronicsMB());
00332
00333
00334 hmgr->getHisto1(611)->Fill(theData->getEta());
00335 hmgr->getHisto1(621)->Fill(theData->getPhi());
00336 hmgr->getHisto2(631)->Fill(theData->getEta(),theData->getPhi());
00337
00338 hmgr->getHistoProf1(610)->Fill(theData->getEta(),theData->getOtherMB());
00339 hmgr->getHistoProf1(620)->Fill(theData->getPhi(),theData->getOtherMB());
00340 hmgr->getHistoProf2(630)->Fill(theData->getEta(),theData->getPhi(),theData->getOtherMB());
00341
00342
00343 hmgr->getHisto1(711)->Fill(theData->getEta());
00344 hmgr->getHisto1(721)->Fill(theData->getPhi());
00345 hmgr->getHisto2(731)->Fill(theData->getEta(),theData->getPhi());
00346
00347 hmgr->getHistoProf1(710)->Fill(theData->getEta(),theData->getAirMB());
00348 hmgr->getHistoProf1(720)->Fill(theData->getPhi(),theData->getAirMB());
00349 hmgr->getHistoProf2(730)->Fill(theData->getEta(),theData->getPhi(),theData->getAirMB());
00350
00351
00352
00353
00354
00355 float theTotalMB_TOT = 0.0;
00356 float theTotalMB_SUP = 0.0;
00357 float theTotalMB_SEN = 0.0;
00358 float theTotalMB_CAB = 0.0;
00359 float theTotalMB_COL = 0.0;
00360 float theTotalMB_ELE = 0.0;
00361 float theTotalMB_OTH = 0.0;
00362 float theTotalMB_AIR = 0.0;
00363 for(int iStep = 0; iStep < theData->getNumberOfSteps(); iStep++) {
00364 theTotalMB_TOT += theData->getStepDmb(iStep);
00365 theTotalMB_SUP += theData->getSupportDmb(iStep);
00366 theTotalMB_SEN += theData->getSensitiveDmb(iStep);
00367 theTotalMB_CAB += theData->getCablesDmb(iStep);
00368 theTotalMB_COL += theData->getCoolingDmb(iStep);
00369 theTotalMB_ELE += theData->getElectronicsDmb(iStep);
00370 theTotalMB_OTH += theData->getOtherDmb(iStep);
00371 theTotalMB_AIR += theData->getAirDmb(iStep);
00372
00373 int iSup = 0;
00374 int iSen = 0;
00375 int iCab = 0;
00376 int iCol = 0;
00377 int iEle = 0;
00378 int iOth = 0;
00379 int iAir = 0;
00380 if( theData->getSupportDmb(iStep)>0. ) { iSup = 1; }
00381 if( theData->getSensitiveDmb(iStep)>0. ) { iSen = 1; }
00382 if( theData->getCablesDmb(iStep)>0. ) { iCab = 1; }
00383 if( theData->getCoolingDmb(iStep)>0. ) { iCol = 1; }
00384 if( theData->getElectronicsDmb(iStep)>0. ) { iEle = 1; }
00385 if( theData->getOtherDmb(iStep)>0. ) { iOth = 1; }
00386 if( theData->getAirDmb(iStep)>0. ) { iAir = 1; }
00387
00388 float deltaRadius = sqrt(
00389 pow( theData->getStepFinalX(iStep)-theData->getStepInitialX(iStep),2 )
00390 +
00391 pow( theData->getStepFinalY(iStep)-theData->getStepInitialY(iStep),2 )
00392 );
00393 float deltaz = theData->getStepFinalZ(iStep)-theData->getStepInitialZ(iStep) ;
00394
00395 float x0 = theData->getStepMaterialX0(iStep);
00396
00397 int nSubStep = 2;
00398 float boxWidth = 0.1;
00399 if( (deltaRadius>boxWidth) || (fabs(deltaz)>boxWidth) ) {
00400 nSubStep = static_cast<int>(max(
00401 ceil(deltaRadius/boxWidth/2.)*2,
00402 ceil(fabs(deltaz)/boxWidth/2.)*2
00403 ));
00404 }
00405
00406 for(int iSubStep = 1; iSubStep < nSubStep; iSubStep+=2) {
00407
00408 float subdeltaRadius = deltaRadius/nSubStep;
00409 float polarRadius = sqrt(
00410 pow( theData->getStepInitialX(iStep),2 )
00411 +
00412 pow( theData->getStepInitialY(iStep),2 )
00413 ) + iSubStep*subdeltaRadius;
00414
00415 float subdeltaz = deltaz/nSubStep;
00416 float z = theData->getStepInitialZ(iStep) + iSubStep*subdeltaz;
00417
00418 float subdelta = sqrt(
00419 pow ( subdeltaRadius,2 ) + pow( subdeltaz,2 )
00420 );
00421
00422 float fillValue=subdelta/x0;
00423
00424
00425
00426 hmgr->getHisto2(999)->Fill(z,polarRadius,subdelta);
00427
00428 hmgr->getHisto1(41)->Fill(polarRadius);
00429 hmgr->getHistoProf1(40)->Fill(polarRadius,theTotalMB_TOT);
00430 hmgr->getHisto2(51)->Fill(z,polarRadius);
00431 hmgr->getHistoProf2(50)->Fill(z,polarRadius,theTotalMB_TOT);
00432 hmgr->getHisto2(61)->Fill(z,polarRadius);
00433 hmgr->getHisto2(60)->Fill(z,polarRadius,fillValue);
00434
00435 hmgr->getHisto1(141)->Fill(polarRadius);
00436 hmgr->getHistoProf1(140)->Fill(polarRadius,theTotalMB_SUP);
00437 hmgr->getHisto2(151)->Fill(z,polarRadius);
00438 hmgr->getHistoProf2(150)->Fill(z,polarRadius,theTotalMB_SUP);
00439 hmgr->getHisto2(161)->Fill(z,polarRadius);
00440 hmgr->getHisto2(160)->Fill(z,polarRadius,iSup*fillValue);
00441
00442 hmgr->getHisto1(241)->Fill(polarRadius);
00443 hmgr->getHistoProf1(240)->Fill(polarRadius,theTotalMB_SEN);
00444 hmgr->getHisto2(251)->Fill(z,polarRadius);
00445 hmgr->getHistoProf2(250)->Fill(z,polarRadius,theTotalMB_SEN);
00446 hmgr->getHisto2(261)->Fill(z,polarRadius);
00447 hmgr->getHisto2(260)->Fill(z,polarRadius,iSen*fillValue);
00448
00449 hmgr->getHisto1(341)->Fill(polarRadius);
00450 hmgr->getHistoProf1(340)->Fill(polarRadius,theTotalMB_CAB);
00451 hmgr->getHisto2(351)->Fill(z,polarRadius);
00452 hmgr->getHistoProf2(350)->Fill(z,polarRadius,theTotalMB_CAB);
00453 hmgr->getHisto2(361)->Fill(z,polarRadius);
00454 hmgr->getHisto2(360)->Fill(z,polarRadius,iCab*fillValue);
00455
00456 hmgr->getHisto1(441)->Fill(polarRadius);
00457 hmgr->getHistoProf1(440)->Fill(polarRadius,theTotalMB_COL);
00458 hmgr->getHisto2(451)->Fill(z,polarRadius);
00459 hmgr->getHistoProf2(450)->Fill(z,polarRadius,theTotalMB_COL);
00460 hmgr->getHisto2(461)->Fill(z,polarRadius);
00461 hmgr->getHisto2(460)->Fill(z,polarRadius,iCol*fillValue);
00462
00463 hmgr->getHisto1(541)->Fill(polarRadius);
00464 hmgr->getHistoProf1(540)->Fill(polarRadius,theTotalMB_ELE);
00465 hmgr->getHisto2(551)->Fill(z,polarRadius);
00466 hmgr->getHistoProf2(550)->Fill(z,polarRadius,theTotalMB_ELE);
00467 hmgr->getHisto2(561)->Fill(z,polarRadius);
00468 hmgr->getHisto2(560)->Fill(z,polarRadius,iEle*fillValue);
00469
00470 hmgr->getHisto1(641)->Fill(polarRadius);
00471 hmgr->getHistoProf1(640)->Fill(polarRadius,theTotalMB_OTH);
00472 hmgr->getHisto2(651)->Fill(z,polarRadius);
00473 hmgr->getHistoProf2(650)->Fill(z,polarRadius,theTotalMB_OTH);
00474 hmgr->getHisto2(661)->Fill(z,polarRadius);
00475 hmgr->getHisto2(660)->Fill(z,polarRadius,iOth*fillValue);
00476
00477 hmgr->getHisto1(741)->Fill(polarRadius);
00478 hmgr->getHistoProf1(740)->Fill(polarRadius,theTotalMB_AIR);
00479 hmgr->getHisto2(751)->Fill(z,polarRadius);
00480 hmgr->getHistoProf2(750)->Fill(z,polarRadius,theTotalMB_AIR);
00481 hmgr->getHisto2(761)->Fill(z,polarRadius);
00482 hmgr->getHisto2(760)->Fill(z,polarRadius,iAir*fillValue);
00483
00484 }
00485 }
00486
00487
00489
00490
00491
00492
00493
00494
00495 hmgr->getHisto1(1011)->Fill(theData->getEta());
00496 hmgr->getHisto1(1021)->Fill(theData->getPhi());
00497 hmgr->getHisto2(1031)->Fill(theData->getEta(),theData->getPhi());
00498
00499 hmgr->getHistoProf1(1010)->Fill(theData->getEta(),theData->getTotalIL());
00500 hmgr->getHistoProf1(1020)->Fill(theData->getPhi(),theData->getTotalIL());
00501 hmgr->getHistoProf2(1030)->Fill(theData->getEta(),theData->getPhi(),theData->getTotalIL());
00502
00503
00504 hmgr->getHisto1(1111)->Fill(theData->getEta());
00505 hmgr->getHisto1(1121)->Fill(theData->getPhi());
00506 hmgr->getHisto2(1131)->Fill(theData->getEta(),theData->getPhi());
00507
00508 hmgr->getHistoProf1(1110)->Fill(theData->getEta(),theData->getSupportIL());
00509 hmgr->getHistoProf1(1120)->Fill(theData->getPhi(),theData->getSupportIL());
00510 hmgr->getHistoProf2(1130)->Fill(theData->getEta(),theData->getPhi(),theData->getSupportIL());
00511
00512
00513 hmgr->getHisto1(1211)->Fill(theData->getEta());
00514 hmgr->getHisto1(1221)->Fill(theData->getPhi());
00515 hmgr->getHisto2(1231)->Fill(theData->getEta(),theData->getPhi());
00516
00517 hmgr->getHistoProf1(1210)->Fill(theData->getEta(),theData->getSensitiveIL());
00518 hmgr->getHistoProf1(1220)->Fill(theData->getPhi(),theData->getSensitiveIL());
00519 hmgr->getHistoProf2(1230)->Fill(theData->getEta(),theData->getPhi(),theData->getSensitiveIL());
00520
00521
00522 hmgr->getHisto1(1311)->Fill(theData->getEta());
00523 hmgr->getHisto1(1321)->Fill(theData->getPhi());
00524 hmgr->getHisto2(1331)->Fill(theData->getEta(),theData->getPhi());
00525
00526 hmgr->getHistoProf1(1310)->Fill(theData->getEta(),theData->getCablesIL());
00527 hmgr->getHistoProf1(1320)->Fill(theData->getPhi(),theData->getCablesIL());
00528 hmgr->getHistoProf2(1330)->Fill(theData->getEta(),theData->getPhi(),theData->getCablesIL());
00529
00530
00531 hmgr->getHisto1(1411)->Fill(theData->getEta());
00532 hmgr->getHisto1(1421)->Fill(theData->getPhi());
00533 hmgr->getHisto2(1431)->Fill(theData->getEta(),theData->getPhi());
00534
00535 hmgr->getHistoProf1(1410)->Fill(theData->getEta(),theData->getCoolingIL());
00536 hmgr->getHistoProf1(1420)->Fill(theData->getPhi(),theData->getCoolingIL());
00537 hmgr->getHistoProf2(1430)->Fill(theData->getEta(),theData->getPhi(),theData->getCoolingIL());
00538
00539
00540 hmgr->getHisto1(1511)->Fill(theData->getEta());
00541 hmgr->getHisto1(1521)->Fill(theData->getPhi());
00542 hmgr->getHisto2(1531)->Fill(theData->getEta(),theData->getPhi());
00543
00544 hmgr->getHistoProf1(1510)->Fill(theData->getEta(),theData->getElectronicsIL());
00545 hmgr->getHistoProf1(1520)->Fill(theData->getPhi(),theData->getElectronicsIL());
00546 hmgr->getHistoProf2(1530)->Fill(theData->getEta(),theData->getPhi(),theData->getElectronicsIL());
00547
00548
00549 hmgr->getHisto1(1611)->Fill(theData->getEta());
00550 hmgr->getHisto1(1621)->Fill(theData->getPhi());
00551 hmgr->getHisto2(1631)->Fill(theData->getEta(),theData->getPhi());
00552
00553 hmgr->getHistoProf1(1610)->Fill(theData->getEta(),theData->getOtherIL());
00554 hmgr->getHistoProf1(1620)->Fill(theData->getPhi(),theData->getOtherIL());
00555 hmgr->getHistoProf2(1630)->Fill(theData->getEta(),theData->getPhi(),theData->getOtherIL());
00556
00557
00558 hmgr->getHisto1(1711)->Fill(theData->getEta());
00559 hmgr->getHisto1(1721)->Fill(theData->getPhi());
00560 hmgr->getHisto2(1731)->Fill(theData->getEta(),theData->getPhi());
00561
00562 hmgr->getHistoProf1(1710)->Fill(theData->getEta(),theData->getAirIL());
00563 hmgr->getHistoProf1(1720)->Fill(theData->getPhi(),theData->getAirIL());
00564 hmgr->getHistoProf2(1730)->Fill(theData->getEta(),theData->getPhi(),theData->getAirIL());
00565
00566
00567 float theTotalIL_TOT = 0.0;
00568 float theTotalIL_SUP = 0.0;
00569 float theTotalIL_SEN = 0.0;
00570 float theTotalIL_CAB = 0.0;
00571 float theTotalIL_COL = 0.0;
00572 float theTotalIL_ELE = 0.0;
00573 float theTotalIL_OTH = 0.0;
00574 float theTotalIL_AIR = 0.0;
00575 for(int iStep = 0; iStep < theData->getNumberOfSteps(); iStep++) {
00576 theTotalIL_TOT += theData->getStepDil(iStep);
00577 theTotalIL_SUP += theData->getSupportDil(iStep);
00578 theTotalIL_SEN += theData->getSensitiveDil(iStep);
00579 theTotalIL_CAB += theData->getCablesDil(iStep);
00580 theTotalIL_COL += theData->getCoolingDil(iStep);
00581 theTotalIL_ELE += theData->getElectronicsDil(iStep);
00582 theTotalIL_OTH += theData->getOtherDil(iStep);
00583 theTotalIL_AIR += theData->getAirDil(iStep);
00584
00585 int iSup = 0;
00586 int iSen = 0;
00587 int iCab = 0;
00588 int iCol = 0;
00589 int iEle = 0;
00590 int iOth = 0;
00591 int iAir = 0;
00592 if( theData->getSupportDil(iStep)>0. ) { iSup = 1; }
00593 if( theData->getSensitiveDil(iStep)>0. ) { iSen = 1; }
00594 if( theData->getCablesDil(iStep)>0. ) { iCab = 1; }
00595 if( theData->getCoolingDil(iStep)>0. ) { iCol = 1; }
00596 if( theData->getElectronicsDil(iStep)>0. ) { iEle = 1; }
00597 if( theData->getOtherDil(iStep)>0. ) { iOth = 1; }
00598 if( theData->getAirDil(iStep)>0. ) { iAir = 1; }
00599
00600 float deltaRadius = sqrt(
00601 pow( theData->getStepFinalX(iStep)-theData->getStepInitialX(iStep),2 )
00602 +
00603 pow( theData->getStepFinalY(iStep)-theData->getStepInitialY(iStep),2 )
00604 );
00605 float deltaz = theData->getStepFinalZ(iStep)-theData->getStepInitialZ(iStep) ;
00606
00607 float il = theData->getStepMaterialLambda0(iStep);
00608
00609 int nSubStep = 2;
00610 float boxWidth = 0.1;
00611 if( (deltaRadius>boxWidth) || (fabs(deltaz)>boxWidth) ) {
00612 nSubStep = static_cast<int>(max(
00613 ceil(deltaRadius/boxWidth/2.)*2,
00614 ceil(fabs(deltaz)/boxWidth/2.)*2
00615 ));
00616 }
00617
00618 for(int iSubStep = 1; iSubStep < nSubStep; iSubStep+=2) {
00619
00620 float subdeltaRadius = deltaRadius/nSubStep;
00621 float polarRadius = sqrt(
00622 pow( theData->getStepInitialX(iStep),2 )
00623 +
00624 pow( theData->getStepInitialY(iStep),2 )
00625 ) + iSubStep*subdeltaRadius;
00626
00627 float subdeltaz = deltaz/nSubStep;
00628 float z = theData->getStepInitialZ(iStep) + iSubStep*subdeltaz;
00629
00630 float subdelta = sqrt(
00631 pow ( subdeltaRadius,2 ) + pow( subdeltaz,2 )
00632 );
00633
00634 float fillValue=subdelta/il;
00635
00636
00637
00638 hmgr->getHisto2(1999)->Fill(z,polarRadius,subdelta);
00639
00640 hmgr->getHisto1(1041)->Fill(polarRadius);
00641 hmgr->getHistoProf1(1040)->Fill(polarRadius,theTotalIL_TOT);
00642 hmgr->getHisto2(1051)->Fill(z,polarRadius);
00643 hmgr->getHistoProf2(1050)->Fill(z,polarRadius,theTotalIL_TOT);
00644 hmgr->getHisto2(1061)->Fill(z,polarRadius);
00645 hmgr->getHisto2(1060)->Fill(z,polarRadius,fillValue);
00646
00647 hmgr->getHisto1(1141)->Fill(polarRadius);
00648 hmgr->getHistoProf1(1140)->Fill(polarRadius,theTotalIL_SUP);
00649 hmgr->getHisto2(1151)->Fill(z,polarRadius);
00650 hmgr->getHistoProf2(1150)->Fill(z,polarRadius,theTotalIL_SUP);
00651 hmgr->getHisto2(1161)->Fill(z,polarRadius);
00652 hmgr->getHisto2(1160)->Fill(z,polarRadius,iSup*fillValue);
00653
00654 hmgr->getHisto1(1241)->Fill(polarRadius);
00655 hmgr->getHistoProf1(1240)->Fill(polarRadius,theTotalIL_SEN);
00656 hmgr->getHisto2(1251)->Fill(z,polarRadius);
00657 hmgr->getHistoProf2(1250)->Fill(z,polarRadius,theTotalIL_SEN);
00658 hmgr->getHisto2(1261)->Fill(z,polarRadius);
00659 hmgr->getHisto2(1260)->Fill(z,polarRadius,iSen*fillValue);
00660
00661 hmgr->getHisto1(1341)->Fill(polarRadius);
00662 hmgr->getHistoProf1(1340)->Fill(polarRadius,theTotalIL_CAB);
00663 hmgr->getHisto2(1351)->Fill(z,polarRadius);
00664 hmgr->getHistoProf2(1350)->Fill(z,polarRadius,theTotalIL_CAB);
00665 hmgr->getHisto2(1361)->Fill(z,polarRadius);
00666 hmgr->getHisto2(1360)->Fill(z,polarRadius,iCab*fillValue);
00667
00668 hmgr->getHisto1(1441)->Fill(polarRadius);
00669 hmgr->getHistoProf1(1440)->Fill(polarRadius,theTotalIL_COL);
00670 hmgr->getHisto2(1451)->Fill(z,polarRadius);
00671 hmgr->getHistoProf2(1450)->Fill(z,polarRadius,theTotalIL_COL);
00672 hmgr->getHisto2(1461)->Fill(z,polarRadius);
00673 hmgr->getHisto2(1460)->Fill(z,polarRadius,iCol*fillValue);
00674
00675 hmgr->getHisto1(1541)->Fill(polarRadius);
00676 hmgr->getHistoProf1(1540)->Fill(polarRadius,theTotalIL_ELE);
00677 hmgr->getHisto2(1551)->Fill(z,polarRadius);
00678 hmgr->getHistoProf2(1550)->Fill(z,polarRadius,theTotalIL_ELE);
00679 hmgr->getHisto2(1561)->Fill(z,polarRadius);
00680 hmgr->getHisto2(1560)->Fill(z,polarRadius,iEle*fillValue);
00681
00682 hmgr->getHisto1(1641)->Fill(polarRadius);
00683 hmgr->getHistoProf1(1640)->Fill(polarRadius,theTotalIL_OTH);
00684 hmgr->getHisto2(1651)->Fill(z,polarRadius);
00685 hmgr->getHistoProf2(1650)->Fill(z,polarRadius,theTotalIL_OTH);
00686 hmgr->getHisto2(1661)->Fill(z,polarRadius);
00687 hmgr->getHisto2(1660)->Fill(z,polarRadius,iOth*fillValue);
00688
00689 hmgr->getHisto1(1741)->Fill(polarRadius);
00690 hmgr->getHistoProf1(1740)->Fill(polarRadius,theTotalIL_AIR);
00691 hmgr->getHisto2(1751)->Fill(z,polarRadius);
00692 hmgr->getHistoProf2(1750)->Fill(z,polarRadius,theTotalIL_AIR);
00693 hmgr->getHisto2(1761)->Fill(z,polarRadius);
00694 hmgr->getHisto2(1760)->Fill(z,polarRadius,iAir*fillValue);
00695
00696 }
00697
00698 }
00699
00700
00701 } else {
00702 std::cout << "*** WARNING This event is out of the acceptance *** " << std::endl;
00703 std::cout << "eta = " << theData->getEta()
00704 << "\t phi = " << theData->getPhi()
00705 << "\t x/X0 = " << theData->getTotalMB()
00706 << "\t l/l0 = " << theData->getTotalIL()
00707 << "\t steps = " << theData->getNumberOfSteps()
00708 << std::endl;
00709 std::cout << "***" << std::endl;
00710 }
00711
00712
00713 }
00714
00715 void MaterialBudgetTrackerHistos::hend()
00716 {
00717
00718 hmgr->getHisto2(60)->Divide(hmgr->getHisto2(999));
00719 hmgr->getHisto2(160)->Divide(hmgr->getHisto2(999));
00720 hmgr->getHisto2(260)->Divide(hmgr->getHisto2(999));
00721 hmgr->getHisto2(360)->Divide(hmgr->getHisto2(999));
00722 hmgr->getHisto2(460)->Divide(hmgr->getHisto2(999));
00723 hmgr->getHisto2(560)->Divide(hmgr->getHisto2(999));
00724 hmgr->getHisto2(660)->Divide(hmgr->getHisto2(999));
00725 hmgr->getHisto2(760)->Divide(hmgr->getHisto2(999));
00726
00727 hmgr->getHisto2(160)->Divide(hmgr->getHisto2(1999));
00728 hmgr->getHisto2(1160)->Divide(hmgr->getHisto2(1999));
00729 hmgr->getHisto2(1260)->Divide(hmgr->getHisto2(1999));
00730 hmgr->getHisto2(1360)->Divide(hmgr->getHisto2(1999));
00731 hmgr->getHisto2(1460)->Divide(hmgr->getHisto2(1999));
00732 hmgr->getHisto2(1560)->Divide(hmgr->getHisto2(1999));
00733 hmgr->getHisto2(1660)->Divide(hmgr->getHisto2(1999));
00734 hmgr->getHisto2(1760)->Divide(hmgr->getHisto2(1999));
00735
00736 std::cout << "=== save user histos ===" << std::endl;
00737 hmgr->save( theFileName );
00738
00739 }
00740
00741