//Creates rootFile with a TTree with the ouput of MVA in it.
void MVAOutput(string Cat = "NoEleMatch_woGwoGSF_Barrel"
	       )
{
//   TChain *inputTree = new TChain("TrainTree");
  TChain *inputTree = new TChain("TestTree");
  TString pathToFile = "tmva/tmvaRoot/";
//   inputTree->Add(pathToFile+Form("/TMVA_v14EleVeto_%s.root",Cat.data()));
  inputTree->Add(pathToFile+Form("/V18/TMVA_v18EleVeto_%s.root",Cat.data()));
  if(inputTree->IsZombie()){
    cout<<"ZOOOOMBIEEE"<<endl;
    return;
  }

  int nEntries = inputTree->GetEntries();

//   std::string outputFileName = Form("/data_CMS/cms/ivo/AntiEMVANewTraining/MVAOutput/V14/MvaOutput_Test_%s.root",Cat.data());
  std::string outputFileName = Form("/data_CMS/cms/ivo/AntiEMVANewTraining/MVAOutput/V18/MvaOutput_All-TestTree_%s.root",Cat.data());
  
  TFile* outputFile = new TFile (outputFileName.data(),"RECREATE");
  TTree* mytree = new TTree("tree", "tree");

  float t_NoEleMatch_woGwoGSF_Barrel;
  float t_NoEleMatch_woGwGSF_Barrel;
  float t_NoEleMatch_wGwoGSF_Barrel;
  float t_NoEleMatch_wGwGSF_Barrel;
  float t_woGwoGSF_Barrel;
  float t_woGwGSF_Barrel;
  float t_wGwoGSF_Barrel;
  float t_wGwGSF_Barrel;
  float t_NoEleMatch_woGwoGSF_Endcap;
  float t_NoEleMatch_woGwGSF_Endcap;
  float t_NoEleMatch_wGwoGSF_Endcap;
  float t_NoEleMatch_wGwGSF_Endcap;
  float t_woGwoGSF_Endcap;
  float t_woGwGSF_Endcap;
  float t_wGwoGSF_Endcap;
  float t_wGwGSF_Endcap;

  int t_classID;

  mytree->Branch("NoEleMatch_woGwoGSF_Barrel",&t_NoEleMatch_woGwoGSF_Barrel,"NoEleMatch_woGwoGSF_Barrel/F");
  mytree->Branch("NoEleMatch_woGwGSF_Barrel",&t_NoEleMatch_woGwGSF_Barrel,"NoEleMatch_woGwGSF_Barrel/F");
  mytree->Branch("NoEleMatch_wGwoGSF_Barrel",&t_NoEleMatch_wGwoGSF_Barrel,"NoEleMatch_wGwoGSF_Barrel/F");
  mytree->Branch("NoEleMatch_wGwGSF_Barrel",&t_NoEleMatch_wGwGSF_Barrel,"NoEleMatch_wGwGSF_Barrel/F");
  mytree->Branch("woGwoGSF_Barrel",&t_woGwoGSF_Barrel,"woGwoGSF_Barrel/F");
  mytree->Branch("woGwGSF_Barrel",&t_woGwGSF_Barrel,"woGwGSF_Barrel/F");
  mytree->Branch("wGwoGSF_Barrel",&t_wGwoGSF_Barrel,"wGwoGSF_Barrel/F");
  mytree->Branch("wGwGSF_Barrel",&t_wGwGSF_Barrel,"wGwGSF_Barrel/F");
  mytree->Branch("NoEleMatch_woGwoGSF_Endcap",&t_NoEleMatch_woGwoGSF_Endcap,"NoEleMatch_woGwoGSF_Endcap/F");
  mytree->Branch("NoEleMatch_woGwGSF_Endcap",&t_NoEleMatch_woGwGSF_Endcap,"NoEleMatch_woGwGSF_Endcap/F");
  mytree->Branch("NoEleMatch_wGwoGSF_Endcap",&t_NoEleMatch_wGwoGSF_Endcap,"NoEleMatch_wGwoGSF_Endcap/F");
  mytree->Branch("NoEleMatch_wGwGSF_Endcap",&t_NoEleMatch_wGwGSF_Endcap,"NoEleMatch_wGwGSF_Endcap/F");
  mytree->Branch("woGwoGSF_Endcap",&t_woGwoGSF_Endcap,"woGwoGSF_Endcap/F");
  mytree->Branch("woGwGSF_Endcap",&t_woGwGSF_Endcap,"woGwGSF_Endcap/F");
  mytree->Branch("wGwoGSF_Endcap",&t_wGwoGSF_Endcap,"wGwoGSF_Endcap/F");
  mytree->Branch("wGwGSF_Endcap",&t_wGwGSF_Endcap,"wGwGSF_Endcap/F");

  mytree->Branch("classID",&t_classID,"classID/I");

//   float Tau_EtaAtEcalEntrance;
//   float Tau_Pt;
//   float Tau_EmFraction; 
//   float Tau_HadrHoP; 
//   float Tau_HadrEoP; 
//   float Tau_VisMass; 
  float Tau_dCrackPhi;
  float Tau_dCrackEta;
//   float Tau_DecayMode; 
  float Tau_NumHitsVariable;

//   //PFTaus variables

  inputTree->SetBranchAddress("Tau_dCrackEta", &Tau_dCrackEta); 
  inputTree->SetBranchAddress("Tau_dCrackPhi", &Tau_dCrackPhi); 
  inputTree->SetBranchAddress("_Tau_GSFNumHits_M_Tau_KFNumHits__D__Tau_GSFNumHits_P_Tau_KFNumHits_", &Tau_NumHitsVariable); 


  int Tau_GsfEleMatch;
  int Tau_GenEleMatch;
  int Tau_GenEleFromZMatch;
  int Tau_GenEleFromZTauTauMatch;
  int Tau_GenHadMatch;
  int Tau_GenJetMatch;
//   float Tau_AbsEta;
  float Tau_Eta;
  float Tau_EtaAtEcalEntrance;
  float Tau_PhiAtEcalEntrance;
  float Tau_Pt;
  float Tau_KFNumHits; 
  float Tau_HasGsf; 
  float Tau_GSFChi2; 
  float Tau_GSFNumHits; 
  float Tau_GSFTrackResol; 
  float Tau_GSFTracklnPt; 
  float Tau_GSFTrackEta; 
  float Tau_EmFraction; 
  float Tau_NumChargedCands;
  float Tau_NumGammaCands; 
  float Tau_HadrHoP; 
  float Tau_HadrEoP; 
  float Tau_VisMass; 
  float Tau_GammaEtaMom;
  float Tau_GammaPhiMom;
  float Tau_GammaEnFrac;
  float Tau_HadrMva; 
//   float Tau_IsoMVALoose; 
  float Tau_LooseComb3HitsIso; 
  float Tau_AntiELoose; 
  float Tau_AntiEMedium; 
  float Tau_AntiETight; 
  float Tau_AntiELooseMVA3; 
  float Tau_AntiEMediumMVA3; 
  float Tau_AntiETightMVA3; 
  float Tau_AntiEVTightMVA3; 
  float Tau_MatchElePassVeto; 
  float Tau_DecayMode; 


  float Elec_AbsEta;
  float Elec_Pt;
  float Elec_HasSC;
  float Elec_PFMvaOutput;
  float Elec_EtotOverPin;
  float Elec_EeOverPout;
  float Elec_EgammaOverPdif;
  int Elec_EarlyBrem;//
  int Elec_LateBrem;//
  float Elec_Logsihih;
  float Elec_DeltaEta;
  float Elec_HoHplusE;
  float Elec_Fbrem;
  float Elec_HasGSF;
  float Elec_Chi2GSF;
  float Elec_GSFNumHits;
  float Elec_GSFTrackResol;
  float Elec_GSFTracklnPt;
  float Elec_GSFTrackEta;

  float ElecVeto_Pt;

  int classID;


  //GsfElectron variables

  inputTree->SetBranchAddress("Elec_AbsEta", &Elec_AbsEta);
  inputTree->SetBranchAddress("Elec_Pt", &Elec_Pt);
  inputTree->SetBranchAddress("Elec_HasSC", &Elec_HasSC);
  inputTree->SetBranchAddress("Elec_PFMvaOutput", &Elec_PFMvaOutput);
  inputTree->SetBranchAddress("Elec_EtotOverPin", &Elec_EtotOverPin);
  inputTree->SetBranchAddress("Elec_EeOverPout", &Elec_EeOverPout);
  inputTree->SetBranchAddress("Elec_EgammaOverPdif", &Elec_EgammaOverPdif);
  inputTree->SetBranchAddress("Elec_EarlyBrem", &Elec_EarlyBrem);
  inputTree->SetBranchAddress("Elec_LateBrem", &Elec_LateBrem);
  inputTree->SetBranchAddress("Elec_Logsihih", &Elec_Logsihih);
  inputTree->SetBranchAddress("Elec_DeltaEta", &Elec_DeltaEta);
  inputTree->SetBranchAddress("Elec_HoHplusE", &Elec_HoHplusE);
  inputTree->SetBranchAddress("Elec_Fbrem", &Elec_Fbrem);
  inputTree->SetBranchAddress("Elec_HasGSF", &Elec_HasGSF);
  inputTree->SetBranchAddress("Elec_Chi2GSF", &Elec_Chi2GSF);
  inputTree->SetBranchAddress("Elec_GSFNumHits", &Elec_GSFNumHits);
  inputTree->SetBranchAddress("Elec_GSFTrackResol", &Elec_GSFTrackResol);
  inputTree->SetBranchAddress("Elec_GSFTracklnPt", &Elec_GSFTracklnPt);
  inputTree->SetBranchAddress("Elec_GSFTrackEta", &Elec_GSFTrackEta);


  //PFTaus variables

  inputTree->SetBranchAddress("Tau_GsfEleMatch", &Tau_GsfEleMatch);
  inputTree->SetBranchAddress("Tau_GenEleMatch", &Tau_GenEleMatch);
  inputTree->SetBranchAddress("Tau_GenEleFromZMatch", &Tau_GenEleFromZMatch);
  inputTree->SetBranchAddress("Tau_GenEleFromZTauTauMatch", &Tau_GenEleFromZTauTauMatch);
  inputTree->SetBranchAddress("Tau_GenHadMatch", &Tau_GenHadMatch);
  inputTree->SetBranchAddress("Tau_GenJetMatch", &Tau_GenJetMatch);
  inputTree->SetBranchAddress("Tau_EtaAtEcalEntrance", &Tau_EtaAtEcalEntrance);
  inputTree->SetBranchAddress("Tau_PhiAtEcalEntrance", &Tau_PhiAtEcalEntrance);
  inputTree->SetBranchAddress("Tau_Pt", &Tau_Pt);
  inputTree->SetBranchAddress("Tau_Eta", &Tau_Eta);
  inputTree->SetBranchAddress("Tau_HasGsf", &Tau_HasGsf); 
  inputTree->SetBranchAddress("Tau_GSFChi2", &Tau_GSFChi2);
  inputTree->SetBranchAddress("Tau_GSFNumHits", &Tau_GSFNumHits);
  inputTree->SetBranchAddress("Tau_GSFTrackResol", &Tau_GSFTrackResol);
  inputTree->SetBranchAddress("Tau_GSFTracklnPt", &Tau_GSFTracklnPt);
  inputTree->SetBranchAddress("Tau_GSFTrackEta", &Tau_GSFTrackEta);
  inputTree->SetBranchAddress("Tau_KFNumHits", &Tau_KFNumHits);
  inputTree->SetBranchAddress("Tau_EmFraction", &Tau_EmFraction); 
  inputTree->SetBranchAddress("Tau_NumChargedCands", &Tau_NumChargedCands);
  inputTree->SetBranchAddress("Tau_NumGammaCands", &Tau_NumGammaCands); 
  inputTree->SetBranchAddress("Tau_HadrHoP", &Tau_HadrHoP); 
  inputTree->SetBranchAddress("Tau_HadrEoP", &Tau_HadrEoP); 
  inputTree->SetBranchAddress("Tau_VisMass", &Tau_VisMass); 
  inputTree->SetBranchAddress("Tau_GammaEtaMom", &Tau_GammaEtaMom);
  inputTree->SetBranchAddress("Tau_GammaPhiMom", &Tau_GammaPhiMom);
  inputTree->SetBranchAddress("Tau_GammaEnFrac", &Tau_GammaEnFrac);
  inputTree->SetBranchAddress("Tau_HadrMva", &Tau_HadrMva);  
//   inputTree->SetBranchAddress("Tau_IsoMVALoose", &Tau_IsoMVALoose); 
  inputTree->SetBranchAddress("Tau_LooseComb3HitsIso", &Tau_LooseComb3HitsIso); 
  inputTree->SetBranchAddress("Tau_AntiELoose", &Tau_AntiELoose); 
  inputTree->SetBranchAddress("Tau_AntiEMedium", &Tau_AntiEMedium); 
  inputTree->SetBranchAddress("Tau_AntiETight", &Tau_AntiETight); 
  inputTree->SetBranchAddress("Tau_AntiELooseMVA3", &Tau_AntiELooseMVA3); 
  inputTree->SetBranchAddress("Tau_AntiEMediumMVA3", &Tau_AntiEMediumMVA3); 
  inputTree->SetBranchAddress("Tau_AntiETightMVA3", &Tau_AntiETightMVA3); 
  inputTree->SetBranchAddress("Tau_AntiEVTightMVA3", &Tau_AntiEVTightMVA3); 

  inputTree->SetBranchAddress("ElecVeto_Pt",&ElecVeto_Pt);

  inputTree->SetBranchAddress("Tau_DecayMode", &Tau_DecayMode); 
  inputTree->SetBranchAddress("Tau_MatchElePassVeto", &Tau_MatchElePassVeto); 

  inputTree->SetBranchAddress("classID", &classID); 

  inputTree->SetBranchStatus("*", 1);

//   string Weight_NoEleMatch_woGwoGSF_BL = "tmva/weights/V14/TMVAClassification_v14EleVeto_NoEleMatch_woGwoGSF_Barrel_BDTG.weights.xml";
//   string Weight_NoEleMatch_woGwGSF_BL = "tmva/weights/V14/TMVAClassification_v14EleVeto_NoEleMatch_woGwGSF_Barrel_BDTG.weights.xml";
//   string Weight_NoEleMatch_wGwoGSF_BL = "tmva/weights/V14/TMVAClassification_v14EleVeto_NoEleMatch_wGwoGSF_Barrel_BDTG.weights.xml";
//   string Weight_NoEleMatch_wGwGSF_BL = "tmva/weights/V14/TMVAClassification_v14EleVeto_NoEleMatch_wGwGSF_Barrel_BDTG.weights.xml";
//   string Weight_woGwoGSF_BL = "tmva/weights/V14/TMVAClassification_v14EleVeto_woGwoGSF_Barrel_BDTG.weights.xml";
//   string Weight_woGwGSF_BL = "tmva/weights/V14/TMVAClassification_v14EleVeto_woGwGSF_Barrel_BDTG.weights.xml";
//   string Weight_wGwoGSF_BL = "tmva/weights/V14/TMVAClassification_v14EleVeto_wGwoGSF_Barrel_BDTG.weights.xml";
//   string Weight_wGwGSF_BL = "tmva/weights/V14/TMVAClassification_v14EleVeto_wGwGSF_Barrel_BDTG.weights.xml";
//   string Weight_NoEleMatch_woGwoGSF_EC = "tmva/weights/V14/TMVAClassification_v14EleVeto_NoEleMatch_woGwoGSF_Endcap_BDTG.weights.xml";
//   string Weight_NoEleMatch_woGwGSF_EC = "tmva/weights/V14/TMVAClassification_v14EleVeto_NoEleMatch_woGwGSF_Endcap_BDTG.weights.xml";
//   string Weight_NoEleMatch_wGwoGSF_EC = "tmva/weights/V14/TMVAClassification_v14EleVeto_NoEleMatch_wGwoGSF_Endcap_BDTG.weights.xml";
//   string Weight_NoEleMatch_wGwGSF_EC = "tmva/weights/V14/TMVAClassification_v14EleVeto_NoEleMatch_wGwGSF_Endcap_BDTG.weights.xml";
//   string Weight_woGwoGSF_EC = "tmva/weights/V14/TMVAClassification_v14EleVeto_woGwoGSF_Endcap_BDTG.weights.xml";
//   string Weight_woGwGSF_EC = "tmva/weights/V14/TMVAClassification_v14EleVeto_woGwGSF_Endcap_BDTG.weights.xml";
//   string Weight_wGwoGSF_EC = "tmva/weights/V14/TMVAClassification_v14EleVeto_wGwoGSF_Endcap_BDTG.weights.xml";
//   string Weight_wGwGSF_EC = "tmva/weights/V14/TMVAClassification_v14EleVeto_wGwGSF_Endcap_BDTG.weights.xml";

  string Weight_NoEleMatch_woGwoGSF_BL = "tmva/weights/V18/TMVAClassification_v18EleVeto_NoEleMatch_woGwoGSF_Barrel_BDTG.weights.xml";
  string Weight_NoEleMatch_woGwGSF_BL = "tmva/weights/V18/TMVAClassification_v18EleVeto_NoEleMatch_woGwGSF_Barrel_BDTG.weights.xml";
  string Weight_NoEleMatch_wGwoGSF_BL = "tmva/weights/V18/TMVAClassification_v18EleVeto_NoEleMatch_wGwoGSF_Barrel_BDTG.weights.xml";
  string Weight_NoEleMatch_wGwGSF_BL = "tmva/weights/V18/TMVAClassification_v18EleVeto_NoEleMatch_wGwGSF_Barrel_BDTG.weights.xml";
  string Weight_woGwoGSF_BL = "tmva/weights/V18/TMVAClassification_v18EleVeto_woGwoGSF_Barrel_BDTG.weights.xml";
  string Weight_woGwGSF_BL = "tmva/weights/V18/TMVAClassification_v18EleVeto_woGwGSF_Barrel_BDTG.weights.xml";
  string Weight_wGwoGSF_BL = "tmva/weights/V18/TMVAClassification_v18EleVeto_wGwoGSF_Barrel_BDTG.weights.xml";
  string Weight_wGwGSF_BL = "tmva/weights/V18/TMVAClassification_v18EleVeto_wGwGSF_Barrel_BDTG.weights.xml";
  string Weight_NoEleMatch_woGwoGSF_EC = "tmva/weights/V18/TMVAClassification_v18EleVeto_NoEleMatch_woGwoGSF_Endcap_BDTG.weights.xml";
  string Weight_NoEleMatch_woGwGSF_EC = "tmva/weights/V18/TMVAClassification_v18EleVeto_NoEleMatch_woGwGSF_Endcap_BDTG.weights.xml";
  string Weight_NoEleMatch_wGwoGSF_EC = "tmva/weights/V18/TMVAClassification_v18EleVeto_NoEleMatch_wGwoGSF_Endcap_BDTG.weights.xml";
  string Weight_NoEleMatch_wGwGSF_EC = "tmva/weights/V18/TMVAClassification_v18EleVeto_NoEleMatch_wGwGSF_Endcap_BDTG.weights.xml";
  string Weight_woGwoGSF_EC = "tmva/weights/V18/TMVAClassification_v18EleVeto_woGwoGSF_Endcap_BDTG.weights.xml";
  string Weight_woGwGSF_EC = "tmva/weights/V18/TMVAClassification_v18EleVeto_woGwGSF_Endcap_BDTG.weights.xml";
  string Weight_wGwoGSF_EC = "tmva/weights/V18/TMVAClassification_v18EleVeto_wGwoGSF_Endcap_BDTG.weights.xml";
  string Weight_wGwGSF_EC = "tmva/weights/V18/TMVAClassification_v18EleVeto_wGwGSF_Endcap_BDTG.weights.xml";

  TMVA::Reader *reader_NoEleMatch_woGwoGSF_BL = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_NoEleMatch_woGwoGSF_BL->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_NoEleMatch_woGwoGSF_BL->AddVariable("Tau_Pt",&Tau_Pt);
  reader_NoEleMatch_woGwoGSF_BL->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_NoEleMatch_woGwoGSF_BL->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_NoEleMatch_woGwoGSF_BL->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_NoEleMatch_woGwoGSF_BL->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_NoEleMatch_woGwoGSF_BL->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
  reader_NoEleMatch_woGwoGSF_BL->AddVariable("Tau_dCrackPhi",&Tau_dCrackPhi);
//   reader_NoEleMatch_woGwoGSF_BL->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_NoEleMatch_woGwoGSF_BL->SetVerbose(kTRUE);
  reader_NoEleMatch_woGwoGSF_BL->BookMVA("BDTG",Weight_NoEleMatch_woGwoGSF_BL);


  TMVA::Reader *reader_NoEleMatch_woGwGSF_BL = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_Pt",&Tau_Pt);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_HadrMva",&Tau_HadrMva);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_GSFChi2",&Tau_GSFChi2);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("(Tau_GSFNumHits - Tau_KFNumHits)/(Tau_GSFNumHits + Tau_KFNumHits)",&Tau_NumHitsVariable);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_GSFTrackResol",&Tau_GSFTrackResol);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_GSFTracklnPt",&Tau_GSFTracklnPt);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_GSFTrackEta",&Tau_GSFTrackEta);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
  reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_dCrackPhi",&Tau_dCrackPhi);
