{ ifstream fin("ladder_shifts.txt"); Char_t tmp_str[256]; ofstream fout("SSD_ladder_report_1.txt"); fout << "> Title: " << endl << "SSD ladder position measurements. Torino data" << endl << "> Date: " << endl << "21/10/2008" << endl << "> Subdetector: " << endl << "ITS" << endl << "> Report URL: " << endl << "https://edms.cern.ch/document/980521" << endl << "> Version:" << endl << "1" << endl << "> General Observations:" << endl << "Measurements of ladder mounting points. Two per ladder. For the z-direction, only the V-side is relevant. The zQ is dummy. V = A side and Q = C side." << endl << " Note off-line local coordinates: z,x inverted wrt to global." << endl << "> Coordinate system: " << endl << "LOCAL" << endl << "> Units: " << endl << "micrometer" << endl << "> Nr Columns:" << endl << "8" << endl << "> Column names:" << endl << "Point Name,XLOCAL,YLOCAL,ZLOCAL,Point Type,PrecisionX(),PrecisionY(),PrecisionZ()" << endl << "> Data:" << endl; Int_t iladd = 0; while (fin.good()) { do { fin.getline(tmp_str,256); } while (fin.good() && tmp_str[0]=='#'); if (!fin.good()) continue; Int_t ladder; Float_t dSv, dSq, dZv, dTv, dTq; if (sscanf(tmp_str,"%d %f %f %f %f %f",&ladder,&dSv,&dSq,&dZv,&dTv,&dTq) != 6) cout << "Error in input file" << endl << "line: " << tmp_str << endl; TString pname="ITS/SSD"; if (ladder >= 600) pname += 5; else pname += 4; pname += "/Ladder"; if (ladder >= 600) pname += ladder-600; else pname += ladder-500; fout << (pname+"/V ") << -dSv << " " << dTv << " " << -dZv; if (ladder < 600) fout << " M 5 10 5" << endl; else fout << " M 30 30 30" << endl; fout << (pname+"/Q ") << -dSq << " " << dTq << " " << -999; if (ladder < 600) fout << " M 5 10 999" << endl; else fout << " M 30 30 999" << endl; } fout.close(); }