inline Line_t transform(const Line_t &ln) const { Vectors::Point2DCont pf=transform( ln.getFrom() ); // tansform point Vectors::Point2DCont pt=transform( ln.getTo() ); // ... Line_t lOut(pf, pt); // make dest. line return lOut; // return result };
int makeMuonTxtFiles(){//main TFile *muIdIso_ = new TFile("Muon_ID_iso_Efficiencies_Run_2012ABCD_53X.root"); TGraphAsymmErrors *hist_muon[4][3][3]; hist_muon[0][0][0] = (TGraphAsymmErrors*)gDirectory->Get("DATA_Loose_pt_abseta<0.9_2012ABCD"); hist_muon[0][0][1] = (TGraphAsymmErrors*)gDirectory->Get("MC_Loose_pt_abseta<0.9_2012ABCD"); hist_muon[0][0][2] = (TGraphAsymmErrors*)gDirectory->Get("DATA_over_MC_Loose_pt_abseta<0.9_2012ABCD"); hist_muon[0][1][0] = (TGraphAsymmErrors*)gDirectory->Get("DATA_Loose_pt_abseta0.9-1.2_2012ABCD"); hist_muon[0][1][1] = (TGraphAsymmErrors*)gDirectory->Get("MC_Loose_pt_abseta0.9-1.2_2012ABCD"); hist_muon[0][1][2] = (TGraphAsymmErrors*)gDirectory->Get("DATA_over_MC_Loose_pt_abseta0.9-1.2_2012ABCD"); hist_muon[0][2][0] = (TGraphAsymmErrors*)gDirectory->Get("DATA_Loose_pt_abseta1.2-2.1_2012ABCD"); hist_muon[0][2][1] = (TGraphAsymmErrors*)gDirectory->Get("MC_Loose_pt_abseta1.2-2.1_2012ABCD"); hist_muon[0][2][2] = (TGraphAsymmErrors*)gDirectory->Get("DATA_over_MC_Loose_pt_abseta1.2-2.1_2012ABCD"); hist_muon[1][0][0] = (TGraphAsymmErrors*)gDirectory->Get("DATA_Tight_pt_abseta<0.9_2012ABCD"); hist_muon[1][0][1] = (TGraphAsymmErrors*)gDirectory->Get("MC_Tight_pt_abseta<0.9_2012ABCD"); hist_muon[1][0][2] = (TGraphAsymmErrors*)gDirectory->Get("DATA_over_MC_Tight_pt_abseta<0.9_2012ABCD"); hist_muon[1][1][0] = (TGraphAsymmErrors*)gDirectory->Get("DATA_Tight_pt_abseta0.9-1.2_2012ABCD"); hist_muon[1][1][1] = (TGraphAsymmErrors*)gDirectory->Get("MC_Tight_pt_abseta0.9-1.2_2012ABCD"); hist_muon[1][1][2] = (TGraphAsymmErrors*)gDirectory->Get("DATA_over_MC_Tight_pt_abseta0.9-1.2_2012ABCD"); hist_muon[1][2][0] = (TGraphAsymmErrors*)gDirectory->Get("DATA_Tight_pt_abseta1.2-2.1_2012ABCD"); hist_muon[1][2][1] = (TGraphAsymmErrors*)gDirectory->Get("MC_Tight_pt_abseta1.2-2.1_2012ABCD"); hist_muon[1][2][2] = (TGraphAsymmErrors*)gDirectory->Get("DATA_over_MC_Tight_pt_abseta1.2-2.1_2012ABCD"); hist_muon[2][0][0] = (TGraphAsymmErrors*)gDirectory->Get("DATA_combRelIsoPF04dBeta<02_Tight_pt_abseta<0.9_2012ABCD"); hist_muon[2][0][1] = (TGraphAsymmErrors*)gDirectory->Get("MC_combRelIsoPF04dBeta<02_Tight_pt_abseta<0.9_2012ABCD"); hist_muon[2][0][2] = (TGraphAsymmErrors*)gDirectory->Get("DATA_over_MC_combRelIsoPF04dBeta<02_Tight_pt_abseta<0.9_2012ABCD"); hist_muon[2][1][0] = (TGraphAsymmErrors*)gDirectory->Get("DATA_combRelIsoPF04dBeta<02_Tight_pt_abseta0.9-1.2_2012ABCD"); hist_muon[2][1][1] = (TGraphAsymmErrors*)gDirectory->Get("MC_combRelIsoPF04dBeta<02_Tight_pt_abseta0.9-1.2_2012ABCD"); hist_muon[2][1][2] = (TGraphAsymmErrors*)gDirectory->Get("DATA_over_MC_combRelIsoPF04dBeta<02_Tight_pt_abseta0.9-1.2_2012ABCD"); hist_muon[2][2][0] = (TGraphAsymmErrors*)gDirectory->Get("DATA_combRelIsoPF04dBeta<02_Tight_pt_abseta1.2-2.1_2012ABCD"); hist_muon[2][2][1] = (TGraphAsymmErrors*)gDirectory->Get("MC_combRelIsoPF04dBeta<02_Tight_pt_abseta1.2-2.1_2012ABCD"); hist_muon[2][2][2] = (TGraphAsymmErrors*)gDirectory->Get("DATA_over_MC_combRelIsoPF04dBeta<02_Tight_pt_abseta1.2-2.1_2012ABCD"); hist_muon[3][0][0] = (TGraphAsymmErrors*)gDirectory->Get("DATA_combRelIsoPF04dBeta<012_Tight_pt_abseta<0.9_2012ABCD"); hist_muon[3][0][1] = (TGraphAsymmErrors*)gDirectory->Get("MC_combRelIsoPF04dBeta<012_Tight_pt_abseta<0.9_2012ABCD"); hist_muon[3][0][2] = (TGraphAsymmErrors*)gDirectory->Get("DATA_over_MC_combRelIsoPF04dBeta<012_Tight_pt_abseta<0.9_2012ABCD"); hist_muon[3][1][0] = (TGraphAsymmErrors*)gDirectory->Get("DATA_combRelIsoPF04dBeta<012_Tight_pt_abseta0.9-1.2_2012ABCD"); hist_muon[3][1][1] = (TGraphAsymmErrors*)gDirectory->Get("MC_combRelIsoPF04dBeta<012_Tight_pt_abseta0.9-1.2_2012ABCD"); hist_muon[3][1][2] = (TGraphAsymmErrors*)gDirectory->Get("DATA_over_MC_combRelIsoPF04dBeta<012_Tight_pt_abseta0.9-1.2_2012ABCD"); hist_muon[3][2][0] = (TGraphAsymmErrors*)gDirectory->Get("DATA_combRelIsoPF04dBeta<012_Tight_pt_abseta1.2-2.1_2012ABCD"); hist_muon[3][2][1] = (TGraphAsymmErrors*)gDirectory->Get("MC_combRelIsoPF04dBeta<012_Tight_pt_abseta1.2-2.1_2012ABCD"); hist_muon[3][2][2] = (TGraphAsymmErrors*)gDirectory->Get("DATA_over_MC_combRelIsoPF04dBeta<012_Tight_pt_abseta1.2-2.1_2012ABCD"); double etaMin[3] = {0,0.9,1.2}; double etaMax[3] = {0.9,1.2,2.1}; std::string lFileName[4] = {"mu_loose_id","mu_tight_id","mu_loose_iso","mu_tight_iso"}; std::string lDataType[3] = {"data_eff","mc_eff","SF"}; std::ostringstream lName; for (unsigned iWP(0);iWP<4;++iWP){//loop on WP for (unsigned iData(0);iData<3;++iData){//loop on data type: data, MC, SF lName.str(""); lName << lFileName[iWP] << "_" << lDataType[iData] << ".txt"; std::ofstream lOut(lName.str().c_str()); for (unsigned iEta(0); iEta<3; ++iEta){//loop on eta bin const unsigned nBins = hist_muon[iWP][iEta][iData]->GetN(); for (unsigned iPt(0); iPt<nBins; ++iPt){//loop on pT bins double x = 0; double y = 0; hist_muon[iWP][iEta][iData]->GetPoint(iPt,x,y); double xMax = x+hist_muon[iWP][iEta][iData]->GetErrorXhigh(iPt); double xMin = x-hist_muon[iWP][iEta][iData]->GetErrorXlow(iPt); double yErrPlus = hist_muon[iWP][iEta][iData]->GetErrorYhigh(iPt); double yErrMinus = hist_muon[iWP][iEta][iData]->GetErrorYlow(iPt); lOut << xMin << " " << xMax << " " << etaMin[iEta] << " " << etaMax[iEta] << " " << y << " " << yErrMinus << " " << yErrPlus << std::endl; }//loop on pT bins }//loop on eta bin lOut.close(); }//loop on data type }//loop on WP return 1; }//
int ConvertIm_main(int argc,char ** argv) { MMD_InitArgcArgv(argc,argv); Tiff_Im::SetDefTileFile(1000000); std::string aNameIn ; INT aReducX=0; INT aReducY=0; INT aReducXY=0; INT aVisu=0; GenIm::type_el aTypeOut ; std::string aNameTypeOut =""; Tiff_Im::PH_INTER_TYPE aPhInterpOut ; std::string aNamePITOut =""; std::string PITOut[] = {"RGB","BW"}; std::list<std::string> lOut(PITOut, PITOut + sizeof(PITOut) / sizeof(std::string) ); std::string aNameOut; std::string anExt; Pt2di aP0(0,0); Pt2di aSzOut ; Pt2di aSzTF(-1,-1); REAL aDyn=1.0; Pt2di aSzTileInterne(-1,-1); int aKCh = -1; std::vector<int> aVPermut; int aNoTile = 0; std::string aF2 =""; ElInitArgMain ( argc,argv, LArgMain() << EAMC(aNameIn, "Image", eSAM_IsExistFile), LArgMain() << EAM(aNameOut,"Out",true) << EAM(anExt,"Ext",true) << EAM(aSzOut,"SzOut",true, "Size out", eSAM_NoInit) << EAM(aP0,"P0",true) << EAM(aNameTypeOut,"Type",true, "TypeMNT", eSAM_None, ListOfVal(GenIm::bits1_msbf, "")) << EAM(aNamePITOut,"Col",true, "Col", eSAM_None,lOut) << EAM(aReducXY,"ReducXY",true) << EAM(aReducX,"ReducX",true) << EAM(aReducY,"ReducY",true) << EAM(aVisu,"Visu",true) << EAM(aSzTF,"SzTifTile",true) << EAM(aSzTileInterne,"SzTileInterne",true) << EAM(aDyn,"Dyn",true) << EAM(aKCh,"KCh",true) << EAM(aNoTile,"NoTile",true) << EAM(aVPermut,"Permut",true, "Permut", eSAM_NoInit) << EAM(aF2,"F2",true) ); if (!MMVisualMode) { // Tiff_Im aTifIn = Tiff_Im::BasicConvStd(aNameIn); Tiff_Im aTifIn = Tiff_Im::UnivConvStd(aNameIn); INT aNbChIn = aTifIn.nb_chan(); if (! EAMIsInit(&aTypeOut)) aTypeOut =aTifIn.type_el(); if (! EAMIsInit(&aPhInterpOut)) aPhInterpOut = aTifIn.phot_interp(); if (! EAMIsInit(&aSzOut)) aSzOut = aTifIn.sz(); if (aReducXY) { aReducX = 1; aReducY = 1; } if (aNameOut=="") { if (anExt=="") { if (aReducX && aReducY) anExt = "_RXY"; else if (aReducX) anExt = "_RX"; else if (aReducY) anExt = "_RY"; else anExt= "_Out"; } if (IsPostfixed(aNameIn)) aNameOut = StdPrefix(aNameIn) + anExt +"." + StdPostfix(aNameIn); else aNameOut = aNameIn + anExt + "tif"; } Pt2di aCoefReduc(aReducX != 0 ? 2 : 1, aReducY != 0 ? 2 : 1); aSzOut = aSzOut.dcbyc(aCoefReduc); if (aNameTypeOut != "") aTypeOut = type_im(aNameTypeOut); if (aKCh != -1) aNamePITOut="BW"; if ( aVPermut.size() !=0) { if ( aVPermut.size() ==1) aPhInterpOut = Tiff_Im::BlackIsZero; else if ( aVPermut.size() ==3) aPhInterpOut = Tiff_Im::RGB; else { ELISE_ASSERT(aNamePITOut=="","Nb Canaux incoherents"); } } else { if (aNamePITOut=="RGB") aPhInterpOut = Tiff_Im::RGB; else if (aNamePITOut=="BW") aPhInterpOut = Tiff_Im::BlackIsZero; else { ELISE_ASSERT(aNamePITOut=="","Mode Couleur Inconnu"); } } Tiff_Im::COMPR_TYPE aComprOut = Tiff_Im::No_Compr; L_Arg_Opt_Tiff aLArg = Tiff_Im::Empty_ARG; if (! aNoTile) { if (aSzTileInterne != Pt2di(-1,-1)) aLArg = aLArg + Arg_Tiff(Tiff_Im::ATiles(aSzTileInterne)); if (aSzTF != Pt2di(-1,-1)) aLArg = aLArg + Arg_Tiff(Tiff_Im::AFileTiling(aSzTF)); } else { aLArg = aLArg + Arg_Tiff(Tiff_Im::ANoStrip()); aLArg = aLArg + Arg_Tiff(Tiff_Im::AFileTiling(Pt2di(-1,-1))); } Tiff_Im aTifOut ( aNameOut.c_str(), aSzOut, aTypeOut, aComprOut, aPhInterpOut, aLArg ); INT aNbChOut = aTifOut.nb_chan(); Pt2di aSzROut = aSzOut; Output anOut = aTifOut.out(); Fonc_Num aFin = aTifIn.in_proj(); if (aF2!="") { Tiff_Im aT2 = Tiff_Im::BasicConvStd(DirOfFile(aNameIn)+aF2); aFin = Virgule(aFin,aT2.in(0)); } if (aVPermut.size() != 0) aFin = aFin.permut(aVPermut); if (type_im_integral( aTypeOut)) { } else { aFin = Rconv(aFin); } aFin = reduc_binaire_gen(aFin, aReducX != 0, aReducY != 0, 16, true, 0); anOut = Filtre_Out_RedBin_Gen(anOut, aReducX != 0, aReducY != 0); aSzROut = aSzOut.mcbyc(aCoefReduc); aFin = trans(aFin,aP0); if (aKCh!=-1) aFin = aFin.kth_proj(aKCh); else { if ((aNbChOut==1) && (aNbChIn==3)) aFin = (aFin.v0() + aFin.v1() + aFin.v2()) / 3.0; if ((aNbChOut==3) && (aNbChIn==1)) aFin = Virgule(aFin,aFin,aFin); } if (aVisu) anOut = anOut | Video_Win::WiewAv(aSzROut); if (aDyn != 1.0) aFin = aFin * aDyn; if (type_im_integral(aTypeOut) && (aTypeOut!=GenIm::int4)) { int aVMin,aVMax; min_max_type_num(aTypeOut,aVMin,aVMax); aFin = Max(aVMin,Min(aVMax-1,aFin)); } ELISE_COPY(rectangle(Pt2di(0,0),aSzROut),aFin,anOut); return EXIT_SUCCESS; } else return EXIT_SUCCESS; }
int makeMuonRun2DTxtFiles(){//main TFile *muId_ = new TFile("MuonID_Z_RunCD_Reco76X_Feb15.root"); TFile *muIso_ = new TFile("MuonIso_Z_RunCD_Reco76X_Feb15.root"); double extraIdSyst = 0.01; double extraIsoSyst = 0.005; TH2F *hist_muon[4][3]; muId_->cd("MC_NUM_LooseID_DEN_genTracks_PAR_pt_spliteta_bin1/efficienciesDATA/"); hist_muon[0][0] = (TH2F*)gDirectory->Get("abseta_pt_DATA"); muId_->cd("MC_NUM_LooseID_DEN_genTracks_PAR_pt_spliteta_bin1/efficienciesMC/"); hist_muon[0][1] = (TH2F*)gDirectory->Get("abseta_pt_MC"); muId_->cd("MC_NUM_LooseID_DEN_genTracks_PAR_pt_spliteta_bin1/"); hist_muon[0][2] = (TH2F*)gDirectory->Get("abseta_pt_ratio"); muId_->cd("MC_NUM_TightIDandIPCut_DEN_genTracks_PAR_pt_spliteta_bin1/efficienciesDATA/"); hist_muon[1][0] = (TH2F*)gDirectory->Get("abseta_pt_DATA"); muId_->cd("MC_NUM_TightIDandIPCut_DEN_genTracks_PAR_pt_spliteta_bin1/efficienciesMC/"); hist_muon[1][1] = (TH2F*)gDirectory->Get("abseta_pt_MC"); muId_->cd("MC_NUM_TightIDandIPCut_DEN_genTracks_PAR_pt_spliteta_bin1/"); hist_muon[1][2] = (TH2F*)gDirectory->Get("abseta_pt_ratio"); muIso_->cd("MC_NUM_LooseRelIso_DEN_LooseID_PAR_pt_spliteta_bin1/efficienciesDATA/"); hist_muon[2][0] = (TH2F*)gDirectory->Get("abseta_pt_DATA"); muIso_->cd("MC_NUM_LooseRelIso_DEN_LooseID_PAR_pt_spliteta_bin1/efficienciesMC/"); hist_muon[2][1] = (TH2F*)gDirectory->Get("abseta_pt_MC"); muIso_->cd("MC_NUM_LooseRelIso_DEN_LooseID_PAR_pt_spliteta_bin1"); hist_muon[2][2] = (TH2F*)gDirectory->Get("abseta_pt_ratio"); muIso_->cd("MC_NUM_TightRelIso_DEN_TightID_PAR_pt_spliteta_bin1/efficienciesDATA/"); hist_muon[3][0] = (TH2F*)gDirectory->Get("abseta_pt_DATA"); muIso_->cd("MC_NUM_TightRelIso_DEN_TightID_PAR_pt_spliteta_bin1/efficienciesMC/"); hist_muon[3][1] = (TH2F*)gDirectory->Get("abseta_pt_MC"); muIso_->cd("MC_NUM_TightRelIso_DEN_TightID_PAR_pt_spliteta_bin1/"); hist_muon[3][2] = (TH2F*)gDirectory->Get("abseta_pt_ratio"); const unsigned nEta = hist_muon[0][0]->GetXaxis()->GetNbins(); double etaMin[nEta]; double etaMax[nEta]; for (unsigned ie(0);ie<nEta;++ie){ etaMin[ie] = hist_muon[0][0]->GetXaxis()->GetBinLowEdge(ie+1); etaMax[ie] = hist_muon[0][0]->GetXaxis()->GetBinLowEdge(ie+2); std::cout << "eta min " << etaMin[ie] << " max " << etaMax[ie] << std::endl; } const unsigned nPt = hist_muon[0][0]->GetYaxis()->GetNbins(); double ptMin[nPt]; double ptMax[nPt]; for (unsigned ie(0);ie<nPt;++ie){ ptMin[ie] = hist_muon[0][0]->GetYaxis()->GetBinLowEdge(ie+1); ptMax[ie] = hist_muon[0][0]->GetYaxis()->GetBinLowEdge(ie+2); std::cout << "pt min " << ptMin[ie] << " max " << ptMax[ie] << std::endl; } const unsigned nP = 4; std::string prefix = "Fall15_76X_"; std::string lFileName[nP] = {"mu_loose_id","mu_tight_id","mu_loose_iso","mu_tight_iso"}; std::string lDataType[3] = {"data_eff","mc_eff","SF"}; std::ostringstream lName; for (unsigned iWP(0);iWP<nP;++iWP){//loop on WP for (unsigned iData(0);iData<3;++iData){//loop on data type: data, MC, SF lName.str(""); lName << prefix << lFileName[iWP] << "_" << lDataType[iData] << ".txt"; std::ofstream lOut(lName.str().c_str()); for (unsigned iEta(0); iEta<nEta; ++iEta){//loop on eta bin for (unsigned iPt(0); iPt<nPt; ++iPt){//loop on pT bins double val = hist_muon[iWP][iData]->GetBinContent(iEta+1,iPt+1); double err = hist_muon[iWP][iData]->GetBinError(iEta+1,iPt+1); if (iWP<2) err = sqrt(pow(err,2)+pow(extraIdSyst,2)); else err = sqrt(pow(err,2)+pow(extraIsoSyst,2)); lOut << ptMin[iPt] << " " << ptMax[iPt] << " " << etaMin[iEta] << " " << etaMax[iEta] << " " << val << " " << err << " " << err << std::endl; }//loop on pT bins }//loop on eta bin lOut.close(); }//loop on data type }//loop on WP return 1; }//