diff --git a/core/data/trd/CbmTrdDigi.cxx b/core/data/trd/CbmTrdDigi.cxx index 736797eb11e5c23577e8a90b0347a20dcc0d83cf..4b8b11863f08052e9cbeef64d0dbe2c1a1b2b884 100644 --- a/core/data/trd/CbmTrdDigi.cxx +++ b/core/data/trd/CbmTrdDigi.cxx @@ -149,12 +149,12 @@ int32_t CbmTrdDigi::GetAddressModule() const //_________________________________________________________________________________ double CbmTrdDigi::GetCharge() const { - if (GetType() != eCbmTrdAsicType::kSPADIC) { - LOG(warn) << "CbmTrdDigi::GetCharge() : Use double GetCharge(double " - "&tilt) instead."; - return 0; + if (GetType() == eCbmTrdAsicType::kSPADIC) { + return fCharge / fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kSPADIC)]; + } + else { + return (fCharge & 0xfff) / fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)]; } - return fCharge / fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kSPADIC)]; } //_________________________________________________________________________________ diff --git a/core/data/trd/CbmTrdDigi.h b/core/data/trd/CbmTrdDigi.h index 2dee01c61e22b027e552df37b7b766f49fe06473..ebf60e2fe7b43cd3a919d9ce1cad38d7b41c8f51 100644 --- a/core/data/trd/CbmTrdDigi.h +++ b/core/data/trd/CbmTrdDigi.h @@ -118,7 +118,8 @@ public: * \return index of module in the experimental set-up. Should be dropped if data get organized module-wise */ int32_t GetAddressModule() const; - /** \brief Charge getter for SPADIC*/ + /** \brief Common purpose charge getter + * \return normal charge for SPADIC and rect paired charge for FASP */ double GetCharge() const; /** \brief Charge getter for FASP * \param[out] tilt on returns contain the charge measured on tilted pads diff --git a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx index 1f564f179014e42ea0ebab4581b060f8d1120eaa..ee6bacc49ce111c8f071586c7582c6b30a3dc91d 100644 --- a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx +++ b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx @@ -90,15 +90,6 @@ void CbmMcbmCheckTimingAlgo::CheckDataPresence(CheckTimingDetector detToCheck) "Stopping there!"; } // if ( ! fpT0DigiVec ) } // if( ECbmModuleId::kT0 == detToCheck.detId ) - /// Handle special case for TRD-2D as not yet supported in DigiManager - else if (ECbmModuleId::kTrd2d == detToCheck.detId) { - // Get a pointer to the previous already existing data level - fpTrd2dDigiVec = ioman->InitObjectAs<std::vector<CbmTrdDigi> const*>("TrdFaspDigi"); - if (!fpTrd2dDigiVec) { - LOG(fatal) << "No storage with TRD-2D digis found while it should be used. " - "Stopping there!"; - } // if ( ! fpTrd2dDigiVec ) - } // if( ECbmModuleId::kTrd2d == detToCheck.detId ) else if (!fDigiMan->IsPresent(detToCheck.detId)) { LOG(fatal) << "No " << detToCheck.sName << " digis found while it should be used. Stopping there!"; } // else if ( ! fDigiMan->IsPresent( detToCheck.detId ) ) of if( ECbmModuleId::kT0 == detToCheck.detId ) @@ -253,10 +244,6 @@ void CbmMcbmCheckTimingAlgo::CheckInterSystemOffset() uNbRefDigis = fpT0DigiVec->size(); break; } // case ECbmModuleId::kT0 - case ECbmModuleId::kTrd2d: { - uNbRefDigis = fpTrd2dDigiVec->size(); - break; - } // case ECbmModuleId::kTrd2d default: { uNbRefDigis = fDigiMan->GetNofDigis(fRefDet.detId); break; @@ -277,12 +264,7 @@ void CbmMcbmCheckTimingAlgo::CheckInterSystemOffset() if (ECbmModuleId::kT0 == fRefDet.detId) { dRefTime = fpT0DigiVec->at(uDigi).GetTime(); dRefCharge = fpT0DigiVec->at(uDigi).GetCharge(); - } // if( ECbmModuleId::kT0 == fRefDet.detId ) - else if (ECbmModuleId::kTrd2d == fRefDet.detId) { - dRefTime = fpTrd2dDigiVec->at(uDigi).GetTime(); - //dRefCharge = fpTrd2dDigiVec->at(uDigi).GetCharge(); - dRefCharge = 1; - } // else if( ECbmModuleId::kTrd2d == fRefDet.detId ) + } else { dRefTime = fDigiMan->Get<DigiRef>(uDigi)->GetTime(); dRefCharge = fDigiMan->Get<DigiRef>(uDigi)->GetCharge(); @@ -371,10 +353,6 @@ void CbmMcbmCheckTimingAlgo::FillTimeOffsetHistos(const Double_t dRefTime, const uNbDigis = fpT0DigiVec->size(); break; } // case ECbmModuleId::kT0 - case ECbmModuleId::kTrd2d: { - uNbDigis = fpTrd2dDigiVec->size(); - break; - } // case ECbmModuleId::kTrd2d default: { uNbDigis = fDigiMan->GetNofDigis(fvDets[uDetIdx].detId); break; @@ -391,11 +369,6 @@ void CbmMcbmCheckTimingAlgo::FillTimeOffsetHistos(const Double_t dRefTime, const dTime = fpT0DigiVec->at(uDigiIdx).GetTime(); dCharge = fpT0DigiVec->at(uDigiIdx).GetCharge(); } // if( ECbmModuleId::kT0 == fRefDet.detId ) - else if (ECbmModuleId::kTrd2d == fvDets[uDetIdx].detId) { - dTime = fpTrd2dDigiVec->at(uDigiIdx).GetTime(); - // dCharge = fpTrd2dDigiVec->at(uDigiIdx).GetCharge(); - dCharge = 1; - } // else if (ECbmModuleId::kTrd2d == fvDets[uDetIdx].detId) else { dTime = fDigiMan->Get<Digi>(uDigiIdx)->GetTime(); dCharge = fDigiMan->Get<Digi>(uDigiIdx)->GetCharge(); @@ -516,18 +489,6 @@ void CbmMcbmCheckTimingAlgo::WriteHistos() } break; } - case ECbmModuleId::kTrd2d: { - if (DetAverageSingle > 0) { - TF1* gs_trd2d = new TF1("gs_trd2d", "gaus(0)+pol0(3)", DetPeakPosSingle - 2 * fTrd2dPeakWidthNs, - DetPeakPosSingle + 2 * fTrd2dPeakWidthNs); - gs_trd2d->SetParameters(0.7 * DetAverageSingle, DetPeakPosSingle, fTrd2dPeakWidthNs, DetAverageSingle); - fvhDetToRefDiff[uDetIdx]->Fit("gs_trd2d", "R"); - TF1* fitresult_trd2d = fvhDetToRefDiff[uDetIdx]->GetFunction("gs_trd2d"); - LOG(debug) << fvDets[uDetIdx].sName << " parameters from Gauss fit = " << fitresult_trd2d->GetParameter(0) - << ", " << fitresult_trd2d->GetParameter(1) << ", " << fitresult_trd2d->GetParameter(2); - } - break; - } case ECbmModuleId::kT0: { if (DetAverageSingle > 0) { TF1* gs_tof = new TF1("gs_tof", "gaus(0)+pol0(3)", DetPeakPosSingle - 2 * fTofPeakWidthNs, diff --git a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h index 22271c385ddf8ecad8cc895aaa9048bfd3d377d9..0ca30a3c6df6d68f2fab7d2b4a3174274eb6adff 100644 --- a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h +++ b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h @@ -86,7 +86,6 @@ public: void RemoveCheckDetector(ECbmModuleId detIn); void SetTrdPeakWidthNs(Double_t val = 120.) { fTrdPeakWidthNs = val; } - void SetTrd2dPeakWidthNs(Double_t val = 120.) { fTrd2dPeakWidthNs = val; } void SetStsPeakWidthNs(Double_t val = 30.) { fStsPeakWidthNs = val; } void SetMuchPeakWidthNs(Double_t val = 100.) { fMuchPeakWidthNs = val; } void SetTofPeakWidthNs(Double_t val = 20.) { fTofPeakWidthNs = val; } @@ -108,8 +107,6 @@ private: /** T0 is not included in CbmDigiManager, so add it explicitly here **/ const std::vector<CbmTofDigi>* fpT0DigiVec = nullptr; //! - /** TRD-2D is not included in CbmDigiManager, so add it explicitly here **/ - const std::vector<CbmTrdDigi>* fpTrd2dDigiVec = nullptr; //! /** @brief Pointer to the Timeslice start time used to write it to the output tree @remark since we hand this to the FairRootManager it also wants to delete it and we do not have to take care of deletion @@ -138,7 +135,6 @@ private: Double_t DetPeakPosSingle; Double_t DetAverageSingle; Double_t fTrdPeakWidthNs = 120.; - Double_t fTrd2dPeakWidthNs = 120.; Double_t fStsPeakWidthNs = 30.; Double_t fMuchPeakWidthNs = 100.; Double_t fTofPeakWidthNs = 20.; diff --git a/macro/beamtime/mcbm2021/check_timing_any.C b/macro/beamtime/mcbm2021/check_timing_any.C index 7c9cab21f1756d520213b4a2d0a1fd754800044d..8bf151df0f9737f18ab7b941b7698eced064941d 100644 --- a/macro/beamtime/mcbm2021/check_timing_any.C +++ b/macro/beamtime/mcbm2021/check_timing_any.C @@ -75,7 +75,7 @@ void check_timing_any(TString fileName, UInt_t uRunId = 0, Int_t nEvents = 0, TS */ /// Add detectors not in default list - timeChecker->AddCheckDetector(ECbmModuleId::kTrd2d, "Trd2d", -3000, 3000, 160 * 3); + //timeChecker->AddCheckDetector(ECbmModuleId::kTrd2d, "Trd2d", -3000, 3000, 160 * 3); if (0 < uRunId) timeChecker->SetOutFilename(Form("%s/HistosTimeCheck_%03u.root", outDir.Data(), uRunId)); fRun->AddTask(timeChecker);