//   reader_NoEleMatch_woGwGSF_BL->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_NoEleMatch_woGwGSF_BL->SetVerbose(kTRUE);
  reader_NoEleMatch_woGwGSF_BL->BookMVA("BDTG",Weight_NoEleMatch_woGwGSF_BL);

  TMVA::Reader *reader_NoEleMatch_wGwoGSF_BL = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_Pt",&Tau_Pt);
  reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_NumGammaCands",&Tau_NumGammaCands);
  reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_GammaEtaMom",&Tau_GammaEtaMom);
  reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_GammaPhiMom",&Tau_GammaPhiMom);
  reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_GammaEnFrac",&Tau_GammaEnFrac);
  reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
  reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_dCrackPhi",&Tau_dCrackPhi);
//   reader_NoEleMatch_wGwoGSF_BL->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_NoEleMatch_wGwoGSF_BL->SetVerbose(kTRUE);
  reader_NoEleMatch_wGwoGSF_BL->BookMVA("BDTG",Weight_NoEleMatch_wGwoGSF_BL);

  TMVA::Reader *reader_NoEleMatch_wGwGSF_BL = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_Pt",&Tau_Pt);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_NumGammaCands",&Tau_NumGammaCands);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_HadrMva",&Tau_HadrMva);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_GammaEtaMom",&Tau_GammaEtaMom);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_GammaPhiMom",&Tau_GammaPhiMom);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_GammaEnFrac",&Tau_GammaEnFrac);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_GSFChi2",&Tau_GSFChi2);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("(Tau_GSFNumHits - Tau_KFNumHits)/(Tau_GSFNumHits + Tau_KFNumHits)",&Tau_NumHitsVariable);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_GSFTrackResol",&Tau_GSFTrackResol);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_GSFTracklnPt",&Tau_GSFTracklnPt);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_GSFTrackEta",&Tau_GSFTrackEta);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
  reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_dCrackPhi",&Tau_dCrackPhi);
