diff --git a/macro/beamtime/mcbm2019/PlotHodoCoinc.C b/macro/beamtime/mcbm2019/PlotHodoCoinc.C deleted file mode 100644 index ab4f583d6adfd581313a193f22af8201d2689eb3..0000000000000000000000000000000000000000 --- a/macro/beamtime/mcbm2019/PlotHodoCoinc.C +++ /dev/null @@ -1,754 +0,0 @@ - -void PlotHodoCoinc(TString sFilename, - Int_t iNbTs = -1, - Double_t dOffsetX = 0.0, - Double_t dOffsetY = 0.0) { - /// Data access - TClonesArray* arrayClusters = new TClonesArray("CbmStsCluster"); - TClonesArray* arrayHits = new TClonesArray("CbmStsHit"); - TFile* pFile = new TFile(sFilename, "READ"); - TTree* pTree = dynamic_cast<TTree*>(pFile->Get("cbmsim")); - pTree->SetBranchAddress("StsCluster", &arrayClusters); - pTree->SetBranchAddress("StsHit", &arrayHits); - - - /// Histograms - Int_t iCoincLimitClk = 200; - Double_t dClockCycle = 3.125; // ns - Double_t dCoincLimit = iCoincLimitClk * dClockCycle; - TH2* phHitsPositionHodoA = - new TH2I("phHitsPositionHodoA", - "Position of the hits in hodoscope A; X [cm]; Y [cm]; Hits []", - 80, - -4.0, - 4.0, - 80, - -4.0, - 4.0); - TH2* phHitsPositionHodoB = - new TH2I("phHitsPositionHodoB", - "Position of the hits in hodoscope B; X [cm]; Y [cm]; Hits []", - 80, - -4.0, - 4.0, - 80, - -4.0, - 4.0); - ///---------------------------------------------------------------------/// - - TH2* phNbHitsComparison = new TH2I("phNbHitsComparison", - "Number of hits per TS in Hodo A vs Hodo " - "B; Nb Hits A[]; Nb Hits B []; TS []", - 100, - 0.0, - 100.0, - 100, - 0.0, - 100.0); - ///---------------------------------------------------------------------/// - - TH2* phHitsCoincCorrXX = new TH2I( - "phHitsCoincCorrXX", - "XX correlation of the coincident hits; X_A [cm]; X_B [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - TH2* phHitsCoincCorrYY = new TH2I( - "phHitsCoincCorrYY", - "YY correlation of the coincident hits; Y_A [cm]; Y_B [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - TH2* phHitsCoincCorrXY = new TH2I( - "phHitsCoincCorrXY", - "XY correlation of the coincident hits; X_A [cm]; Y_B [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - TH2* phHitsCoincCorrYX = new TH2I( - "phHitsCoincCorrYX", - "YX correlation of the coincident hits; Y_A [cm]; X_B [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - - TH2* phHitsPositionCoincA = new TH2I( - "phHitsPositionCoincA", - "Position of the coincident hits in hodoscope A; X [cm]; Y [cm]; Hits []", - 80, - -4.0, - 4.0, - 80, - -4.0, - 4.0); - TH2* phHitsPositionCoincB = new TH2I( - "phHitsPositionCoincB", - "Position of the coincident hits in hodoscope B; X [cm]; Y [cm]; Hits []", - 80, - -4.0, - 4.0, - 80, - -4.0, - 4.0); - TH2* phHitsPositionDiff = - new TH2I("phHitsPositionDiff", - "Position difference of the coincident hits; X_B - X_A [cm]; Y_B- " - "Y_A [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - TH1* phHitsTimeDiff = - new TH1I("phHitsTimeDiff", - "Time difference of the coincident hits; t_B - t_A [ns]; Hits []", - 2 * iCoincLimitClk, - -dCoincLimit, - dCoincLimit); - - TH1* phHitsCoincDist = - new TH1I("phHitsCoincDist", - "XY distance of the coincident hits; Dist. [cm]; Hits []", - 100, - 0.0, - 10.0); - TH1* phHitsCoincAngle = - new TH1I("phHitsCoincAngle", - "Vertical angle of the coincident hits; Angle [deg.]; Hits []", - 180, - -90.0, - 90.0); - ///---------------------------------------------------------------------/// - - TH2* phHitsSingleCoincCorrXX = new TH2I( - "phHitsSingleCoincCorrXX", - "XX correlation of the coincident hits; X_A [cm]; X_B [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - TH2* phHitsSingleCoincCorrYY = new TH2I( - "phHitsSingleCoincCorrYY", - "YY correlation of the coincident hits; Y_A [cm]; Y_B [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - TH2* phHitsSingleCoincCorrXY = new TH2I( - "phHitsSingleCoincCorrXY", - "XY correlation of the coincident hits; X_A [cm]; Y_B [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - TH2* phHitsSingleCoincCorrYX = new TH2I( - "phHitsSingleCoincCorrYX", - "YX correlation of the coincident hits; Y_A [cm]; X_B [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - - TH2* phHitsSinglePositionCoincA = new TH2I( - "phHitsSinglePositionCoincA", - "Position of the coincident hits in hodoscope A; X [cm]; Y [cm]; Hits []", - 80, - -4.0, - 4.0, - 80, - -4.0, - 4.0); - TH2* phHitsSinglePositionCoincB = new TH2I( - "phHitsSinglePositionCoincB", - "Position of the coincident hits in hodoscope B; X [cm]; Y [cm]; Hits []", - 80, - -4.0, - 4.0, - 80, - -4.0, - 4.0); - TH2* phHitsSinglePositionDiff = - new TH2I("phHitsSinglePositionDiff", - "Position difference of the coincident hits; X_B - X_A [cm]; Y_B- " - "Y_A [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - TH1* phHitsSingleTimeDiff = - new TH1I("phHitsSingleTimeDiff", - "Time difference of the coincident hits; t_B - t_A [ns]; Hits []", - 2 * iCoincLimitClk, - -dCoincLimit, - dCoincLimit); - - TH1* phHitsSingleCoincDist = - new TH1I("phHitsSingleCoincDist", - "XY distance of the coincident hits; Dist. [cm]; Hits []", - 100, - 0.0, - 10.0); - TH1* phHitsSingleCoincAngle = - new TH1I("phHitsSingleCoincAngle", - "Vertical angle of the coincident hits; Angle [deg.]; Hits []", - 180, - -90.0, - 90.0); - ///---------------------------------------------------------------------/// - - TH2* phHitsBestCoincCorrXX = new TH2I( - "phHitsBestCoincCorrXX", - "XX correlation of the coincident hits; X_A [cm]; X_B [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - TH2* phHitsBestCoincCorrYY = new TH2I( - "phHitsBestCoincCorrYY", - "YY correlation of the coincident hits; Y_A [cm]; Y_B [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - TH2* phHitsBestCoincCorrXY = new TH2I( - "phHitsBestCoincCorrXY", - "XY correlation of the coincident hits; X_A [cm]; Y_B [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - TH2* phHitsBestCoincCorrYX = new TH2I( - "phHitsBestCoincCorrYX", - "YX correlation of the coincident hits; Y_A [cm]; X_B [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - - TH2* phHitsBestPositionCoincA = new TH2I( - "phHitsBestPositionCoincA", - "Position of the coincident hits in hodoscope A; X [cm]; Y [cm]; Hits []", - 80, - -4.0, - 4.0, - 80, - -4.0, - 4.0); - TH2* phHitsBestPositionCoincB = new TH2I( - "phHitsBestPositionCoincB", - "Position of the coincident hits in hodoscope B; X [cm]; Y [cm]; Hits []", - 80, - -4.0, - 4.0, - 80, - -4.0, - 4.0); - TH2* phHitsBestPositionDiff = - new TH2I("phHitsBestPositionDiff", - "Position difference of the coincident hits; X_B - X_A [cm]; Y_B- " - "Y_A [cm]; Hits []", - 160, - -8.0, - 8.0, - 160, - -8.0, - 8.0); - TH1* phHitsBestTimeDiff = - new TH1I("phHitsBestTimeDiff", - "Time difference of the coincident hits; t_B - t_A [ns]; Hits []", - 2 * iCoincLimitClk, - -dCoincLimit, - dCoincLimit); - - TH1* phHitsBestCoincDist = - new TH1I("phHitsBestCoincDist", - "XY distance of the coincident hits; Dist. [cm]; Hits []", - 100, - 0.0, - 10.0); - TH1* phHitsBestCoincAngle = - new TH1I("phHitsBestCoincAngle", - "Vertical angle of the coincident hits; Angle [deg.]; Hits []", - 180, - -90.0, - 90.0); - ///---------------------------------------------------------------------/// - - /// Looping variables - Int_t iNbTsInFile = pTree->GetEntries(); - Int_t iNbClusters = 0; - Int_t iNbHits = 0; - std::vector<CbmStsHit*> vHitsHodoA; - std::vector<CbmStsHit*> vHitsHodoB; - - if (-1 == iNbTs || iNbTsInFile < iNbTs) iNbTs = iNbTsInFile; - - for (Int_t iTs = 0; iTs < iNbTs; ++iTs) { - if (0 == iTs % 10000) - std::cout << "Processing TS " << std::setw(7) << iTs << std::endl; - - pTree->GetEntry(iTs); - iNbHits = arrayHits->GetEntriesFast(); - - vHitsHodoA.clear(); - vHitsHodoB.clear(); - for (Int_t iHit = 0; iHit < iNbHits; ++iHit) { - CbmStsHit* pHit = dynamic_cast<CbmStsHit*>(arrayHits->UncheckedAt(iHit)); - Double_t dX = pHit->GetX(); - Double_t dY = pHit->GetY(); - Double_t dZ = pHit->GetZ(); - - /// Check if the hit is in Hodo A or B - if (dZ < 33.0) { - vHitsHodoA.push_back(pHit); - phHitsPositionHodoA->Fill(dX, dY); - } // if( dZ < 33.0 ) => if Hodo A - else { - vHitsHodoB.push_back(pHit); - phHitsPositionHodoB->Fill(dX, dY); - } // else of if( dZ < 33.0 ) => if Hodo B - } // for( Int_t iHit = 0; iHit < iNbHits; ++iHit) - - phNbHitsComparison->Fill(vHitsHodoA.size(), vHitsHodoB.size()); - - for (UInt_t uHitA = 0; uHitA < vHitsHodoA.size(); ++uHitA) { - Double_t dBestTime = 1e9; - UInt_t uBestB = vHitsHodoB.size(); - - Double_t dTimeA = vHitsHodoA[uHitA]->GetTime(); - for (UInt_t uHitB = 0; uHitB < vHitsHodoB.size(); ++uHitB) { - Double_t dTimeB = vHitsHodoB[uHitB]->GetTime(); - - if (TMath::Abs(dTimeB - dTimeA) < dCoincLimit) { - phHitsCoincCorrXX->Fill(vHitsHodoA[uHitA]->GetX(), - vHitsHodoB[uHitB]->GetX()); - phHitsCoincCorrYY->Fill(vHitsHodoA[uHitA]->GetY(), - vHitsHodoB[uHitB]->GetY()); - phHitsCoincCorrXY->Fill(vHitsHodoA[uHitA]->GetX(), - vHitsHodoB[uHitB]->GetY()); - phHitsCoincCorrYX->Fill(vHitsHodoA[uHitA]->GetY(), - vHitsHodoB[uHitB]->GetX()); - - phHitsPositionCoincA->Fill(vHitsHodoA[uHitA]->GetX(), - vHitsHodoA[uHitA]->GetY()); - phHitsPositionCoincB->Fill(vHitsHodoB[uHitB]->GetX(), - vHitsHodoB[uHitB]->GetY()); - phHitsPositionDiff->Fill( - vHitsHodoB[uHitB]->GetX() - vHitsHodoA[uHitA]->GetX() - dOffsetX, - vHitsHodoB[uHitB]->GetY() - vHitsHodoA[uHitA]->GetY() - dOffsetY); - phHitsTimeDiff->Fill(dTimeB - dTimeA); - - Double_t dHitsDistXY = TMath::Sqrt( - (vHitsHodoA[uHitA]->GetX() - vHitsHodoB[uHitB]->GetX() - dOffsetX) - * (vHitsHodoA[uHitA]->GetX() - vHitsHodoB[uHitB]->GetX() - - dOffsetX) - + (vHitsHodoA[uHitA]->GetY() - vHitsHodoB[uHitB]->GetY() - dOffsetY) - * (vHitsHodoA[uHitA]->GetY() - vHitsHodoB[uHitB]->GetY() - - dOffsetY)); - // Double_t dHitsDistZ = TMath::Abs( vHitsHodoA[ uHitA ]->GetZ() - vHitsHodoB[ uHitB ]->GetZ() ); - Double_t dHitsDistZ = 3.5; - Double_t dAngle = - TMath::RadToDeg() * TMath::ATan2(dHitsDistXY, dHitsDistZ); - phHitsCoincDist->Fill(dHitsDistXY); - phHitsCoincAngle->Fill(dAngle); - - if (TMath::Abs(dTimeB - dTimeA) < dBestTime) { - dBestTime = TMath::Abs(dTimeB - dTimeA); - uBestB = uHitB; - } // if( TMath::Abs( dTimeB - dTimeA ) < dBestTime ) - } // if( TMath::Abs( dTimeB - dTimeA ) < dCoincLimit ) - } // for( UInt_t uHitB = 0; uHitB < vHitsHodoB.size(); ++uHitB ) - if (uBestB < vHitsHodoB.size()) { - Double_t dTimeB = vHitsHodoB[uBestB]->GetTime(); - - if (TMath::Abs(dTimeB - dTimeA) < dCoincLimit) { - phHitsBestCoincCorrXX->Fill(vHitsHodoA[uHitA]->GetX(), - vHitsHodoB[uBestB]->GetX()); - phHitsBestCoincCorrYY->Fill(vHitsHodoA[uHitA]->GetY(), - vHitsHodoB[uBestB]->GetY()); - phHitsBestCoincCorrXY->Fill(vHitsHodoA[uHitA]->GetX(), - vHitsHodoB[uBestB]->GetY()); - phHitsBestCoincCorrYX->Fill(vHitsHodoA[uHitA]->GetY(), - vHitsHodoB[uBestB]->GetX()); - - phHitsBestPositionCoincA->Fill(vHitsHodoA[uHitA]->GetX(), - vHitsHodoA[uHitA]->GetY()); - phHitsBestPositionCoincB->Fill(vHitsHodoB[uBestB]->GetX(), - vHitsHodoB[uBestB]->GetY()); - phHitsBestPositionDiff->Fill( - vHitsHodoB[uBestB]->GetX() - vHitsHodoA[uHitA]->GetX() - dOffsetX, - vHitsHodoB[uBestB]->GetY() - vHitsHodoA[uHitA]->GetY() - dOffsetY); - phHitsBestTimeDiff->Fill(dTimeB - dTimeA); - - Double_t dHitsDistXY = TMath::Sqrt( - (vHitsHodoA[uHitA]->GetX() - vHitsHodoB[uBestB]->GetX() - dOffsetX) - * (vHitsHodoA[uHitA]->GetX() - vHitsHodoB[uBestB]->GetX() - - dOffsetX) - + (vHitsHodoA[uHitA]->GetY() - vHitsHodoB[uBestB]->GetY() - - dOffsetY) - * (vHitsHodoA[uHitA]->GetY() - vHitsHodoB[uBestB]->GetY() - - dOffsetY)); - // Double_t dHitsDistZ = TMath::Abs( vHitsHodoA[ uHitA ]->GetZ() - vHitsHodoB[ uBestB ]->GetZ() ); - Double_t dHitsDistZ = 3.5; - Double_t dAngle = - TMath::RadToDeg() * TMath::ATan2(dHitsDistXY, dHitsDistZ); - phHitsBestCoincDist->Fill(dHitsDistXY); - phHitsBestCoincAngle->Fill(dAngle); - - if (1 == vHitsHodoA.size() && 1 == vHitsHodoB.size()) { - phHitsSingleCoincCorrXX->Fill(vHitsHodoA[uHitA]->GetX(), - vHitsHodoB[uBestB]->GetX()); - phHitsSingleCoincCorrYY->Fill(vHitsHodoA[uHitA]->GetY(), - vHitsHodoB[uBestB]->GetY()); - phHitsSingleCoincCorrXY->Fill(vHitsHodoA[uHitA]->GetX(), - vHitsHodoB[uBestB]->GetY()); - phHitsSingleCoincCorrYX->Fill(vHitsHodoA[uHitA]->GetY(), - vHitsHodoB[uBestB]->GetX()); - - phHitsSinglePositionCoincA->Fill(vHitsHodoA[uHitA]->GetX(), - vHitsHodoA[uHitA]->GetY()); - phHitsSinglePositionCoincB->Fill(vHitsHodoB[uBestB]->GetX(), - vHitsHodoB[uBestB]->GetY()); - phHitsSinglePositionDiff->Fill( - vHitsHodoB[uBestB]->GetX() - vHitsHodoA[uHitA]->GetX() - dOffsetX, - vHitsHodoB[uBestB]->GetY() - vHitsHodoA[uHitA]->GetY() - - dOffsetY); - phHitsSingleTimeDiff->Fill(dTimeB - dTimeA); - phHitsSingleCoincDist->Fill(dHitsDistXY); - phHitsSingleCoincAngle->Fill(dAngle); - } // if( 1 == vHitsHodoA.size() && 1 == vHitsHodoB.size() ) - } // if( TMath::Abs( dTimeB - dTimeA ) < dCoincLimit ) - } // if( uBestB < vHitsHodoB.size() ) - } // for( UInt_t uHitA = 0; uHitA < vHitsHodoA.size(); ++uHitA ) - - } // for( Int_t iTs = 0; iTs < iNbTs; ++iTs ) - - /// Displaying - TCanvas* cHitsPos = - new TCanvas("cHitsPos", "Hits position in each Hodoscope"); - cHitsPos->Divide(2); - - cHitsPos->cd(1); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsPositionHodoA->Draw("colz"); - - cHitsPos->cd(2); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsPositionHodoB->Draw("colz"); - - ///---------------------------------------------------------------------/// - TCanvas* cHitsNbComp = - new TCanvas("cHitsNbComp", "Hits Nb per TS comparison between Hodoscope"); - cHitsNbComp->cd(); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phNbHitsComparison->Draw("colz"); - - ///---------------------------------------------------------------------/// - TCanvas* cHodoCorr = - new TCanvas("cHodoCorr", "Correlations between Hodoscopes"); - cHodoCorr->Divide(2, 2); - - cHodoCorr->cd(1); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsCoincCorrXX->Draw("colz"); - - cHodoCorr->cd(2); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsCoincCorrYY->Draw("colz"); - - cHodoCorr->cd(3); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsCoincCorrXY->Draw("colz"); - - cHodoCorr->cd(4); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsCoincCorrYX->Draw("colz"); - - TCanvas* cHodoCoinc = - new TCanvas("cHodoCoinc", "Coincidences between Hodoscopes"); - cHodoCoinc->Divide(2, 2); - - cHodoCoinc->cd(1); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsPositionCoincA->Draw("colz"); - - cHodoCoinc->cd(2); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsPositionCoincB->Draw("colz"); - - cHodoCoinc->cd(3); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsPositionDiff->Draw("colz"); - - cHodoCoinc->cd(4); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogy(); - phHitsTimeDiff->Draw("hist"); - - TCanvas* cHitsAngle = new TCanvas("cHitsAngle", "Angle of coincident Hits "); - cHitsAngle->Divide(2); - - cHitsAngle->cd(1); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogy(); - phHitsCoincDist->Draw("hist"); - - cHitsAngle->cd(2); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogy(); - phHitsCoincAngle->Draw("hist"); - ///---------------------------------------------------------------------/// - - TCanvas* cHodoCorrSingle = new TCanvas( - "cHodoCorrSingle", "Correlations between Hodoscopes, pick Single pair"); - cHodoCorrSingle->Divide(2, 2); - - cHodoCorrSingle->cd(1); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsSingleCoincCorrXX->Draw("colz"); - - cHodoCorrSingle->cd(2); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsSingleCoincCorrYY->Draw("colz"); - - cHodoCorrSingle->cd(3); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsSingleCoincCorrXY->Draw("colz"); - - cHodoCorrSingle->cd(4); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsSingleCoincCorrYX->Draw("colz"); - - TCanvas* cHodoCoincSingle = new TCanvas( - "cHodoCoincSingle", "Coincidences between Hodoscopes, pick Single pair"); - cHodoCoincSingle->Divide(2, 2); - - cHodoCoincSingle->cd(1); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsSinglePositionCoincA->Draw("colz"); - - cHodoCoincSingle->cd(2); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsSinglePositionCoincB->Draw("colz"); - - cHodoCoincSingle->cd(3); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsSinglePositionDiff->Draw("colz"); - - cHodoCoincSingle->cd(4); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogy(); - phHitsSingleTimeDiff->Draw("hist"); - - TCanvas* cHitsAngleSingle = new TCanvas( - "cHitsAngleSingle", "Angle of coincident Hits, pick Single pair"); - cHitsAngleSingle->Divide(2); - - cHitsAngleSingle->cd(1); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogy(); - phHitsSingleCoincDist->Draw("hist"); - - cHitsAngleSingle->cd(2); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogy(); - phHitsSingleCoincAngle->Draw("hist"); - ///---------------------------------------------------------------------/// - - TCanvas* cHodoCorrBest = new TCanvas( - "cHodoCorrBest", "Correlations between Hodoscopes, pick Best pair"); - cHodoCorrBest->Divide(2, 2); - - cHodoCorrBest->cd(1); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsBestCoincCorrXX->Draw("colz"); - - cHodoCorrBest->cd(2); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsBestCoincCorrYY->Draw("colz"); - - cHodoCorrBest->cd(3); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsBestCoincCorrXY->Draw("colz"); - - cHodoCorrBest->cd(4); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsBestCoincCorrYX->Draw("colz"); - - TCanvas* cHodoCoincBest = new TCanvas( - "cHodoCoincBest", "Coincidences between Hodoscopes, pick Best pair"); - cHodoCoincBest->Divide(2, 2); - - cHodoCoincBest->cd(1); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsBestPositionCoincA->Draw("colz"); - - cHodoCoincBest->cd(2); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsBestPositionCoincB->Draw("colz"); - - cHodoCoincBest->cd(3); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogz(); - phHitsBestPositionDiff->Draw("colz"); - - cHodoCoincBest->cd(4); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogy(); - phHitsBestTimeDiff->Draw("hist"); - - TCanvas* cHitsAngleBest = - new TCanvas("cHitsAngleBest", "Angle of coincident Hits, pick Best pair"); - cHitsAngleBest->Divide(2); - - cHitsAngleBest->cd(1); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogy(); - phHitsBestCoincDist->Draw("hist"); - - cHitsAngleBest->cd(2); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogy(); - phHitsBestCoincAngle->Draw("hist"); - ///---------------------------------------------------------------------/// - - TCanvas* cHodoSelComp = - new TCanvas("cHodoSelComp", "Comparison of pair selections"); - cHodoSelComp->Divide(3); - - THStack* pStackTimeDiff = new THStack( - "pStackTimeDiff", "Time difference depending on pair selection criteria"); - THStack* pStackCoincDist = new THStack( - "pStackCoincDist", "XY distance depending on pair selection criteria"); - THStack* pStackCoincAngle = new THStack( - "pStackCoincAngle", "Tack angle depending on pair selection criteria"); - - phHitsTimeDiff->SetLineColor(kBlack); - phHitsCoincDist->SetLineColor(kBlack); - phHitsCoincAngle->SetLineColor(kBlack); - - phHitsBestTimeDiff->SetLineColor(kRed); - phHitsBestCoincDist->SetLineColor(kRed); - phHitsBestCoincAngle->SetLineColor(kRed); - - phHitsSingleTimeDiff->SetLineColor(kBlue); - phHitsSingleCoincDist->SetLineColor(kBlue); - phHitsSingleCoincAngle->SetLineColor(kBlue); - - pStackTimeDiff->Add(phHitsTimeDiff); - pStackTimeDiff->Add(phHitsBestTimeDiff); - pStackTimeDiff->Add(phHitsSingleTimeDiff); - - pStackCoincDist->Add(phHitsCoincDist); - pStackCoincDist->Add(phHitsBestCoincDist); - pStackCoincDist->Add(phHitsSingleCoincDist); - - pStackCoincAngle->Add(phHitsCoincAngle); - pStackCoincAngle->Add(phHitsBestCoincAngle); - pStackCoincAngle->Add(phHitsSingleCoincAngle); - - cHodoSelComp->cd(1); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogy(); - pStackTimeDiff->Draw("hist nostack"); - - cHodoSelComp->cd(2); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogy(); - pStackCoincDist->Draw("hist nostack"); - - cHodoSelComp->cd(3); - gPad->SetGridx(); - gPad->SetGridy(); - gPad->SetLogy(); - pStackCoincAngle->Draw("hist nostack"); -} diff --git a/macro/beamtime/mcbm2019/unpack_tsa_mcbm.C b/macro/beamtime/mcbm2019/unpack_tsa_mcbm.C index 9ce3503fa3051d17b5d304c916b2f515df7e6512..456dd6069a0f0ff2b15c96bbbc6bf8952ee804ec 100644 --- a/macro/beamtime/mcbm2019/unpack_tsa_mcbm.C +++ b/macro/beamtime/mcbm2019/unpack_tsa_mcbm.C @@ -82,7 +82,6 @@ void unpack_tsa_mcbm(TString inFile = "", CbmMcbm2018UnpackerTaskTof* unpacker_tof = new CbmMcbm2018UnpackerTaskTof(); CbmMcbm2018UnpackerTaskRich* unpacker_rich = new CbmMcbm2018UnpackerTaskRich(); - CbmMcbm2018UnpackerTaskHodo* unpacker_hodo = new CbmMcbm2018UnpackerTaskHodo(); CbmMcbm2018UnpackerTaskPsd* unpacker_psd = new CbmMcbm2018UnpackerTaskPsd(); unpacker_sts->SetMonitorMode(); diff --git a/macro/beamtime/mcbm2019/unpack_tsa_mcbm_kronos.C b/macro/beamtime/mcbm2019/unpack_tsa_mcbm_kronos.C index 640d74cf5c76ccceeae58cf4923653c01b1ad4e8..635bc828c8d3e7c4b6bcc4eca3dfc19eb4520f51 100644 --- a/macro/beamtime/mcbm2019/unpack_tsa_mcbm_kronos.C +++ b/macro/beamtime/mcbm2019/unpack_tsa_mcbm_kronos.C @@ -78,7 +78,6 @@ void unpack_tsa_mcbm_kronos(UInt_t uRunId = 0, CbmMcbm2018UnpackerTaskTof* unpacker_tof = new CbmMcbm2018UnpackerTaskTof(); CbmMcbm2018UnpackerTaskRich* unpacker_rich = new CbmMcbm2018UnpackerTaskRich(); - CbmMcbm2018UnpackerTaskHodo* unpacker_hodo = new CbmMcbm2018UnpackerTaskHodo(); CbmMcbm2018UnpackerTaskPsd* unpacker_psd = new CbmMcbm2018UnpackerTaskPsd(); unpacker_sts->SetMonitorMode(); diff --git a/macro/beamtime/mcbm2019/unpack_tsa_mcbm_mfles.C b/macro/beamtime/mcbm2019/unpack_tsa_mcbm_mfles.C index c946384271164d870e1ae54db5e7cde5cf9f6195..fe138820e2d4761936928ead80582d0aea3a4645 100644 --- a/macro/beamtime/mcbm2019/unpack_tsa_mcbm_mfles.C +++ b/macro/beamtime/mcbm2019/unpack_tsa_mcbm_mfles.C @@ -78,7 +78,6 @@ void unpack_tsa_mcbm_mfles(UInt_t uRunId = 0, CbmMcbm2018UnpackerTaskTof* unpacker_tof = new CbmMcbm2018UnpackerTaskTof(); CbmMcbm2018UnpackerTaskRich* unpacker_rich = new CbmMcbm2018UnpackerTaskRich(); - CbmMcbm2018UnpackerTaskHodo* unpacker_hodo = new CbmMcbm2018UnpackerTaskHodo(); CbmMcbm2018UnpackerTaskPsd* unpacker_psd = new CbmMcbm2018UnpackerTaskPsd(); unpacker_sts->SetMonitorMode(); diff --git a/macro/beamtime/mcbm2020/ana_trks.C b/macro/beamtime/mcbm2020/ana_trks.C index c6e1702d79d9af4b42139f26d4f5f625f459f2c4..c2eafd99e066ad30146fcafe19fcd8ee284d5d91 100644 --- a/macro/beamtime/mcbm2020/ana_trks.C +++ b/macro/beamtime/mcbm2020/ana_trks.C @@ -73,7 +73,7 @@ void ana_trks(Int_t nEvents = 10000, if (iRun < 690) TofGeo = "v20a_mcbm"; else - TofGeo = "v21a_mcbm"; + TofGeo = "v20f_mcbm"; cout << "Geometry version " << TofGeo << endl; diff --git a/macro/beamtime/mcbm2020/mcbm_event_ana.C b/macro/beamtime/mcbm2020/mcbm_event_ana.C index 6d5769b2a21e3d63d0a87953d4c626c11696dd84..f7b1f19bb60e5cdaf195e7b3cc82d83feb0543fb 100644 --- a/macro/beamtime/mcbm2020/mcbm_event_ana.C +++ b/macro/beamtime/mcbm2020/mcbm_event_ana.C @@ -404,14 +404,14 @@ void mcbm_event_ana(UInt_t uRunId = 831, CbmTofExtendTracks* tofExtendTracks = new CbmTofExtendTracks("TofExtAna"); tofExtendTracks->SetCalParFileName("TofExtTracksPar.root"); tofExtendTracks->SetCalOutFileName("TofExtTracksOut.root"); - tofExtendTracks->SetStationUT(2); + tofExtendTracks->SetStationUT(1); //iLev: 0 update alignment with deviation from original tracklet //iLev: 1 update alignment with deviation from extended and refitted tracklet tofExtendTracks->SetCorSrc(0); // [iLev]0 - all hits, [ilev]1 - pulls, tofExtendTracks->SetCorMode( 210); // 2 - Y coordinate, 1 - X coordinat, 0 Time offset tofExtendTracks->SetTrkHitsMin(4); - tofExtendTracks->SetAddStations(2); + tofExtendTracks->SetAddStations(1); tofExtendTracks->SetReqStations(509); tofExtendTracks->SetCutDX(10.); tofExtendTracks->SetCutDY(10.); diff --git a/macro/beamtime/mcbm2021/ana_trks.C b/macro/beamtime/mcbm2021/ana_trks.C index 5749bd590255153b9e3faa9b4326062bf34fface..4b82773a8edeb0987e22e2f8bdbdab1a6a729215 100644 --- a/macro/beamtime/mcbm2021/ana_trks.C +++ b/macro/beamtime/mcbm2021/ana_trks.C @@ -162,9 +162,9 @@ void ana_trks(Int_t nEvents = 10000, Int_t iSel = 1, Int_t iGenCor = 1, TString //tofFindTracks->SetTtTarg(0.058); // target value for Mar2020 double stack //tofFindTracks->SetTtTarg(0.055); // target value Nov2019 (triple stack run 831) //tofFindTracks->SetTtTarg(0.048); // target value Nov2019 (double stack run 714) - tofFindTracks->SetTtTarg(0.047); // target value Mar2020, after T0 fix (full run 600) + //tofFindTracks->SetTtTarg(0.047); // target value Mar2020, after T0 fix (full run 600) // 0.044); // target value Mar2020, after T0 fix (double stack run 714) - //tofFindTracks->SetTtTarg(0.035); // target value for inverse velocity, > 0.033 ns/cm! + tofFindTracks->SetTtTarg(0.035); // target value for inverse velocity, > 0.033 ns/cm! tofFindTracks->SetCalParFileName(cTrkFile); // Tracker parameter value file name tofFindTracks->SetBeamCounter(5, 0, 0); // default beam counter tofFindTracks->SetR0Lim(20.); @@ -196,7 +196,7 @@ void ana_trks(Int_t nEvents = 10000, Int_t iSel = 1, Int_t iGenCor = 1, TString tofFindTracks->SetSIGT(dTsig); // allow for variable deviations in ns } iMinNofHits = 3; - iNStations = 30; + iNStations = 32; iNReqStations = 4; tofFindTracks->SetStation(0, 5, 0, 0); tofFindTracks->SetStation(1, 0, 2, 2); @@ -228,8 +228,8 @@ void ana_trks(Int_t nEvents = 10000, Int_t iSel = 1, Int_t iGenCor = 1, TString tofFindTracks->SetStation(27, 9, 1, 0); tofFindTracks->SetStation(28, 9, 0, 1); tofFindTracks->SetStation(29, 9, 1, 1); - //tofFindTracks->SetStation(28, 6, 0, 0); - //tofFindTracks->SetStation(29, 6, 0, 1); + tofFindTracks->SetStation(30, 6, 0, 0); + tofFindTracks->SetStation(31, 6, 0, 1); break; case 11: // for calibration mode of 2-stack & test counters diff --git a/macro/beamtime/mcbm2021/calib_batch.sh b/macro/beamtime/mcbm2021/calib_batch.sh index e74eb4e06f32f007f0513371ada2ad4bd1909906..fd6e87fe73ff3a0487750f03905048a46c71a0ab 100644 --- a/macro/beamtime/mcbm2021/calib_batch.sh +++ b/macro/beamtime/mcbm2021/calib_batch.sh @@ -63,7 +63,7 @@ echo define root execution environment at I=$I for Run $RunId Mode $RunIdMode if [ -e /lustre/nyx ]; then source /lustre/nyx/cbm/users/nh/CBM/cbmroot/trunk/build6/config.sh wdir=/lustre/nyx/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/mcbm2021 -outdir=/lustre/nyx/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/mcbm2021${RunId} +outdir=/lustre/nyx/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/mcbm2021/${RunId} else wdir=`pwd` outdir=${wdir}/${RunId} diff --git a/macro/beamtime/pulser2020/unpack_pulser_mcbm.C b/macro/beamtime/pulser2020/unpack_pulser_mcbm.C index c9380104210c3911d941c55065394337dfd9f0ed..2ea071253570131ec3296522506a777a43fcf444 100644 --- a/macro/beamtime/pulser2020/unpack_pulser_mcbm.C +++ b/macro/beamtime/pulser2020/unpack_pulser_mcbm.C @@ -77,7 +77,6 @@ void unpack_pulser_mcbm(UInt_t uRunId = 0, CbmMcbm2018UnpackerTaskTof* unpacker_tof = new CbmMcbm2018UnpackerTaskTof(); CbmMcbm2018UnpackerTaskRich* unpacker_rich = new CbmMcbm2018UnpackerTaskRich(); - CbmMcbm2018UnpackerTaskHodo* unpacker_hodo = new CbmMcbm2018UnpackerTaskHodo(); CbmMcbm2018UnpackerTaskPsd* unpacker_psd = new CbmMcbm2018UnpackerTaskPsd(); unpacker_sts->SetMonitorMode();