#include "H1HadCheckMarsHighQ2Selector.h" #include "H1Calculator/H1CalcGenericInterface.h" #include "H1Calculator/H1CalcBgTiming.h" ClassImp(H1HadCheckMarsHighQ2Selector) // Authors : David South // Created : 2002/02/17 // Last update: $Date: 2004/01/07 14:42:50 $ (UTC) // by: $Author: southd $ H1HadCheckMarsHighQ2Selector::H1HadCheckMarsHighQ2Selector() { SetCuts(); } H1HadCheckMarsHighQ2Selector::H1HadCheckMarsHighQ2Selector(const char* name) : H1CutSelector(name) { SetCuts(); } H1HadCheckMarsHighQ2Selector::~H1HadCheckMarsHighQ2Selector(){} void H1HadCheckMarsHighQ2Selector::SetCuts() { // Add cuts to the internal H1CutList // This makes use of the Generic access to the H1Calculator //SetDebug(); using namespace H1CalcGenericInterface; H1Calculator* myCalc = H1Calculator::Instance(); for(Int_t i=0; i<10; i++) { if(i!=9) myCalc->BgTiming()->EnableIbgFinder(i); } AddRecCut(new H1CutBool(BgTiming_Ibg), "Background Finders"); AddRecCut(new H1CutBool(HV_HipSel), "High Voltage"); AddRecCut(new H1CutDiscreteInt(Elec_NEmParts, 1), "NumElectrons"); AddRecCut(new H1CutInt(Jet_NumJets, 1, INT_MAX), "NumJets"); AddRecCut(new H1CutLorentz(Elec_FirstElectron, H1CutLorentz::Pt, 10.0, FLT_MAX), "ElecPt"); AddRecCut(new H1CutFloat(Kine_Q2e, 100.0, FLT_MAX), "Q^2"); AddRecCut(new H1CutFloat(Fs_HadPtElecPtRatio, 0.35, FLT_MAX), "Pth/Pte"); AddRecCut(new H1CutFloat(Fs_Empz, 42.0, FLT_MAX), "Empz"); AddRecCut(new H1CutFloat(Elec_PhiOctant, 2.0*TMath::Pi()/180, 43.0*TMath::Pi()/180), "PhiCracks"); AddRecCut(new H1CutFloat(Vertex_Z, -35.0, 35.0), "Z-Vertex"); AddRecCut(new H1CutOr(new H1CutLorentz(Had_IronClus, H1CutLorentz::Pt, H1Cut::Divide, Had_HadClus, H1CutLorentz::Pt, -FLT_MAX, 0.1), new H1CutLorentz(Had_IronClus, H1CutLorentz::E, H1Cut::Divide, Had_HadClus, H1CutLorentz::E, -FLT_MAX, 0.1)), "Iron OR"); AddRecCut(new H1CutAnd(new H1CutLorentz(Had_SpaClus, H1CutLorentz::Pt, H1Cut::Divide, Had_HadClus, H1CutLorentz::Pt, -FLT_MAX, 0.1), new H1CutLorentz(Had_SpaClus, H1CutLorentz::E, H1Cut::Divide, Had_HadClus, H1CutLorentz::E, -FLT_MAX, 0.1)), "Spacal AND"); AddRecCut(new H1CutFloat(Jet_LowestJetTheta, 7.0*(M_PI/180), FLT_MAX), "LowestJetTheta"); } //// ////Bool_t THistoJetCalib::InclCut(TMarEvent &event,Int_t LowQ2=0) ////{ //// ///////////////////////////////////////////////////////////////// //// ////// Cut for the corresponding selection //// ///////////////////////////////////////////////////////////////// //// //// //// //// //// Bool_t selection = kFALSE; //// //// //// // NumEve++; //// //// Float_t PteCut=10,PtjetCut=4; //// if(LowQ2) { //// PteCut=6; //// PtjetCut=2.5; //// } //// //// //// if(event.PartEm->GetEntries() == 1 && event.PartJet->GetEntries()>0) { //// //// //// if(event.Epz > 42. //// // && event.Epz < 68.4 //// && event.Pte > PteCut //// && event.Pth/event.Pte > 0.35 //// DS: && Q2 > 100 (used in HAT selection) //// && fabs(event.Vertex[2]) < 35 //// && !(event.IsPhiCrack(event.Phe)) //// && event.ESpacalfrac < 0.01 //// && event.ptSpacalfrac < 0.01 //// && ( event.EIronfrac < 0.01 //// || event.ptIronfrac < 0.01) //// ){ //// selection=kTRUE; ////// ////// ---- check if all jets have Theta >7degrees //// for(Int_t i=0;iGetEntries();i++) { //// if(event.PartJet[i]->GetTheta()*MYR2D<7) { //// selection=kFALSE; //// break; //// } //// } //// //// //// } //// //// } //// //// //// // Return selection //// return(selection); ////} //// //// ////