diff --git a/reco/L1/CbmL1.cxx b/reco/L1/CbmL1.cxx index ec688711b48f71f6ab9c3e3c590e052870986ed3..2193a757c07cb5c48d247981a5c0b4f577c2cf50 100644 --- a/reco/L1/CbmL1.cxx +++ b/reco/L1/CbmL1.cxx @@ -434,7 +434,9 @@ InitStatus CbmL1::Init() float z = fChannelInfo->GetZ(); float x = fChannelInfo->GetX(); float y = fChannelInfo->GetY(); - + + if (station < 0) continue; + if (fMissingHits) { if ((x > 20) && (z > 270) && (station == 1)) station = 2; if (z > 400) continue; @@ -565,8 +567,8 @@ InitStatus CbmL1::Init() b_phi = f_phi; f_phi += station->GetSensorStereoAngle(0) * Pi / 180.; b_phi += station->GetSensorStereoAngle(1) * Pi / 180.; - f_sigma = station->GetSensorPitch(0) / TMath::Sqrt(12); - b_sigma = f_sigma; + f_sigma = station->GetSensorPitch(0) / TMath::Sqrt(12); + b_sigma = f_sigma; fscal dt = 5; //f_sigma *= cos(f_phi); // TODO: think about this //b_sigma *= cos(b_phi); @@ -606,7 +608,7 @@ InitStatus CbmL1::Init() geo.push_back(100); //station->GetRmax() geo.push_back(0); - // fscal f_phi = 0, f_sigma = 0.1, b_phi = 3.14159265358 / 2., b_sigma = 0.1; + // fscal f_phi = 0, f_sigma = 0.1, b_phi = 3.14159265358 / 2., b_sigma = 0.1; fscal f_phi = 0, f_sigma = 0.35, b_phi = 3.14159265358 / 2., b_sigma = 0.35, dt = 3.9; geo.push_back(f_phi); geo.push_back(f_sigma); @@ -655,7 +657,7 @@ InitStatus CbmL1::Init() geo.push_back(2 * module->GetSizeX()); geo.push_back(10); - // fscal f_phi = 0, f_sigma = 1., b_phi = 3.14159265358 / 2., b_sigma = 1.; + // fscal f_phi = 0, f_sigma = 1., b_phi = 3.14159265358 / 2., b_sigma = 1.; fscal f_phi = 0, f_sigma = 0.15, b_phi = 3.14159265358 / 2., b_sigma = 0.15, dt = 10; geo.push_back(f_phi); geo.push_back(f_sigma); @@ -681,7 +683,7 @@ InitStatus CbmL1::Init() geo.push_back(150); /// TODO: add Tof max radius geo.push_back(10); - // fscal f_phi = 0, f_sigma = 1 / 10000, b_phi = 3.14159265358 / 2., b_sigma = 1 / 10000; + // fscal f_phi = 0, f_sigma = 1 / 10000, b_phi = 3.14159265358 / 2., b_sigma = 1 / 10000; fscal f_phi = 0, f_sigma = 0.42, b_phi = 3.14159265358 / 2., b_sigma = 0.23, dt = 0.075; geo.push_back(f_phi); geo.push_back(f_sigma); @@ -1084,7 +1086,7 @@ InitStatus CbmL1::Init() const float RMax = hStaRadLen->GetXaxis()->GetXmax(); // should be same as min algo->fRadThick[iSta].SetBins(NBins, RMax); algo->fRadThick[iSta].table.resize(NBins); - + float hole = 0.15; for (int iB = 0; iB < NBins; iB++) { diff --git a/reco/L1/CbmL1ReadEvent.cxx b/reco/L1/CbmL1ReadEvent.cxx index a32954f56107c564c97e12fff9118f7db27ff1a5..de6f5ded87d1b777a32be6e569e6ef7d0c5858a8 100644 --- a/reco/L1/CbmL1ReadEvent.cxx +++ b/reco/L1/CbmL1ReadEvent.cxx @@ -97,7 +97,7 @@ struct TmpHit { // used for sort Hits before writing in the normal arrays id = nTmpHits; //tmpHits.size(); iStation = point.iStation; - dt = st.dt[0]; + dt = 5; //st.dt[0]; time = point.time; // + gRandom->Gaus(0, dt); iStripF = nStripF + ip; //firstDetStrip + ip; @@ -108,14 +108,14 @@ struct TmpHit { // used for sort Hits before writing in the normal arrays //1.; float b_sigma = 0.1; // sqrt(st.backInfo.sigma2[0]);//1.; - dx = f_sigma; - dy = b_sigma; - dxy = 0; - du = f_sigma; - dv = b_sigma; + dx = f_sigma; + dy = b_sigma; + dxy = 0; + du = f_sigma; + dv = b_sigma; - x = point.x + gRandom->Gaus(0, dx); - y = point.y + gRandom->Gaus(0, dy); + x = point.x; // + gRandom->Gaus(0, dx); + y = point.y; // + gRandom->Gaus(0, dy); z = point.z; xmc = point.x; @@ -212,8 +212,6 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength, int firstMuchPoint = 0; int firstTofPoint = 0; - // L1Vector<CbmLink*> ToFPointsMatch("CbmL1ReadEvent::ToFPointsMatch"); - if (fPerformance) { Fill_vMCTracks(); vMCPoints.clear(); @@ -350,7 +348,6 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength, } } - //ToFPointsMatch.clear(); firstTofPoint = vMCPoints.size(); if (fTofPoints) { @@ -410,7 +407,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength, MC.iStation = -1; L1Station* sta = algo->vStations + NMvdStations + NStsStations + NMuchStations + NTrdStations; for (Int_t iSt = 0; iSt < NTOFStation; iSt++) - MC.iStation = (MC.z > sta[iSt].z[0] - 5) + MC.iStation = (MC.z > sta[iSt].z[0] - 15) ? (NMvdStations + NStsStations + NMuchStations + NTrdStations + iSt) : MC.iStation; @@ -512,9 +509,9 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength, int firstDetStrip = NStrips; for (int ip = firstStsPoint; ip < firstStsPoint + nStsPoints; ip++) { const CbmL1MCPoint& p = vMCPoints[ip]; -// int mcTrack = p.ID; -// if (mcTrack < 0) continue; -// const CbmL1MCTrack& t = vMCTracks[mcTrack]; + // int mcTrack = p.ID; + // if (mcTrack < 0) continue; + // const CbmL1MCTrack& t = vMCTracks[mcTrack]; //if (t.p < 1) continue; // if (t.Points.size() > 4) continue; // cout << "sts mc: station " << p.iStation - NMvdStations << " x " << p.x << " y " << p.y << " z " << p.z << " t " @@ -663,9 +660,9 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength, for (int ip = firstMuchPoint; ip < firstMuchPoint + nMuchPoints; ip++) { const CbmL1MCPoint& p = vMCPoints[ip]; -// int mcTrack = p.ID; -// if (mcTrack < 0) continue; -// const CbmL1MCTrack& t = vMCTracks[mcTrack]; + // int mcTrack = p.ID; + // if (mcTrack < 0) continue; + // const CbmL1MCTrack& t = vMCTracks[mcTrack]; //if (t.p < 1) continue; // if (t.Points.size() > 4) continue; @@ -768,9 +765,9 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength, for (int ip = firstTrdPoint; ip < firstTrdPoint + nTrdPoints; ip++) { const CbmL1MCPoint& p = vMCPoints[ip]; -// int mcTrack = p.ID; -// if (mcTrack < 0) continue; -// const CbmL1MCTrack& t = vMCTracks[mcTrack]; + // int mcTrack = p.ID; + // if (mcTrack < 0) continue; + // const CbmL1MCTrack& t = vMCTracks[mcTrack]; TmpHit th; int DetId = 3; @@ -902,7 +899,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength, for (int ip = firstTofPoint; ip < firstTofPoint + nTofPoints; ip++) { const CbmL1MCPoint& p = vMCPoints[ip]; -// int mcTrack = p.ID; + // int mcTrack = p.ID; // if (mcTrack < 0) continue; //const CbmL1MCTrack& t = vMCTracks[mcTrack]; //if (t.p < 1) continue; @@ -1225,17 +1222,17 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M if (MVD == 0) { CbmStsPoint* pt = L1_DYNAMIC_CAST<CbmStsPoint*>(fStsPoints->Get(file, event, iPoint)); // file, event, object if (!pt) return 1; - // if ( !fLegacyEventMode ) - // { - // Double_t StartTime = fTimeSlice->GetStartTime(); - // Double_t EndTime = fTimeSlice->GetEndTime(); - // Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file); - // if (Time_MC_point < StartTime ) - // return 1; - // - // if (Time_MC_point > EndTime ) - // return 1; - // } + if (!fLegacyEventMode) { + Double_t StartTime = fTimeSlice->GetStartTime(); + Double_t EndTime = fTimeSlice->GetEndTime(); + Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file); + + if (StartTime > 0) + if (Time_MC_point < StartTime) return 1; + + if (EndTime > 0) + if (Time_MC_point > EndTime) return 1; + } pt->Position(xyzI); pt->Momentum(PI); @@ -1253,11 +1250,12 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M Double_t StartTime = fTimeSlice->GetStartTime(); Double_t EndTime = fTimeSlice->GetEndTime(); Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file); - - cout<<StartTime<<" StartTime "<<EndTime<<" EndTime "<<Time_MC_point<<" Time_MC_point "<<fEventList->GetEventTime(event, file)<<endl; - // if (Time_MC_point < StartTime) return 1; - // - // if (Time_MC_point > EndTime) return 1; + + if (StartTime > 0) + if (Time_MC_point < StartTime) return 1; + + if (EndTime > 0) + if (Time_MC_point > EndTime) return 1; } pt->Position(xyzI); @@ -1274,14 +1272,15 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M if (!pt) return 1; if (!fLegacyEventMode) { - //Double_t StartTime = fTimeSlice->GetStartTime(); // not used - //Double_t EndTime = fTimeSlice->GetEndTime(); // not used - //Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file); // not used - // if (Time_MC_point < StartTime ) - // return 1; - // - // if (Time_MC_point > EndTime ) - // return 1; + Double_t StartTime = fTimeSlice->GetStartTime(); // not used + Double_t EndTime = fTimeSlice->GetEndTime(); // not used + Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file); // not used + + if (StartTime > 0) + if (Time_MC_point < StartTime) return 1; + + if (EndTime > 0) + if (Time_MC_point > EndTime) return 1; } pt->Position(xyzI); @@ -1297,12 +1296,15 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M CbmTofPoint* pt = L1_DYNAMIC_CAST<CbmTofPoint*>(fTofPoints->Get(file, event, iPoint)); // file, event, object if (!pt) return 1; if (!fLegacyEventMode) { - // Double_t StartTime = fTimeSlice->GetStartTime(); - // Double_t EndTime = fTimeSlice->GetEndTime(); - // Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file); - // if (Time_MC_point < StartTime) return 1; - // - // if (Time_MC_point > EndTime) return 1; continue!!!! + Double_t StartTime = fTimeSlice->GetStartTime(); + Double_t EndTime = fTimeSlice->GetEndTime(); + Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file); + + if (StartTime > 0) + if (Time_MC_point < StartTime) return 1; + + if (EndTime > 0) + if (Time_MC_point > EndTime) return 1; } pt->Position(xyzI);