00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 struct result
00023 {
00024 float value;
00025 float error;
00026 };
00027
00028 void trim(int runnumber, const char* details="xmin:-3:-9:-15")
00029 {
00030 gSystem->Load("libPgCalInstance.so");
00031 gSystem->Load("libemcOMpg.so");
00032 emcCalibrationDataHelper cdh(runnumber,false);
00033
00034 cdh.getGainBaseLine(0);
00035
00036 const int N = 7;
00037
00038 float percent[N] = { 0,0.1,0.2,0.3,0.4,0.45,0.475 };
00039 result R[6][N];
00040
00041 char* mdetails = new char[strlen(details)+10];
00042
00043 for ( int isector = 0; isector < 6; ++isector )
00044 {
00045 for ( int i = 0; i < 7; ++i )
00046 {
00047 sprintf(mdetails,"%2d:%s",percent[i]*100,details);
00048
00049 R[isector][i].value = cdh.getGainBaseLine(isector,"value",mdetails),
00050 R[isector][i].error = cdh.getGainBaseLine(isector,"error",mdetails);
00051 }
00052 printf("\n");
00053 }
00054
00055
00056 printf("Trimmed mean results for run %5d details=%s\n\n",
00057 runnumber,details);
00058
00059 printf(" Trim percent ");
00060 for ( int i = 0; i < 7; ++i )
00061 {
00062 printf("%7.2f %7c",percent[i]*100,' ');
00063 }
00064 printf("\n");
00065
00066 for ( int isector = 0; isector < 6; ++isector )
00067 {
00068 printf("%s ",EmcIndexer::EmcSectorId(isector));
00069
00070 for ( int i = 0; i < 7; ++i )
00071 {
00072 printf("%7.2f +-%5.2f ",
00073 R[isector][i].value,
00074 R[isector][i].error);
00075 }
00076 printf("\n");
00077 }
00078
00079
00080
00081 }