コード例 #1
0
	void DataRetrieval :: formatOutput(vector<string>& lines) 
	{
		int count=0;
		string particleType ="UNKNOWN";
		for(int i=0;i<lines.size();i++)
		{
			string line = lines[i];


 			if (( (line.find("track") != string::npos) || (line.find("----------------------------------------------------------")!= string::npos) ) && (i+1<lines.size()))
 			{
 				ParticleInformation currParticle;

				if(!(lines[i+1].compare("ELECTRON") ) || !(lines[i+1].compare("PION")))
				{
					particleType =lines[i+1];
					currParticle.setType(particleType); 	 //constructor call
					cout << lines[i+1] << endl;
					i=i+2;
				}
				else
				{
					if((i+1<lines.size()) && (lines[i+1].find("sum") != string::npos ) )
					{
						currParticle.setType(particleType); 	 //constructor call
						i=i+1;
					}
					else
						i++;
				}

				int j=i;
				while(lines[j].find("sum") != string::npos)
				{
					vector<string> parts = split(lines[j], ' ');

					for(int a=1;a<28;a++)
					{	
						currParticle.addTimebin(a-1, atoi(parts[a].c_str()));
					}
				  	j++;
				 }
				 i=j-1;
				 
				
				
				if(currParticle.getType()!=("UNKNOWN"))
				{
					particle.push_back(currParticle);
					cout << pidParticle[count].getPID() << endl;
					//System.out.println(pidParticle[count].getPID());
					count++;
				}
 			}
		}
	}
コード例 #2
0
	void DataRetrieval :: formatData(vector<string>& lines) // need to still save the event number and track number
	{
		string particleType ="UNKNOWN";
		for(int i=0;i<lines.size();i++)
		{
			string line = lines[i];


 			if (( (line.find("track") != string::npos) || (line.find("----------------------------------------------------------")!= string::npos) ) && (i+1<lines.size()))
 			{
 				ParticleInformation currParticle;
				if(!(lines[i+1].compare("ELECTRON") ) || !(lines[i+1].compare("PION")))
				{
					particleType =lines[i+1];
					currParticle.setType(particleType); 	 //constructor call
					i=i+2;
				}
				else
				{
					if((i+1<lines.size()) && (lines[i+1].find("sum") != string::npos ) )
					{
						currParticle.setType(particleType); 	 //constructor call
						i=i+1;
					}
					else
						i++;
				}

				int j=i;
				while(lines[j].find("sum") != string::npos)
				{
					//cout<< lines[i] << endl;	// THIS LINE SPOTS FOR ERRORS

					vector<string> parts = split(lines[j], ' ');
					// cout << parts.size() << endl;
					// for(int d=0;d<parts.size();d++)
					// {
					// 	cout << " "<< parts[d];
					// }
					// cout << endl;
					for(int a=1;a<28;a++)
					{
						//cout << " "<<  atoi(parts[a].c_str());
						currParticle.addTimebin(a-1, atoi(parts[a].c_str()));
					}
					//cout << endl;
				  	j++;
				 }
				 i=j-1;
				
				if(currParticle.getType()!=("UNKNOWN"))
					particle.push_back(currParticle);
 			}
		}
	}