//   reader_NoEleMatch_wGwGSF_BL->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_NoEleMatch_wGwGSF_BL->SetVerbose(kTRUE);
  reader_NoEleMatch_wGwGSF_BL->BookMVA("BDTG",Weight_NoEleMatch_wGwGSF_BL);

  TMVA::Reader *reader_woGwoGSF_BL = new TMVA::Reader( "!Color:!Silent:Error" );
  reader_woGwoGSF_BL->AddVariable("Elec_EtotOverPin",&Elec_EtotOverPin);
  reader_woGwoGSF_BL->AddVariable("Elec_EgammaOverPdif",&Elec_EgammaOverPdif);
  reader_woGwoGSF_BL->AddVariable("Elec_Fbrem",&Elec_Fbrem);
  reader_woGwoGSF_BL->AddVariable("Elec_Chi2GSF",&Elec_Chi2GSF);
  reader_woGwoGSF_BL->AddVariable("Elec_GSFNumHits",&Elec_GSFNumHits);
  reader_woGwoGSF_BL->AddVariable("Elec_GSFTrackResol",&Elec_GSFTrackResol);
  reader_woGwoGSF_BL->AddVariable("Elec_GSFTracklnPt",&Elec_GSFTracklnPt);
  reader_woGwoGSF_BL->AddVariable("Elec_GSFTrackEta",&Elec_GSFTrackEta);
  reader_woGwoGSF_BL->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_woGwoGSF_BL->AddVariable("Tau_Pt",&Tau_Pt);
  reader_woGwoGSF_BL->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_woGwoGSF_BL->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_woGwoGSF_BL->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_woGwoGSF_BL->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_woGwoGSF_BL->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
  reader_woGwoGSF_BL->AddVariable("Tau_dCrackPhi",&Tau_dCrackPhi);
