#include #include "Stntuple/alg/TStnJetID.hh" #include "Stntuple/obj/TStnJet.hh" ClassImp(TStnJetID) //_____________________________________________________________________________ TStnJetID::TStnJetID(const char* Name, const char* Title):TNamed(Name,Title) { StdJet(); } //_____________________________________________________________________________ TStnJetID::~TStnJetID() { } //_____________________________________________________________________________ int TStnJetID::IDWord(TStnJet* jet) { Int_t id_word = 0; float et = jet->Et(); float etc= jet->Et(); if(jet->Corfm()>0.0) { etc = et*jet->Corfm(); } else { if(fUseMask&fEtCorrBit) printf( "TStnJetID::IDWord requesting EtCorr but corrections are not set\n"); } float deteta = fabs(jet->DetEta()); float eta = fabs(jet->Eta()); if(et0) printf("JetID Et =%9.3f Cut=%7.3f word=0x%08x\n", et,fMinEt,id_word&fUseMask); if(etc0) printf("JetID EtCorr =%9.3f Cut=%7.3f word=0x%08x\n", etc,fMinEtCorr,id_word&fUseMask); if(detetafMaxDetEta) id_word |= fDetEtaBit; if(fPrintLevel>0) printf( "JetID DetEta =%9.3f Min=%7.3f Max=%7.3f word=0x%08x\n", jet->DetEta(),fMinDetEta,fMaxDetEta,id_word&fUseMask); if(etafMaxEta) id_word |= fEtaBit; if(fPrintLevel>0) printf( "JetID Eta =%9.3f Min=%7.3f Max=%7.3f word=0x%08x\n", jet->Eta(),fMinEta,fMaxEta,id_word&fUseMask); int idret = (id_word & fUseMask); if(fPrintLevel>0) printf("JetID word=0x%08x, mask=0x%08x, masked word=0x%08x \n", id_word,fUseMask,idret); return idret; } //_____________________________________________________________________________ Int_t TStnJetID::StdJet() { Reset(); fMinEtCorr = 15.0; int i=0; i |= fEtCorrBit; i |= fDetEtaBit; SetUseMask(i); return i; } //_____________________________________________________________________________ void TStnJetID::Reset() { fMinEt = 0.0; fMinEtCorr = 0.0; fMaxDetEta = 999.0; fMinDetEta = 0.0; fMaxEta = 999.0; fMinEta = 0.0; fUseMask = 0x0; fPrintLevel=0; } //_____________________________________________________________________________ void TStnJetID::Print(const char* Opt) const { printf(" bit 0: fMinEt = %12.5f\n" ,fMinEt ); printf(" bit 1: fMinEtCorr = %12.5f\n" ,fMinEtCorr ); printf(" bit 2: fMaxDetEta = %12.5f\n" ,fMaxDetEta ); printf(" bit 2: fMinDetEta = %12.5f\n" ,fMinDetEta ); printf(" bit 3: fMaxEta = %12.5f\n" ,fMaxEta ); printf(" bit 3: fMinEta = %12.5f\n" ,fMinEta ); } //______________________________________________________________________________ void TStnJetID::Streamer(TBuffer &R__b) { if (R__b.IsReading()) { Version_t R__v = R__b.ReadVersion(); if (R__v) { } TNamed::Streamer(R__b); R__b >> fMinEt; R__b >> fMinEtCorr; R__b >> fMaxDetEta; R__b >> fMinDetEta; R__b >> fMaxEta; R__b >> fMinEta; R__b >> fUseMask; } else { R__b.WriteVersion(TStnJetID::IsA()); TNamed::Streamer(R__b); R__b << fMinEt; R__b << fMinEtCorr; R__b << fMaxDetEta; R__b << fMinDetEta; R__b << fMaxEta; R__b << fMinEta; R__b << fUseMask; } }