Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:18:41

0001 #ifndef HLTPixelAsymmetryFilter_h
0002 #define HLTPixelAsymmetryFilter_h
0003 
0004 ///////////////////////////////////////////////////////
0005 //
0006 // HLTPixelAsymmetryFilter
0007 //
0008 // Filter definition
0009 //
0010 // We perform a selection on PIXEL cluster repartition
0011 //
0012 // This filter is primarily used to select Beamgas (aka PKAM) events
0013 //
0014 // An asymmetry parameter, based on the pixel clusters, is computed as follows
0015 //
0016 //  asym1 = fpix-/(fpix- + fpix+) for beam1
0017 //  asym2 = fpix+/(fpix- + fpix+) for beam2
0018 //
0019 // with:
0020 //
0021 //  fpix- = mean cluster charge in FPIX-
0022 //  fpix+ = mean cluster charge in FPIX+
0023 //  bpix  = mean cluster charge in BarrelPIX
0024 //
0025 //  Usually for PKAM events, cluster repartition is quite uniform and asymmetry is around 0.5
0026 //
0027 //
0028 // More details:
0029 // http://sviret.web.cern.ch/sviret/Welcome.php?n=CMS.MIB
0030 //
0031 // S.Viret: 12/01/2011 (viret@in2p3.fr)
0032 //
0033 ///////////////////////////////////////////////////////
0034 
0035 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0036 
0037 #include "FWCore/Framework/interface/Event.h"
0038 #include "FWCore/Framework/interface/EventSetup.h"
0039 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0040 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0041 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0042 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0043 #include "DataFormats/Common/interface/Handle.h"
0044 #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h"
0045 #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h"
0046 #include "DataFormats/TrackerCommon/interface/PixelBarrelName.h"
0047 #include "DataFormats/TrackerCommon/interface/PixelEndcapName.h"
0048 #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h"
0049 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
0050 
0051 class HLTPixelAsymmetryFilter : public HLTFilter {
0052 public:
0053   explicit HLTPixelAsymmetryFilter(const edm::ParameterSet&);
0054   ~HLTPixelAsymmetryFilter() override;
0055   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0056 
0057 private:
0058   bool hltFilter(edm::Event&,
0059                  const edm::EventSetup&,
0060                  trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
0061 
0062   edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > inputToken_;
0063   edm::InputTag inputTag_;  // input tag identifying product containing pixel clusters
0064   double min_asym_;         // minimum asymmetry
0065   double max_asym_;         // maximum asymmetry
0066   double clus_thresh_;      // minimum charge for a cluster to be selected (in e-)
0067   double bmincharge_;       // minimum average charge in the barrel (bpix, in e-)
0068 };
0069 
0070 #endif