//   reader_woGwoGSF_BL->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_woGwoGSF_BL->SetVerbose(kTRUE);
  reader_woGwoGSF_BL->BookMVA("BDTG",Weight_woGwoGSF_BL);

  TMVA::Reader *reader_woGwGSF_BL = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_woGwGSF_BL->AddVariable("Elec_EtotOverPin",&Elec_EtotOverPin);
  reader_woGwGSF_BL->AddVariable("Elec_EgammaOverPdif",&Elec_EgammaOverPdif);
  reader_woGwGSF_BL->AddVariable("Elec_Fbrem",&Elec_Fbrem);
  reader_woGwGSF_BL->AddVariable("Elec_Chi2GSF",&Elec_Chi2GSF);
  reader_woGwGSF_BL->AddVariable("Elec_GSFNumHits",&Elec_GSFNumHits);
  reader_woGwGSF_BL->AddVariable("Elec_GSFTrackResol",&Elec_GSFTrackResol);
  reader_woGwGSF_BL->AddVariable("Elec_GSFTracklnPt",&Elec_GSFTracklnPt);
  reader_woGwGSF_BL->AddVariable("Elec_GSFTrackEta",&Elec_GSFTrackEta);
  reader_woGwGSF_BL->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_woGwGSF_BL->AddVariable("Tau_Pt",&Tau_Pt);
  reader_woGwGSF_BL->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_woGwGSF_BL->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_woGwGSF_BL->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_woGwGSF_BL->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_woGwGSF_BL->AddVariable("Tau_HadrMva",&Tau_HadrMva);
  reader_woGwGSF_BL->AddVariable("Tau_GSFChi2",&Tau_GSFChi2);
  reader_woGwGSF_BL->AddVariable("(Tau_GSFNumHits - Tau_KFNumHits)/(Tau_GSFNumHits + Tau_KFNumHits)",&Tau_NumHitsVariable);
  reader_woGwGSF_BL->AddVariable("Tau_GSFTrackResol",&Tau_GSFTrackResol);
  reader_woGwGSF_BL->AddVariable("Tau_GSFTracklnPt",&Tau_GSFTracklnPt);
  reader_woGwGSF_BL->AddVariable("Tau_GSFTrackEta",&Tau_GSFTrackEta);
  reader_woGwGSF_BL->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
  reader_woGwGSF_BL->AddVariable("Tau_dCrackPhi",&Tau_dCrackPhi);
