/** * ソケット送受信 * * @param[in] sock ソケット * @return なし */ st_client client_loop(int sock) { int ready = 0; /* select戻り値 */ struct timespec timeout; /* タイムアウト値 */ sigset_t sigmask; /* シグナルマスク */ st_client status = EX_SUCCESS; /* ステータス */ #ifdef _USE_SELECT fd_set fds, rfds; /* selectマスク */ #else struct pollfd targets[MAX_POLL]; /* poll */ #endif /* _USE_SELECT */ dbglog("start: sock=%d", sock); if (atexit(exit_memfree)) { outlog("atexit"); return EX_FAILURE; } #ifdef _USE_SELECT /* マスクの設定 */ FD_ZERO(&fds); /* 初期化 */ FD_SET(sock, &fds); /* ソケットをマスク */ FD_SET(STDIN_FILENO, &fds); /* 標準入力をマスク */ #endif /* _USE_SELECT */ /* シグナルマスクの取得 */ sigmask = get_sigmask(); /* タイムアウト値初期化 */ (void)memset(&timeout, 0, sizeof(struct timespec)); timeout.tv_sec = 1; /* 1秒 */ timeout.tv_nsec = 0; do { #ifdef _USE_SELECT (void)memcpy(&rfds, &fds, sizeof(fd_set)); /* マスクコピー */ ready = pselect(sock + 1, &rfds, NULL, NULL, &timeout, &sigmask); #else targets[STDIN_POLL].fd = STDIN_FILENO; targets[STDIN_POLL].events = POLLIN; targets[SOCK_POLL].fd = sock; targets[SOCK_POLL].events = POLLIN; ready = ppoll(targets, MAX_POLL, &timeout, &sigmask); #endif /* _USE_SELECT */ if (ready < 0) { if (errno == EINTR) /* 割り込み */ break; /* selectエラー */ outlog("select=%d", ready); return EX_FAILURE; } else if (ready) { #ifdef _USE_SELECT if (FD_ISSET(STDIN_FILENO, &fds)) { /* 標準入力レディ */ status = send_sock(sock); if (status == EX_EMPTY) continue; if (status) return status; } if (FD_ISSET(sock, &fds)) { /* ソケットレディ */ status = read_sock(sock); if (status) return status; } #else if (targets[STDIN_POLL].revents & POLLIN) { /* 標準入力レディ */ status = send_sock(sock); if (status == EX_EMPTY) continue; if (status) return status; } if (targets[SOCK_POLL].revents & POLLIN) { /* ソケットレディ */ status = read_sock(sock); if (status) return status; } #endif /* _USE_SELECT */ } else { /* タイムアウト */ continue; } } while (!g_sig_handled); return EX_SIGNAL; }
calc_exception::calc_exception(int line_number, std::string current_line, std::string message): std::logic_error(message), cur_line_num(line_number), cur_line(current_line){ std::ofstream outlog("calculator.log"); std::clog.rdbuf(outlog.rdbuf()); }
int spikes_getContamFromMerged(int nEntries=-1, TString dirOut="/home/llr/cms/ndaci/SKWork/macro/skEfficiency/Spikes/HighPuContamination/try2/", TString dirIn="/data_CMS/cms/ndaci/ndaci_2011A/Commissioning/CommissioningEmulReco/NewKill/highPU/MergedToData/", TString file="all_spikes.root", TString usr_hlt="noHLT", TString nameChain="Spikes", float spikeCut=8., bool debug=false) { ofstream outlog(dirOut+"/log_getContam.txt",ios::out); // INPUT TREE // if(debug) cout << "--- add data trees to myChain" << endl; TChain * myChain = new TChain(nameChain); myChain->Add(dirIn+file); // VARIABLES // int nEvent, nRun, nLumi ; // data //int nEvent_To, nRun_To, nLumi_To; // trigOnly // Vertices // int vtx_N; double _vtx_x[200], _vtx_y[200], _vtx_z[200]; double _vtx_normalizedChi2[200], _vtx_ndof[200], _vtx_nTracks[200], _vtx_d0[200]; // Trigger Paths // int trig_hltInfo[250]; //int _trig_isEleHLTpath; int trig_HLT_path[4]; // unbias, EG5, EG8, EG12 char trig_fired_names[5000]; vector<string> m_HLT_pathsV; vector<string> m_HLT_triggered; vector<int> m_HLT_pathsV_check; // Spikes int spike_N,spike_TTieta[5000], spike_TTiphi[5000], spike_Rieta[5000], spike_Riphi[5000], spike_severityLevel[5000], spike_outOfTime[5000]; double spike_Et[5000], spike_eta[5000], spike_phi[5000], spike_theta[5000]; int spike_RCTL1iso[5000], spike_RCTL1noniso[5000], spike_RCTL1iso_To[5000], spike_RCTL1noniso_To[5000], spike_RCTL1iso_M_To[5000], spike_RCTL1noniso_M_To[5000], spike_maxEGtrig[5000], spike_maxEGtrig_To[5000], spike_maxEGtrig_M_To[5000]; // TP info const int nTow = 4032; int trig_tower_N,trig_tower_ieta[nTow],trig_tower_iphi[nTow],trig_tower_adc[nTow],trig_tower_sFGVB[nTow],trig_tower_FG[nTow]; int trig_tower_N_M,trig_tower_ieta_M[nTow],trig_tower_iphi_M[nTow],trig_tower_adc_M[nTow],trig_tower_sFGVB_M[nTow], trig_tower_FG_M[nTow]; int trig_tower_N_E,trig_tower_ieta_E[nTow],trig_tower_iphi_E[nTow],trig_tower_adc_E[nTow][5],trig_tower_sFGVB_E[nTow][5], trig_tower_FG_E[nTow][5]; // HCAL TP // int trig_tower_hcal_N, trig_tower_hcal_ieta[4032], trig_tower_hcal_iphi[4032], trig_tower_hcal_FG[4032],trig_tower_hcal_et[4032]; // L1 Candidates // int trig_L1emIso_N, trig_L1emNonIso_N; int trig_L1emIso_N_To, trig_L1emNonIso_N_To, trig_L1emIso_N_M_To, trig_L1emNonIso_N_M_To; // L1 candidates info // int trig_L1emIso_ieta[4], trig_L1emIso_iphi[4], trig_L1emIso_rank[4]; int trig_L1emNonIso_ieta[4], trig_L1emNonIso_iphi[4], trig_L1emNonIso_rank[4]; int trig_L1emIso_ieta_To[4], trig_L1emIso_iphi_To[4], trig_L1emIso_rank_To[4]; int trig_L1emNonIso_ieta_To[4], trig_L1emNonIso_iphi_To[4], trig_L1emNonIso_rank_To[4]; int trig_L1emIso_ieta_M_To[4], trig_L1emIso_iphi_M_To[4], trig_L1emIso_rank_M_To[4]; int trig_L1emNonIso_ieta_M_To[4], trig_L1emNonIso_iphi_M_To[4], trig_L1emNonIso_rank_M_To[4]; // INITIALIZATION // // // Global nEvent = 0; nRun = 0; nLumi = 0; // // Vertices vtx_N = 0; for(int iv=0;iv<200;iv++) { _vtx_normalizedChi2[iv] = 0.; _vtx_ndof[iv] = 0.; _vtx_nTracks[iv] = 0.; _vtx_d0[iv] = 0.; _vtx_x[iv] = 0.; _vtx_y[iv] = 0.; _vtx_z[iv] = 0.; } // // L1 candidates trig_L1emIso_N = 0; trig_L1emNonIso_N = 0; trig_L1emIso_N_M_To = 0; trig_L1emNonIso_N_M_To = 0; for(int il1=0 ; il1<4 ; il1++) { trig_L1emIso_ieta[il1] = 0; trig_L1emIso_iphi[il1] = 0; trig_L1emIso_rank[il1] = 0; trig_L1emNonIso_ieta[il1] = 0; trig_L1emNonIso_iphi[il1] = 0; trig_L1emNonIso_rank[il1] = 0; trig_L1emIso_ieta_To[il1] = 0; trig_L1emIso_iphi_To[il1] = 0; trig_L1emIso_rank_To[il1] = 0; trig_L1emNonIso_ieta_To[il1] = 0; trig_L1emNonIso_iphi_To[il1] = 0; trig_L1emNonIso_rank_To[il1] = 0; trig_L1emIso_ieta_M_To[il1] = 0; trig_L1emIso_iphi_M_To[il1] = 0; trig_L1emIso_rank_M_To[il1] = 0; trig_L1emNonIso_ieta_M_To[il1] = 0; trig_L1emNonIso_iphi_M_To[il1] = 0; trig_L1emNonIso_rank_M_To[il1] = 0; } // Trigger towers trig_tower_N = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_ieta[iTow] = trig_tower_iphi[iTow] = -999; trig_tower_adc[iTow] = trig_tower_sFGVB[iTow] = trig_tower_FG[iTow] = -999; } trig_tower_N_M = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_ieta_M[iTow] = trig_tower_iphi_M[iTow] = -999; trig_tower_adc_M[iTow] = trig_tower_sFGVB_M[iTow] = trig_tower_FG_M[iTow] = -999; } trig_tower_N_E = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_ieta_E[iTow] = trig_tower_iphi_E[iTow] = -999; for(int i=0 ; i<5 ; i++) trig_tower_adc_E[iTow][i] = trig_tower_sFGVB_E[iTow][i] = trig_tower_FG_E[iTow][i] = -999; } trig_tower_hcal_N = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_hcal_ieta[iTow] = trig_tower_hcal_iphi[iTow] = -999; trig_tower_hcal_FG[iTow] = trig_tower_hcal_et[iTow] = -999; } // SPIKES // spike_N = 0; for(int isp=0 ; isp<5000 ; isp++) { spike_outOfTime[isp] = -999; spike_severityLevel[isp] = -999 ; //spike_SwissCross[isp] = -999 ; spike_Et[isp] = -999 ; spike_phi[isp] = -999 ; spike_eta[isp] = -999 ; spike_theta[isp] = -999 ; spike_TTiphi[isp] = -999 ; spike_TTieta[isp] = -999 ; spike_Riphi[isp] = -999 ; spike_Rieta[isp] = -999 ; // spike_RCTL1iso[isp] = -999 ; spike_RCTL1noniso[isp] = -999 ; spike_RCTL1iso_To[isp] = -999 ; spike_RCTL1noniso_To[isp] = -999 ; spike_RCTL1iso_M_To[isp] = -999 ; spike_RCTL1noniso_M_To[isp] = -999 ; //spike_time[isp] = -999 ; } myChain->SetBranchAddress("nEvent",&nEvent); myChain->SetBranchAddress("nRun",&nRun); myChain->SetBranchAddress("nLumi",&nLumi); myChain->SetBranchAddress("vtx_N",&vtx_N); myChain->SetBranchAddress("trig_HLT_path",&trig_HLT_path); myChain->SetBranchAddress("trig_fired_names",&trig_fired_names); myChain->SetBranchAddress("trig_hltInfo",&trig_hltInfo); // L1 candidates myChain->SetBranchAddress("trig_L1emIso_N", &trig_L1emIso_N); myChain->SetBranchAddress("trig_L1emIso_ieta", &trig_L1emIso_ieta); myChain->SetBranchAddress("trig_L1emIso_iphi", &trig_L1emIso_iphi); myChain->SetBranchAddress("trig_L1emIso_rank", &trig_L1emIso_rank); myChain->SetBranchAddress("trig_L1emNonIso_N", &trig_L1emNonIso_N); myChain->SetBranchAddress("trig_L1emNonIso_ieta", &trig_L1emNonIso_ieta); myChain->SetBranchAddress("trig_L1emNonIso_iphi", &trig_L1emNonIso_iphi); myChain->SetBranchAddress("trig_L1emNonIso_rank", &trig_L1emNonIso_rank); // Spikes myChain->SetBranchAddress("spike_N",&spike_N); myChain->SetBranchAddress("spike_TTieta",&spike_TTieta); myChain->SetBranchAddress("spike_TTiphi",&spike_TTiphi); myChain->SetBranchAddress("spike_Rieta",&spike_Rieta); myChain->SetBranchAddress("spike_Riphi",&spike_Riphi); myChain->SetBranchAddress("spike_severityLevel",&spike_severityLevel); myChain->SetBranchAddress("spike_outOfTime",&spike_outOfTime); myChain->SetBranchAddress("spike_Et",&spike_Et); myChain->SetBranchAddress("spike_eta",&spike_eta); myChain->SetBranchAddress("spike_phi",&spike_phi); myChain->SetBranchAddress("spike_theta",&spike_theta); // myChain->SetBranchAddress("spike_maxEGtrig",&spike_maxEGtrig); myChain->SetBranchAddress("spike_maxEGtrig_To",&spike_maxEGtrig_To); myChain->SetBranchAddress("spike_maxEGtrig_M_To",&spike_maxEGtrig_M_To); myChain->SetBranchAddress("trig_tower_N", &trig_tower_N); myChain->SetBranchAddress("trig_tower_ieta", &trig_tower_ieta); myChain->SetBranchAddress("trig_tower_iphi", &trig_tower_iphi); myChain->SetBranchAddress("trig_tower_adc", &trig_tower_adc); myChain->SetBranchAddress("trig_tower_sFGVB", &trig_tower_sFGVB); myChain->SetBranchAddress("trig_tower_FG", &trig_tower_FG); myChain->SetBranchAddress("trig_tower_N_E", &trig_tower_N_E); myChain->SetBranchAddress("trig_tower_ieta_E", &trig_tower_ieta_E); myChain->SetBranchAddress("trig_tower_iphi_E", &trig_tower_iphi_E); myChain->SetBranchAddress("trig_tower_adc_E", &trig_tower_adc_E); myChain->SetBranchAddress("trig_tower_sFGVB_E", &trig_tower_sFGVB_E); myChain->SetBranchAddress("trig_tower_FG_E", &trig_tower_FG_E); // HCAL TP myChain->SetBranchAddress("trig_tower_hcal_N", &trig_tower_hcal_N); myChain->SetBranchAddress("trig_tower_hcal_ieta", &trig_tower_hcal_ieta); myChain->SetBranchAddress("trig_tower_hcal_iphi", &trig_tower_hcal_iphi); myChain->SetBranchAddress("trig_tower_hcal_et", &trig_tower_hcal_et); myChain->SetBranchAddress("trig_tower_hcal_FG", &trig_tower_hcal_FG); myChain->SetBranchStatus("trig_tower*",0); // L1 candidates collections myChain->SetBranchAddress("trig_L1emIso_N", &trig_L1emIso_N); myChain->SetBranchAddress("trig_L1emIso_ieta", &trig_L1emIso_ieta); myChain->SetBranchAddress("trig_L1emIso_iphi", &trig_L1emIso_iphi); myChain->SetBranchAddress("trig_L1emIso_rank", &trig_L1emIso_rank); myChain->SetBranchAddress("trig_L1emNonIso_N", &trig_L1emNonIso_N); myChain->SetBranchAddress("trig_L1emNonIso_ieta", &trig_L1emNonIso_ieta); myChain->SetBranchAddress("trig_L1emNonIso_iphi", &trig_L1emNonIso_iphi); myChain->SetBranchAddress("trig_L1emNonIso_rank", &trig_L1emNonIso_rank); myChain->SetBranchAddress("trig_L1emIso_N_To", &trig_L1emIso_N_To); myChain->SetBranchAddress("trig_L1emIso_ieta_To", &trig_L1emIso_ieta_To); myChain->SetBranchAddress("trig_L1emIso_iphi_To", &trig_L1emIso_iphi_To); myChain->SetBranchAddress("trig_L1emIso_rank_To", &trig_L1emIso_rank_To); myChain->SetBranchAddress("trig_L1emNonIso_N_To", &trig_L1emNonIso_N_To); myChain->SetBranchAddress("trig_L1emNonIso_ieta_To", &trig_L1emNonIso_ieta_To); myChain->SetBranchAddress("trig_L1emNonIso_iphi_To", &trig_L1emNonIso_iphi_To); myChain->SetBranchAddress("trig_L1emNonIso_rank_To", &trig_L1emNonIso_rank_To); myChain->SetBranchAddress("trig_L1emIso_N_M_To", &trig_L1emIso_N_M_To); myChain->SetBranchAddress("trig_L1emIso_ieta_M_To", &trig_L1emIso_ieta_M_To); myChain->SetBranchAddress("trig_L1emIso_iphi_M_To", &trig_L1emIso_iphi_M_To); myChain->SetBranchAddress("trig_L1emIso_rank_M_To", &trig_L1emIso_rank_M_To); myChain->SetBranchAddress("trig_L1emNonIso_N_M_To", &trig_L1emNonIso_N_M_To); myChain->SetBranchAddress("trig_L1emNonIso_ieta_M_To", &trig_L1emNonIso_ieta_M_To); myChain->SetBranchAddress("trig_L1emNonIso_iphi_M_To", &trig_L1emNonIso_iphi_M_To); myChain->SetBranchAddress("trig_L1emNonIso_rank_M_To", &trig_L1emNonIso_rank_M_To); int numEntries = myChain->GetEntries () ; int nProcess = numEntries; if(nEntries>=0 && nEntries<numEntries) nProcess = nEntries; TString filename; bool evt_trig_EG12, evt_trig, evt_trig_M; int spike_trig, spike_trig_M; // Numbers // const int nM=2; const int nEG=8; int thresh[nEG] = {2,5,8,10,12,15,20,30} ; TString trigname[nEG] = {"2","5","8","10","12","15","20","30"}; TString collname[nM]={"N","M"}; // HISTOGRAMS // TH1F * h_spikes; TH1F * h_triggering_spikes[nEG][nM]; TH1F * h_evts_trigBy_any[nEG][nM]; TH1F * h_evts_trigBy_spikes[nEG][nM]; const int nVtx = 40; TString name_histo; h_spikes = new TH1F("h_spikes","h_spikes",nVtx,0,nVtx); // abscisse = vtx_N for(int iEG=0 ; iEG<nEG ; iEG++ ) { for(int iM=0 ; iM<nM ; iM++ ) { name_histo = "h_triggering_spikes_EG"+trigname[iEG]+"_"+collname[iM]; h_triggering_spikes[iEG][iM]=new TH1F(name_histo,name_histo,nVtx,0,nVtx); name_histo = "h_evts_trigBy_any_EG"+trigname[iEG]+"_"+collname[iM]; h_evts_trigBy_any[iEG][iM]=new TH1F(name_histo,name_histo,nVtx,0,nVtx); name_histo = "h_evts_trigBy_spikes_EG"+trigname[iEG]+"_"+collname[iM]; h_evts_trigBy_spikes[iEG][iM]=new TH1F(name_histo,name_histo,nVtx,0,nVtx); } } // Loop over entries // int nCurrentRun = -999; outlog << "will process " << nProcess << "/" << numEntries << "entries" << endl; // for (int iEvent = 0 ; iEvent < nProcess ; iEvent++ ) { // TP Initialization trig_tower_N = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_ieta[iTow] = trig_tower_iphi[iTow] = -999; trig_tower_adc[iTow] = trig_tower_sFGVB[iTow] = -999; } trig_tower_N_M = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_ieta_M[iTow] = trig_tower_iphi_M[iTow] = -999; trig_tower_adc_M[iTow] = trig_tower_sFGVB_M[iTow] = -999; } trig_tower_N_E = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_ieta_E[iTow] = trig_tower_iphi_E[iTow] = -999; for(int i=0 ; i<5 ; i++) trig_tower_adc_E[iTow][i] = trig_tower_sFGVB_E[iTow][i] = -999; } // L1 candidates trig_L1emIso_N = 0; trig_L1emNonIso_N = 0; trig_L1emIso_N_M_To = 0; trig_L1emNonIso_N_M_To = 0; trig_L1emIso_N_To = 0; trig_L1emNonIso_N_To = 0; for(int il1=0 ; il1<4 ; il1++) { trig_L1emIso_ieta[il1] = 0; trig_L1emIso_iphi[il1] = 0; trig_L1emIso_rank[il1] = 0; trig_L1emNonIso_ieta[il1] = 0; trig_L1emNonIso_iphi[il1] = 0; trig_L1emNonIso_rank[il1] = 0; trig_L1emIso_ieta_To[il1] = 0; trig_L1emIso_iphi_To[il1] = 0; trig_L1emIso_rank_To[il1] = 0; trig_L1emNonIso_ieta_To[il1] = 0; trig_L1emNonIso_iphi_To[il1] = 0; trig_L1emNonIso_rank_To[il1] = 0; trig_L1emNonIso_ieta_M_To[il1] = 0; trig_L1emNonIso_iphi_M_To[il1] = 0; trig_L1emNonIso_rank_M_To[il1] = 0; trig_L1emIso_ieta_M_To[il1] = 0; trig_L1emIso_iphi_M_To[il1] = 0; trig_L1emIso_rank_M_To[il1] = 0; } myChain->GetEntry (iEvent) ; // show processed file if(iEvent==0) { filename = myChain->GetFile()->GetName() ; outlog << "File : " << filename << endl << endl; } else if( filename != myChain->GetFile()->GetName() ) { filename = myChain->GetFile()->GetName() ; outlog << "File : " << myChain->GetFile()->GetName() << endl << endl; } // show current run/iCat processed if(iEvent==0) { nCurrentRun = nRun ; outlog << "nRun=" << nRun << endl; } else if(nRun!=nCurrentRun) { nCurrentRun=nRun ; outlog << "nRun=" << nRun << endl; } // HLT selection // if(usr_hlt=="unbias") if(trig_HLT_path[0]==0) continue; // CHECK EG12 FIRED // evt_trig_EG12=false; for(int i=0 ; i<4 ; i++) { if(trig_L1emIso_rank[i] >= 12) evt_trig_EG12=true; if(trig_L1emNonIso_rank[i] >= 12) evt_trig_EG12=true; } if(!evt_trig_EG12) continue; // EXTRACT CONTAMINATION // // spike_trig=spike_trig_M=0; // Loop over Spikes for(int iS=0 ; iS<spike_N ; iS++) { h_spikes->Fill(vtx_N); if( spike_Et[iS] < spikeCut ) continue; if( spike_maxEGtrig[iS] != spike_maxEGtrig_To[iS] ) if(debug) cout << "Spike #" << iS << " discripancy between OnlineFromData and OnlineFromEmul !" << endl; if( spike_maxEGtrig[iS]>spike_trig ) spike_trig = spike_maxEGtrig[iS]; if( spike_maxEGtrig_M_To[iS]>spike_trig_M ) spike_trig_M = spike_maxEGtrig_M_To[iS]; for(int iEG=0 ; iEG<nEG ; iEG++) { if( spike_maxEGtrig[iS]>thresh[iEG] ) h_triggering_spikes[iEG][0]->Fill(vtx_N); if( spike_maxEGtrig_M_To[iS]>thresh[iEG] ) h_triggering_spikes[iEG][1]->Fill(vtx_N); } } // // Object triggering event for(int iEG=0 ; iEG<nEG ; iEG++) { // EG trig by any object evt_trig=evt_trig_M=false; for(int i=0 ; i<4 ; i++) { if(trig_L1emIso_rank_To[i] >= thresh[iEG]) evt_trig=true; if(trig_L1emNonIso_rank_To[i] >= thresh[iEG]) evt_trig=true; // if(trig_L1emIso_rank_M_To[i] >= thresh[iEG]) evt_trig_M=true; if(trig_L1emNonIso_rank_M_To[i] >= thresh[iEG]) evt_trig_M=true; } if(evt_trig) h_evts_trigBy_any[iEG][0]->Fill(vtx_N); if(evt_trig_M) h_evts_trigBy_any[iEG][1]->Fill(vtx_N); // EG trig by spike if(spike_trig>=thresh[iEG]) h_evts_trigBy_spikes[iEG][0]->Fill(vtx_N); if(spike_trig_M>=thresh[iEG]) h_evts_trigBy_spikes[iEG][1]->Fill(vtx_N); } } TFile *outplot = new TFile(dirOut+"/spike_plots.root","RECREATE"); h_spikes->Write(); for(int iEG=0 ; iEG<nEG ; iEG++) { for(int iM=0; iM<nM ; iM++) { h_triggering_spikes[iEG][iM]->Write(); h_evts_trigBy_any[iEG][iM]->Write(); h_evts_trigBy_spikes[iEG][iM]->Write(); } } outplot->Close(); cout << "DONE, BABY" << endl; return 0; }
int process(TChain *trigOnlyChain, MAPJson *jsonMap, MAPTrigOnly mapTo, TString nameChain, TString file, int iFile, int nEntries, TString dirIn, TString dirOut, TString usr_hlt, int iJson, bool GetTrigOnly, bool debug) { // TrigOnly MAP // MAPTrigOnly::iterator iterMapTo; pair<int,int> runevtTo; int iEntryTo=-1; // OUTPUT FILE // if(debug) cout << "--- define output file : " ; ostringstream ossi(""); ossi << iFile ; // TFile *outfile = new TFile(dirIn+"spikes_"+ossi.str()+".root","RECREATE"); //ofstream outcheckdata(dirIn+"logcheckdata_"+ossi.str()+".txt",ios::out); ofstream outlog(dirOut+"/logs/log_"+ossi.str()+".txt",ios::out); ofstream outcheckL1(dirOut+"/checkL1/checkL1_"+ossi.str()+".txt",ios::out); //outlog << "TRY TRY TRY" << endl; //outcheckL1 << "TRY TRY TRY" << endl; //outcheckdata << "TRY TRY TRY" << endl; if(debug) cout << "spikes_"+ossi.str()+".root" << endl; ossi.str(""); // INPUT TREE // if(debug) cout << "--- add data trees to myChain" << endl; TChain * myChain = new TChain(nameChain); myChain->Add(file); // VARIABLES // int nEvent, nRun, nLumi ; // data int nEvent_To, nRun_To, nLumi_To; // trigOnly // Vertices // int vtx_N; double _vtx_x[200], _vtx_y[200], _vtx_z[200]; double _vtx_normalizedChi2[200], _vtx_ndof[200], _vtx_nTracks[200], _vtx_d0[200]; // Trigger Paths // int trig_hltInfo[250]; //int _trig_isEleHLTpath; int trig_HLT_path[4]; // unbias, EG5, EG8, EG12 char trig_fired_names[5000]; vector<string> m_HLT_pathsV; vector<string> m_HLT_triggered; vector<int> m_HLT_pathsV_check; // Spikes int spike_N,spike_TTieta[5000], spike_TTiphi[5000], spike_Rieta[5000], spike_Riphi[5000], spike_severityLevel[5000], spike_outOfTime[5000], spike_TT_sFGVB[5000], spike_TT_adc[5000], spike_TT_sFGVB_E[5000][5], spike_TT_adc_E[5000][5], spike_TT_t[5000], spike_TT_tE[5000]; double spike_Et[5000], spike_eta[5000], spike_phi[5000], spike_theta[5000]; int spike_RCTL1iso[5000], spike_RCTL1noniso[5000], spike_RCTL1iso_To[5000], spike_RCTL1noniso_To[5000], spike_RCTL1iso_M_To[5000], spike_RCTL1noniso_M_To[5000], spike_maxEGtrig[5000], spike_maxEGtrig_To[5000], spike_maxEGtrig_M_To[5000]; int spike_out_TTieta, spike_out_TTiphi, spike_out_Rieta, spike_out_Riphi, spike_out_severityLevel, spike_out_outOfTime, spike_out_TT_sFGVB, spike_out_TT_adc, spike_out_TT_sFGVB_E[5], spike_out_TT_adc_E[5], spike_out_TT_t, spike_out_TT_tE; double spike_out_Et, spike_out_eta, spike_out_phi, spike_out_theta; int spike_out_RCTL1iso, spike_out_RCTL1noniso, spike_out_RCTL1iso_To, spike_out_RCTL1noniso_To, spike_out_RCTL1iso_M_To, spike_out_RCTL1noniso_M_To, spike_out_maxEGtrig, spike_out_maxEGtrig_To, spike_out_maxEGtrig_M_To; // TP info const int nTow = 4032; int trig_tower_N,trig_tower_ieta[nTow],trig_tower_iphi[nTow],trig_tower_adc[nTow],trig_tower_sFGVB[nTow],trig_tower_FG[nTow]; int trig_tower_N_M,trig_tower_ieta_M[nTow],trig_tower_iphi_M[nTow],trig_tower_adc_M[nTow],trig_tower_sFGVB_M[nTow], trig_tower_FG_M[nTow]; int trig_tower_N_E,trig_tower_ieta_E[nTow],trig_tower_iphi_E[nTow],trig_tower_adc_E[nTow][5],trig_tower_sFGVB_E[nTow][5], trig_tower_FG_E[nTow][5]; // HCAL TP // int trig_tower_hcal_N, trig_tower_hcal_ieta[4032], trig_tower_hcal_iphi[4032], trig_tower_hcal_FG[4032],trig_tower_hcal_et[4032]; // L1 Candidates // int trig_L1emIso_N, trig_L1emNonIso_N; int trig_L1emIso_N_To, trig_L1emNonIso_N_To, trig_L1emIso_N_M_To, trig_L1emNonIso_N_M_To; // L1 candidates info // int trig_L1emIso_ieta[4], trig_L1emIso_iphi[4], trig_L1emIso_rank[4]; int trig_L1emNonIso_ieta[4], trig_L1emNonIso_iphi[4], trig_L1emNonIso_rank[4]; int trig_L1emIso_ieta_To[4], trig_L1emIso_iphi_To[4], trig_L1emIso_rank_To[4]; int trig_L1emNonIso_ieta_To[4], trig_L1emNonIso_iphi_To[4], trig_L1emNonIso_rank_To[4]; int trig_L1emIso_ieta_M_To[4], trig_L1emIso_iphi_M_To[4], trig_L1emIso_rank_M_To[4]; int trig_L1emNonIso_ieta_M_To[4], trig_L1emNonIso_iphi_M_To[4], trig_L1emNonIso_rank_M_To[4]; // INITIALIZATION // // // Global nEvent = 0; nRun = 0; nLumi = 0; // // Vertices vtx_N = 0; for(int iv=0;iv<200;iv++) { _vtx_normalizedChi2[iv] = 0.; _vtx_ndof[iv] = 0.; _vtx_nTracks[iv] = 0.; _vtx_d0[iv] = 0.; _vtx_x[iv] = 0.; _vtx_y[iv] = 0.; _vtx_z[iv] = 0.; } // // L1 candidates trig_L1emIso_N = 0; trig_L1emNonIso_N = 0; trig_L1emIso_N_M_To = 0; trig_L1emNonIso_N_M_To = 0; for(int il1=0 ; il1<4 ; il1++) { trig_L1emIso_ieta[il1] = 0; trig_L1emIso_iphi[il1] = 0; trig_L1emIso_rank[il1] = 0; trig_L1emNonIso_ieta[il1] = 0; trig_L1emNonIso_iphi[il1] = 0; trig_L1emNonIso_rank[il1] = 0; trig_L1emIso_ieta_To[il1] = 0; trig_L1emIso_iphi_To[il1] = 0; trig_L1emIso_rank_To[il1] = 0; trig_L1emNonIso_ieta_To[il1] = 0; trig_L1emNonIso_iphi_To[il1] = 0; trig_L1emNonIso_rank_To[il1] = 0; trig_L1emIso_ieta_M_To[il1] = 0; trig_L1emIso_iphi_M_To[il1] = 0; trig_L1emIso_rank_M_To[il1] = 0; trig_L1emNonIso_ieta_M_To[il1] = 0; trig_L1emNonIso_iphi_M_To[il1] = 0; trig_L1emNonIso_rank_M_To[il1] = 0; } // Trigger towers trig_tower_N = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_ieta[iTow] = trig_tower_iphi[iTow] = -999; trig_tower_adc[iTow] = trig_tower_sFGVB[iTow] = trig_tower_FG[iTow] = -999; } trig_tower_N_M = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_ieta_M[iTow] = trig_tower_iphi_M[iTow] = -999; trig_tower_adc_M[iTow] = trig_tower_sFGVB_M[iTow] = trig_tower_FG_M[iTow] = -999; } trig_tower_N_E = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_ieta_E[iTow] = trig_tower_iphi_E[iTow] = -999; for(int i=0 ; i<5 ; i++) trig_tower_adc_E[iTow][i] = trig_tower_sFGVB_E[iTow][i] = trig_tower_FG_E[iTow][i] = -999; } trig_tower_hcal_N = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_hcal_ieta[iTow] = trig_tower_hcal_iphi[iTow] = -999; trig_tower_hcal_FG[iTow] = trig_tower_hcal_et[iTow] = -999; } // SPIKES // spike_N = 0; for(int isp=0 ; isp<5000 ; isp++) { spike_outOfTime[isp] = -999; spike_severityLevel[isp] = -999 ; //spike_SwissCross[isp] = -999 ; spike_Et[isp] = -999 ; spike_phi[isp] = -999 ; spike_eta[isp] = -999 ; spike_theta[isp] = -999 ; spike_TTiphi[isp] = -999 ; spike_TTieta[isp] = -999 ; spike_TT_t[isp] = -999 ; spike_TT_tE[isp] = -999 ; spike_TT_sFGVB[isp] = -999 ; spike_TT_adc[isp] = -999 ; spike_Riphi[isp] = -999 ; spike_Rieta[isp] = -999 ; for(int i=0;i<5;i++) { spike_TT_sFGVB_E[isp][i] = -999 ; spike_TT_adc_E[isp][i] = -999 ; } } spike_out_outOfTime = -999; spike_out_severityLevel = -999 ; //spike_out_SwissCross = -999 ; spike_out_Et = -999 ; spike_out_phi = -999 ; spike_out_eta = -999 ; spike_out_theta = -999 ; spike_out_TTiphi = -999 ; spike_out_TTieta = -999 ; spike_out_TT_t = -999 ; spike_out_TT_tE = -999 ; spike_out_TT_sFGVB = -999 ; spike_out_TT_adc = -999 ; spike_out_Riphi = -999 ; spike_out_Rieta = -999 ; for(int i=0;i<5;i++) { spike_out_TT_sFGVB_E[i] = -999 ; spike_out_TT_adc_E[i] = -999 ; } myChain->SetBranchAddress("nEvent",&nEvent); myChain->SetBranchAddress("nRun",&nRun); myChain->SetBranchAddress("nLumi",&nLumi); // Vertices myChain->SetBranchAddress("vtx_N",&vtx_N); //myChain->SetBranchAddress("trig_HLT_path",&trig_HLT_path); myChain->SetBranchAddress("trig_fired_names",&trig_fired_names); myChain->SetBranchAddress("trig_hltInfo",&trig_hltInfo); // L1 candidates myChain->SetBranchAddress("trig_L1emIso_N", &trig_L1emIso_N); myChain->SetBranchAddress("trig_L1emIso_ieta", &trig_L1emIso_ieta); myChain->SetBranchAddress("trig_L1emIso_iphi", &trig_L1emIso_iphi); myChain->SetBranchAddress("trig_L1emIso_rank", &trig_L1emIso_rank); myChain->SetBranchAddress("trig_L1emNonIso_N", &trig_L1emNonIso_N); myChain->SetBranchAddress("trig_L1emNonIso_ieta", &trig_L1emNonIso_ieta); myChain->SetBranchAddress("trig_L1emNonIso_iphi", &trig_L1emNonIso_iphi); myChain->SetBranchAddress("trig_L1emNonIso_rank", &trig_L1emNonIso_rank); // Spikes myChain->SetBranchAddress("spike_N",&spike_N); myChain->SetBranchAddress("spike_TTieta",&spike_TTieta); myChain->SetBranchAddress("spike_TTiphi",&spike_TTiphi); myChain->SetBranchAddress("spike_Rieta",&spike_Rieta); myChain->SetBranchAddress("spike_Riphi",&spike_Riphi); myChain->SetBranchAddress("spike_severityLevel",&spike_severityLevel); myChain->SetBranchAddress("spike_outOfTime",&spike_outOfTime); myChain->SetBranchAddress("spike_Et",&spike_Et); myChain->SetBranchAddress("spike_eta",&spike_eta); myChain->SetBranchAddress("spike_phi",&spike_phi); myChain->SetBranchAddress("spike_theta",&spike_theta); // TrigOnly Chain // trigOnlyChain->SetBranchAddress("nRun", &nRun_To); trigOnlyChain->SetBranchAddress("nLumi", &nLumi_To); trigOnlyChain->SetBranchAddress("nEvent", &nEvent_To); trigOnlyChain->SetBranchAddress("trig_HLT_path",&trig_HLT_path); trigOnlyChain->SetBranchAddress("trig_tower_N", &trig_tower_N); trigOnlyChain->SetBranchAddress("trig_tower_ieta", &trig_tower_ieta); trigOnlyChain->SetBranchAddress("trig_tower_iphi", &trig_tower_iphi); trigOnlyChain->SetBranchAddress("trig_tower_adc", &trig_tower_adc); trigOnlyChain->SetBranchAddress("trig_tower_sFGVB", &trig_tower_sFGVB); //trigOnlyChain->SetBranchAddress("trig_tower_FG", &trig_tower_FG); trigOnlyChain->SetBranchAddress("trig_tower_N_E", &trig_tower_N_E); trigOnlyChain->SetBranchAddress("trig_tower_ieta_E", &trig_tower_ieta_E); trigOnlyChain->SetBranchAddress("trig_tower_iphi_E", &trig_tower_iphi_E); trigOnlyChain->SetBranchAddress("trig_tower_adc_E", &trig_tower_adc_E); trigOnlyChain->SetBranchAddress("trig_tower_sFGVB_E", &trig_tower_sFGVB_E); //trigOnlyChain->SetBranchAddress("trig_tower_FG_E", &trig_tower_FG_E); // HCAL TP trigOnlyChain->SetBranchAddress("trig_tower_hcal_N", &trig_tower_hcal_N); trigOnlyChain->SetBranchAddress("trig_tower_hcal_ieta", &trig_tower_hcal_ieta); trigOnlyChain->SetBranchAddress("trig_tower_hcal_iphi", &trig_tower_hcal_iphi); trigOnlyChain->SetBranchAddress("trig_tower_hcal_et", &trig_tower_hcal_et); trigOnlyChain->SetBranchAddress("trig_tower_hcal_FG", &trig_tower_hcal_FG); // L1 candidates collections trigOnlyChain->SetBranchAddress("trig_L1emIso_N", &trig_L1emIso_N_To); trigOnlyChain->SetBranchAddress("trig_L1emIso_ieta", &trig_L1emIso_ieta_To); trigOnlyChain->SetBranchAddress("trig_L1emIso_iphi", &trig_L1emIso_iphi_To); trigOnlyChain->SetBranchAddress("trig_L1emIso_rank", &trig_L1emIso_rank_To); trigOnlyChain->SetBranchAddress("trig_L1emNonIso_N", &trig_L1emNonIso_N_To); trigOnlyChain->SetBranchAddress("trig_L1emNonIso_ieta", &trig_L1emNonIso_ieta_To); trigOnlyChain->SetBranchAddress("trig_L1emNonIso_iphi", &trig_L1emNonIso_iphi_To); trigOnlyChain->SetBranchAddress("trig_L1emNonIso_rank", &trig_L1emNonIso_rank_To); trigOnlyChain->SetBranchAddress("trig_L1emIso_N_M", &trig_L1emIso_N_M_To); trigOnlyChain->SetBranchAddress("trig_L1emIso_ieta_M", &trig_L1emIso_ieta_M_To); trigOnlyChain->SetBranchAddress("trig_L1emIso_iphi_M", &trig_L1emIso_iphi_M_To); trigOnlyChain->SetBranchAddress("trig_L1emIso_rank_M", &trig_L1emIso_rank_M_To); trigOnlyChain->SetBranchAddress("trig_L1emNonIso_N_M", &trig_L1emNonIso_N_M_To); trigOnlyChain->SetBranchAddress("trig_L1emNonIso_ieta_M", &trig_L1emNonIso_ieta_M_To); trigOnlyChain->SetBranchAddress("trig_L1emNonIso_iphi_M", &trig_L1emNonIso_iphi_M_To); trigOnlyChain->SetBranchAddress("trig_L1emNonIso_rank_M", &trig_L1emNonIso_rank_M_To); // OUTPUT TREE // TTree * outtree = new TTree("Spikes","Spikes"); // General informations // outtree->Branch("nRun",&nRun,"nRun/I"); outtree->Branch("nLumi",&nLumi,"nLumi/I"); outtree->Branch("nEvent",&nEvent,"nEvent/I"); // Vertices // outtree->Branch("vtx_N",&vtx_N,"vtx_N/I"); outtree->Branch("trig_HLT_path",&trig_HLT_path,"trig_HLT_path[4]/I"); outtree->Branch("trig_fired_names",&trig_fired_names,"trig_fired_names[5000]/C"); outtree->Branch("trig_hltInfo",&trig_hltInfo,"trig_hltInfo[250]/I"); // Trigger towers // outtree->Branch("trig_tower_N",&trig_tower_N,"trig_tower_N/I"); outtree->Branch("trig_tower_ieta",&trig_tower_ieta,"trig_tower_ieta[4032]/I"); outtree->Branch("trig_tower_iphi",&trig_tower_iphi,"trig_tower_iphi[4032]/I"); outtree->Branch("trig_tower_adc",&trig_tower_adc,"trig_tower_adc[4032]/I"); outtree->Branch("trig_tower_sFGVB",&trig_tower_sFGVB,"trig_tower_sFGVB[4032]/I"); outtree->Branch("trig_tower_FG",&trig_tower_FG,"trig_tower_FG[4032]/I"); // outtree->Branch("trig_tower_N_E",&trig_tower_N_E,"trig_tower_N_E/I"); outtree->Branch("trig_tower_ieta_E",&trig_tower_ieta_E,"trig_tower_ieta_E[4032]/I"); outtree->Branch("trig_tower_iphi_E",&trig_tower_iphi_E,"trig_tower_iphi_E[4032]/I"); outtree->Branch("trig_tower_adc_E",&trig_tower_adc_E,"trig_tower_adc_E[4032][5]/I"); outtree->Branch("trig_tower_sFGVB_E",&trig_tower_sFGVB_E,"trig_tower_sFGVB_E[4032][5]/I"); outtree->Branch("trig_tower_FG_E",&trig_tower_FG_E,"trig_tower_FG_E[4032][5]/I"); // HCAL TP outtree->Branch("trig_tower_hcal_N", &trig_tower_hcal_N, "trig_tower_hcal_N/I"); outtree->Branch("trig_tower_hcal_ieta", &trig_tower_hcal_ieta, "trig_tower_hcal_ieta[trig_tower_N]/I"); outtree->Branch("trig_tower_hcal_iphi", &trig_tower_hcal_iphi, "trig_tower_hcal_iphi[trig_tower_N]/I"); outtree->Branch("trig_tower_hcal_et", &trig_tower_hcal_et, "trig_tower_hcal_et[trig_tower_N]/I"); outtree->Branch("trig_tower_hcal_FG", &trig_tower_hcal_FG, "trig_tower_hcal_FG[trig_tower_N]/I"); // L1 candidates from Data outtree->Branch("trig_L1emIso_N", &trig_L1emIso_N, "trig_L1emIso_N/I"); outtree->Branch("trig_L1emIso_ieta", &trig_L1emIso_ieta, "trig_L1emIso_ieta[4]/I"); outtree->Branch("trig_L1emIso_iphi", &trig_L1emIso_iphi, "trig_L1emIso_iphi[4]/I"); outtree->Branch("trig_L1emIso_rank", &trig_L1emIso_rank, "trig_L1emIso_rank[4]/I"); outtree->Branch("trig_L1emNonIso_N", &trig_L1emNonIso_N, "trig_L1emNonIso_N/I"); outtree->Branch("trig_L1emNonIso_ieta", &trig_L1emNonIso_ieta, "trig_L1emNonIso_ieta[4]/I"); outtree->Branch("trig_L1emNonIso_iphi", &trig_L1emNonIso_iphi, "trig_L1emNonIso_iphi[4]/I"); outtree->Branch("trig_L1emNonIso_rank", &trig_L1emNonIso_rank, "trig_L1emNonIso_rank[4]/I"); // L1 candidates from TrigOnly outtree->Branch("trig_L1emIso_N_To", &trig_L1emIso_N_To, "trig_L1emIso_N_To/I"); outtree->Branch("trig_L1emIso_ieta_To", &trig_L1emIso_ieta_To, "trig_L1emIso_ieta_To[4]/I"); outtree->Branch("trig_L1emIso_iphi_To", &trig_L1emIso_iphi_To, "trig_L1emIso_iphi_To[4]/I"); outtree->Branch("trig_L1emIso_rank_To", &trig_L1emIso_rank_To, "trig_L1emIso_rank_To[4]/I"); // outtree->Branch("trig_L1emNonIso_N_To", &trig_L1emNonIso_N_To, "trig_L1emNonIso_N_To/I"); outtree->Branch("trig_L1emNonIso_ieta_To", &trig_L1emNonIso_ieta_To, "trig_L1emNonIso_ieta_To[4]/I"); outtree->Branch("trig_L1emNonIso_iphi_To", &trig_L1emNonIso_iphi_To, "trig_L1emNonIso_iphi_To[4]/I"); outtree->Branch("trig_L1emNonIso_rank_To", &trig_L1emNonIso_rank_To, "trig_L1emNonIso_rank_To[4]/I"); outtree->Branch("trig_L1emIso_N_M_To", &trig_L1emIso_N_M_To, "trig_L1emIso_N_M_To/I"); outtree->Branch("trig_L1emIso_ieta_M_To", &trig_L1emIso_ieta_M_To, "trig_L1emIso_ieta_M_To[4]/I"); outtree->Branch("trig_L1emIso_iphi_M_To", &trig_L1emIso_iphi_M_To, "trig_L1emIso_iphi_M_To[4]/I"); outtree->Branch("trig_L1emIso_rank_M_To", &trig_L1emIso_rank_M_To, "trig_L1emIso_rank_M_To[4]/I"); // outtree->Branch("trig_L1emNonIso_N_M_To", &trig_L1emNonIso_N_M_To, "trig_L1emNonIso_N_M_To/I"); outtree->Branch("trig_L1emNonIso_ieta_M_To", &trig_L1emNonIso_ieta_M_To, "trig_L1emNonIso_ieta_M_To[4]/I"); outtree->Branch("trig_L1emNonIso_iphi_M_To", &trig_L1emNonIso_iphi_M_To, "trig_L1emNonIso_iphi_M_To[4]/I"); outtree->Branch("trig_L1emNonIso_rank_M_To", &trig_L1emNonIso_rank_M_To, "trig_L1emNonIso_rank_M_To[4]/I"); outtree->Branch("spike_TTieta",&spike_out_TTieta,"spike_TTieta/I"); outtree->Branch("spike_TTiphi",&spike_out_TTiphi,"spike_TTiphi/I"); // outtree->Branch("spike_TT_t",&spike_out_TT_t,"spike_TT_t/I"); outtree->Branch("spike_TT_sFGVB",&spike_out_TT_sFGVB,"spike_TT_sFGVB/I"); outtree->Branch("spike_TT_adc",&spike_out_TT_adc,"spike_TT_adc/I"); outtree->Branch("spike_TT_tE",&spike_out_TT_tE,"spike_TT_tE/I"); outtree->Branch("spike_TT_sFGVB_E",&spike_out_TT_sFGVB_E,"spike_TT_sFGVB[5]/I"); outtree->Branch("spike_TT_adc_E",&spike_out_TT_adc_E,"spike_TT_adc[5]/I"); // outtree->Branch("spike_Rieta",&spike_out_Rieta,"spike_Rieta/I"); outtree->Branch("spike_Riphi",&spike_out_Riphi,"spike_Riphi/I"); outtree->Branch("spike_severityLevel",&spike_out_severityLevel,"spike_severityLevel/I"); outtree->Branch("spike_outOfTime",&spike_out_outOfTime,"spike_outOfTime/I"); outtree->Branch("spike_Et",&spike_out_Et,"spike_Et/D"); outtree->Branch("spike_eta",&spike_out_eta,"spike_eta/D"); outtree->Branch("spike_phi",&spike_out_phi,"spike_phi/D"); outtree->Branch("spike_theta",&spike_out_theta,"spike_theta/D"); // outtree->Branch("spike_maxEGtrig",&spike_out_maxEGtrig,"spike_maxEGtrig/I"); outtree->Branch("spike_maxEGtrig_To",&spike_out_maxEGtrig_To,"spike_maxEGtrig_To/I"); outtree->Branch("spike_maxEGtrig_M_To",&spike_out_maxEGtrig_M_To,"spike_maxEGtrig_M_To/I"); // outtree->Branch("spike_RCTL1iso",&spike_out_RCTL1iso,"spike_RCTL1iso/I"); outtree->Branch("spike_RCTL1noniso",&spike_out_RCTL1noniso,"spike_RCTL1noniso/I"); outtree->Branch("spike_RCTL1iso_To",&spike_out_RCTL1iso_To,"spike_RCTL1iso_To/I"); outtree->Branch("spike_RCTL1noniso_To",&spike_out_RCTL1noniso_To,"spike_RCTL1noniso_To/I"); outtree->Branch("spike_RCTL1iso_M_To",&spike_out_RCTL1iso_M_To,"spike_RCTL1iso_M_To/I"); outtree->Branch("spike_RCTL1noniso_M_To",&spike_out_RCTL1noniso_M_To,"spike_RCTL1noniso_M_To/I"); // Variables bool isGoodRun, evt_trig_EG12; TString filename; // Map TT MAPTT adcTT; MAPTT::iterator iterTT; pair<int,int> coords; int TT_t, TT_tE; int numEntries = myChain->GetEntries () ; int nProcess = numEntries; if(nEntries>=0 && nEntries<numEntries) nProcess = nEntries; int nCurrentRun = -999; outlog << "will process " << nProcess << "/" << numEntries << "entries" << endl; // Loop over entries // for (int iEvent = 0 ; iEvent < nProcess ; iEvent++ ) { // TP Initialization trig_tower_N = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_ieta[iTow] = trig_tower_iphi[iTow] = -999; trig_tower_adc[iTow] = trig_tower_sFGVB[iTow] = -999; } trig_tower_N_M = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_ieta_M[iTow] = trig_tower_iphi_M[iTow] = -999; trig_tower_adc_M[iTow] = trig_tower_sFGVB_M[iTow] = -999; } trig_tower_N_E = 0; for(int iTow=0 ; iTow<nTow ; iTow++) { trig_tower_ieta_E[iTow] = trig_tower_iphi_E[iTow] = -999; for(int i=0 ; i<5 ; i++) trig_tower_adc_E[iTow][i] = trig_tower_sFGVB_E[iTow][i] = -999; } // L1 candidates trig_L1emIso_N = 0; trig_L1emNonIso_N = 0; trig_L1emIso_N_M_To = 0; trig_L1emNonIso_N_M_To = 0; trig_L1emIso_N_To = 0; trig_L1emNonIso_N_To = 0; for(int il1=0 ; il1<4 ; il1++) { trig_L1emIso_ieta[il1] = 0; trig_L1emIso_iphi[il1] = 0; trig_L1emIso_rank[il1] = 0; trig_L1emNonIso_ieta[il1] = 0; trig_L1emNonIso_iphi[il1] = 0; trig_L1emNonIso_rank[il1] = 0; trig_L1emIso_ieta_To[il1] = 0; trig_L1emIso_iphi_To[il1] = 0; trig_L1emIso_rank_To[il1] = 0; trig_L1emNonIso_ieta_To[il1] = 0; trig_L1emNonIso_iphi_To[il1] = 0; trig_L1emNonIso_rank_To[il1] = 0; trig_L1emNonIso_ieta_M_To[il1] = 0; trig_L1emNonIso_iphi_M_To[il1] = 0; trig_L1emNonIso_rank_M_To[il1] = 0; trig_L1emIso_ieta_M_To[il1] = 0; trig_L1emIso_iphi_M_To[il1] = 0; trig_L1emIso_rank_M_To[il1] = 0; } for(int isp=0 ; isp<5000 ; isp++) { spike_outOfTime[isp] = -999; spike_severityLevel[isp] = -999 ; //spike_SwissCross[isp] = -999 ; spike_Et[isp] = -999 ; spike_phi[isp] = -999 ; spike_eta[isp] = -999 ; spike_theta[isp] = -999 ; spike_TTiphi[isp] = -999 ; spike_TTieta[isp] = -999 ; spike_TT_t[isp] = -999 ; spike_TT_tE[isp] = -999 ; spike_TT_sFGVB[isp] = -999 ; spike_TT_adc[isp] = -999 ; spike_Riphi[isp] = -999 ; spike_Rieta[isp] = -999 ; for(int i=0;i<5;i++) { spike_TT_sFGVB_E[isp][i] = -999 ; spike_TT_adc_E[isp][i] = -999 ; } } myChain->GetEntry (iEvent) ; // show processed file if(iEvent==0) { filename = myChain->GetFile()->GetName() ; outlog << "File : " << filename << endl << endl; } else if( filename != myChain->GetFile()->GetName() ) { filename = myChain->GetFile()->GetName() ; outlog << "File : " << myChain->GetFile()->GetName() << endl << endl; } // show current run/iCat processed if(iEvent==0) { nCurrentRun = nRun ; outlog << "nRun=" << nRun << endl; } else if(nRun!=nCurrentRun) { nCurrentRun=nRun ; outlog << "nRun=" << nRun << endl; } if(debug) cout << "iJson = " << iJson << endl; if( iJson>-1 && iJson<5) { isGoodRun = AcceptEventByRunAndLumiSection(nRun, nLumi, jsonMap[iJson]); if(!isGoodRun) { outlog << "failed JSON" << endl; continue; } } // JSON selection //////////////////////////////////////////// if(debug) cout << "iJson = " << iJson << endl; if( iJson>-1 && iJson<5) { isGoodRun = false; isGoodRun = AcceptEventByRunAndLumiSection(nRun, nLumi, jsonMap[iJson]); if(!isGoodRun) { outlog << "failed JSON" << endl; continue; } } // HLT selection // if(usr_hlt=="unbias") if(trig_HLT_path[0]==0) continue; // Map the trigger tower ////////////////////////////////////////////////////////////////////// adcTT.clear(); for(int t=0 ; t<trig_tower_N ; t++) { coords = make_pair( trig_tower_ieta[t] , trig_tower_iphi[t] ); adcTT[coords].first = t; } for(int t=0 ; t<trig_tower_N_E ; t++) { coords = make_pair( trig_tower_ieta_E[t] , trig_tower_iphi_E[t] ); iterTT = adcTT.find( coords ); if( iterTT != adcTT.end() ) { adcTT[coords].second = t; } } // Load trigOnly information //////////////////////////////////////////////////////////////////// if( GetTrigOnly ) { runevtTo = make_pair(nRun,nEvent); iterMapTo = mapTo.find( runevtTo ); // if( iterMapTo != mapTo.end() ) iEntryTo = mapTo[ runevtTo ]; else iEntryTo = -1; // outlog << "trigOnly info : nRun=" << nRun << " | nEvent=" << nEvent << " | iEntryTo=" << iEntryTo << endl; // if(iEntryTo>=0) { trigOnlyChain->GetEntry( iEntryTo ); if(debug) cout << "----> got entry from trigOnlyChain" << endl; } else { if(debug) cout << "----> entry not mapped" << endl; continue; } } // MATCHING SPIKE / L1-CANDIDATE ////////////////////////////////////////////////////////////////// evt_trig_EG12=false; outcheckL1 << "ISO_N_data : " ; for(int i=0 ; i<4 ; i++) { outcheckL1 << "(" << trig_L1emIso_ieta[i] << ";" << trig_L1emIso_iphi[i] << ")=" << trig_L1emIso_rank[i] << " | "; if(trig_L1emIso_rank[i] >= 12) evt_trig_EG12=true; } outcheckL1 << endl << "NONISO_N_data : "; for(int i=0 ; i<4 ; i++) { outcheckL1 << "(" << trig_L1emNonIso_ieta[i] << ";" << trig_L1emNonIso_iphi[i] << ")=" << trig_L1emNonIso_rank[i] << " | "; if(trig_L1emNonIso_rank[i] >= 12) evt_trig_EG12=true; } if(!evt_trig_EG12) continue; outcheckL1 << endl << "ISO_N : " ; for(int i=0 ; i<4 ; i++) outcheckL1 << "(" << trig_L1emIso_ieta_To[i] << ";" << trig_L1emIso_iphi_To[i] << ")=" << trig_L1emIso_rank_To[i] << " | "; outcheckL1 << endl << "NONISO_N : "; for(int i=0 ; i<4 ; i++) outcheckL1 << "(" << trig_L1emNonIso_ieta_To[i] << ";" << trig_L1emNonIso_iphi_To[i] << ")=" << trig_L1emNonIso_rank_To[i] << " | "; outcheckL1 << endl << "ISO_M : "; for(int i=0 ; i<4 ; i++) outcheckL1 << "(" << trig_L1emIso_ieta_M_To[i] << ";" << trig_L1emIso_iphi_M_To[i] << ")=" << trig_L1emIso_rank_M_To[i] << " | "; outcheckL1 << endl << "NONISO_M : "; for(int i=0 ; i<4 ; i++) outcheckL1 << "(" << trig_L1emNonIso_ieta_M_To[i] << ";" << trig_L1emNonIso_iphi_M_To[i] << ")=" << trig_L1emNonIso_rank_M_To[i] << " | "; outcheckL1 << endl << endl; /////////////////////////////////////// // LOOP OVER SPIKES /////////////////// /////////////////////////////////////// for(int iS=0 ; iS<spike_N ; iS++) { if(iS>=5000) break; if(spike_Et[iS]<=0) continue; // Find spikes'TT informations coords = make_pair( spike_TTieta[iS] , spike_TTiphi[iS] ); iterTT = adcTT.find( coords ); if( iterTT != adcTT.end() ) { TT_t = (iterTT->second).first ; TT_tE = (iterTT->second).second ; if(TT_t<0 || TT_t >= 4032) continue; spike_TT_t[iS] = TT_t ; spike_TT_sFGVB[iS] = trig_tower_sFGVB[ TT_t ]; spike_TT_adc[iS] = trig_tower_adc[ TT_t ]; if(TT_tE<0 || TT_tE >= 4032) continue; spike_TT_tE[iS] = TT_tE ; for(int iSam=0 ; iSam<5 ; iSam++) { spike_TT_sFGVB_E[iS][iSam] = trig_tower_sFGVB_E[ TT_tE ][iSam]; spike_TT_adc_E[iS][iSam] = trig_tower_adc_E[ TT_tE ][iSam]; } } // Match spike to L1 candidate spike_maxEGtrig[iS] = spike_maxEGtrig_To[iS] = spike_maxEGtrig_M_To[iS] = 0; matchL1toSpike( trig_L1emIso_N, trig_L1emIso_ieta, trig_L1emIso_iphi, trig_L1emIso_rank, spike_Rieta[iS], spike_Riphi[iS], spike_RCTL1iso[iS], spike_maxEGtrig[iS], outcheckL1 ); matchL1toSpike( trig_L1emIso_N, trig_L1emIso_ieta, trig_L1emIso_iphi, trig_L1emIso_rank, spike_Rieta[iS], spike_Riphi[iS], spike_RCTL1noniso[iS], spike_maxEGtrig[iS], outcheckL1 ); matchL1toSpike( trig_L1emIso_N_To, trig_L1emIso_ieta_To, trig_L1emIso_iphi_To, trig_L1emIso_rank_To, spike_Rieta[iS], spike_Riphi[iS], spike_RCTL1iso_To[iS], spike_maxEGtrig_To[iS], outcheckL1 ); matchL1toSpike( trig_L1emIso_N_To, trig_L1emIso_ieta_To, trig_L1emIso_iphi_To, trig_L1emIso_rank_To, spike_Rieta[iS], spike_Riphi[iS], spike_RCTL1noniso_To[iS], spike_maxEGtrig_To[iS], outcheckL1 ); matchL1toSpike( trig_L1emIso_N_M_To, trig_L1emIso_ieta_M_To, trig_L1emIso_iphi_M_To, trig_L1emIso_rank_M_To, spike_Rieta[iS], spike_Riphi[iS], spike_RCTL1iso_M_To[iS], spike_maxEGtrig_M_To[iS], outcheckL1 ); matchL1toSpike( trig_L1emIso_N_M_To, trig_L1emIso_ieta_M_To, trig_L1emIso_iphi_M_To, trig_L1emIso_rank_M_To, spike_Rieta[iS], spike_Riphi[iS], spike_RCTL1noniso_M_To[iS], spike_maxEGtrig_M_To[iS], outcheckL1 ); // Fill the tree // spike_out_outOfTime = spike_outOfTime[iS] ; spike_out_severityLevel = spike_severityLevel[iS] ; spike_out_Et = spike_Et[iS] ; spike_out_phi = spike_phi[iS] ; spike_out_eta = spike_eta[iS] ; spike_out_theta = spike_theta[iS] ; spike_out_TTiphi = spike_TTiphi[iS] ; spike_out_TTieta = spike_TTieta[iS] ; spike_out_TT_t = spike_TT_t[iS] ; spike_out_TT_tE = spike_TT_tE[iS] ; spike_out_TT_sFGVB = spike_TT_sFGVB[iS] ; spike_out_TT_adc = spike_TT_adc[iS] ; spike_out_Riphi = spike_Riphi[iS] ; spike_out_Rieta = spike_Rieta[iS] ; spike_out_maxEGtrig = spike_maxEGtrig[iS]; spike_out_maxEGtrig_To = spike_maxEGtrig_To[iS]; spike_out_maxEGtrig_M_To = spike_maxEGtrig_M_To[iS]; spike_out_RCTL1iso = spike_RCTL1iso[iS]; spike_out_RCTL1noniso = spike_RCTL1noniso[iS]; spike_out_RCTL1iso_To = spike_RCTL1iso_To[iS]; spike_out_RCTL1noniso_To = spike_RCTL1noniso_To[iS]; spike_out_RCTL1iso_M_To = spike_RCTL1iso_M_To[iS]; spike_out_RCTL1noniso_M_To = spike_RCTL1noniso_M_To[iS]; for(int i=0;i<5;i++) { spike_out_TT_sFGVB_E[i] = spike_TT_sFGVB_E[iS][i] ; spike_out_TT_adc_E[i] = spike_TT_adc_E[iS][i] ; } outtree->Fill(); } } // Record tree outlog << "recording tree..." << endl; outtree->Write(); outlog << "recorded !" << endl; outfile->Close(); outlog << "file closed." << endl; return 1; }
/** * 受信送信ループ処理 * * @param[in] fd ファイルディスクリプタ * @return EXIT_SUCCESS 成功 */ int recv_send_from_file(const int fd) { int result = EXIT_FAILURE; int retval = 0; size_t rlen = 0, pos = 0; size_t length = 0; struct stat st; static FILE *fp = NULL; unsigned char *sbuf = NULL; unsigned char *p = NULL; int index = 0; dbglog("start"); dbglog("fcount=%d", fcount); do { index = fcount - 1; do { /* 受信 */ (void)recv_data(fd, recv_buf, sizeof(recv_buf)); dbglog("filename=%s", filename[index]); if (!filename[index] || access(filename[index], R_OK) < 0) { outlog("access error"); goto out; } (void)memset(&st, 0x00, sizeof(struct stat)); retval = stat(filename[index], &st); length = (size_t)st.st_size; if (retval < 0 || length == 0) { outlog("stat error: retval=%d length=%zu", retval, length); goto out; } fp = fopen(filename[index], "rb"); if (!fp) goto out; sbuf = calloc(sizeof(unsigned char), length + SIZE_ADDITION); if (!sbuf) { outlog("calloc error"); goto out; } p = sbuf; /* ヘッダ設定 */ *(p++) = (unsigned char)CODE_HEADER; pos = SIZE_HEADER; /* ファイル読み込み */ rlen = fread(p, sizeof(unsigned char), length, fp); if (ferror(fp)) { outlog("fread error: ferror=%d rlen=%zu length%zu", ferror(fp), rlen, length); goto out; } p += (rlen + 1); pos += (rlen + 1); /* チェックサム */ *(p++) = checksum(sbuf, pos++); /* フッタ設定 */ *p = (unsigned char)CODE_FOOTER; /* 送信 */ (void)send_data(fd, sbuf, pos); if (sbuf) free(sbuf); sbuf = NULL; retval = fclose(fp); if (retval < 0) outlog("fclose"); fp = NULL; if (sig_handled) break; } while (index-- > 0); } while (--lcount > 0); result = EXIT_SUCCESS; out: if (sbuf) free(sbuf); sbuf = NULL; if (fp) { retval = fclose(fp); if (retval < 0) outlog("fclose"); } fp = NULL; return result; }
/** * 接続受付 * * @param[in] sock ソケット * @return なし */ void server_loop(int sock) { int ready = 0; /* pselect戻り値 */ pthread_t tid = 0; /* スレッドID */ int retval = 0; /* pthread_create戻り値 */ fd_set fds, rfds; /* selectマスク */ struct timespec timeout; /* タイムアウト値 */ sigset_t sigmask; /* シグナルマスク */ thread_data *dt = NULL; /* ソケット情報構造体 */ dbglog("start: sock=%d", sock); /* マスクの設定 */ FD_ZERO(&fds); /* 初期化 */ FD_SET(sock, &fds); /* ソケットをマスク */ /* シグナルマスク取得 */ sigmask = get_sigmask(); /* タイムアウト値初期化 */ (void)memset(&timeout, 0, sizeof(struct timespec)); /* pselectの場合, constなのでループ前で値を入れる */ timeout.tv_sec = 1; /* 1秒 */ timeout.tv_nsec = 0; /* ノンブロッキングに設定 */ if (set_block(sock, NONBLOCK) < 0) return; do { (void)memcpy(&rfds, &fds, sizeof(fd_set)); /* マスクコピー */ ready = pselect(sock + 1, &rfds, NULL, NULL, &timeout, &sigmask); if (ready < 0) { if (errno == EINTR) /* 割り込み */ break; outlog("select=%d", ready); break; } else if (ready) { if (FD_ISSET(sock, &rfds)) { dt = (thread_data *)malloc(sizeof(thread_data)); if (!dt) { outlog("malloc: size=%zu", sizeof(thread_data)); continue; } (void)memset(dt, 0, sizeof(thread_data)); dbglog("dt=%p", dt); /* 接続受付 */ /* addrlenは入出力なのでここで初期化する */ dt->len = (socklen_t)sizeof(dt->addr); dt->sigmask = sigmask; dt->sock = accept(sock, (struct sockaddr *)&dt->addr, &dt->len); if (dt->sock < 0) { outlog("accept: sin_addr=%s sin_port=%d", inet_ntoa(dt->addr.sin_addr), ntohs(dt->addr.sin_port)); memfree((void **)&dt, NULL); continue; } /* スレッド生成 */ retval = pthread_create(&tid, NULL, server_proc, dt); if (retval) { /* エラー(非0) */ outlog("pthread_create=%lu", (unsigned long)tid); close_sock(&dt->sock); /* アクセプトクローズ */ memfree((void **)&dt, NULL); continue; } dbglog("pthread_create=%lu, accept=%d", (unsigned long)tid, dt->sock); retval = pthread_detach(tid); if (retval) /* エラー(非0) */ outlog("pthread_detach: tid=%lu", (unsigned long)tid); } } else { /* タイムアウト */ continue; } } while (!g_sig_handled); }
/** * readline() 実行 * * @param[in] data テストデータ * @param[in] length バイト数 * @return 結果文字列 */ static unsigned char * exec_readline(char *data, size_t length) { FILE *fp = NULL; /* ファイルポインタ */ int retval = 0; /* 戻り値 */ pid_t cpid = 0; /* プロセスID */ pid_t w = 0; /* wait戻り値 */ int status = 0; /* ステイタス */ ssize_t len = 0; /* writen 戻り値 */ retval = pipe(pfd); if (retval < 0) { cut_error("pipe=%d", retval); return NULL; } fp = fdopen(pfd[PIPE_R], "r"); if (!fp) { cut_error("fdopen=%p", fp); return NULL; } cpid = fork(); if (cpid < 0) { cut_error("fork(%d)", errno); return NULL; } if (cpid == 0) { /* 子プロセス */ dbglog("child"); close_fd(&pfd[PIPE_R], NULL); /* 送信 */ len = writen(pfd[PIPE_W], data, length); if (len < 0) { outlog("writen"); close_fd(&pfd[PIPE_W], NULL); exit(EXIT_FAILURE); } close_fd(&pfd[PIPE_W], NULL); exit(EXIT_SUCCESS); } else { /* 親プロセス */ dbglog("parent: cpid=%d", (int)cpid); close_fd(&pfd[PIPE_W], NULL); /* テスト関数の実行 */ /* 受信待ち */ result = _readline(fp); dbglog("result=%s", result); close_fd(&pfd[PIPE_R], NULL); w = waitpid(-1, &status, WNOHANG); if (w < 0) cut_notify("wait: status=%d(%d)", status, errno); dbglog("w=%d", (int)w); if (WEXITSTATUS(status)) { cut_notify("child error"); return NULL; } } return result; }
void makePairs(int nEntries=-1, int iHalf=0, int nHalf=1, TString dirOut="/home/llr/cms/ndaci/SKWork/macro/skEfficiency/tagAndProbe/EfficiencyStudy/Study2012/forgot/", TString dirIn="/data_CMS/cms/ndaci/ndaci_2012/SingleElectron/Update/forgot/Elepairs/", TString data="yep", TString nameChain="produceNtuple/eIDSimpleTree", int iJson=-1, TString RunPhase="2011A", bool debug=false) { // Output Log ofstream outlog(dirOut+"log.txt",ios::out); outlog << " <--------------------------------- START --------------------------------->" << endl; // Process the tree if(debug) cout << "process the tree" << endl; vector<TString> treeList(1); treeList[0]="/afs/cern.ch/user/t/thennequ/private/CMSSW_6_2_0/tree_testFastSim_TPG.root"; if(data=="Run2012A_13Jul") { treeList = list_Run2012A_13Jul(); } else if(data=="Run2012A_06Aug") { treeList = list_Run2012A_06Aug(); } else if(data=="Run2012B_13Jul") { treeList = list_Run2012B_13Jul(); } else if(data=="Run2012C_24Aug") { treeList = list_Run2012C_24Aug(); } else if(data=="Run2012C_PRV2") { treeList = list_Run2012C_PRV2(); } else if(data=="Run2012D_PRV1") { treeList = list_2012D_PRV1(); } else if(data=="Run2012D_PRV1_up") { treeList = list_2012D_PRV1_up(); } else if(data=="SingEle_ReReco08Nov") { treeList = list_SingEle_ReReco08Nov(); } else if(data=="SingEle_ReReco19Nov") { treeList = list_SingEle_ReReco19Nov(); } else if(data=="DYee_Fall11") { treeList = list_DYee_Fall11(); } /**else { }**/ int n,n1,n2; n = treeList.size() / nHalf ; n1 = iHalf * n ; if( iHalf < (nHalf-1) ) n2 = (iHalf+1) * n ; else if( iHalf == nHalf-1 ) n2 = treeList.size(); for(int i = n1 ; i < n2 ; i++) { if(debug) cout << "process file #" << i << " (n1=" << n1 << " ; n2=" << n2 << ")" << endl; cout<<"process "<<i<<endl; process(nameChain,treeList[i],i,nEntries,dirOut,dirIn,outlog,iJson,RunPhase,debug); if(debug) cout << "processed" << endl; } outlog << " <--------------------------------- DONE --------------------------------->" << endl; if(debug) cout << "DONE" << endl; }
int spikes(int iHalf=0, int nHalf=1, TString data_tag="Run2011A_EmulReco", int nEntries=-1, TString dirOut="/home/llr/cms/ndaci/SKWork/macro/skEfficiency/tagAndProbe/Spike2011A/CommiEmulReco_Run2011A/", TString hlt_sel="", int sev_user=4, float spikeCut=8, bool debug=false) { // def output tag according to half ostringstream ossi; TString halftag = "_half_"; ossi.str(""); ossi << iHalf; halftag += ossi.str(); ossi.str(""); ossi << nHalf; halftag += "_" + ossi.str(); // Output Log ofstream outlog(dirOut+"log"+halftag+".txt",ios::out); // Input trees TString dirIn; vector<TString> listTrees; if( data_tag=="Run2011A_EmulReco_Newkill") { listTrees = list_Spikes_Run2011A_Newkill(); } else if( data_tag=="Run2011A_EmulReco_ReallyUnbias") { listTrees = list_Spikes_EmulRecoNoKill_2011A_ReallyUnbias(); } else if( data_tag=="Run2011A_EmulReco_ZeroBias" ) { listTrees = list_Spikes_EmulRecoNoKill_Run2011A_ZeroBias(); } else if( data_tag=="Run2011A_EmulReco" ) { listTrees = list_Spikes_EmulRecoNoKill_Run2011A(); } else if( data_tag=="Run2011A_EmulReco_REPRO2" ) { listTrees = list_Spikes_Run2011A_EmulReco_REPRO2(); } else { cout << "problem of dataset tag" << endl; return 0; } if(listTrees.size()==0) { cout << "tree list empty" << endl; return 0; } if(iHalf<0 || nHalf<1 || iHalf>=nHalf) { cout << "problem with iHalf and nHalf" << endl; return 0; } if(nHalf>listTrees.size()) { cout << "requested more halfes than available trees ; set nHalf to listTrees.size()=" << listTrees.size() << endl; nHalf = listTrees.size(); } int nTrees, nStart, nEnd; nTrees = listTrees.size() / nHalf; if(iHalf < nHalf-1) { nStart = iHalf*nTrees; nEnd = (iHalf + 1)*nTrees; } else if(iHalf==nHalf-1) { nStart = iHalf*nTrees; nEnd = listTrees.size(); } if(debug) cout << "gonna add the trees to the chain" << endl; TChain * myChain = new TChain ("produceNtuple/eIDSimpleTree"); for(int i=nStart ; i<nEnd ; i++) myChain->Add(listTrees[i]); if(debug) cout << "added" << endl; cout << "tree list size : " << listTrees.size() << endl << "nStart=" << nStart << " nEnd=" << nEnd << " nTrees=" << nTrees << endl; //for(int i=nStart ; i<nEnd ; i++) //outlog << listTrees[i] << endl; if(nEntries==-999) { cout << "no tree processing requested ; exiting" << endl; return 0; } // Process the tree if(debug) cout << "process the tree" << endl; TreeToHistos(myChain, dirOut, outlog, nEntries, halftag, spikeCut, hlt_sel, sev_user, debug); return 1; }
void params_read_double(FILE* f, char* name, double* x) { check_label(f, name); assert(fscanf(f, "%lf", x) > 0); outlog("%-10s READ NAME=%-10s DBL=%1.14e", "[PARAMS]", name, *x); }
void params_read_int(FILE* f, char* name, int* x) { check_label(f, name); assert(fscanf(f, "%d", x) > 0); outlog("%-10s READ NAME=%-10s INT=%d", "[PARAMS]", name, *x); }
void params_read_string(FILE* f, char* name, char* x) { check_label(f, name); fscanf(f, "%s", x); outlog("%-10s READ NAME=%-10s STRING=%s", "[PARAMS]", name, x); }