예제 #1
0
void susy3l_datacard() {
    md.refresh();


    //general parameters ********************* general parameters
    string dir="SUSY3L";
    string fileName="susy3l_SR00_off"; // not needed for statistics but provides the normalization
    string fileList="susy3l_SR00_off"; // put command line that gives all files as in a "ls" command

    bool mcOnly = false;
  
    md.anConf.configureNames( dir, fileName, fileList );
    md.anConf.configureData(false, 0, mcOnly);
  
  
    //Lumis( or XSections ) pb-1 & KFactors ************************************
    float lumi=10000; //pb-1 19470
    float energy=13; //TeV

    bool useXS=false;

    md.anConf.loadXSDB("XSectionsPhys14.db");

    map<string,float> LumisXS;

    //via XSect
    map<string,float> KFactors;
  

    md.anConf.configureLumi( LumisXS, KFactors, lumi, useXS );

    //===============================================================

    //top    
    md.addDataCardBkgSample("TBarToLeptons_sch", "fake");
    md.addDataCardBkgSample("TBarToLeptons_tch", "fake");
    md.addDataCardBkgSample("TBar_tWch", "fake");
    md.addDataCardBkgSample("TTJets", "fake");
    md.addDataCardBkgSample("TToLeptons_sch", "fake");
    md.addDataCardBkgSample("TToLeptons_tch", "fake");
    md.addDataCardBkgSample("T_tWch", "fake");
    

    //W+Jets
    md.addDataCardBkgSample("WJetsToLNu_HT100to200", "fake");
    md.addDataCardBkgSample("WJetsToLNu_HT200to400", "fake");
    //md.addDataCardBkgSample("WJetsToLNu_HT400to600", "fake");
    md.addDataCardBkgSample("WJetsToLNu_HT600toInf", "fake");

    //Drell-Yan
    md.addDataCardBkgSample("DYJetsToLL_M50_HT100to200", "fake");
    md.addDataCardBkgSample("DYJetsToLL_M50_HT200to400", "fake");
    md.addDataCardBkgSample("DYJetsToLL_M50_HT400to600", "fake");
    md.addDataCardBkgSample("DYJetsToLL_M50_HT600toInf", "fake");

    //di-boson
    md.addDataCardBkgSample("WZJetsTo3LNu", "diboson");
    md.addDataCardBkgSample("ZZTo4L", "diboson");
    
    //TTV
    md.addDataCardBkgSample("TTZJets", "ttZ");
    md.addDataCardBkgSample("TTWJets", "ttW");

    //rare
    md.addDataCardBkgSample("TTH", "rare");
    //md.addDataCardBkgSample("GGHZZ4L", "rare");

    //signal
    md.addDataCardSigSample("SMS_T1tttt_2J_mGl1200_mLSP800","T1t412");
    //md.addDataCardSigSample("SMS_T1tttt_2J_mGl1500_mLSP100","T1t415");
    //md.addDataCardSigSample("T5ttttDeg_mGo1000_mStop300_mCh285_mChi280_dil","T5t410dil");
    //md.addDataCardSigSample("T5ttttDeg_mGo1000_mStop300_mCh285_mChi280","T5t410");
    //md.addDataCardSigSample("T5qqqqWWDeg_mGo1000_mCh315_mChi300_dilep", "T5q410");
    //md.addDataCardSigSample("T5qqqqWW_mGo1200_mCh1000_mChi800_dilep", "T5q412");
  
   
    md.addNuisanceParameter("fratio","fake","lnN","1.50");
    md.addNuisanceParameter("rNorm","rare","lnN","1.20");
    md.addNuisanceParameter("sigNorm","T1t412","lnN","1.10");


    // }
    //===============================================================

    //*********************************************************************²
    //Execution macro ******************************************************
  
    //plotting ================
    md.dp.setLumiAndEnergy( lumi, energy );
    md.prepareDisplay();
  
    int nCateg=1; 
    vector<string> _categs(nCateg,"");
 
    // string srs[66]={
    // "SR1AL", "SR2AL", "SR3AL", "SR4AL", "SR1AH", "SR2AH", "SR3AH", "SR4AH", "SR5A", "SR6A",
    // "SR7AL", "SR8AL", "SR9AL", "SR10AL", "SR7AH", "SR8AH", "SR9AH", "SR10AH", "SR11A", "SR12A",
    // "SR13AL", "SR14AL", "SR15AL", "SR16AL", "SR13AH", "SR14AH", "SR15AH", "SR16AH", "SR17A", "SR18A",
    //"SR19AL", "SR19AH", "SR20A",
    // "SR1BL", "SR1BH", "SR2BL", "SR2BH",
    // "SR3BL", "SR3BH", "SR4BL", "SR4BH",
    // "SR5BL", "SR5BH", "SR6BL", "SR6BH",
    // "SR7BL", "SR7BH", 
    // };

    //string srs[28]={ 
    //    "SR1A", "SR2A", "SR3A", "SR4A", "SR5A", "SR6A", 
    //    "SR7A", "SR8A", "SR9A", "SR10A",  "SR11A", "SR12A",
    //    "SR13A", "SR14A", "SR15A", "SR16A", "SR17A", "SR18A", 
    //    "SR19A", "SR20A",
    //    "SR1B", "SR2B", 
    //    "SR3B", "SR4B",
    //    "SR5B", "SR6B",
    //    "SR7B", "SR8B" };

    string srs[1]={ 
        "SR00_off" };


    _categs.assign(srs, srs+nCateg);

    for(size_t ic=0;ic< _categs.size();ic++) {
        string cat=_categs[ic];
        md.makeSingleDataCard("T1t412", "global_"+cat, "SR MET selection", "susy3l_"+cat+"_T1t412");
    }

    gROOT->ProcessLine(".q");

}
void dataCardProd_HHSR9_T14t12() {
  md.refresh();


  //general parameters ********************* general parameters
  string dir="SSDL2015";
  string fileName="ssdl2fb_oct"; // not needed for statistics but provides the normalization
  string fileList="ssdl2fb_oct"; // put command line that gives all files as in a "ls" command

  bool mcOnly = false;
  
  md.anConf.configureNames( dir, fileName, fileList );
  md.anConf.configureData(false, 0, mcOnly);
  
  
  //Lumis( or XSections ) pb-1 & KFactors ************************************
  float lumi=1; //pb-1 19470
  float energy=13; //TeV

  bool useXS=false;

  //md.anConf.loadXSDB("XSectionsSpring15.db");

  map<string,float> LumisXS;

  //via XSect
  map<string,float> KFactors;
  

  md.anConf.configureLumi( LumisXS, KFactors, lumi, useXS );

  //===============================================================

  md.addDataCardSigSample("HHSR9:_sig_T1t_1200_800","T14t12");
  
  md.addDataCardSample("HHSR9:_standard_prompt_WZ", "WZ");
  md.addDataCardSample("HHSR9:_standard_prompt_ttW","ttW");
  md.addDataCardSample("HHSR9:_standard_prompt_ttZH","ttHZ");
  md.addDataCardSample("HHSR9:_standard_prompt_WW", "WW");
  md.addDataCardSample("HHSR9:_standard_prompt_TG", "XG");
  md.addDataCardSample("HHSR9:_standard_prompt_VG", "XG");
  md.addDataCardSample("HHSR9:_standard_prompt_Rares","rares");
  md.addDataCardSample("HHSR9:_flipsappl_data", "flip");
  md.addDataCardSample("HHSR9:_fakesappl_data", "fake");

  md.addDataCardSample("HHSR9:data","data");
  
  
  //lumi
  md.addNuisanceParameter("lumi","WZ:ttW:ttHZ:WW:XG:rares:T14t12","lnN","1.08:1.08:1.08:1.08:1.08:1.08:1.08");

  //experimental uncertainties
  md.addNuisanceParameter("jes","ttW:ttZH:WW:XG:rares:T14t12","lnN","1.00:1.01:1.01:1.03:1.03:1.10");
  md.addNuisanceParameter("btag","ttW:ttZH:WW:XG:rares:T14t12","lnN","1.11:1.11:1.11:1.09:1.11:1.01");
  md.addNuisanceParameter("lEff","ttW:ttZH:WW:XG:rares:T14t12","lnN","1.04:1.04:1.04:1.04:1.04:1.04");
  md.addNuisanceParameter("tEff","ttW:ttZH:WW:XG:rares:T14t12","lnN","1.02:1.02:1.02:1.02:1.02:1.02");
  md.addNuisanceParameter("tHTE","ttW:ttZH:WW:XG:rares:T14t12","lnN","-:-:-:-:-:-");
  
  //test
  md.addNuisanceParameter("BTag","ttW","lnN","");
  
  //Data-driven methods
  md.addNuisanceParameter("chMID","flip","lnN","1.30");
  md.addNuisanceParameter("fratio","fake","lnN","1.30");
  md.addNuisanceParameter("frEwk","fake","lnN","1.10");

  //theoretical uncertainties
  md.addNuisanceParameter("wzTh","WZ","lnN","1.30");
  md.addNuisanceParameter("WWTh","ttW","lnN","1.50");
  md.addNuisanceParameter("TGTh","XG","lnN","1.50");
  md.addNuisanceParameter("rareTh","rares","lnN","1.50");
  //md.addNuisanceParameter("sigTh","T14t12","lnN","SIGTHTAG");

  md.addNuisanceParameter("ttWPdf","ttW","lnN","1.04");
  md.addNuisanceParameter("ttHZPdf","ttHZ","lnN","1.04");
  md.addNuisanceParameter("ttWXs","ttW","lnN","1.13");
  md.addNuisanceParameter("ttHZXs","ttHZ","lnN","1.11");
  md.addNuisanceParameter("ttWAcc","ttW","lnN","1.03");
  md.addNuisanceParameter("ttHZAcc","ttHZ","lnN","1.03");


  string srs[66]={ 
    "HHSR1", "HHSR2", "HHSR3", "HHSR4", "HHSR5", "HHSR6", "HHSR7", "HHSR8",
    "HHSR9", "HHSR10", "HHSR11", "HHSR12", "HHSR13", "HHSR14", "HHSR15", "HHSR16",
    "HHSR17", "HHSR18", "HHSR19", "HHSR20", "HHSR21", "HHSR22", "HHSR23", "HHSR24",
    "HHSR25", "HHSR26", "HHSR27", "HHSR28", "HHSR29", "HHSR30", "HHSR31", "HHSR32",
    
    "HLSR1", "HLSR2", "HLSR3", "HLSR4", "HLSR5", "HLSR6", "HLSR7", "HLSR8",
    "HLSR9", "HLSR10", "HLSR11", "HLSR12", "HLSR13", "HLSR14", "HLSR15", "HLSR16",
    "HLSR17", "HLSR18", "HLSR19", "HLSR20", "HLSR21", "HLSR22", "HLSR23", "HLSR24",
    "HLSR25","HLSR26",
    
    "LLSR1", "LLSR2", "LLSR3", "LLSR4", "LLSR5", "LLSR6", "LLSR7", "LLSR8"
  };

  //statistical uncertainties
  for(int isr=0;isr<66;isr++) {
    if(srs[isr]=="HHSR9") {
      md.addNuisanceParameter("ttW"+srs[isr]+"stat","ttW","gmN","");
      md.addNuisanceParameter("ttHZ"+srs[isr]+"stat","ttHZ","lnN","");
      md.addNuisanceParameter("WW"+srs[isr]+"stat","WW","lnN","");
      md.addNuisanceParameter("XG"+srs[isr]+"stat","XG","lnN","1.18");
      md.addNuisanceParameter("rares"+srs[isr]+"stat","rares","lnN","");
      md.addNuisanceParameter("fake"+srs[isr]+"stat","fake","lnN","1.07");
      md.addNuisanceParameter("flip"+srs[isr]+"stat","flip","lnN","");
      md.addNuisanceParameter("T14t12"+srs[isr]+"stat","T14t12","lnN","");
      
    }
    else {
      md.addNuisanceParameter("ttW"+srs[isr]+"stat","ttW","gmN","-");
      md.addNuisanceParameter("ttHZ"+srs[isr]+"stat","ttHZ","lnN","-");
      md.addNuisanceParameter("WW"+srs[isr]+"stat","WW","lnN","-");
      md.addNuisanceParameter("XG"+srs[isr]+"stat","XG","lnN","-");
      md.addNuisanceParameter("rares"+srs[isr]+"stat","rares","lnN","-");
      md.addNuisanceParameter("fake"+srs[isr]+"stat","fake","lnN","-");
      md.addNuisanceParameter("flip"+srs[isr]+"stat","flip","lnN","-");
      md.addNuisanceParameter("T14t12"+srs[isr]+"stat","T14t12","lnN","-");
    }
  }//signal regions  

  //md.overwriteNuisanceParameter("ttWHHSR9stat","ttW","2.00");


  //===============================================================

  //*********************************************************************²
  //Execution macro ******************************************************
  
  //plotting ================
  md.dp.setLumiAndEnergy( lumi, energy );
   
  md.prepareDisplay();
  
  md.makeSingleDataCard("T14t12", "global_HHSR9", "selected", "ssdl2015_HHSR9_T14t12");


  gROOT->ProcessLine(".q");

}
예제 #3
0
void ssdl2015card_test() {
  md.refresh();


  //general parameters ********************* general parameters
  string dir="SSDL2015";
  string fileName="ssdl2fb_oct"; // not needed for statistics but provides the normalization
  string fileList="ssdl2fb_oct"; // put command line that gives all files as in a "ls" command

  bool mcOnly = false;
  
  md.anConf.configureNames( dir, fileName, fileList );
  md.anConf.configureData(false, 0, mcOnly);
  
  
  //Lumis( or XSections ) pb-1 & KFactors ************************************
  float lumi=1; //pb-1 19470
  float energy=13; //TeV

  bool useXS=false;

  //md.anConf.loadXSDB("XSectionsSpring15.db");

  map<string,float> LumisXS;

  //via XSect
  map<string,float> KFactors;
  

  md.anConf.configureLumi( LumisXS, KFactors, lumi, useXS );

  //===============================================================

  md.addDataCardSigSample("HHSR1:_standard_prompt_ttW","ttW");
  
  md.addDataCardSample("HHSR1:_standard_prompt_ttZH","rares");
  md.addDataCardSample("HHSR1:_standard_prompt_Rares","rares");
  md.addDataCardSample("HHSR1:_standard_prompt_WW", "WW");
  md.addDataCardSample("HHSR1:_standard_prompt_WZ", "WZ");
  md.addDataCardSample("HHSR1:_standard_prompt_TG", "TG");
  md.addDataCardSample("HHSR1:_standard_prompt_VG", "VG");
  md.addDataCardSample("HHSR1:_flipsappl_data", "flip");
  md.addDataCardSample("HHSR1:_fakesappl_data", "fake");


  md.addDataCardSample("HHSR1:_standard_prompt_ttZH","pseudodata");
  md.addDataCardSample("HHSR1:_standard_prompt_Rares","pseudodata");
  md.addDataCardSample("HHSR1:_standard_prompt_WW", "pseudodata");
  md.addDataCardSample("HHSR1:_standard_prompt_WZ", "pseudodata");
  md.addDataCardSample("HHSR1:_standard_prompt_TG", "pseudodata");
  md.addDataCardSample("HHSR1:_standard_prompt_VG", "pseudodata");
  md.addDataCardSample("HHSR1:_flipsappl_data", "pseudodata");
  md.addDataCardSample("HHSR1:_fakesappl_data", "pseudodata");

  //experimental uncertainties
  md.addNuisanceParameter("jes","ttW:rares","lnN","1.08:1.07");

  //Data-driven methods
  md.addNuisanceParameter("chMID","flip","lnN","1.30");
  md.addNuisanceParameter("fratio","fake","lnN","1.35");

  //syst from stat uncertainties == automatic
  //md.addNuisanceParameter("wzstat","wz","lnN",""); //--> already given by the 8/15% on Xsect
  // md.addNuisanceParameter("tthstat","tth","lnN","");
  // md.addNuisanceParameter("ttwstat","ttw","lnN","");
  // md.addNuisanceParameter("ttzstat","ttz","lnN","");
  // md.addNuisanceParameter("fakestat","fake","lnN","");
  // md.addNuisanceParameter("chMIdstat","chMId","lnN","");
  // md.addNuisanceParameter("SIGTAGstat","SIGTAG","lnN","");

  
  // string srs[66]={ 
  //   "SR1A", "SR2A", "SR3A", "SR4A", "SR5A", "SR6A", "SR7A", "SR8A",
  //   "SR9A", "SR10A", "SR11A", "SR12A", "SR13A", "SR14A", "SR15A", "SR16A",
  //   "SR17A", "SR18A", "SR19A", "SR20A", "SR21A", "SR22A", "SR23A", "SR24A",
  //   "SR25A", "SR26A", "SR27A", "SR28A", "SR29A", "SR30A", "SR31A", "SR32A",
    
  //   "SR1B", "SR2B", "SR3B", "SR4B", "SR5B", "SR6B", "SR7B", "SR8B",
  //   "SR9B", "SR10B", "SR11B", "SR12B", "SR13B", "SR14B", "SR15B", "SR16B",
  //   "SR17B", "SR18B", "SR19B", "SR20B", "SR21B", "SR22B", "SR23B", "SR24B",
  //   "SR25B","SR26B",
    
  //   "SR1C", "SR2C", "SR3C", "SR4C", "SR5C", "SR6C", "SR7C", "SR8C"
  // };



  // for(int isr=0;isr<66;isr++) {
  //   if(srs[isr]=="CATTAG") {
  //     md.addNuisanceParameter("tth"+srs[isr]+"stat","tth","lnN","");
  //     md.addNuisanceParameter("ttw"+srs[isr]+"stat","ttw","lnN","");
  //     md.addNuisanceParameter("ttz"+srs[isr]+"stat","ttz","lnN","");
  //     md.addNuisanceParameter("fake"+srs[isr]+"stat","fake","lnN","");
  //     md.addNuisanceParameter("chMId"+srs[isr]+"stat","chMId","lnN","");
  //     md.addNuisanceParameter("SIGTAG"+srs[isr]+"stat","SIGTAG","lnN","");
  //   }
  //   else {
  //     md.addNuisanceParameter("tth"+srs[isr]+"stat","tth","lnN","-");
  //     md.addNuisanceParameter("ttw"+srs[isr]+"stat","ttw","lnN","-");
  //     md.addNuisanceParameter("ttz"+srs[isr]+"stat","ttz","lnN","-");
  //     md.addNuisanceParameter("fake"+srs[isr]+"stat","fake","lnN","-");
  //     md.addNuisanceParameter("chMId"+srs[isr]+"stat","chMId","lnN","-");
  //     md.addNuisanceParameter("SIGTAG"+srs[isr]+"stat","SIGTAG","lnN","-");
  //   }
  // }//signal regions  


  // md.addNuisanceParameter("SIGTAGStat","SIGTAG","lnN","");
  // md.addNuisanceParameter("ttwStat","ttw","lnN","");
  // md.addNuisanceParameter("ttzStat","ttz","lnN","");
  // md.addNuisanceParameter("wzStat","wz","lnN","");

  //md.addNuisanceParameter("sigNorm","T1t415","lnN","1.10");


  // }
  //===============================================================

  //*********************************************************************²
  //Execution macro ******************************************************
  
  //plotting ================
  md.dp.setLumiAndEnergy( lumi, energy );
   
  md.prepareDisplay();
  
 //  int nCateg=66; //47
 //  vector<string> _categs(nCateg,"");
 
 // string srs[66]={ 

 //    "SR1A", "SR2A", "SR3A", "SR4A", "SR5A", "SR6A", "SR7A", "SR8A",
 //    "SR9A", "SR10A", "SR11A", "SR12A", "SR13A", "SR14A", "SR15A", "SR16A",
 //    "SR17A", "SR18A", "SR19A", "SR20A", "SR21A", "SR22A", "SR23A", "SR24A",
 //    "SR25A", "SR26A", "SR27A", "SR28A", "SR29A", "SR30A", "SR31A", "SR32A",
    
 //    "SR1B", "SR2B", "SR3B", "SR4B", "SR5B", "SR6B", "SR7B", "SR8B",
 //    "SR9B", "SR10B", "SR11B", "SR12B", "SR13B", "SR14B", "SR15B", "SR16B",
 //    "SR17B", "SR18B", "SR19B", "SR20B", "SR21B", "SR22B", "SR23B", "SR24B",
 //    "SR25B","SR26B",
    
 //    "SR1C", "SR2C", "SR3C", "SR4C", "SR5C", "SR6C", "SR7C", "SR8C"
 // }

  // _categs.assign(srs, srs+nCateg);
  // for(size_t ic=0;ic< _categs.size();ic++) {
  //   string cat=_categs[ic];
    md.makeSingleDataCard("ttW", "global_HHSR1", "selected", "ssdl2015_ttW");
  // }

  gROOT->ProcessLine(".q");

}
예제 #4
0
void dataCardProd_CATTAG_SIGTAG_LUMTAG() {
  md.refresh();


  //general parameters ********************* general parameters
  string dir="SSDL2015";
  string fileName="fakeEstim_SR"; // not needed for statistics but provides the normalization
  string fileList="fakeEstim_SR"; // put command line that gives all files as in a "ls" command

  bool mcOnly = false;
  
  md.anConf.configureNames( dir, fileName, fileList );
  md.anConf.configureData(false, 0, mcOnly);
  
  
  //Lumis( or XSections ) pb-1 & KFactors ************************************
  float lumi=LUMTAG; //pb-1 19470
  float energy=13; //TeV

  bool useXS=false;

  md.anConf.loadXSDB("XSectionsPhys14.db");

  map<string,float> LumisXS;

  //via XSect
  map<string,float> KFactors;
  

  md.anConf.configureLumi( LumisXS, KFactors, lumi, useXS );

  //===============================================================

  md.addDataCardSigSample("CATTAG:SIGNAME","SIGTAG");
  
  md.addDataCardSample("CATTAG:WZJetsTo3LNu", "wz");
  md.addDataCardSample("CATTAG:TTH", "tth");
  md.addDataCardSample("CATTAG:TTZJets", "ttz");
  md.addDataCardSample("CATTAG:TTWJets", "ttw");
  
  md.addDataCardSample("CATTAG:TTJetscharge", "chMId");
  md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT100to200charge", "chMId");
  md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT200to400charge", "chMId");
  md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT400to600charge", "chMId");
  md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT600toInfcharge", "chMId");

  md.addDataCardSample("CATTAG_Fake:TTJets", "fake");
  md.addDataCardSample("CATTAG_Fake:WJetsToLNu_HT100to200", "fake");
  md.addDataCardSample("CATTAG_Fake:WJetsToLNu_HT200to400", "fake");
  md.addDataCardSample("CATTAG_Fake:WJetsToLNu_HT400to600", "fake");
  md.addDataCardSample("CATTAG_Fake:WJetsToLNu_HT600toInf", "fake");
  md.addDataCardSample("CATTAG_Fake:DYJetsToLL_M50_HT100to200", "fake");
  md.addDataCardSample("CATTAG_Fake:DYJetsToLL_M50_HT200to400", "fake");
  md.addDataCardSample("CATTAG_Fake:DYJetsToLL_M50_HT400to600", "fake");
  md.addDataCardSample("CATTAG_Fake:DYJetsToLL_M50_HT600toInf", "fake");

  // md.addDataCardSample("CATTAG:TTJetsfake", "fake");
  // md.addDataCardSample("CATTAG:WJetsToLNu_HT100to200fake", "fake");
  // md.addDataCardSample("CATTAG:WJetsToLNu_HT200to400fake", "fake");
  // md.addDataCardSample("CATTAG:WJetsToLNu_HT400to600fake", "fake");
  // md.addDataCardSample("CATTAG:WJetsToLNu_HT600toInffake", "fake");
  // md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT100to200fake", "fake");
  // md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT200to400fake", "fake");
  // md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT400to600fake", "fake");
  // md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT600toInffake", "fake");
  
  md.addDataCardSample("CATTAG:WZJetsTo3LNu", "pseudodata");
  md.addDataCardSample("CATTAG:TTH", "pseudodata");
  md.addDataCardSample("CATTAG:TTZJets", "pseudodata");
  md.addDataCardSample("CATTAG:TTWJets", "pseudodata");
  md.addDataCardSample("CATTAG:TTJetscharge", "pseudodata");
  md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT100to200charge", "pseudodata");
  md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT200to400charge", "pseudodata");
  md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT400to600charge", "pseudodata");
  md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT600toInfcharge", "pseudodata");
  md.addDataCardSample("CATTAG_Fake:TTJets", "pseudodata");
  md.addDataCardSample("CATTAG_Fake:WJetsToLNu_HT100to200", "pseudodata");
  md.addDataCardSample("CATTAG_Fake:WJetsToLNu_HT200to400", "pseudodata");
  md.addDataCardSample("CATTAG_Fake:WJetsToLNu_HT400to600", "pseudodata");
  md.addDataCardSample("CATTAG_Fake:WJetsToLNu_HT600toInf", "pseudodata");
  md.addDataCardSample("CATTAG_Fake:DYJetsToLL_M50_HT100to200", "pseudodata");
  md.addDataCardSample("CATTAG_Fake:DYJetsToLL_M50_HT200to400", "pseudodata");
  md.addDataCardSample("CATTAG_Fake:DYJetsToLL_M50_HT400to600", "pseudodata");
  md.addDataCardSample("CATTAG_Fake:DYJetsToLL_M50_HT600toInf", "pseudodata");
  // md.addDataCardSample("CATTAG:TTJetsfake", "pseudodata");
  // md.addDataCardSample("CATTAG:WJetsToLNu_HT100to200fake", "pseudodata");
  // md.addDataCardSample("CATTAG:WJetsToLNu_HT200to400fake", "pseudodata");
  // md.addDataCardSample("CATTAG:WJetsToLNu_HT400to600fake", "pseudodata");
  // md.addDataCardSample("CATTAG:WJetsToLNu_HT600toInffake", "pseudodata");
  // md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT100to200fake", "pseudodata");
  // md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT200to400fake", "pseudodata");
  // md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT400to600fake", "pseudodata");
  // md.addDataCardSample("CATTAG:DYJetsToLL_M50_HT600toInffake", "pseudodata");


  //experimental uncertainties
  md.addNuisanceParameter("jes","ttw:ttz:SIGTAG","lnN","JESTAG");

  //extrapolation uncertainties
  md.addNuisanceParameter("ttwTail","ttw","lnN","TTWTAILTAG");
  md.addNuisanceParameter("ttzTail","ttz","lnN","TTZTAILTAG");
  md.addNuisanceParameter("wzB","wz","lnN","WZBTAG");

  //flat uncertainties -> cross sections
  // md.addNuisanceParameter("ttwNorm","ttw","lnN","1.1"); //->merged with the "tail" source
  // md.addNuisanceParameter("ttwNorm","ttz","lnN","1.1");
  md.addNuisanceParameter("wzNorm","wz","lnN","WZLUMITAG");
  
  //Data-driven methods
  md.addNuisanceParameter("chMID","chMId","lnN","1.50");
  md.addNuisanceParameter("fratio","fake","lnN","1.40");

  //syst from stat uncertainties == automatic
  //md.addNuisanceParameter("wzstat","wz","lnN",""); //--> already given by the 8/15% on Xsect
  // md.addNuisanceParameter("tthstat","tth","lnN","");
  // md.addNuisanceParameter("ttwstat","ttw","lnN","");
  // md.addNuisanceParameter("ttzstat","ttz","lnN","");
  // md.addNuisanceParameter("fakestat","fake","lnN","");
  // md.addNuisanceParameter("chMIdstat","chMId","lnN","");
  // md.addNuisanceParameter("SIGTAGstat","SIGTAG","lnN","");

  
  string srs[66]={ 
    "SR1A", "SR2A", "SR3A", "SR4A", "SR5A", "SR6A", "SR7A", "SR8A",
    "SR9A", "SR10A", "SR11A", "SR12A", "SR13A", "SR14A", "SR15A", "SR16A",
    "SR17A", "SR18A", "SR19A", "SR20A", "SR21A", "SR22A", "SR23A", "SR24A",
    "SR25A", "SR26A", "SR27A", "SR28A", "SR29A", "SR30A", "SR31A", "SR32A",
    
    "SR1B", "SR2B", "SR3B", "SR4B", "SR5B", "SR6B", "SR7B", "SR8B",
    "SR9B", "SR10B", "SR11B", "SR12B", "SR13B", "SR14B", "SR15B", "SR16B",
    "SR17B", "SR18B", "SR19B", "SR20B", "SR21B", "SR22B", "SR23B", "SR24B",
    "SR25B","SR26B",
    
    "SR1C", "SR2C", "SR3C", "SR4C", "SR5C", "SR6C", "SR7C", "SR8C"
  };



  for(int isr=0;isr<66;isr++) {
    if(srs[isr]=="CATTAG") {
      md.addNuisanceParameter("tth"+srs[isr]+"stat","tth","lnN","");
      md.addNuisanceParameter("ttw"+srs[isr]+"stat","ttw","lnN","");
      md.addNuisanceParameter("ttz"+srs[isr]+"stat","ttz","lnN","");
      md.addNuisanceParameter("fake"+srs[isr]+"stat","fake","lnN","");
      md.addNuisanceParameter("chMId"+srs[isr]+"stat","chMId","lnN","");
      md.addNuisanceParameter("SIGTAG"+srs[isr]+"stat","SIGTAG","lnN","");
    }
    else {
      md.addNuisanceParameter("tth"+srs[isr]+"stat","tth","lnN","-");
      md.addNuisanceParameter("ttw"+srs[isr]+"stat","ttw","lnN","-");
      md.addNuisanceParameter("ttz"+srs[isr]+"stat","ttz","lnN","-");
      md.addNuisanceParameter("fake"+srs[isr]+"stat","fake","lnN","-");
      md.addNuisanceParameter("chMId"+srs[isr]+"stat","chMId","lnN","-");
      md.addNuisanceParameter("SIGTAG"+srs[isr]+"stat","SIGTAG","lnN","-");
    }
  }//signal regions  


  // md.addNuisanceParameter("SIGTAGStat","SIGTAG","lnN","");
  // md.addNuisanceParameter("ttwStat","ttw","lnN","");
  // md.addNuisanceParameter("ttzStat","ttz","lnN","");
  // md.addNuisanceParameter("wzStat","wz","lnN","");

  //md.addNuisanceParameter("sigNorm","T1t415","lnN","1.10");


  // }
  //===============================================================

  //*********************************************************************²
  //Execution macro ******************************************************
  
  //plotting ================
  md.dp.setLumiAndEnergy( lumi, energy );
   
  md.prepareDisplay();
  
 //  int nCateg=66; //47
 //  vector<string> _categs(nCateg,"");
 
 // string srs[66]={ 

 //    "SR1A", "SR2A", "SR3A", "SR4A", "SR5A", "SR6A", "SR7A", "SR8A",
 //    "SR9A", "SR10A", "SR11A", "SR12A", "SR13A", "SR14A", "SR15A", "SR16A",
 //    "SR17A", "SR18A", "SR19A", "SR20A", "SR21A", "SR22A", "SR23A", "SR24A",
 //    "SR25A", "SR26A", "SR27A", "SR28A", "SR29A", "SR30A", "SR31A", "SR32A",
    
 //    "SR1B", "SR2B", "SR3B", "SR4B", "SR5B", "SR6B", "SR7B", "SR8B",
 //    "SR9B", "SR10B", "SR11B", "SR12B", "SR13B", "SR14B", "SR15B", "SR16B",
 //    "SR17B", "SR18B", "SR19B", "SR20B", "SR21B", "SR22B", "SR23B", "SR24B",
 //    "SR25B","SR26B",
    
 //    "SR1C", "SR2C", "SR3C", "SR4C", "SR5C", "SR6C", "SR7C", "SR8C"
 // }

  // _categs.assign(srs, srs+nCateg);
  // for(size_t ic=0;ic< _categs.size();ic++) {
  //   string cat=_categs[ic];
    md.makeSingleDataCard("SIGTAG", "nominal", "selected", "ssdl2015_CATTAG_SIGTAG_LUMTAG");
  // }

  gROOT->ProcessLine(".q");

}