//   reader_woGwGSF_BL->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_woGwGSF_BL->SetVerbose(kTRUE);
  reader_woGwGSF_BL->BookMVA("BDTG",Weight_woGwGSF_BL);

  TMVA::Reader *reader_wGwoGSF_BL = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_wGwoGSF_BL->AddVariable("Elec_EtotOverPin",&Elec_EtotOverPin);
  reader_wGwoGSF_BL->AddVariable("Elec_EgammaOverPdif",&Elec_EgammaOverPdif);
  reader_wGwoGSF_BL->AddVariable("Elec_Fbrem",&Elec_Fbrem);
  reader_wGwoGSF_BL->AddVariable("Elec_Chi2GSF",&Elec_Chi2GSF);
  reader_wGwoGSF_BL->AddVariable("Elec_GSFNumHits",&Elec_GSFNumHits);
  reader_wGwoGSF_BL->AddVariable("Elec_GSFTrackResol",&Elec_GSFTrackResol);
  reader_wGwoGSF_BL->AddVariable("Elec_GSFTracklnPt",&Elec_GSFTracklnPt);
  reader_wGwoGSF_BL->AddVariable("Elec_GSFTrackEta",&Elec_GSFTrackEta);
  reader_wGwoGSF_BL->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_wGwoGSF_BL->AddVariable("Tau_Pt",&Tau_Pt);
  reader_wGwoGSF_BL->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_wGwoGSF_BL->AddVariable("Tau_NumGammaCands",&Tau_NumGammaCands);
  reader_wGwoGSF_BL->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_wGwoGSF_BL->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_wGwoGSF_BL->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_wGwoGSF_BL->AddVariable("Tau_GammaEtaMom",&Tau_GammaEtaMom);
  reader_wGwoGSF_BL->AddVariable("Tau_GammaPhiMom",&Tau_GammaPhiMom);
  reader_wGwoGSF_BL->AddVariable("Tau_GammaEnFrac",&Tau_GammaEnFrac);
  reader_wGwoGSF_BL->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
  reader_wGwoGSF_BL->AddVariable("Tau_dCrackPhi",&Tau_dCrackPhi);
//   reader_wGwoGSF_BL->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_wGwoGSF_BL->SetVerbose(kTRUE);
  reader_wGwoGSF_BL->BookMVA("BDTG",Weight_wGwoGSF_BL);

  TMVA::Reader *reader_wGwGSF_BL = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_wGwGSF_BL->AddVariable("Elec_EtotOverPin",&Elec_EtotOverPin);
  reader_wGwGSF_BL->AddVariable("Elec_EgammaOverPdif",&Elec_EgammaOverPdif);
  reader_wGwGSF_BL->AddVariable("Elec_Fbrem",&Elec_Fbrem);
  reader_wGwGSF_BL->AddVariable("Elec_Chi2GSF",&Elec_Chi2GSF);
  reader_wGwGSF_BL->AddVariable("Elec_GSFNumHits",&Elec_GSFNumHits);
  reader_wGwGSF_BL->AddVariable("Elec_GSFTrackResol",&Elec_GSFTrackResol);
  reader_wGwGSF_BL->AddVariable("Elec_GSFTracklnPt",&Elec_GSFTracklnPt);
  reader_wGwGSF_BL->AddVariable("Elec_GSFTrackEta",&Elec_GSFTrackEta);
  reader_wGwGSF_BL->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_wGwGSF_BL->AddVariable("Tau_Pt",&Tau_Pt);
  reader_wGwGSF_BL->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_wGwGSF_BL->AddVariable("Tau_NumGammaCands",&Tau_NumGammaCands);
  reader_wGwGSF_BL->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_wGwGSF_BL->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_wGwGSF_BL->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_wGwGSF_BL->AddVariable("Tau_HadrMva",&Tau_HadrMva);
  reader_wGwGSF_BL->AddVariable("Tau_GammaEtaMom",&Tau_GammaEtaMom);
  reader_wGwGSF_BL->AddVariable("Tau_GammaPhiMom",&Tau_GammaPhiMom);
  reader_wGwGSF_BL->AddVariable("Tau_GammaEnFrac",&Tau_GammaEnFrac);
  reader_wGwGSF_BL->AddVariable("Tau_GSFChi2",&Tau_GSFChi2);
  reader_wGwGSF_BL->AddVariable("(Tau_GSFNumHits - Tau_KFNumHits)/(Tau_GSFNumHits + Tau_KFNumHits)",&Tau_NumHitsVariable);
  reader_wGwGSF_BL->AddVariable("Tau_GSFTrackResol",&Tau_GSFTrackResol);
  reader_wGwGSF_BL->AddVariable("Tau_GSFTracklnPt",&Tau_GSFTracklnPt);
  reader_wGwGSF_BL->AddVariable("Tau_GSFTrackEta",&Tau_GSFTrackEta);
  reader_wGwGSF_BL->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
  reader_wGwGSF_BL->AddVariable("Tau_dCrackPhi",&Tau_dCrackPhi);
