00001 // 00002 // $Id: Centrality.h,v 1.12 2010/08/23 16:42:01 nart Exp $ 00003 // 00004 00005 #ifndef DataFormats_Centrality_h 00006 #define DataFormats_Centrality_h 00007 00008 #include <string> 00009 #include <vector> 00010 00011 namespace reco { class Centrality { 00012 public: 00013 Centrality(double d=0, std::string label = ""); 00014 virtual ~Centrality(); 00015 00016 friend class CentralityProducer; 00017 00018 double raw() const { return value_; } 00019 std::string label() const { return label_; } 00020 00021 double EtHFhitSum() const {return etHFhitSumPlus_ + etHFhitSumMinus_;} 00022 double EtHFhitSumPlus() const {return etHFhitSumPlus_;} 00023 double EtHFhitSumMinus() const {return etHFhitSumMinus_;} 00024 double EtHFtowerSum() const {return etHFtowerSumPlus_ + etHFtowerSumMinus_;} 00025 double EtHFtowerSumPlus() const {return etHFtowerSumPlus_;} 00026 double EtHFtowerSumMinus() const {return etHFtowerSumMinus_;} 00027 double EtHFtruncated() const {return etHFtruncatedPlus_ + etHFtruncatedMinus_;} 00028 double EtHFtruncatedPlus() const {return etHFtruncatedPlus_;} 00029 double EtHFtruncatedMinus() const {return etHFtruncatedMinus_;} 00030 double EtEESum() const {return etEESumPlus_ + etEESumMinus_;} 00031 double EtEESumPlus() const {return etEESumPlus_;} 00032 double EtEESumMinus() const {return etEESumMinus_;} 00033 double EtEEtruncated() const {return etEEtruncatedPlus_ + etEEtruncatedMinus_;} 00034 double EtEEtruncatedPlus() const {return etEEtruncatedPlus_;} 00035 double EtEEtruncatedMinus() const {return etEEtruncatedMinus_;} 00036 double EtEBSum() const {return etEBSum_;} 00037 double EtEBtruncated() const {return etEBtruncated_;} 00038 double EtEcalSum() const {return etEBSum_ + EtEESum();} 00039 double EtEcaltruncated() const {return etEBtruncated_ + EtEEtruncated();} 00040 double multiplicityPixel() const {return pixelMultiplicity_;} 00041 double Ntracks() const {return trackMultiplicity_;} 00042 double NtracksPtCut() const {return ntracksPtCut_;} 00043 double NtracksEtaCut() const {return ntracksEtaCut_;} 00044 double NtracksEtaPtCut() const {return ntracksEtaPtCut_;} 00045 double NpixelTracks() const {return nPixelTracks_;} 00046 00047 double zdcSum() const {return zdcSumPlus_ + zdcSumMinus_;} 00048 double zdcSumPlus() const {return zdcSumPlus_;} 00049 double zdcSumMinus() const {return zdcSumMinus_;} 00050 double EtMidRapiditySum() const {return etMidRapiditySum_;} 00051 00052 protected: 00053 double value_; 00054 std::string label_; 00055 00056 double etHFhitSumPlus_; 00057 double etHFtowerSumPlus_; 00058 double etHFtruncatedPlus_; 00059 00060 double etHFhitSumMinus_; 00061 double etHFtowerSumMinus_; 00062 double etHFtruncatedMinus_; 00063 00064 double etEESumPlus_; 00065 double etEEtruncatedPlus_; 00066 double etEESumMinus_; 00067 double etEEtruncatedMinus_; 00068 double etEBSum_; 00069 double etEBtruncated_; 00070 00071 double pixelMultiplicity_; 00072 double trackMultiplicity_; 00073 double zdcSumPlus_; 00074 double zdcSumMinus_; 00075 double etMidRapiditySum_; 00076 double ntracksPtCut_; 00077 double ntracksEtaCut_; 00078 double ntracksEtaPtCut_; 00079 double nPixelTracks_; 00080 00081 }; 00082 00083 typedef std::vector<reco::Centrality> CentralityCollection; 00084 00085 } 00086 00087 #include "DataFormats/HeavyIonEvent/interface/CentralityBins.h" 00088 #include "FWCore/Framework/interface/EventSetup.h" 00089 const CentralityBins* getCentralityBinsFromDB(const edm::EventSetup& iSetup); 00090 00091 00092 00093 #endif 00094 00095