#include "L1AlgoInputData.h" #include #include using namespace std; using std::ios; L1AlgoInputData::L1AlgoInputData( const L1AlgoInputData& a) { SetData( a.GetStsHits(), a.GetStsStrips(), a.GetStsStripsB(), a.GetStsZPos(), a.GetSFlag(), a.GetSFlagB(), a.GetStsHitsStartIndexV(), a.GetStsHitsStopIndexV()); } const L1AlgoInputData& L1AlgoInputData::operator=( const L1AlgoInputData& a) { SetData( a.GetStsHits(), a.GetStsStrips(), a.GetStsStripsB(), a.GetStsZPos(), a.GetSFlag(), a.GetSFlagB(), a.GetStsHitsStartIndexV(), a.GetStsHitsStopIndexV()); return a; } void L1AlgoInputData::SetData( const vector< L1StsHit > & StsHits_, const vector< L1Strip > & StsStrips_, const vector< L1Strip > & StsStripsB_, const vector< fscal > & StsZPos_, const vector< unsigned char > & SFlag_, const vector< unsigned char > & SFlagB_, const vector StsHitsStartIndex_, const vector StsHitsStopIndex_ ) { vStsHits.resize(StsHits_.size()); vStsStrips.resize(StsStrips_.size()); vStsStripsB.resize(StsStripsB_.size()); vStsZPos.resize(StsZPos_.size()); vSFlag.resize(SFlag_.size()); vSFlagB.resize(SFlagB_.size()); StsHitsStartIndex.resize(StsHitsStartIndex_.size()); StsHitsStopIndex.resize(StsHitsStopIndex_.size()); for(unsigned int i=0; i> s; fadata >> nEv; if (nEv != nEvent) cout << "-E- CbmL1: Can't read event number " << nEvent << " from file " << fname << endl; int n; // number of elements // read algo->vStsStrips fadata >> n; for (int i = 0; i < n; i++){ fscal element; fadata >> element; #ifdef READ_EVENT_NUMBER unsigned short int element2; fadata >> element2; vStsStrips.push_back(L1Strip(element,element2)); #else vStsStrips.push_back(L1Strip(element)); #endif } if (iVerbose >= 4) cout << "vStsStrips[" << n << "]" << " have been read." << endl; // read algo->vStsStripsB fadata >> n; for (int i = 0; i < n; i++){ fscal element; fadata >> element; #ifdef READ_EVENT_NUMBER unsigned short int element2; fadata >> element2; vStsStripsB.push_back(L1Strip(element,element2)); #else vStsStripsB.push_back(L1Strip(element)); #endif } if (iVerbose >= 4) cout << "vStsStripsB[" << n << "]" << " have been read." << endl; // read algo->vStsZPos fadata >> n; for (int i = 0; i < n; i++){ fscal element; fadata >> element; vStsZPos.push_back(element); } if (iVerbose >= 4) cout << "vStsZPos[" << n << "]" << " have been read." << endl; // read algo->vSFlag fadata >> n; for (int i = 0; i < n; i++){ int element; fadata >> element; vSFlag.push_back(static_cast(element)); } if (iVerbose >= 4) cout << "vSFlag[" << n << "]" << " have been read." << endl; // read algo->vSFlagB fadata >> n; for (int i = 0; i < n; i++){ int element; fadata >> element; vSFlagB.push_back(static_cast(element)); } if (iVerbose >= 4) cout << "vSFlagB[" << n << "]" << " have been read." << endl; // read algo->vStsHits fadata >> n; int element_f; // for convert int element_b; int element_iz; for (int i = 0; i < n; i++){ L1StsHit element; fadata >> element_f >> element_b; #ifdef READ_EVENT_NUMBER int element_n; fadata >>element_n; #endif fadata >> element_iz; element.f = static_cast(element_f); element.b = static_cast(element_b); #ifdef READ_EVENT_NUMBER element.n = static_cast< unsigned short int>(element_n); #endif element.iz = static_cast(element_iz); vStsHits.push_back(element); } if (iVerbose >= 4) cout << "vStsHits[" << n << "]" << " have been read." << endl; // read StsHitsStartIndex and StsHitsStopIndex n = 20; for (int i = 0; i < n; i++){ int tmp; fadata >> tmp; if (MaxNStations+1 > i) StsHitsStartIndex[i] = tmp; } for (int i = 0; i < n; i++){ int tmp; fadata >> tmp; if (MaxNStations+1 > i) StsHitsStopIndex[i] = tmp; } if ( iVerbose >= 2 ) cout << "-I- CbmL1: CATrackFinder data for event " << nEvent << " has been read from file " << fname << " successfully." << endl; // if (nEvent == maxNEvent) fadata.close(); } nEvent++; return 1; } // void L1AlgoInputData::ReadStAPAlgoData() void L1AlgoInputData::PrintHits() { std::cout << "Event: " << std::endl; int n = vStsStrips.size(); // number of elements std::cout << n << std::endl; for (int i = 0; i < n; i++){ std::cout << vStsStrips[i] << std::endl; } n = vStsStripsB.size(); std::cout << n << std::endl; for (int i = 0; i < n; i++){ std::cout << vStsStripsB[i] << std::endl; } n = vStsZPos.size(); std::cout << n << std::endl; for (int i = 0; i < n; i++){ std::cout << vStsZPos[i] << std::endl; } n = vSFlag.size(); std::cout << n << std::endl; for (int i = 0; i < n; i++){ std::cout << static_cast(vSFlag[i]) << std::endl; } n = vSFlagB.size(); std::cout << n << std::endl; for (int i = 0; i < n; i++){ std::cout << static_cast(vSFlagB[i]) << std::endl; } n = vStsHits.size(); std::cout << n << std::endl; for (int i = 0; i < n; i++){ std::cout << static_cast(vStsHits[i].f) << " "; std::cout << static_cast(vStsHits[i].b) << " "; std::cout << static_cast(vStsHits[i].iz) << std::endl; } n = 20; for (int i = 0; i < n; i++){ if (MaxNStations+1 > i) std::cout << StsHitsStartIndex[i] < i) std::cout << StsHitsStopIndex[i] <