//   reader_wGwGSF_BL->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_wGwGSF_BL->SetVerbose(kTRUE);
  reader_wGwGSF_BL->BookMVA("BDTG",Weight_wGwGSF_BL);

  ////////////////////////

  TMVA::Reader *reader_NoEleMatch_woGwoGSF_EC = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_NoEleMatch_woGwoGSF_EC->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_NoEleMatch_woGwoGSF_EC->AddVariable("Tau_Pt",&Tau_Pt);
  reader_NoEleMatch_woGwoGSF_EC->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_NoEleMatch_woGwoGSF_EC->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_NoEleMatch_woGwoGSF_EC->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_NoEleMatch_woGwoGSF_EC->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_NoEleMatch_woGwoGSF_EC->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
//   reader_NoEleMatch_woGwoGSF_EC->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_NoEleMatch_woGwoGSF_EC->SetVerbose(kTRUE);
  reader_NoEleMatch_woGwoGSF_EC->BookMVA("BDTG",Weight_NoEleMatch_woGwoGSF_EC);

  TMVA::Reader *reader_NoEleMatch_woGwGSF_EC = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_Pt",&Tau_Pt);
  reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_HadrMva",&Tau_HadrMva);
  reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_GSFChi2",&Tau_GSFChi2);
  reader_NoEleMatch_woGwGSF_EC->AddVariable("(Tau_GSFNumHits - Tau_KFNumHits)/(Tau_GSFNumHits + Tau_KFNumHits)",&Tau_NumHitsVariable);
  reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_GSFTrackResol",&Tau_GSFTrackResol);
  reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_GSFTracklnPt",&Tau_GSFTracklnPt);
  reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_GSFTrackEta",&Tau_GSFTrackEta);
  reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
//   reader_NoEleMatch_woGwGSF_EC->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_NoEleMatch_woGwGSF_EC->SetVerbose(kTRUE);
  reader_NoEleMatch_woGwGSF_EC->BookMVA("BDTG",Weight_NoEleMatch_woGwGSF_EC);

  TMVA::Reader *reader_NoEleMatch_wGwoGSF_EC = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_NoEleMatch_wGwoGSF_EC->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_NoEleMatch_wGwoGSF_EC->AddVariable("Tau_Pt",&Tau_Pt);
  reader_NoEleMatch_wGwoGSF_EC->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_NoEleMatch_wGwoGSF_EC->AddVariable("Tau_NumGammaCands",&Tau_NumGammaCands);
  reader_NoEleMatch_wGwoGSF_EC->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_NoEleMatch_wGwoGSF_EC->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_NoEleMatch_wGwoGSF_EC->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_NoEleMatch_wGwoGSF_EC->AddVariable("Tau_GammaEtaMom",&Tau_GammaEtaMom);
  reader_NoEleMatch_wGwoGSF_EC->AddVariable("Tau_GammaPhiMom",&Tau_GammaPhiMom);
  reader_NoEleMatch_wGwoGSF_EC->AddVariable("Tau_GammaEnFrac",&Tau_GammaEnFrac);
  reader_NoEleMatch_wGwoGSF_EC->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
//   reader_NoEleMatch_wGwoGSF_EC->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_NoEleMatch_wGwoGSF_EC->SetVerbose(kTRUE);
  reader_NoEleMatch_wGwoGSF_EC->BookMVA("BDTG",Weight_NoEleMatch_wGwoGSF_EC);

  TMVA::Reader *reader_NoEleMatch_wGwGSF_EC = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_Pt",&Tau_Pt);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_NumGammaCands",&Tau_NumGammaCands);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_HadrMva",&Tau_HadrMva);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_GammaEtaMom",&Tau_GammaEtaMom);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_GammaPhiMom",&Tau_GammaPhiMom);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_GammaEnFrac",&Tau_GammaEnFrac);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_GSFChi2",&Tau_GSFChi2);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("(Tau_GSFNumHits - Tau_KFNumHits)/(Tau_GSFNumHits + Tau_KFNumHits)",&Tau_NumHitsVariable);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_GSFTrackResol",&Tau_GSFTrackResol);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_GSFTracklnPt",&Tau_GSFTracklnPt);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_GSFTrackEta",&Tau_GSFTrackEta);
  reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
//   reader_NoEleMatch_wGwGSF_EC->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_NoEleMatch_wGwGSF_EC->SetVerbose(kTRUE);
  reader_NoEleMatch_wGwGSF_EC->BookMVA("BDTG",Weight_NoEleMatch_wGwGSF_EC);

  TMVA::Reader *reader_woGwoGSF_EC = new TMVA::Reader( "!Color:!Silent:Error" );
  reader_woGwoGSF_EC->AddVariable("Elec_EtotOverPin",&Elec_EtotOverPin);
  reader_woGwoGSF_EC->AddVariable("Elec_EgammaOverPdif",&Elec_EgammaOverPdif);
  reader_woGwoGSF_EC->AddVariable("Elec_Fbrem",&Elec_Fbrem);
  reader_woGwoGSF_EC->AddVariable("Elec_Chi2GSF",&Elec_Chi2GSF);
  reader_woGwoGSF_EC->AddVariable("Elec_GSFNumHits",&Elec_GSFNumHits);
  reader_woGwoGSF_EC->AddVariable("Elec_GSFTrackResol",&Elec_GSFTrackResol);
  reader_woGwoGSF_EC->AddVariable("Elec_GSFTracklnPt",&Elec_GSFTracklnPt);
  reader_woGwoGSF_EC->AddVariable("Elec_GSFTrackEta",&Elec_GSFTrackEta);
  reader_woGwoGSF_EC->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_woGwoGSF_EC->AddVariable("Tau_Pt",&Tau_Pt);
  reader_woGwoGSF_EC->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_woGwoGSF_EC->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_woGwoGSF_EC->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_woGwoGSF_EC->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_woGwoGSF_EC->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
