void VictoryWindow::draw() { m_height = 134 + 32 * m_itemsNb; m_y = 319 / 2 - m_height / 2; // GameWindow::main->height() - 319 = ActorStatsWindow->height() Window::draw(); Interface::defaultFont->printCentered(_t("Victory").c_str(), m_x, m_y + 20, m_width, 21, FONT_LARGE); printStat(20, 52, _t("EXP"), m_battle->exp(), 60, 180); printStat(20, 84, _t("Gold"), m_battle->gold(), 60, 180); u16 i = 0; for(u16 j = 0 ; j < m_inventory.nbItems() ; j++) { printItem(m_inventory.getItem(j), m_inventory.getItemCount(j), 20, 116 + i * 32, 175); i++; } for(u16 j = 0 ; j < m_inventory.nbArmors() ; j++) { printItem(m_inventory.getArmor(j), m_inventory.getArmorCount(j), 20, 116 + i * 32, 175); i++; } for(u16 j = 0 ; j < m_inventory.nbWeapons() ; j++) { printItem(m_inventory.getWeapon(j), m_inventory.getWeaponCount(j), 20, 116 + i * 32, 175); i++; } }
int main(int argc, char *argv[]){ int (*hashFun)(ElemType *words, int size); HT hashTable; if (argc == 2) { hashFun = h_One; hashTable = createHashTable(argv[1], h_One); } else if (argc == 3) { if (strcmp(argv[2], "0") == 0) { hashFun = h_Zero; hashTable = createHashTable(argv[1], hashFun); } else { hashFun = h_One; hashTable = createHashTable(argv[1], hashFun); } } printStat(hashTable); char word[32]; while (1) { printf("Please input a word: "); scanf("%s", word); if (strcmp(word, ".") == 0) { break; } hashLookup(hashTable, word, hashFun); } }
void GColor::selectNextColor(int vertexnumber){ int i; printStat(vertexnumber); while(1){ colorofvertex[vertexnumber] = (colorofvertex[vertexnumber]+1) % (colorcount+1); /* another method to solve the problem can be initializing colorvertex[i]=0 before u call recgcolor for it and not using the % operator here....& checking colorofvertex[i] > colorcount instead of checking colorofvertex[i]=0 since we have used % op to set it to zero ..that's why we check for 0 & the hidden advantage is that color get initialized to 0...i.e null as well I know I am talking weird but ya that is the next best solution */ if(colorofvertex[vertexnumber]==NOCOLOR) break; for(i=0;i<vertexcount;i++){ if(graph[i][vertexnumber]==EDGE && colorofvertex[i]==colorofvertex[vertexnumber]) break; } if(i==vertexcount) //all vertices have been checked and the selected color does not conflict break; } }
virtual void TearDown() { // shutdown the cache cacheShutdown(); // clean the cache: boost::system::error_code ec; boost::filesystem::remove_all(m_cache_path, ec); ASSERT_TRUE(!ec); // print some statistics: printStat(); }
void manageStatLine(Unit* ptChar, statsInterfaceBIN* statLine, int currentPage, LPWSTR lpText) { if (!statLine->enabled) return; if (statLine->page != currentPage) return; if (statLine->font) D2SetFont(statLine->font); printStat(ptChar, statLine->statsID, RX(statLine->x), RY(statLine->y), statLine->color, lpText); }
void GColor::NonRecGcolor(){ struct stack *s1 = (struct stack*) (malloc(sizeof(struct stack))); int vertexnumber; s1->colorno = NOCOLOR; s1->vertexno = 0; push(s1); while(top!=-1){ s1 = pop(); vertexnumber = s1->vertexno; colorofvertex[vertexnumber] = s1->colorno; while(1){ selectNextColor(vertexnumber); if(colorofvertex[vertexnumber]==NOCOLOR) break; if(vertexnumber==vertexcount-1){ textcolor(BLUE); printStat(vertexnumber); getch(); textcolor(WHITE); } else{ s1->vertexno = vertexnumber; s1->colorno = colorofvertex[vertexnumber]; push(s1); s1->vertexno = vertexnumber + 1; s1->colorno = colorofvertex[vertexnumber + 1]; push(s1); break; } } } }
bool ZeroMQPublisher::test(uint32_t datasize) { m_times.clear(); zmq::message_t command(1); *(char*)(command.data())='S'; //READY mp_commandpub->send(command); mp_commandsub->recv(&command); if(*(char*)command.data()!=2) return false; //cout << endl; //BEGIN THE TEST: uint32_t result; m_clock.setTimeNow(&m_t1); for(uint32_t i = 0;i<(uint32_t)n_samples;++i) { zmq::message_t latency_out(datasize+4); zmq::message_t latency_in; memset(latency_out.data(),65,datasize+4); #if defined(_WIN32) sprintf_s((char*)(latency_out.data()),datasize+4, "%d", i); #else sprintf((char*)(latency_out.data()),"%d",i); #endif mp_datapub->send(latency_out); mp_datasub->recv(&latency_in); // std::istringstream iss(static_cast<char*>(latency_in.data())); // cout << "RECEIVED DATA: "<< iss.str()<< endl; sscanf_s((char*)latency_in.data(),"%d",&result); // cout << "recevied result: "<< result << " and i is: "<<i << endl; // cout << "SENT/REC: "<< *(uint32_t*)latency_out.data() <<" / "<<*(uint32_t*)latency_in.data()<<endl; if(result != i) { cout << "RECEIVED BAD MESSAGE, STOPPING TEST"<<endl; *(char*)(command.data()) = 10; mp_commandpub->send(command); return false; } } m_clock.setTimeNow(&m_t2); m_times.push_back(TimeConv::Time_t2MicroSecondsDouble(m_t2) -TimeConv::Time_t2MicroSecondsDouble(m_t1)-m_overhead); analizeTimes(datasize); printStat(m_stats.back()); return true; }
void MainWindow::addThread(QDir dirPath) { wrapper = new Wrapper(dirPath); QThread* thread = new QThread; wrapper->moveToThread(thread); connect(thread,SIGNAL(started()),wrapper,SLOT(process())); connect(wrapper,SIGNAL(done()), thread, SLOT(quit())); connect(wrapper,SIGNAL(done()),this,SLOT(printStat())); connect(thread,SIGNAL(finished()),thread,SLOT(deleteLater())); connect(wrapper,SIGNAL(timerValue(int)),progressBar,SLOT(setValue(int))); thread->start(); return; }
int main() { initBuffer(); MY_TYPE **grids = NULL; MY_TYPE number = loadAllGrids(&grids); allocateStat(number); int i; for (i=0; i<number; ++i) { solveGrid(grids[i]); } LOG_WARN myprint("Global stats :\n"); LOG_ERROR printStat(calculateGlobalStat()); LOG_INFO myprint("Done !! \n"); clearAllGrids(&grids); flush(); return 0; }
static int tgetInit(rpmtget tget, size_t nbuf) { int rc; int xx; if (_rpmsw_stats) { tget->sop = xcalloc(1, sizeof(*tget->sop)); tget->gop = xcalloc(1, sizeof(*tget->gop)); } fprintf(stderr, "===== %s\n", tget->uri); xx = rpmswEnter(tget->sop, 0); rc = Stat(tget->uri, &tget->sb); xx = rpmswExit(tget->sop, 1); if (rc < 0) goto exit; printStat(tget); if (nbuf == 0 && tget->sb.st_size > 0) nbuf = tget->sb.st_size; tget->fd = Fopen(tget->uri, "r.ufdio"); if (tget->fd == NULL || Ferror(tget->fd)) { rc = -1; goto exit; } tget->nbuf = nbuf; tget->buf = xmalloc(tget->nbuf + 2); tget->buf[0] = '\0'; tget->b = NULL; tget->nb = 0; rc = 0; exit: if (rc) (void) tgetFini(tget); return rc; }
void GColor::RecGcolor(int vertexnumber){ while(1){ selectNextColor(vertexnumber); if(colorofvertex[vertexnumber]==NOCOLOR) break; if(vertexnumber==vertexcount-1){ textcolor(BLUE); printStat(vertexnumber); getch(); textcolor(WHITE); } else RecGcolor(vertexnumber+1); } }
DynStack::~DynStack(){ printStat(); }
void TCPFlowStat::addPacket(struct ip* ip, struct tcphdr* tcphdr, double ts){ if (!isNewFlow(ip,tcphdr) && isMyPacket(ip, tcphdr)!=1) return; int pktdir=getPacketDirection(ip->ip_src.s_addr, ip->ip_dst.s_addr, tcphdr->source, tcphdr->dest); int tcpdatalen=ip->ip_len-ip->ip_hl*4-tcphdr->doff*4; pktcnt++; //packet inter-arrival time if (lastpacketarrivaltime!=-1){ double iat=ts-lastpacketarrivaltime; avepacketinterarrivaltime=(avepacketinterarrivaltime*(pktcnt-2)+iat)/(pktcnt-1); } lastpacketarrivaltime=ts; switch (tcpconnstate){ case TCPCONSTATE_CLOSED: { if (tcphdr->syn==1 && tcphdr->ack!=1){ syntime=ts; cltip=ip->ip_src.s_addr; svrip=ip->ip_dst.s_addr; cltport=tcphdr->source; svrport=tcphdr->dest; cltseq=tcphdr->seq; svrackseq=tcphdr->seq+1; cltinitseq=tcphdr->seq+1; flowinitby=FLOWINITBYCLT; printStat(); tcpconnstate=TCPCONSTATE_SYN_SEND; } else { printf("Unknown TCP packet.\n"); }; };break; case TCPCONSTATE_SYN_SEND:{ if (tcphdr->syn==1 && tcphdr->ack==1 && tcphdr->ack_seq==svrackseq){ synacktime=ts; syntosynacktime=synacktime-syntime; svrseq=tcphdr->seq; cltackseq=tcphdr->seq+1; svrinitseq=tcphdr->seq+1; cltseq=tcphdr->ack_seq; tcpconnstate=TCPCONSTATE_SYN_RECEIVED; printStat(); } else if (tcphdr->syn==1 && tcphdr->ack!=1 && pktdir==PKTSENDER_SVR){ //simultanous syn sent from both side simulsyn=1; svrseq=tcphdr->seq; cltackseq=tcphdr->seq+1; svrinitseq=tcphdr->seq+1; tcpconnstate=TCPCONSTATE_SYN_RECEIVED; printStat(); } else{ printf("Unknown TCP packet.\n"); }; };break; case TCPCONSTATE_SYN_RECEIVED: { if (tcphdr->syn!=1 &&tcphdr->ack==1 && tcphdr->seq==cltseq && tcphdr->ack_seq==cltackseq){ acktime=ts; synacktoacktime=acktime-synacktime; if (synacktoacktime>syntosynacktime){ //the server side is the local device swapcltsvr(); flowinitby=FLOWINITBYSVR; } tcpconnsetuptime=acktime-syntime; pktdir=getPacketDirection(ip->ip_src.s_addr, ip->ip_dst.s_addr, tcphdr->source, tcphdr->dest); if (pktdir==PKTSENDER_CLT){ cltseq=tcphdr->seq+tcpdatalen; cltackseq=tcphdr->ack_seq; svrseq=tcphdr->ack_seq; } if (pktdir==PKTSENDER_SVR){ svrseq=tcphdr->seq+tcpdatalen; svrackseq=tcphdr->ack_seq; cltseq=tcphdr->ack_seq; } printStat(); tcpconnstate=TCPCONSTATE_ESTABLISHED; } else if (tcphdr->syn==1 && tcphdr->ack==1 && simulsyn==1){ //simultanous syn sent from both side if (pktdir==PKTSENDER_CLT && tcphdr->seq==cltseq && tcphdr->ack_seq==cltackseq){ if (simulsynackstate==SIMUL_SYNACK_NOT_RECEIVED) simulsynackstate==SIMUL_SYNACK_NOT_RECEIVED; if (simulsynackstate==SIMUL_SYNACK_RECEIVED) tcpconnstate=TCPCONSTATE_ESTABLISHED; } if (pktdir==PKTSENDER_SVR && tcphdr->seq==svrseq && tcphdr->ack_seq==svrackseq){ if (simulsynackstate==SIMUL_SYNACK_NOT_RECEIVED) simulsynackstate==SIMUL_SYNACK_NOT_RECEIVED; if (simulsynackstate==SIMUL_SYNACK_RECEIVED) tcpconnstate=TCPCONSTATE_ESTABLISHED; } if (tcpconnstate==TCPCONSTATE_ESTABLISHED){ tcpconnsetuptime=ts-syntime; cltseq=svrackseq; svrseq=cltackseq; } } else { printf("Unknown TCP packet.\n"); }; };break; case TCPCONSTATE_ESTABLISHED: { if (tcphdr->syn!=1) { if (pktdir==PKTSENDER_CLT){ //calc metrics first if (tcphdr->seq > cltseq){ printf("client seq is greater than expected, may be pcap's fault.\n"); } if (tcphdr->seq < cltseq){ //has re-transmission int retxb=cltseq-tcphdr->seq; if (tcpdatalen<retxb) retxb=tcpdatalen; cltretxbytes+=retxb; cltretxnum+=1; // printf("client retx %d bytes.\n", retxb); }; //the last thing: update seq if (tcphdr->seq+tcpdatalen > cltseq) { cltseq=tcphdr->seq+tcpdatalen; } if (tcphdr->ack_seq >= cltackseq) { cltackseq=tcphdr->ack_seq; }; printStat(); }; if (pktdir==PKTSENDER_SVR){ if (tcphdr->seq > svrseq){ // printf("svr seq is greater than expected, some server data are delayed or lost.\n"); } if (tcphdr->seq < svrseq) { int retxb=svrseq-tcphdr->seq; if (tcpdatalen<retxb) retxb=tcpdatalen; svrretxbytes+=retxb; svrretxnum+=1; // printf("server retx %d bytes.\n", retxb); }; //the last thing: update seq if (tcphdr->seq+tcpdatalen > svrseq) { svrseq=tcphdr->seq+tcpdatalen; } if (tcphdr->ack_seq >= svrackseq) { svrackseq=tcphdr->ack_seq; }; printStat(); }; if (tcphdr->fin==1 || tcphdr->rst==1){ tcpconnstate=TCPCONSTATE_FIN; } } };break; case TCPCONSTATE_FIN:{ };break; default: { printf("Unknown TCP connection state.\n"); };break; }; }
bool KClient::Poll() { switch(state){ case TEST_INIT: if( GetState() == vce::VCE_STATE_ESTABLISHED ){ std::cerr << "send ping" << std::endl; send_ping( vce::GetTime()); state = TEST_PING_SENT; break; } else { std::cerr << GetState() << ">" ; if( GetState() == vce::VCE_STATE_UNKNOWN ){ return false; } } break; case TEST_PING_SENT: std::cerr << ">"; break; case TEST_PING_RECEIVED: { // 新しいIDを生成して登録(sign up)する std::ostringstream idss; idss << "ringo" << time(NULL) << "." << g_id_generator; localAccountName = idss.str(); localPassword = std::string("testpass"); g_id_generator ++; send_signup( localAccountName.c_str(), localPassword.c_str()); std::cerr << "signup" << std::endl; state = TEST_SIGNUP_SENT; } break; case TEST_SIGNUP_SENT: std::cerr << ">"; break; case TEST_SIGNUP_RECEIVED: send_authentication( localAccountName.c_str(), localPassword.c_str()); state = TEST_AUTHENTICATION_SENT; std::cerr << "auth" << std::endl; break; case TEST_AUTHENTICATION_SENT: std::cerr << ">"; break; case TEST_AUTHENTICATION_RECEIVED: send_createCharacter( "ringo" ); state = TEST_CREATECHARACTER_SENT; std::cerr << "createchar" << std::endl; break; case TEST_CREATECHARACTER_SENT: std::cerr << ">"; break; case TEST_CREATECHARACTER_RECEIVED: std::cerr << "createchar ok." << std::endl; send_listCharacter(); state = TEST_LISTCHARACTER_SENT; std::cerr << "listchar." << std::endl; break; case TEST_LISTCHARACTER_SENT: std::cerr << ">"; break; case TEST_LISTCHARACTER_RECEIVED: std::cerr << "listchar ok." << std::endl; send_login( "ringo" ); state = TEST_LOGIN_SENT; std::cerr << "login." << std::endl; break; case TEST_LOGIN_SENT: std::cerr << ">"; break; case TEST_LOGIN_RECEIVED: state = TEST_INGAME; break; case TEST_INGAME: { vce::VUint64 nowtimer = vce::GetTime(); if( nowtimer > (vtimer+500) ){ vtimer = nowtimer; std::cerr << ">"; ingameSender(); printStat(); } } break; case TEST_LOGOUT_SENT: std::cerr << ">"; break; case TEST_SESSION_CLOSED: break; case TEST_FINISHED: // do nothing std::cerr << "."; break; default: std::cerr << "invalid test state" << std::endl; assert(0); } return true; }
void Engine::cmd_stat(StrLen) { printStat(); }
void Engine::cmd_exit(StrLen) { printStat(); run_flag=false; }
int main(int argc, char** argv) { engine engn; // engn.makeBookBody(); engn.getBooksIRBIS64(); // engn.getBookDataFromSite("www.ozon.ru"); printStat(engn.books); //map<string, vector<string>>::iterator it = engn.books.begin(); vector <books_record>::iterator it = engn.books.begin(); // for (int i = 0; i < 7; i++) // it++; size_t counter = 1; fOper flinks("links.txt", WRITE); flinks.fClose(); while (it != engn.books.end()) { cout << counter++ << ".\t" << (it->bookname != "" ? it->bookname : " ") << " : " << (it->fio != "" ? it->fio : " ") << endl; flinks.reopen("links.txt", APPEND); engn.book.annotation.clear(); engn.book.coverPath.clear(); engn.book.qrcode.clear(); cout << it->bookrecord << endl; if (it->isbn != "") // if (it->isbn == "5-7020-0807-3") { // cout << "************************************** " << it->isbn << endl; // cout << endl; engn.prepareServerMap(it->isbn); engn.allFound = false; // cout << "make conn" << endl; engn.getBookDataFromSite("www.ozon.ru"); if (engn.neededReloadPagebyNewPath()) { // cout << "here reload page by new path" << endl; engn.allFound = false; engn.getBookDataFromSite("www.ozon.ru"); engn.getBookFromSite(it->isbn); } // cout << "get books from site" << endl; engn.getBookFromSite(it->isbn); if (engn.needSearchByBookName() && !engn.neededReloadPagebyNewPath()) { // cout << "will search by name" << endl; engn.getBookByISBN_IRBIS64(); engn.allFound = false; engn.getBookDataFromSite("www.ozon.ru"); engn.getBookFromSite(it->isbn); // cout << "getted name and FIO" << endl; if (engn.neededReloadPagebyNewPath()) { // cout << "ищем по новому пути" << endl; engn.allFound = false; engn.getBookDataFromSite("www.ozon.ru"); engn.getBookFromSite(it->isbn); // cout << "finished" << endl; } } else if (engn.neededReloadPagebyNewPath()) { // cout << "here reload page by new path" << endl; engn.allFound = false; engn.getBookDataFromSite("www.ozon.ru"); engn.getBookFromSite(it->isbn); } // конец сбора информации, пора заносить в базу и на сайт // break; } else { // cout << "************************************** " << it->bookname << "+" << it->fio << endl; // cout << endl; // cout << "will search by name" << endl; engn.allFound = false; engn.prepareServerMap(it->bookname + "+" + it->fio); engn.getBookDataFromSite("www.ozon.ru"); if (engn.neededReloadPagebyNewPath()) { // cout << "here reload page by new path" << endl; engn.allFound = false; engn.getBookDataFromSite("www.ozon.ru"); engn.getBookFromSite(boost::lexical_cast<string>(counter) + ".txt"); } else engn.getBookFromSite(boost::lexical_cast<string>(counter) + ".txt"); // cout << "getted name and FIO" << endl; if (engn.neededReloadPagebyNewPath()) { // cout << "ищем по новому пути" << endl; engn.allFound = false; engn.getBookDataFromSite("www.ozon.ru"); engn.getBookFromSite(boost::lexical_cast<string>(counter) + ".txt"); // cout << "finished" << endl; } // counter++; // конец сбора информации, пора заносить в базу и на сайт } // engn.book.qrcode = engn.generateQRcodes(engn.book.pagename); if (engn.book.coverPath != "") { cout << "genering full page" << endl; flinks.fWrite("http://murmanlib.ru/" + engn.book.pagename); engn.book.pagename = engn.generatePagesNames(1); engn.generateQRcodes(engn.book.pagename); engn.updateBookRecord(it->bookrecord + "11#http://murmanlib.ru/" + engn.book.pagename + "\x1F" + "10#\\\\cgb-centr\\qrcodes\\"+ engn.book.pagename + ".png\x1F\x0D\x0A"); engn.makeConn("murmanlib.ru"); } else { cout << "genering template page" << endl; engn.book.pagename = engn.generatePagesNames(1); engn.generateQRcodes(engn.book.pagename); engn.updateBookRecord(it->bookrecord + "11#http://murmanlib.ru/" + engn.book.pagename + "\x1F" + "10#\\\\cgb-centr\\qrcodes\\"+ engn.book.pagename + ".png\x1F\x0D\x0A"); engn.book.coverPath = "www.vsedlyainformatikov.net/_ph/3/433388687.jpg"; engn.book.annotation = "<pre> <b>" + it->fio + "</b><br><i> \"" + it->bookname + "</i>\"</pre>"; engn.makeConn("murmanlib.ru"); } cout << "Аннотация: " << engn.book.annotation << endl; cout << "Обложка: " << engn.book.coverPath << endl; it++; flinks.fClose(); } return 0; }
//============================================== //============================================== //============================================== void fitPedBT( int itp,int run,TH2F *h2, int id1, int id2) { if(id2>18000) id2=18000; char txt[1000], txt2[1000]; sprintf(txt,"ped%s",cTile4[itp]); sprintf(txt2,"ped %s R%d; %s soft ID; pedestal +/- fit err (ADC)",cTile4[itp],run,cTile4[itp]); hPed=new TH1F(txt,txt2,mxBTiles,0.5,mxBTiles+0.5); hPed->Sumw2(); hPed->GetXaxis()->SetLabelSize(0.08); hPed->GetYaxis()->SetLabelSize(0.08); sprintf(txt,"stat%s",cTile4[itp]); sprintf(txt2,"status %s R%d; %s soft ID; jan status",cTile4[itp],run,cTile4[itp]); hStat=new TH1I(txt,txt2,mxBTiles,0.5,mxBTiles+0.5); hStat->Reset(-1); // default is bad hStat->GetXaxis()->SetLabelSize(0.08); hStat->GetYaxis()->SetLabelSize(0.08); sprintf(txt,"chi%s",cTile4[itp]); sprintf(txt2,"chi2/DOF %s R%d; %s soft ID; ped Chi2/DOF",cTile4[itp],run,cTile4[itp]); hChi=new TH1F(txt,txt2,mxBTiles,0.5,mxBTiles+0.5); hStat->Reset(-1); // default is bad hChi->GetXaxis()->SetLabelSize(0.08); hChi->GetYaxis()->SetLabelSize(0.08); hChi->GetYaxis()->SetTitleSize(0.2); sprintf(txt,"sigPed%s",cTile4[itp]); sprintf(txt2,"sigma(ped) %s R%d; %s soft ID; sig(ped) ADC",cTile4[itp],run,cTile4[itp]); hSig=new TH1F(txt,txt2,mxBTiles,0.5,mxBTiles+0.5); hStat->Reset(-1); // default is bad hSig->GetXaxis()->SetLabelSize(0.08); hSig->GetYaxis()->SetLabelSize(0.08); hPeak=new TH1F("hpedPeak", "integral of pedestal peak;soft ID", mxBTiles,0.5,mxBTiles+0.5); hPeak->GetXaxis()->SetLabelSize(0.08); hPeak->GetYaxis()->SetLabelSize(0.08); float par_nsig=3; // integration range for QA float par_rms=2; // to approximate fit range float cut_yield0=100; float cut_yieldR1=0.7; float cut_ch2min=0.1; float cut_ch2ndf=200.; float cut_pedL=105; float cut_pedH=295; float cut_pedH=295; float cut_sigPed=2.7; // float cut_minYiled=50; axX=h2->GetXaxis(); float x1=axX->GetXmin(); float x2=axX->GetXmax(); int nbX=axX->GetNbins(); printf("X-axis range --> [%.1f, %.1f], nb=%d %s\n",x1,x2,nbX,axX->GetTitle()); axY=h2->GetYaxis(); float y1=axY->GetXmin(); float y2=axY->GetXmax(); int nbY=axY->GetNbins(); printf("Y-axis range --> [%.1f, %.1f], nb=%d\n",y1,y2,nbY); TH1F*h=new TH1F("h1","h1",nbY,y1,y2); // working histo for 1-D spectrum // do projections int ih; for(ih=id1; ih<=id2; ih++) { char txt1[100], txt2[1000]; sprintf(txt1,"id%d",ih); sprintf(txt2,"%s soft id=%d;%s ",cTile4[itp],ih,axY->GetTitle()); h->SetTitle(txt2); h->Reset(); h->SetAxisRange(y1,y2); int i; int kBad=1; for(i=1;i<=nbY;i++) h->SetBinContent(i,h2->GetBinContent(ih,i)); //for(i=1;i<=nbY;i++) printf("%d %f \n",i,h2->GetBinContent(ih,i)); float mean=h->GetMean(); float yield=h->Integral(); h->SetEntries(yield); printf("******** work on %s mean=%.1f rms=%.1f yield=%.1f\n",txt1,mean,h->GetRMS(),yield); if(yield<cut_yield0) { hStat->SetBinContent(ih,kBad); continue; } kBad<<=1; if(isSticky(h,mean)) { hStat->SetBinContent(ih,kBad); continue; } kBad<<=1; // if(ih>=12367) return; float adc1=mean-par_rms*par_nsig; float adc2=mean+par_rms*par_nsig-1; h->SetAxisRange( adc1,adc2); float yield2=h->Integral(); float r1=yield2/yield; printf(" range=%d,%d r1=%.3f yield2=%.1f\n",adc1,adc2,r1,yield2); if(r1< cut_yieldR1) { hStat->SetBinContent(ih,kBad); continue; } kBad<<=1; h->Fit("gaus","Q","Rh", adc1, adc2); TF1 *ff=h->GetFunction("gaus"); assert(ff); ff->SetLineColor(kRed); ff->SetLineWidth(1.); h->Draw(); float ped=ff->GetParameter(1); float pedErr=ff->GetParError(1); float sig=ff->GetParameter(2); float chi2=ff->GetChisquare(); float ndf=ff->GetNDF(); printf("chi2=%f ndf=%f\n", chi2,ndf); if(chi2<cut_ch2min) { hStat->SetBinContent(ih,kBad); continue; } // keep the same flag hChi->SetBinContent(ih, chi2/ndf); if(chi2/ndf> cut_ch2ndf) { hStat->SetBinContent(ih,kBad); continue; } kBad<<=1; adc1=ped-sig*par_nsig; adc2=ped+sig*par_nsig; h->SetAxisRange( adc1,adc2); float yield3=h->Integral(); float r2=yield2/yield; printf("ped=%f sig=%f range=%d,%d r2=%.3f\n",ped,sig,adc1,adc2,r2); hSig->SetBinContent(ih,sig); if(sig>cut_sigPed || sig<0) { hStat->SetBinContent(ih,kBad); continue; } kBad<<=1; if(isRawAdc){ if(ped< cut_pedL) { hStat->SetBinContent(ih,kBad); continue; } if(ped> cut_pedH) { hStat->SetBinContent(ih,kBad); continue; } kBad<<=1; } hPed->SetBinContent(ih,ped); hPed->SetBinError(ih,pedErr); int np=grP->GetN(); grP->SetPoint(np,ih,ped); grP->SetPointError(np,0,pedErr); hPeak->SetBinContent(ih,r2); hStat->SetBinContent(ih,0); // good } h->SetAxisRange(y1,y2); printStat(id1,id2); fd2->cd(); h->Write(); }