StrVector ProbabilityModel::getLabels() { StrVector result; for (StrFloatMap::iterator it = labelProbs.begin(); it != labelProbs.end(); it++) result.push_back(it->first); return result; }
StrVector Tool::SortArgs(ArgsVector& Args) const { StrVector Out; // HACK: this won't be needed when we'll migrate away from CommandLine. std::stable_sort(Args.begin(), Args.end(), &CompareFirst<unsigned, std::string>); for (ArgsVector::iterator B = Args.begin(), E = Args.end(); B != E; ++B) { Out.push_back(B->second); } return Out; }
std::vector<std::string> NaiveBayes::eval() { std::vector<std::string> results; for (Data::iterator rowIt = testSet->begin(); rowIt != testSet->end() ; rowIt++) { DataRow &row = *rowIt; StrVector labels = this->model->getLabels(); std::string maxLabel = labels[0]; float maxProb = 0.0f; for (StrVector::iterator labelIt = labels.begin(); labelIt != labels.end(); labelIt++) { float prob = this->model->getProbability(&row, *labelIt); if (prob > maxProb) { maxProb = prob; maxLabel = *labelIt; } } results.push_back(maxLabel); } return results; }
//-------------------------------------------------------------------------------------------------------------- void DownloadManager::MarkMapAsDownloadedFromServer( const char *serverMapName ) { if ( !serverMapName ) return; if ( HasMapBeenDownloadedFromServer( serverMapName ) ) return; m_downloadedMaps.AddToTail( CloneString( serverMapName ) ); return; }
void testSingleRateModel(Params ¶ms, NGSAlignment &aln, NGSTree &tree, string model, double *freq, DoubleVector &rate_info, StrVector &rate_name, bool write_info, const char *report_file) { char model_name[20]; NGSAlignment sum_aln(aln.num_states, 1, freq); ModelsBlock *models_block = new ModelsBlock; NGSTree sum_tree(params, &sum_aln); sum_aln.tree = &sum_tree; if (model == "") sprintf(model_name, "GTR+F1"); else sprintf(model_name, "%s+F1", model.c_str()); try { params.model_name = model_name; sum_tree.setModelFactory(new ModelFactory(params, &sum_tree, models_block)); sum_tree.setModel(sum_tree.getModelFactory()->model); sum_tree.setRate(sum_tree.getModelFactory()->site_rate); double bestTreeScore = sum_tree.getModelFactory()->optimizeParameters(false, write_info); cout << "LogL: " << bestTreeScore; cout << " / Rate: " << sum_tree.getRate()->getRate(0) << endl; } catch (...) { cout << "Skipped due to sparse matrix" << endl; //rate_info.push_back(MIN_SITE_RATE); rate_info.insert(rate_info.end(), rate_name.size(), MIN_SITE_RATE); return; } //return sum_tree.getRate()->getRate(0); rate_info.push_back(sum_tree.getRate()->getRate(0)); double *rate_mat = new double[aln.num_states*aln.num_states]; memset(rate_mat, 0, aln.num_states*aln.num_states*sizeof(double)); sum_tree.getModel()->getRateMatrix(rate_mat); rate_info.insert(rate_info.end(), rate_mat, rate_mat+sum_tree.getModel()->getNumRateEntries()); if (tree.getModel()->isReversible()) { sum_tree.getModel()->getStateFrequency(rate_mat); rate_info.insert(rate_info.end(), rate_mat, rate_mat+aln.num_states); } delete [] rate_mat; delete models_block; if (report_file) { DoubleMatrix tmp(1); tmp[0] = rate_info; reportNGSAnalysis(report_file, params, sum_aln, sum_tree, tmp, rate_name); } }
//-------------------------------------------------------------------------------------------------------------- bool DownloadManager::HasMapBeenDownloadedFromServer( const char *serverMapName ) { if ( !serverMapName ) return false; for ( int i=0; i<m_downloadedMaps.Count(); ++i ) { const char *oldServerMapName = m_downloadedMaps[i]; if ( oldServerMapName && !stricmp( serverMapName, oldServerMapName ) ) { return true; } } return false; }
void reportNGSAnalysis(const char *file_name, Params ¶ms, NGSAlignment &aln, NGSTree &tree, DoubleMatrix &rate_info, StrVector &rate_name) { ofstream out(file_name); out.setf(ios::fixed,ios::floatfield); int i, j, k; double *rate_param = new double[aln.num_states * aln.num_states]; double *rate_matrix = new double[aln.num_states * aln.num_states]; out << "Input file: " << params.ngs_file << endl; out << "Model of evolution: " << tree.getModel()->name << endl << endl; out << "Substitution process assuming one homogeneous model among all positions:" << endl; out << "Rate parameters: " << endl; tree.getModel()->getRateMatrix(rate_param); if (tree.getModel()->name == "UNREST") { for (i = 0, k=0; i < aln.num_states; i++) for (j = 0; j < aln.num_states; j++) if (i != j) rate_matrix[i*aln.num_states+j] = rate_param[k++]; } else { for (i = 0, k=0; i < aln.num_states-1; i++) for (j = i+1; j < aln.num_states; j++, k++) rate_matrix[i*aln.num_states+j] = rate_matrix[j*aln.num_states+i] = rate_param[k]; } for (i = 0; i < aln.num_states; i++) { for (j = 0; j < aln.num_states; j++) { if (j > 0) out << " \t"; if (j != i) out << rate_matrix[i*aln.num_states+j]; else out << "-"; } out << endl; } out << endl; out << "State frequencies: "; switch (tree.getModel()->getFreqType()) { case FREQ_EMPIRICAL: out << "(empirical counts from alignment)" << endl; break; case FREQ_ESTIMATE: out << "(estimated with maximum likelihood)" << endl; break; case FREQ_USER_DEFINED: out << "(user-defined)" << endl; break; case FREQ_EQUAL: out << "(equal frequencies)" << endl; break; default: break; } double *state_freq = new double[aln.num_states]; tree.getModel()->getStateFrequency(state_freq); for (i = 0; i < aln.num_states; i++) out << state_freq[i] << " \t"; out << endl << endl; out << "Q matrix can be obtained by multiplying rate parameters with state frequencies" << endl << endl; double *q_mat = new double[tree.aln->num_states * tree.aln->num_states]; tree.getModel()->getQMatrix(q_mat); for (i = 0, k = 0; i < tree.aln->num_states; i++) { for (j = 0; j < tree.aln->num_states; j++, k++) out << " " << q_mat[k]; out << endl; } delete [] q_mat; out << endl; out << "Log-likelihood: " << tree.computeLikelihood() << endl << endl; out << "Inferred posisiton-specific rates under one model or position-specific model: " << endl; out << "Position\tSeq_error"; for (StrVector::iterator it = rate_name.begin(); it != rate_name.end(); it++) out << "\t" << (*it); out << endl; for (i = 0; i < aln.ncategory; i++) { out << i+1 << '\t' << tree.getRate()->getRate(i); DoubleVector *rate_vec = &rate_info[i]; for (DoubleVector::iterator dit = rate_vec->begin(); dit != rate_vec->end(); dit++) out << "\t" << *dit; out << endl; } out.close(); cout << endl << "Results written to: " << file_name << endl << endl; delete [] state_freq; delete [] rate_matrix; delete [] rate_param; }
void runttgamma(TString sample="all", TString ExtraOpts= "", int workers=8) { //TProof *proof = getProof("lite://",nwrks); TString proofOpt(Form("workers=%i",workers)); //TProof *proof = TProof::Open(proofOpt); //if (!proof) { // Printf("runProof: could not start/attach a PROOF session"); // return; //} //proof->SetLogLevel(2); // verbose TChain *chain = new TChain("ggNtuplizer/EventTree"); StrVecMap::iterator ite;// bool foundSample = false; for ( ite = vsamples.begin(); ite != vsamples.end(); ++ite) {// std::string name(sample.Data()); std::string tmpname = (*ite).first; if ( name != "all" && name != tmpname ) continue; foundSample = true; if ( name == "all" ) name = tmpname; StrVector location = vsamples[name]; cout<< "Input sample: "<< name << endl; //StrVecMap::iterator ite; //for (ite = location.begin(); ite != location.end(); ++ite) { for ( size_t i=0; i < location.size(); ++i ) { //chain->Add(location.c_str()); chain->Add( location[i].c_str() ); } cout << "List of files:" << endl; chain->ls(); cout << endl; //chain->SetProof(); // to run in PROOF mode TString opts(Form("sample=%s",name.c_str())); if (ExtraOpts != "" ) opts = ExtraOpts + " " + opts; ttgamma3 *myselector = new ttgamma3(); //chain->Process("ttgamma3.C",opts.Data() ); chain->Process(myselector, opts.Data() ); cout << "Process: ttgamma.C done" << endl; } // logs //TList *logList = proof->GetManager()->GetSessionLogs()->GetListOfLogs(); //for (int i=1; i< logList->GetSize(); ++i) // { // TProffLogElem *logElem = ( TProofLogElem* ) logList->At( i ); // macro = logElem->GetMacro(); // macro->SaveSource("data_muons_"+TString(Form("%i",i))+".stdout"); // } //chain->SetProof(0); //chain->Delete(); //delete chain; //proof->ClearInput(); //proof->ClearData(); //proof->ClearInputData(); //delete proof; if ( foundSample ) cout << "runttgamma done"<<endl; else cout << "Error: No sample found with name: " << sample.Data() << endl; }
void InitSamples( TString ExtraOpts= "") { //TStrStrMap msamples; //StrVecMap vsamples; StrVector vec; // root://cmseos.fnal.gov:1094/ string xroo_prefix = "root://cmseos.fnal.gov:1094/"; //"root://cmsxrootd-site.fnal.gov/"; if (! ExtraOpts.Contains("inputskim") ) { string prefixData= xroo_prefix + "/store/user/iraklis/ggNtuples/"; string prefixMC = xroo_prefix + "/store/user/iraklis/ggNtuples/"; //sync exercise vec.push_back(xroo_prefix + "/store/user/yumiceva/ttgamma/sync/sync.root"); vsamples.insert(StrVecPair("sync",vec)); vec.clear(); //DYJetsToLL vec.push_back(xroo_prefix + "/store/user/makouski/job_summer12_DYJetsToLL.root"); vsamples.insert(StrVecPair("DYJetsToLL",vec)); vec.clear(); //Wjets vec.push_back(xroo_prefix + "/store/user/makouski/job_summer12_Wjets.root"); vsamples.insert(StrVecPair("Wjets",vec)); vec.clear(); //W3jets vec.push_back("/uscmst1b_scratch/lpc1/old_scratch/lpceg/yurii/iraklis/Makouski/CMSSW_5_3_12/src/ggAnalysis/ggNtuplizer/test/W3JetsToLNu_TuneZ2Star_8TeV-madgraph.root"); vsamples.insert(StrVecPair("W3jets",vec)); vec.clear(); //W4jets vec.push_back("/uscmst1b_scratch/lpc1/old_scratch/lpceg/yurii/iraklis/Makouski/CMSSW_5_3_12/src/ggAnalysis/ggNtuplizer/test/W4JetsToLNu_TuneZ2Star_8TeV-madgraph.root"); vsamples.insert(StrVecPair("W4jets",vec)); vec.clear(); //WW_2l2nu //vec.push_back(prefixMC+"job_summer12_WW_2l2nu.root"); //vsamples.insert(StrVecPair("WW_2l2nu",vec)); //vec.clear(); //WWg vec.push_back(prefixMC+"job_summer12_WWg.root"); vsamples.insert(StrVecPair("WWg",vec)); vec.clear(); //WZ_2l2q //vec.push_back(prefixMC+"job_summer12_WZ_2l2q.root"); //vsamples.insert(StrVecPair("WZ_2l2q",vec)); //vec.clear(); //WZ_3lnu //vec.push_back(prefixMC+"job_summer12_WZ_3lnu.root"); //vsamples.insert(StrVecPair("WZ_3lnu",vec)); //vec.clear(); //Wg vec.push_back(prefixMC+"job_summer12_Wg.root"); vsamples.insert(StrVecPair("Wg",vec)); vec.clear(); //Wgg_FSR vec.push_back(prefixMC+"job_summer12_Wgg_FSR.root"); vsamples.insert(StrVecPair("Wgg_FSR",vec)); vec.clear(); //ZZ_2e2mu //vec.push_back(prefixMC+"job_summer12_ZZ_2e2mu.root"); //vsamples.insert(StrVecPair("ZZ_2e2mu",vec)); //vec.clear(); //ZZ_2e2tau //vec.push_back(prefixMC+"job_summer12_ZZ_2e2tau.root"); //vsamples.insert(StrVecPair("ZZ_2e2tau",vec)); //vec.clear(); //ZZ_2mu2tau //vec.push_back(prefixMC+"job_summer12_ZZ_2mu2tau.root"); //vsamples.insert(StrVecPair("ZZ_2mu2tau",vec)); //vec.clear(); //ZZ_4e //vec.push_back(prefixMC+"job_summer12_ZZ_4e.root"); //vsamples.insert(StrVecPair("ZZ_4e",vec)); //vec.clear(); //ZZ_4mu //vec.push_back(prefixMC+"job_summer12_ZZ_4mu.root"); //vsamples.insert(StrVecPair("ZZ_4mu",vec)); //vec.clear(); //ZZ_4tau //vec.push_back(prefixMC+"job_summer12_ZZ_4tau.root"); //vsamples.insert(StrVecPair("ZZ_4tau",vec)); //vec.clear(); //Zg vec.push_back(prefixMC+"job_summer12_Zg.root"); vsamples.insert(StrVecPair("Zg",vec)); vec.clear(); //diphoton_box_10to25 vec.push_back(prefixMC+"job_summer12_diphoton_box_10to25.root"); vsamples.insert(StrVecPair("diphoton_box_10to25",vec)); vec.clear(); //diphoton_box_25to250 vec.push_back(prefixMC+"job_summer12_diphoton_box_25to250.root"); vsamples.insert(StrVecPair("diphoton_box_25to250",vec)); vec.clear(); //diphoton_box_250toInf vec.push_back(prefixMC+"job_summer12_diphoton_box_250toInf.root"); vsamples.insert(StrVecPair("diphoton_box_250toInf",vec)); vec.clear(); //t_s vec.push_back(prefixMC+"job_summer12_t_s.root"); vsamples.insert(StrVecPair("t_s",vec)); vec.clear(); //t_t vec.push_back(prefixMC+"job_summer12_t_t.root"); vsamples.insert(StrVecPair("t_t",vec)); vec.clear(); //t_tW vec.push_back(prefixMC+"job_summer12_t_tW.root"); vsamples.insert(StrVecPair("t_tW",vec)); vec.clear(); //tbar_s vec.push_back(prefixMC+"job_summer12_tbar_s.root"); vsamples.insert(StrVecPair("tbar_s",vec)); vec.clear(); //tbar_t vec.push_back(prefixMC+"job_summer12_tbar_t.root"); vsamples.insert(StrVecPair("tbar_t",vec)); vec.clear(); //tbar_tW vec.push_back(prefixMC+"job_summer12_tbar_tW.root"); vsamples.insert(StrVecPair("tbar_tW",vec)); vec.clear(); //ttW vec.push_back(prefixMC+"job_summer12_ttW.root"); vsamples.insert(StrVecPair("ttW",vec)); vec.clear(); //ttZ vec.push_back(prefixMC+"job_summer12_ttZ.root"); vsamples.insert(StrVecPair("ttZ",vec)); vec.clear(); //ttg vec.push_back(prefixMC+"job_summer12_ttg.root"); vsamples.insert(StrVecPair("ttg",vec)); vec.clear(); //ttgWhizard vec.push_back("/uscmst1b_scratch/lpc1/old_scratch/lpceg/yurii/EnSc/misha/job_summer12_whizard_2to5_ttA.root"); vsamples.insert(StrVecPair("ttgWhizard",vec)); vec.clear(); //ttjets //vec.push_back(prefixMC+"job_summer12_ttinclusive.root"); //vsamples.insert(StrVecPair("ttjets",vec)); //vec.clear(); //ttjets_1l vec.push_back(prefixMC+"job_summer12_ttjets_1l.root"); vsamples.insert(StrVecPair("ttjets_1l",vec)); vec.clear(); //ttjets_2l vec.push_back(xroo_prefix + "/store/user/makouski/job_summer12_ttjets_2l.root"); vsamples.insert(StrVecPair("ttjets_2l",vec)); vec.clear(); //ttjets_0l vec.push_back(xroo_prefix + "/store/user/troy2012/GG_MC_12/TTJets_Hadronic/TTJets_hadronic.root"); vsamples.insert(StrVecPair("ttjets_0l",vec)); vec.clear(); //DATA // electrons vec.push_back(prefixData+"job_electron_2012a_Jan22rereco.root"); vsamples.insert(StrVecPair("data_ele_a",vec)); vec.clear(); vec.push_back(prefixData+"job_electron_2012b_Jan22rereco.root"); vsamples.insert(StrVecPair("data_ele_b",vec)); vec.clear(); vec.push_back(prefixData+"job_electron_2012c_Jan2012rereco.root"); vsamples.insert(StrVecPair("data_ele_c",vec)); vec.clear(); vec.push_back("/uscmst1b_scratch/lpc1/old_scratch/lpceg/yurii/iraklis/Makouski/CMSSW_5_3_12/src/ggAnalysis/ggNtuplizer/test/job_electron_2012d.root"); vsamples.insert(StrVecPair("data_ele_d",vec)); vec.clear(); // muons vec.push_back(prefixData+"job_muon_2012a_Jan22rereco.root"); vsamples.insert(StrVecPair("data_mu_a",vec)); vec.clear(); vec.push_back(xroo_prefix + "/store/user/troy2012/TTGamma/job_muon_2012b_Jan22rereco.root"); vsamples.insert(StrVecPair("data_mu_b",vec)); vec.clear(); vec.push_back(prefixData+"job_muon_2012c_Jan22rereco.root"); vsamples.insert(StrVecPair("data_mu_c",vec)); vec.clear(); vec.push_back(xroo_prefix + "/store/user/troy2012/TTGamma/job_muon_2012d_Jan22rereco.root"); vsamples.insert(StrVecPair("data_mu_d",vec)); vec.clear(); } else { // SKIMS string prefixSkim = xroo_prefix + "/store/user/yumiceva/ttgamma/skim/v0/electron/"; if ( ExtraOpts.Contains("muon") ) prefixSkim = xroo_prefix + "/store/user/yumiceva/ttgamma/skim/v2/muon/"; //DYJetsToLL vec.push_back(prefixSkim+"skim_DYJetsToLL.root"); vsamples.insert(StrVecPair("DYJetsToLL",vec)); vec.clear(); //Wjets vec.push_back(prefixSkim+"skim_Wjets.root"); vsamples.insert(StrVecPair("Wjets",vec)); vec.clear(); //W3jets vec.push_back(prefixSkim+"skim_W3jets.root"); vsamples.insert(StrVecPair("W3jets",vec)); vec.clear(); //W4jets vec.push_back(prefixSkim+"skim_W4jets.root"); vsamples.insert(StrVecPair("W4jets",vec)); vec.clear(); //WW_2l2nu //vec.push_back(prefixSkim+"skim_WW_2l2nu.root"); //vsamples.insert(StrVecPair("WW_2l2nu",vec)); //vec.clear(); //WWg vec.push_back(prefixSkim+"skim_WWg.root"); vsamples.insert(StrVecPair("WWg",vec)); vec.clear(); //WZ_2l2q //vec.push_back(prefixSkim+"skim_WZ_2l2q.root"); //vsamples.insert(StrVecPair("WZ_2l2q",vec)); //vec.clear(); //WZ_3lnu //vec.push_back(prefixSkim+"skim_WZ_3lnu.root"); //vsamples.insert(StrVecPair("WZ_3lnu",vec)); //vec.clear(); //Wg vec.push_back(prefixSkim+"skim_Wg.root"); vsamples.insert(StrVecPair("Wg",vec)); vec.clear(); //Wgg_FSR vec.push_back(prefixSkim+"skim_Wgg_FSR.root"); vsamples.insert(StrVecPair("Wgg_FSR",vec)); vec.clear(); //ZZ_2e2mu //vec.push_back(prefixSkim+"skim_ZZ_2e2mu.root"); //vsamples.insert(StrVecPair("ZZ_2e2mu",vec)); //vec.clear(); //ZZ_2e2tau //vec.push_back(prefixSkim+"skim_ZZ_2e2tau.root"); //vsamples.insert(StrVecPair("ZZ_2e2tau",vec)); //vec.clear(); //ZZ_2mu2tau //vec.push_back(prefixSkim+"skim_ZZ_2mu2tau.root"); //vsamples.insert(StrVecPair("ZZ_2mu2tau",vec)); //vec.clear(); //ZZ_4e //vec.push_back(prefixSkim+"skim_ZZ_4e.root"); //vsamples.insert(StrVecPair("ZZ_4e",vec)); //vec.clear(); //ZZ_4mu //vec.push_back(prefixSkim+"skim_ZZ_4mu.root"); //vsamples.insert(StrVecPair("ZZ_4mu",vec)); //vec.clear(); //ZZ_4tau //vec.push_back(prefixSkim+"skim_ZZ_4tau.root"); //vsamples.insert(StrVecPair("ZZ_4tau",vec)); //vec.clear(); //Zg vec.push_back(prefixSkim+"skim_Zg.root"); vsamples.insert(StrVecPair("Zg",vec)); vec.clear(); //diphoton_box_10to25 vec.push_back(prefixSkim+"skim_diphoton_box_10to25.root"); vsamples.insert(StrVecPair("diphoton_box_10to25",vec)); vec.clear(); //diphoton_box_25to250 vec.push_back(prefixSkim+"skim_diphoton_box_25to250.root"); vsamples.insert(StrVecPair("diphoton_box_25to250",vec)); vec.clear(); //diphoton_box_250toInf vec.push_back(prefixSkim+"skim_diphoton_box_250toInf.root"); vsamples.insert(StrVecPair("diphoton_box_250toInf",vec)); vec.clear(); //t_s vec.push_back(prefixSkim+"skim_t_s.root"); vsamples.insert(StrVecPair("t_s",vec)); vec.clear(); //t_t vec.push_back(prefixSkim+"skim_t_t.root"); vsamples.insert(StrVecPair("t_t",vec)); vec.clear(); //t_tW vec.push_back(prefixSkim+"skim_t_tW.root"); vsamples.insert(StrVecPair("t_tW",vec)); vec.clear(); //tbar_s vec.push_back(prefixSkim+"skim_tbar_s.root"); vsamples.insert(StrVecPair("tbar_s",vec)); vec.clear(); //tbar_t vec.push_back(prefixSkim+"skim_tbar_t.root"); vsamples.insert(StrVecPair("tbar_t",vec)); vec.clear(); //tbar_tW vec.push_back(prefixSkim+"skim_tbar_tW.root"); vsamples.insert(StrVecPair("tbar_tW",vec)); vec.clear(); //ttW vec.push_back(prefixSkim+"skim_ttW.root"); vsamples.insert(StrVecPair("ttW",vec)); vec.clear(); //ttZ vec.push_back(prefixSkim+"skim_ttZ.root"); vsamples.insert(StrVecPair("ttZ",vec)); vec.clear(); //ttg vec.push_back(prefixSkim+"skim_ttg.root"); vsamples.insert(StrVecPair("ttg",vec)); vec.clear(); //ttgWhizard vec.push_back(prefixSkim+"skim_ttgWhizard.root"); vsamples.insert(StrVecPair("ttgWhizard",vec)); vec.clear(); //ttjets_1l vec.push_back(prefixSkim+"skim_ttjets_1l.root"); vsamples.insert(StrVecPair("ttjets_1l",vec)); vec.clear(); vec.push_back(prefixSkim+"skim_ttjets_1l_a.root"); vsamples.insert(StrVecPair("ttjets_1l_a",vec)); vec.clear(); vec.push_back(prefixSkim+"skim_ttjets_1l_b.root"); vsamples.insert(StrVecPair("ttjets_1l_b",vec)); vec.clear(); //ttjets_2l vec.push_back(prefixSkim+"skim_ttjets_2l.root"); vsamples.insert(StrVecPair("ttjets_2l",vec)); vec.clear(); //ttjets_0l vec.push_back(prefixSkim+"skim_ttjets_0l.root"); vsamples.insert(StrVecPair("ttjets_0l",vec)); vec.clear(); //DATA if ( ExtraOpts.Contains("muon") ) vec.push_back(prefixSkim+"skim_data_mu_all.root"); else vec.push_back(prefixSkim+"skim_data_ele_all.root"); vsamples.insert(StrVecPair("data",vec)); vec.clear(); vec.push_back(prefixSkim+"skim_data_mu_a.root"); vsamples.insert(StrVecPair("data_mu_a",vec)); vec.clear(); vec.push_back(prefixSkim+"skim_data_mu_b.root"); vsamples.insert(StrVecPair("data_mu_b",vec)); vec.clear(); vec.push_back(prefixSkim+"skim_data_mu_c.root"); vsamples.insert(StrVecPair("data_mu_c",vec)); vec.clear(); vec.push_back(prefixSkim+"skim_data_mu_d.root"); vsamples.insert(StrVecPair("data_mu_d",vec)); vec.clear(); } }