//   reader_woGwoGSF_EC->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_woGwoGSF_EC->SetVerbose(kTRUE);
  reader_woGwoGSF_EC->BookMVA("BDTG",Weight_woGwoGSF_EC);

  TMVA::Reader *reader_woGwGSF_EC = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_woGwGSF_EC->AddVariable("Elec_EtotOverPin",&Elec_EtotOverPin);
  reader_woGwGSF_EC->AddVariable("Elec_EgammaOverPdif",&Elec_EgammaOverPdif);
  reader_woGwGSF_EC->AddVariable("Elec_Fbrem",&Elec_Fbrem);
  reader_woGwGSF_EC->AddVariable("Elec_Chi2GSF",&Elec_Chi2GSF);
  reader_woGwGSF_EC->AddVariable("Elec_GSFNumHits",&Elec_GSFNumHits);
  reader_woGwGSF_EC->AddVariable("Elec_GSFTrackResol",&Elec_GSFTrackResol);
  reader_woGwGSF_EC->AddVariable("Elec_GSFTracklnPt",&Elec_GSFTracklnPt);
  reader_woGwGSF_EC->AddVariable("Elec_GSFTrackEta",&Elec_GSFTrackEta);
  reader_woGwGSF_EC->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_woGwGSF_EC->AddVariable("Tau_Pt",&Tau_Pt);
  reader_woGwGSF_EC->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_woGwGSF_EC->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_woGwGSF_EC->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_woGwGSF_EC->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_woGwGSF_EC->AddVariable("Tau_HadrMva",&Tau_HadrMva);
  reader_woGwGSF_EC->AddVariable("Tau_GSFChi2",&Tau_GSFChi2);
  reader_woGwGSF_EC->AddVariable("(Tau_GSFNumHits - Tau_KFNumHits)/(Tau_GSFNumHits + Tau_KFNumHits)",&Tau_NumHitsVariable);
  reader_woGwGSF_EC->AddVariable("Tau_GSFTrackResol",&Tau_GSFTrackResol);
  reader_woGwGSF_EC->AddVariable("Tau_GSFTracklnPt",&Tau_GSFTracklnPt);
  reader_woGwGSF_EC->AddVariable("Tau_GSFTrackEta",&Tau_GSFTrackEta);
  reader_woGwGSF_EC->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
//   reader_woGwGSF_EC->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_woGwGSF_EC->SetVerbose(kTRUE);
  reader_woGwGSF_EC->BookMVA("BDTG",Weight_woGwGSF_EC);

  TMVA::Reader *reader_wGwoGSF_EC = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_wGwoGSF_EC->AddVariable("Elec_EtotOverPin",&Elec_EtotOverPin);
  reader_wGwoGSF_EC->AddVariable("Elec_EgammaOverPdif",&Elec_EgammaOverPdif);
  reader_wGwoGSF_EC->AddVariable("Elec_Fbrem",&Elec_Fbrem);
  reader_wGwoGSF_EC->AddVariable("Elec_Chi2GSF",&Elec_Chi2GSF);
  reader_wGwoGSF_EC->AddVariable("Elec_GSFNumHits",&Elec_GSFNumHits);
  reader_wGwoGSF_EC->AddVariable("Elec_GSFTrackResol",&Elec_GSFTrackResol);
  reader_wGwoGSF_EC->AddVariable("Elec_GSFTracklnPt",&Elec_GSFTracklnPt);
  reader_wGwoGSF_EC->AddVariable("Elec_GSFTrackEta",&Elec_GSFTrackEta);
  reader_wGwoGSF_EC->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_wGwoGSF_EC->AddVariable("Tau_Pt",&Tau_Pt);
  reader_wGwoGSF_EC->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_wGwoGSF_EC->AddVariable("Tau_NumGammaCands",&Tau_NumGammaCands);
  reader_wGwoGSF_EC->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_wGwoGSF_EC->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_wGwoGSF_EC->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_wGwoGSF_EC->AddVariable("Tau_GammaEtaMom",&Tau_GammaEtaMom);
  reader_wGwoGSF_EC->AddVariable("Tau_GammaPhiMom",&Tau_GammaPhiMom);
  reader_wGwoGSF_EC->AddVariable("Tau_GammaEnFrac",&Tau_GammaEnFrac);
  reader_wGwoGSF_EC->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
//   reader_wGwoGSF_EC->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_wGwoGSF_EC->SetVerbose(kTRUE);
  reader_wGwoGSF_EC->BookMVA("BDTG",Weight_wGwoGSF_EC);

  TMVA::Reader *reader_wGwGSF_EC = new TMVA::Reader( "!Color:!Silent:Error" );  
  reader_wGwGSF_EC->AddVariable("Elec_EtotOverPin",&Elec_EtotOverPin);
  reader_wGwGSF_EC->AddVariable("Elec_EgammaOverPdif",&Elec_EgammaOverPdif);
  reader_wGwGSF_EC->AddVariable("Elec_Fbrem",&Elec_Fbrem);
  reader_wGwGSF_EC->AddVariable("Elec_Chi2GSF",&Elec_Chi2GSF);
  reader_wGwGSF_EC->AddVariable("Elec_GSFNumHits",&Elec_GSFNumHits);
  reader_wGwGSF_EC->AddVariable("Elec_GSFTrackResol",&Elec_GSFTrackResol);
  reader_wGwGSF_EC->AddVariable("Elec_GSFTracklnPt",&Elec_GSFTracklnPt);
  reader_wGwGSF_EC->AddVariable("Elec_GSFTrackEta",&Elec_GSFTrackEta);
  reader_wGwGSF_EC->AddVariable("Tau_EtaAtEcalEntrance",&Tau_EtaAtEcalEntrance);
  reader_wGwGSF_EC->AddVariable("Tau_Pt",&Tau_Pt);
  reader_wGwGSF_EC->AddVariable("Tau_EmFraction",&Tau_EmFraction);
  reader_wGwGSF_EC->AddVariable("Tau_NumGammaCands",&Tau_NumGammaCands);
  reader_wGwGSF_EC->AddVariable("Tau_HadrHoP",&Tau_HadrHoP);
  reader_wGwGSF_EC->AddVariable("Tau_HadrEoP",&Tau_HadrEoP);
  reader_wGwGSF_EC->AddVariable("Tau_VisMass",&Tau_VisMass);
  reader_wGwGSF_EC->AddVariable("Tau_HadrMva",&Tau_HadrMva);
  reader_wGwGSF_EC->AddVariable("Tau_GammaEtaMom",&Tau_GammaEtaMom);
  reader_wGwGSF_EC->AddVariable("Tau_GammaPhiMom",&Tau_GammaPhiMom);
  reader_wGwGSF_EC->AddVariable("Tau_GammaEnFrac",&Tau_GammaEnFrac);
  reader_wGwGSF_EC->AddVariable("Tau_GSFChi2",&Tau_GSFChi2);
  reader_wGwGSF_EC->AddVariable("(Tau_GSFNumHits - Tau_KFNumHits)/(Tau_GSFNumHits + Tau_KFNumHits)",&Tau_NumHitsVariable);
  reader_wGwGSF_EC->AddVariable("Tau_GSFTrackResol",&Tau_GSFTrackResol);
  reader_wGwGSF_EC->AddVariable("Tau_GSFTracklnPt",&Tau_GSFTracklnPt);
  reader_wGwGSF_EC->AddVariable("Tau_GSFTrackEta",&Tau_GSFTrackEta);
  reader_wGwGSF_EC->AddVariable("Tau_dCrackEta",&Tau_dCrackEta);
