diff --git a/src/THcHodoscope.cxx b/src/THcHodoscope.cxx index 7945ffe1bc82da736362b7bd50b83d7facffb19b..630ef0f03b38737841bdfae8cf7b64ff4f28898d 100644 --- a/src/THcHodoscope.cxx +++ b/src/THcHodoscope.cxx @@ -130,6 +130,14 @@ void THcHodoscope::Setup(const char* name, const char* description) fPartMass = app->GetParticleMass(); fBetaNominal = app->GetBetaAtPcentral(); + + + if (fSHMS) { + fCherenkov = dynamic_cast<THcCherenkov*>(app->GetDetector("hgcer")); + } else { + fCherenkov = dynamic_cast<THcCherenkov*>(app->GetDetector("cer")); + } + delete [] desc; } @@ -189,6 +197,9 @@ THaAnalysisObject::EStatus THcHodoscope::Init( const TDatime& date ) fScinHitPaddle.push_back(std::vector<Int_t>(fNPaddle[ip], 0)); } + + + return fStatus = kOK; } //_____________________________________________________________________________ @@ -318,6 +329,9 @@ Int_t THcHodoscope::ReadDatabase( const TDatime& date ) {"dumptof", &fDumpTOF, kInt, 0, 1}, {"TOFCalib_shtrk_lo", &fTOFCalib_shtrk_lo, kDouble, 0, 1}, {"TOFCalib_shtrk_hi", &fTOFCalib_shtrk_hi, kDouble, 0, 1}, + {"TOFCalib_cer_lo", &fTOFCalib_cer_lo, kDouble, 0, 1}, + {"TOFCalib_beta_lo", &fTOFCalib_beta_lo, kDouble, 0, 1}, + {"TOFCalib_beta_hi", &fTOFCalib_beta_hi, kDouble, 0, 1}, {"dumptof_filename", &fTOFDumpFile, kString, 0, 1}, {0} }; @@ -328,7 +342,11 @@ Int_t THcHodoscope::ReadDatabase( const TDatime& date ) fAdcTimeWindowMin[ip] = 0.; fAdcTimeWindowMax[ip] = 1000.; } - + fTOFCalib_shtrk_lo=-kBig; + fTOFCalib_shtrk_hi= kBig; + fTOFCalib_cer_lo=-kBig; + fTOFCalib_beta_lo=-kBig; + fTOFCalib_beta_hi= kBig; fdebugprintscinraw=0; fDumpTOF = 0; fTOFDumpFile=""; @@ -1545,7 +1563,10 @@ Int_t THcHodoscope::FineProcess( TClonesArray& tracks ) for (Int_t iphit = 0; iphit < fPlanes[ip]->GetNScinHits(); iphit++ ){ THcHodoHit *hit = fTOFPInfo[ih].hit; if (fGoodFlags[itrk][ip][iphit].goodScinTime) { - if(fDumpTOF && Ntracks==1 && fGoodEventTOFCalib && shower_track_enorm > fTOFCalib_shtrk_lo && shower_track_enorm < fTOFCalib_shtrk_hi ) { + Bool_t sh_pid=(shower_track_enorm > fTOFCalib_shtrk_lo && shower_track_enorm < fTOFCalib_shtrk_hi); + Bool_t beta_pid=( fBeta > fTOFCalib_beta_lo && fBeta < fTOFCalib_beta_hi); + Bool_t cer_pid=( fCherenkov->GetCerNPE() > fTOFCalib_cer_lo); + if(fDumpTOF && Ntracks==1 && fGoodEventTOFCalib && sh_pid && beta_pid && cer_pid) { fDumpOut << fixed << setprecision(2); fDumpOut << showpoint << " 1" << setw(3) << ip+1 << setw(3) << hit->GetPaddleNumber() << setw(10) << hit->GetPosTDC()*fScinTdcToTime << setw(10) << fTOFPInfo[ih].pathp << setw(10) << fTOFPInfo[ih].zcor << setw(10) << fTOFPInfo[ih].time_pos << setw(10) << hit->GetPosADC() << endl; fDumpOut << showpoint << " 2" << setw(3) << ip+1 << setw(3) << hit->GetPaddleNumber() << setw(10) << hit->GetNegTDC()*fScinTdcToTime << setw(10) << fTOFPInfo[ih].pathn << setw(10) << fTOFPInfo[ih].zcor << setw(10) << fTOFPInfo[ih].time_neg << setw(10) << hit->GetNegADC() << endl; diff --git a/src/THcHodoscope.h b/src/THcHodoscope.h index 94155447ec0480719e1434912ab352c46181f61f..b85c7a3faac772bbe91774e5ca015652ae3f24c5 100644 --- a/src/THcHodoscope.h +++ b/src/THcHodoscope.h @@ -15,6 +15,7 @@ #include "THcHodoHit.h" #include "THcRawHodoHit.h" #include "THcScintillatorPlane.h" +#include "THcCherenkov.h" #include "THaTrackingDetector.h" #include "THcHitList.h" @@ -117,6 +118,8 @@ public: THcHodoscope(); // for ROOT I/O protected: + THcCherenkov* fCherenkov; + Int_t fAnalyzePedestals; Int_t fNHits; @@ -212,6 +215,9 @@ protected: Double_t fTOFCalib_shtrk_lo; Double_t fTOFCalib_shtrk_hi; + Double_t fTOFCalib_cer_lo; + Double_t fTOFCalib_beta_lo; + Double_t fTOFCalib_beta_hi; Int_t fDumpTOF; ofstream fDumpOut; string fTOFDumpFile;