diff --git a/macro/matbudget_ana.C b/macro/matbudget_ana.C index 028db6dd7729bf18c6477af40dd5666a6da5e492..bfee09ac48cdf85bbbed44f4946dcd5dcfe73fb1 100644 --- a/macro/matbudget_ana.C +++ b/macro/matbudget_ana.C @@ -32,14 +32,14 @@ using std::vector; //Int_t matbudget_ana(Int_t nEvents = 10 , const char* stsGeo = "v16v") //Int_t matbudget_ana(Int_t nEvents = 1000000 , const char* stsGeo = "v16v") -//Int_t matbudget_ana(Int_t nEvents = 10000000, const char* Geo = "sts_v22e_mcbm") -Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm") +Int_t matbudget_ana(Int_t nEvents = 10000000, const char* Geo = "sts_v22f_mcbm") +//Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm") { // start of the STS, start of Station 1, start of Station 2, start of Station 3, ...., start of Station 8, end of Station 8, end of STS //double boundaries[nStations + 3] = {-42.5, -20.5, -8.5, 2.0, 12.5, 23.0, 33.5, 44.0, 54.25, 64.75, 80.5}; // trd_v22g_mcbm -/* const int nStations = 4; +/* const int nStations = 4; double Tz = 162.2; double boundaries[nStations + 2] = {-300+Tz, -46+Tz, -26+Tz, -4+Tz, 21+Tz, 45+Tz}; const double xMin = -105, xMax=55, yMin=-80, yMax=80; // 160cm in x and y. @@ -47,7 +47,7 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm" */ // trd_v22h_mcbm -/* const int nStations = 3; +/* const int nStations = 3; double Tz = 135.2; double boundaries[nStations + 2] = {-300+Tz, -25+Tz, 15+Tz, 50+Tz, 80+Tz}; const double xMin = -80, xMax=80, yMin=-80, yMax=80; // 160cm in x and y. @@ -55,40 +55,39 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm" /* tof_v21h_mcbm - const int nStations = 4; + const int nStations = 4; double Tz = 247.0; double boundaries[nStations + 2] = {-300+Tz, -10+Tz, 7+Tz, 21+Tz, 53+Tz, 68+Tz}; const double xMin = -80, xMax=80, yMin=-80, yMax=80; // 160cm in x and y. */ -/* - sts_v22e_mcbm - const int nStations = 2; + + // sts_v22f_mcbm + const int nStations = 2; double Tz = 40.0; double boundaries[nStations + 2] = {-300+Tz, -20+Tz, 0+Tz, 20+Tz}; const double xMin = -80, xMax=80, yMin=-80, yMax=80; // 160cm in x and y. -*/ /* // much v22k mcbm - const int nStations = 3; + const int nStations = 3; double Tz = 0.0; double boundaries[nStations + 2] = {-100+Tz, 70+Tz, 94+Tz, 224+Tz, 340+Tz}; const double xMin = -90, xMax=90, yMin=-80, yMax=80; // 160cm in x and y. */ - +/* // tof_v21d_mcbm - Double_t theta=-12.5*M_PI/180; // + Double_t theta=-12.5*M_PI/180; // - const int nStations = 5; + const int nStations = 5; double Tz = 247.0; double Tx = 53.0; double Ty = 0.0; double boundaries[nStations + 2] = {Tz-13.0, Tz+10.0, Tz+30.0, Tz+50.0, Tz+90.0, Tz+216.0, 220+Tz}; const double xMin=-90+Tx, xMax=70+Tx, yMin=-80+Ty, yMax=80+Ty; // 160cm in x and y. - +*/ // Input file (MC) TString geoVersion(Geo); TString inFile = "data/matbudget." + geoVersion + ".mc.root"; @@ -190,7 +189,7 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm" const double radThick = posDif.Mag() / point->GetRadLength(); RadLengthOnTrack[point->GetTrackID()] += radThick; TrackLength[point->GetTrackID()] += posDif.Mag(); - + iStation = 0; while (posIn.Z() > boundaries[iStation] && iStation <= nStations + 1) iStation++; // iStation 2 is the first station, iStation 1 is the material before the station @@ -211,7 +210,7 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm" GeoRadThick[j] += radThick * (posOut.Z() - boundaries[j - 1]) / posDif.Mag(); }; }; - + RadThick = 0; // Fill material budget map for each station for (int i = 0; i <= nStations + 2; i++) { @@ -245,8 +244,8 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm" // All plots on a single canvas TCanvas* can1 = new TCanvas("c", "c"); - // can1->SetWindowSize(900,800); - can1->Divide(nStations / 2, 2); + can1->SetWindowSize(900,800); + can1->Divide(2, nStations / 2); //can1->Divide(2, 2); gStyle->SetPalette(1); gStyle->SetOptStat(0); @@ -257,7 +256,7 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm" hStationRadLen[iStation]->GetYaxis()->SetTitle("y [cm]"); hStationRadLen[iStation]->GetZaxis()->SetTitle("x/X_{0} [%]"); // hStationRadLen[iStation]->GetZaxis()->SetTitle("radiation thickness [%]"); - hStationRadLen[iStation]->SetAxisRange(0.0, 20, "Z"); + hStationRadLen[iStation]->SetAxisRange(0.1, 6, "Z"); // gPad->SetLogz(); hStationRadLen[iStation]->Draw("colz"); hStationRadLen[iStation]->Write(); // Writing the root file here @@ -272,7 +271,7 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm" - // Total material budget + // Total material budget TCanvas* can2 = new TCanvas("c2", "c2"); can2->SetCanvasSize(900,800); // can2->Divide(2, 1); @@ -281,9 +280,9 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm" //can2->cd(); hGeoRadLen->GetXaxis()->SetTitle("x [cm]"); hGeoRadLen->GetYaxis()->SetTitle("y [cm]"); - hGeoRadLen->SetAxisRange(0.01, 10, "Z"); + hGeoRadLen->SetAxisRange(0.1, 10, "Z"); gPad->SetLogz(); - hGeoRadLen->Draw("colz"); + hGeoRadLen->Draw("colz"); plotFile = geoVersion + "_total_matbudget.png"; can2->SaveAs(plotFile); @@ -296,8 +295,8 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm" for (int iStation = 1; iStation < nStations+1; iStation++) { thisStation.Form("%d", iStation); gPad->SetLogz(); - hStationRadLen[iStation+1]->Draw("colz"); - hStationRadLen[iStation+1]->SetAxisRange(0.01, 40, "Z"); + hStationRadLen[iStation+1]->Draw("colz"); + hStationRadLen[iStation+1]->SetAxisRange(0.1, 6, "Z"); // Plot file plotFile = geoVersion + "_station_" + thisStation + "_matbudget.png"; diff --git a/macro/matbudget_mc.C b/macro/matbudget_mc.C index f2038bf2624729eba2ec91594fe6ff9f17fe5fc5..57cf1a0005cb29b66b118ce364bb59c810dba5e4 100644 --- a/macro/matbudget_mc.C +++ b/macro/matbudget_mc.C @@ -18,8 +18,8 @@ #include "../../sim/transport/gconfig/g3Config.C" void matbudget_mc( -const char* inGeo = "tof_v21d_mcbm", -Int_t nEvents = 1000 +const char* inGeo = "sts_v22f_mcbm", +Int_t nEvents = 10000000 ){ // ----- Paths and file names -------------------------------------------- TString geoVersion(inGeo); @@ -34,13 +34,12 @@ Int_t nEvents = 1000 TString targetGeom = ""; TString pipeGeom = ""; TString magnetGeom = ""; - TString mvdGeom = ""; - TString stsGeom = ""; //sts/" + geoVersion + ".geo.root"; + TString mvdGeom = ""; + TString stsGeom = "sts/" + geoVersion + ".geo.root"; TString richGeom = ""; -// TString muchGeom = "much/" + geoVersion + ".geo.root"; - TString muchGeom = ""; - TString tofGeom = "tof/" + geoVersion + ".geo.root"; // "mcbm/trd_v22g.geo.root"; - TString trdGeom = ""; //trd/" + geoVersion + ".geo.root"; + TString muchGeom = ""; // "much/" + geoVersion + ".geo.root"; + TString tofGeom = ""; // "tof/" + geoVersion + ".geo.root"; + TString trdGeom = ""; // "trd/" + geoVersion + ".geo.root"; // In general, the following parts need not be touched // ======================================================================== @@ -128,13 +127,13 @@ Int_t nEvents = 1000 FairDetector* tof = new CbmTof("TOF", kTRUE); - std::cout << "Rotating by -12.5" << std::endl; - TGeoMatrix* matr = new TGeoRotation("remove rotation"); - matr->RotateY(-12.5); - matr->Print(); - +// std::cout << "Rotating by -12.5" << std::endl; +// TGeoMatrix* matr = new TGeoRotation("remove rotation"); +// matr->RotateY(-12.5); +// matr->Print(); + // FairModule::SetDefaultMatrixName(matr); - tof->SetDefaultMatrixName(matr); +// tof->SetDefaultMatrixName(matr); tof->SetGeometryFileName(tofGeom); run->AddModule(tof); } @@ -156,10 +155,10 @@ Int_t nEvents = 1000 // The starting points in x and y are chosen such as to illuminate the STS. FairBoxGenerator* boxGen = new FairBoxGenerator(0, 1); // boxGen->SetBoxXYZ(-50.,-50.,50.,50.,0.); // STS SIS100 - // boxGen->SetBoxXYZ(-15.,-15.,15.,15.,0.); // STS mCBM + boxGen->SetBoxXYZ(-80.,-80.,80.,80.,0.); // STS mCBM w/ C frames // boxGen->SetBoxXYZ(-100.0, -100.0, 100, 100, -500.); // MVD - boxGen->SetBoxXYZ(-70.0, -80.0, 70, 90, -500.); // TOF v21d mcbm + // boxGen->SetBoxXYZ(-70.0, -80.0, 70, 90, -500.); // TOF v21d mcbm boxGen->SetPRange(0.1, 0.5); boxGen->SetThetaRange(0., 0.); boxGen->SetPhiRange(0., 360.); diff --git a/sts/matbudget_sts_v22f_mcbm.root b/sts/matbudget_sts_v22f_mcbm.root new file mode 100644 index 0000000000000000000000000000000000000000..80b31f953078c96a9467a43cb6d49fadde388d15 Binary files /dev/null and b/sts/matbudget_sts_v22f_mcbm.root differ