//   reader_wGwGSF_EC->AddVariable("Tau_DecayMode",&Tau_DecayMode);
  reader_wGwGSF_EC->SetVerbose(kTRUE);
  reader_wGwGSF_EC->BookMVA("BDTG",Weight_wGwGSF_EC);

  cout<< "Number of entries : "<<nEntries<<endl;

  for (int iEntry = 0; iEntry<nEntries ; iEntry++){
    if(iEntry%100000==0) cout << iEntry  <<"/"<<nEntries << endl;
    inputTree->GetEntry(iEntry);

    t_NoEleMatch_woGwoGSF_Barrel = -99;
    t_NoEleMatch_woGwGSF_Barrel = -99;
    t_NoEleMatch_wGwoGSF_Barrel = -99;
    t_NoEleMatch_wGwGSF_Barrel = -99;
    t_woGwoGSF_Barrel = -99;
    t_woGwGSF_Barrel = -99;
    t_wGwoGSF_Barrel = -99;
    t_wGwGSF_Barrel = -99;
    t_NoEleMatch_woGwoGSF_Endcap = -99;
    t_NoEleMatch_woGwGSF_Endcap = -99;
    t_NoEleMatch_wGwoGSF_Endcap = -99;
    t_NoEleMatch_wGwGSF_Endcap = -99;
    t_woGwoGSF_Endcap = -99;
    t_woGwGSF_Endcap = -99;
    t_wGwoGSF_Endcap = -99;
    t_wGwGSF_Endcap = -99;

//     cout<<"classID :"<<classID<<endl;
    t_classID = classID;

    if (Cat.find("NoEleMatch_woGwoGSF_Barrel")!=std::string::npos) t_NoEleMatch_woGwoGSF_Barrel = reader_NoEleMatch_woGwoGSF_BL->EvaluateMVA("BDTG");
    if (Cat.find("NoEleMatch_woGwGSF_Barrel")!=std::string::npos) t_NoEleMatch_woGwGSF_Barrel = reader_NoEleMatch_woGwGSF_BL->EvaluateMVA("BDTG");
    if (Cat.find("NoEleMatch_wGwoGSF_Barrel")!=std::string::npos) t_NoEleMatch_wGwoGSF_Barrel = reader_NoEleMatch_wGwoGSF_BL->EvaluateMVA("BDTG");
    if (Cat.find("NoEleMatch_wGwGSF_Barrel")!=std::string::npos) t_NoEleMatch_wGwGSF_Barrel = reader_NoEleMatch_wGwGSF_BL->EvaluateMVA("BDTG");
    if (Cat.find("woGwoGSF_Barrel")!=std::string::npos) t_woGwoGSF_Barrel = reader_woGwoGSF_BL->EvaluateMVA("BDTG");
    if (Cat.find("woGwGSF_Barrel")!=std::string::npos) t_woGwGSF_Barrel = reader_woGwGSF_BL->EvaluateMVA("BDTG");
    if (Cat.find("wGwoGSF_Barrel")!=std::string::npos) t_wGwoGSF_Barrel = reader_wGwoGSF_BL->EvaluateMVA("BDTG");
    if (Cat.find("wGwGSF_Barrel")!=std::string::npos) t_wGwGSF_Barrel = reader_wGwGSF_BL->EvaluateMVA("BDTG");
    if (Cat.find("NoEleMatch_woGwoGSF_Endcap")!=std::string::npos) t_NoEleMatch_woGwoGSF_Endcap = reader_NoEleMatch_woGwoGSF_EC->EvaluateMVA("BDTG");
    if (Cat.find("NoEleMatch_woGwGSF_Endcap")!=std::string::npos) t_NoEleMatch_woGwGSF_Endcap = reader_NoEleMatch_woGwGSF_EC->EvaluateMVA("BDTG");
    if (Cat.find("NoEleMatch_wGwoGSF_Endcap")!=std::string::npos) t_NoEleMatch_wGwoGSF_Endcap = reader_NoEleMatch_wGwoGSF_EC->EvaluateMVA("BDTG");
    if (Cat.find("NoEleMatch_wGwGSF_Endcap")!=std::string::npos) t_NoEleMatch_wGwGSF_Endcap = reader_NoEleMatch_wGwGSF_EC->EvaluateMVA("BDTG");
    if (Cat.find("woGwoGSF_Endcap")!=std::string::npos) t_woGwoGSF_Endcap = reader_woGwoGSF_EC->EvaluateMVA("BDTG");
    if (Cat.find("woGwGSF_Endcap")!=std::string::npos) t_woGwGSF_Endcap = reader_woGwGSF_EC->EvaluateMVA("BDTG");
    if (Cat.find("wGwoGSF_Endcap")!=std::string::npos) t_wGwoGSF_Endcap = reader_wGwoGSF_EC->EvaluateMVA("BDTG");
    if (Cat.find("wGwGSF_Endcap")!=std::string::npos) t_wGwGSF_Endcap = reader_wGwGSF_EC->EvaluateMVA("BDTG");

    mytree->Fill();

  }

  mytree->Write();
  
  cout<<"Creating file : "<<outputFileName.data()<<endl;
//   inputFile->Close();
  outputFile->Close();
  return;
}