CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Attributes
dEdxAnalyzer Class Reference

#include <dEdxAnalyzer.h>

Inheritance diagram for dEdxAnalyzer:
DQMEDAnalyzer edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Classes

struct  dEdxMEs
 

Public Member Functions

void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 dEdxAnalyzer (const edm::ParameterSet &)
 
void endJob () override
 
double mass (double P, double I)
 
 ~dEdxAnalyzer () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
virtual void dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Attributes

std::vector< std::string > AlgoNames
 
edm::ParameterSet conf_
 
double dEdxC
 
std::vector< std::string > dEdxInputList_
 
double dEdxK
 
std::vector< dEdxMEsdEdxMEsVector
 
std::vector< edm::EDGetTokenT< reco::DeDxDataValueMap > > dEdxTokenList_
 
bool doAllPlots_
 
bool doDeDxPlots_
 
DQMStoredqmStore_
 
edm::ParameterSet fullconf_
 
GenericTriggerEventFlaggenTriggerEventFlag_
 
double HighPtThreshold
 
double HIPdEdxMin
 
std::string histname
 
double TrackHitMin
 
edm::InputTag trackInputTag_
 
std::string TrackName
 
edm::EDGetTokenT< reco::TrackCollectiontrackToken_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Monitoring source for general quantities related to track dEdx.

Definition at line 34 of file dEdxAnalyzer.h.

Constructor & Destructor Documentation

dEdxAnalyzer::dEdxAnalyzer ( const edm::ParameterSet iConfig)
explicit

Definition at line 22 of file dEdxAnalyzer.cc.

References conf_, dEdxInputList_, dEdxTokenList_, edm::ParameterSet::getParameter(), HLT_2018_cff::InputTag, AlCaHLTBitMon_QueryRunRegistry::string, GlobalPosition_Frontier_DevDB_cff::tag, trackInputTag_, and trackToken_.

24  fullconf_(iConfig),
25  conf_(fullconf_.getParameter<edm::ParameterSet>("dEdxParameters")),
26  doAllPlots_(conf_.getParameter<bool>("doAllPlots")),
27  doDeDxPlots_(conf_.getParameter<bool>("doDeDxPlots")),
29  conf_.getParameter<edm::ParameterSet>("genericTriggerEventPSet"), consumesCollector(), *this)) {
31  trackToken_ = consumes<reco::TrackCollection>(trackInputTag_);
32 
33  dEdxInputList_ = conf_.getParameter<std::vector<std::string> >("deDxProducers");
34  for (auto const& tag : dEdxInputList_) {
35  dEdxTokenList_.push_back(consumes<reco::DeDxDataValueMap>(edm::InputTag(tag)));
36  }
37 }
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::TrackCollection > trackToken_
Definition: dEdxAnalyzer.h:79
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
edm::ParameterSet conf_
Definition: dEdxAnalyzer.h:51
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::vector< std::string > dEdxInputList_
Definition: dEdxAnalyzer.h:81
GenericTriggerEventFlag * genTriggerEventFlag_
Definition: dEdxAnalyzer.h:89
edm::ParameterSet fullconf_
Definition: dEdxAnalyzer.h:50
bool doAllPlots_
Definition: dEdxAnalyzer.h:53
bool doDeDxPlots_
Definition: dEdxAnalyzer.h:54
edm::InputTag trackInputTag_
Definition: dEdxAnalyzer.h:78
DQMStore * dqmStore_
Definition: dEdxAnalyzer.h:49
std::vector< edm::EDGetTokenT< reco::DeDxDataValueMap > > dEdxTokenList_
Definition: dEdxAnalyzer.h:82
dEdxAnalyzer::~dEdxAnalyzer ( )
override

Definition at line 39 of file dEdxAnalyzer.cc.

References genTriggerEventFlag_.

39  {
41  delete genTriggerEventFlag_;
42 }
GenericTriggerEventFlag * genTriggerEventFlag_
Definition: dEdxAnalyzer.h:89

Member Function Documentation

void dEdxAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 156 of file dEdxAnalyzer.cc.

References GenericTriggerEventFlag::accept(), plot_hgcal_utils::dEdx, dEdxInputList_, dEdxMEsVector, dEdxTokenList_, doAllPlots_, doDeDxPlots_, genTriggerEventFlag_, edm::Event::getByToken(), HighPtThreshold, reco::TrackBase::highPurity, HIPdEdxMin, mps_fire::i, edm::HandleBase::isValid(), mass(), GenericTriggerEventFlag::on(), edm::Handle< T >::product(), OrderedSet::t, HLT_2018_cff::track, TrackHitMin, and trackToken_.

156  {
157  // Filter out events if Trigger Filtering is requested
158  if (genTriggerEventFlag_->on() && !genTriggerEventFlag_->accept(iEvent, iSetup))
159  return;
160 
161  if (doDeDxPlots_ || doAllPlots_) {
162  edm::Handle<reco::TrackCollection> trackCollectionHandle;
163  iEvent.getByToken(trackToken_, trackCollectionHandle);
164  if (!trackCollectionHandle.isValid())
165  return;
166 
167  for (unsigned int i = 0; i < dEdxInputList_.size(); i++) {
168  edm::Handle<reco::DeDxDataValueMap> dEdxObjectHandle;
169  iEvent.getByToken(dEdxTokenList_[i], dEdxObjectHandle);
170  if (!dEdxObjectHandle.isValid())
171  continue;
172  const edm::ValueMap<reco::DeDxData> dEdxColl = *dEdxObjectHandle.product();
173 
174  for (unsigned int t = 0; t < trackCollectionHandle->size(); t++) {
175  reco::TrackRef track = reco::TrackRef(trackCollectionHandle, t);
176 
177  if (track->quality(reco::TrackBase::highPurity)) {
178  //MIPs
179  if (track->pt() >= 5.0 && track->numberOfValidHits() > TrackHitMin) {
180  dEdxMEsVector[i].ME_MipDeDx->Fill(dEdxColl[track].dEdx());
181  dEdxMEsVector[i].ME_MipDeDxNHits->Fill(dEdxColl[track].numberOfMeasurements());
182  if (dEdxColl[track].numberOfMeasurements() != 0)
183  dEdxMEsVector[i].ME_MipDeDxNSatHits->Fill((1.0 * dEdxColl[track].numberOfSaturatedMeasurements()) /
184  dEdxColl[track].numberOfMeasurements());
185  dEdxMEsVector[i].ME_MipDeDxMass->Fill(mass(track->p(), dEdxColl[track].dEdx()));
186 
187  if (track->pt() >= HighPtThreshold) {
188  dEdxMEsVector[i].ME_MipHighPtDeDx->Fill(dEdxColl[track].dEdx());
189  dEdxMEsVector[i].ME_MipHighPtDeDxNHits->Fill(dEdxColl[track].numberOfMeasurements());
190  }
191 
192  //HighlyIonizing particles
193  } else if (track->pt() < 2 && dEdxColl[track].dEdx() > HIPdEdxMin) {
194  dEdxMEsVector[i].ME_HipDeDxMass->Fill(mass(track->p(), dEdxColl[track].dEdx()));
195  }
196  }
197  }
198  }
199  }
200 }
double HighPtThreshold
Definition: dEdxAnalyzer.h:75
edm::EDGetTokenT< reco::TrackCollection > trackToken_
Definition: dEdxAnalyzer.h:79
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
double TrackHitMin
Definition: dEdxAnalyzer.h:75
std::vector< std::string > dEdxInputList_
Definition: dEdxAnalyzer.h:81
bool accept(const edm::Event &event, const edm::EventSetup &setup)
To be called from analyze/filter() methods.
GenericTriggerEventFlag * genTriggerEventFlag_
Definition: dEdxAnalyzer.h:89
bool doAllPlots_
Definition: dEdxAnalyzer.h:53
bool isValid() const
Definition: HandleBase.h:70
bool doDeDxPlots_
Definition: dEdxAnalyzer.h:54
double mass(double P, double I)
T const * product() const
Definition: Handle.h:69
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
double HIPdEdxMin
Definition: dEdxAnalyzer.h:75
std::vector< edm::EDGetTokenT< reco::DeDxDataValueMap > > dEdxTokenList_
Definition: dEdxAnalyzer.h:82
std::vector< dEdxMEs > dEdxMEsVector
Definition: dEdxAnalyzer.h:86
void dEdxAnalyzer::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 65 of file dEdxAnalyzer.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), conf_, dEdxAnalyzer_cfi::dEdxBin, dEdxC, dEdxAnalyzer_cfi::dEdxHIPmassBin, dEdxAnalyzer_cfi::dEdxHIPmassMax, dEdxAnalyzer_cfi::dEdxHIPmassMin, dEdxInputList_, dEdxK, dEdxAnalyzer_cfi::dEdxMax, dEdxMEsVector, dEdxAnalyzer_cfi::dEdxMin, dEdxAnalyzer_cfi::dEdxMIPmassBin, dEdxAnalyzer_cfi::dEdxMIPmassMax, dEdxAnalyzer_cfi::dEdxMIPmassMin, dEdxAnalyzer_cfi::dEdxNHitBin, dEdxAnalyzer_cfi::dEdxNHitMax, dEdxAnalyzer_cfi::dEdxNHitMin, doAllPlots_, doDeDxPlots_, genTriggerEventFlag_, edm::ParameterSet::getParameter(), HighPtThreshold, HIPdEdxMin, histname, mps_fire::i, GenericTriggerEventFlag::initRun(), GenericTriggerEventFlag::on(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, and TrackHitMin.

65  {
66  // Initialize the GenericTriggerEventFlag
67  if (genTriggerEventFlag_->on())
68  genTriggerEventFlag_->initRun(iRun, iSetup);
69 
70  // parameters from the configuration
71  std::string MEFolderName = conf_.getParameter<std::string>("FolderName");
72 
73  // get binning from the configuration
74  TrackHitMin = conf_.getParameter<double>("TrackHitMin");
75  HIPdEdxMin = conf_.getParameter<double>("HIPdEdxMin");
76  HighPtThreshold = conf_.getParameter<double>("HighPtThreshold");
77 
78  dEdxK = conf_.getParameter<double>("dEdxK");
79  dEdxC = conf_.getParameter<double>("dEdxC");
80 
81  int dEdxNHitBin = conf_.getParameter<int>("dEdxNHitBin");
82  double dEdxNHitMin = conf_.getParameter<double>("dEdxNHitMin");
83  double dEdxNHitMax = conf_.getParameter<double>("dEdxNHitMax");
84 
85  int dEdxBin = conf_.getParameter<int>("dEdxBin");
86  double dEdxMin = conf_.getParameter<double>("dEdxMin");
87  double dEdxMax = conf_.getParameter<double>("dEdxMax");
88 
89  int dEdxHIPmassBin = conf_.getParameter<int>("dEdxHIPmassBin");
90  double dEdxHIPmassMin = conf_.getParameter<double>("dEdxHIPmassMin");
91  double dEdxHIPmassMax = conf_.getParameter<double>("dEdxHIPmassMax");
92 
93  int dEdxMIPmassBin = conf_.getParameter<int>("dEdxMIPmassBin");
94  double dEdxMIPmassMin = conf_.getParameter<double>("dEdxMIPmassMin");
95  double dEdxMIPmassMax = conf_.getParameter<double>("dEdxMIPmassMax");
96 
97  ibooker.setCurrentFolder(MEFolderName);
98 
99  // book the Hit Property histograms
100  // ---------------------------------------------------------------------------------//
101 
102  if (doDeDxPlots_ || doAllPlots_) {
103  for (unsigned int i = 0; i < dEdxInputList_.size(); i++) {
104  ibooker.setCurrentFolder(MEFolderName + "/" + dEdxInputList_[i]);
105  dEdxMEsVector.push_back(dEdxMEs());
106 
107  histname = "MIP_dEdxPerTrack_";
108  dEdxMEsVector[i].ME_MipDeDx = ibooker.book1D(histname, histname, dEdxBin, dEdxMin, dEdxMax);
109  dEdxMEsVector[i].ME_MipDeDx->setAxisTitle("dEdx of each MIP Track (MeV/cm)");
110  dEdxMEsVector[i].ME_MipDeDx->setAxisTitle("Number of Tracks", 2);
111 
112  histname = "MIP_NumberOfdEdxHitsPerTrack_";
113  dEdxMEsVector[i].ME_MipDeDxNHits = ibooker.book1D(histname, histname, dEdxNHitBin, dEdxNHitMin, dEdxNHitMax);
114  dEdxMEsVector[i].ME_MipDeDxNHits->setAxisTitle("Number of dEdxHits of each MIP Track");
115  dEdxMEsVector[i].ME_MipDeDxNHits->setAxisTitle("Number of Tracks", 2);
116 
117  histname = "MIP_FractionOfSaturateddEdxHitsPerTrack_";
118  dEdxMEsVector[i].ME_MipDeDxNSatHits = ibooker.book1D(histname, histname, 2 * dEdxNHitBin, 0, 1);
119  dEdxMEsVector[i].ME_MipDeDxNSatHits->setAxisTitle("Fraction of Saturated dEdxHits of each MIP Track");
120  dEdxMEsVector[i].ME_MipDeDxNSatHits->setAxisTitle("Number of Tracks", 2);
121 
122  histname = "MIP_MassPerTrack_";
123  dEdxMEsVector[i].ME_MipDeDxMass =
124  ibooker.book1D(histname, histname, dEdxMIPmassBin, dEdxMIPmassMin, dEdxMIPmassMax);
125  dEdxMEsVector[i].ME_MipDeDxMass->setAxisTitle("dEdx Mass of each MIP Track (GeV/c^{2})");
126  dEdxMEsVector[i].ME_MipDeDxMass->setAxisTitle("Number of Tracks", 2);
127 
128  histname = "HIP_MassPerTrack_";
129  dEdxMEsVector[i].ME_HipDeDxMass =
130  ibooker.book1D(histname, histname, dEdxHIPmassBin, dEdxHIPmassMin, dEdxHIPmassMax);
131  dEdxMEsVector[i].ME_HipDeDxMass->setAxisTitle("dEdx Mass of each HIP Track (GeV/c^{2})");
132  dEdxMEsVector[i].ME_HipDeDxMass->setAxisTitle("Number of Tracks", 2);
133 
134  histname = "MIPOfHighPt_dEdxPerTrack_";
135  dEdxMEsVector[i].ME_MipHighPtDeDx = ibooker.book1D(histname, histname, dEdxBin, dEdxMin, dEdxMax);
136  dEdxMEsVector[i].ME_MipHighPtDeDx->setAxisTitle("dEdx of each MIP (of High pT) Track (MeV/cm)");
137  dEdxMEsVector[i].ME_MipHighPtDeDx->setAxisTitle("Number of Tracks", 2);
138 
139  histname = "MIPOfHighPt_NumberOfdEdxHitsPerTrack_";
140  dEdxMEsVector[i].ME_MipHighPtDeDxNHits =
141  ibooker.book1D(histname, histname, dEdxNHitBin, dEdxNHitMin, dEdxNHitMax);
142  dEdxMEsVector[i].ME_MipHighPtDeDxNHits->setAxisTitle("Number of dEdxHits of each MIP (of High pT) Track");
143  dEdxMEsVector[i].ME_MipHighPtDeDxNHits->setAxisTitle("Number of Tracks", 2);
144  }
145  }
146 }
T getParameter(std::string const &) const
double HighPtThreshold
Definition: dEdxAnalyzer.h:75
double dEdxC
Definition: dEdxAnalyzer.h:76
double TrackHitMin
Definition: dEdxAnalyzer.h:75
edm::ParameterSet conf_
Definition: dEdxAnalyzer.h:51
double dEdxK
Definition: dEdxAnalyzer.h:76
std::vector< std::string > dEdxInputList_
Definition: dEdxAnalyzer.h:81
GenericTriggerEventFlag * genTriggerEventFlag_
Definition: dEdxAnalyzer.h:89
bool doAllPlots_
Definition: dEdxAnalyzer.h:53
bool doDeDxPlots_
Definition: dEdxAnalyzer.h:54
double HIPdEdxMin
Definition: dEdxAnalyzer.h:75
std::string histname
Definition: dEdxAnalyzer.h:87
std::vector< dEdxMEs > dEdxMEsVector
Definition: dEdxAnalyzer.h:86
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.
void dEdxAnalyzer::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 45 of file dEdxAnalyzer.cc.

References conf_, dqmStore_, edm::ParameterSet::getParameter(), reco_skim_cfg_mod::outputFileName, dqm::dqmstoreimpl::DQMStore::save(), dqm::dqmstoreimpl::DQMStore::showDirStructure(), and AlCaHLTBitMon_QueryRunRegistry::string.

45  {
46  bool outputMEsInRootFile = conf_.getParameter<bool>("OutputMEsInRootFile");
48  if (outputMEsInRootFile) {
50  dqmStore_->save(outputFileName);
51  }
52 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
Definition: dEdxAnalyzer.h:51
DQMStore * dqmStore_
Definition: dEdxAnalyzer.h:49
void showDirStructure() const
Definition: DQMStore.cc:2926
void save(std::string const &filename, std::string const &path="", std::string const &pattern="", std::string const &rewrite="", uint32_t run=0, uint32_t lumi=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, std::string const &fileupdate="RECREATE")
Definition: DQMStore.cc:2244
void dEdxAnalyzer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 203 of file dEdxAnalyzer.cc.

References edm::ConfigurationDescriptions::addDefault(), DEFINE_FWK_MODULE, and edm::ParameterSetDescription::setUnknown().

203  {
204  //The following says we do not know what parameters are allowed so do no validation
205  // Please change this to state exactly what you do use, even if it is no parameters
207  desc.setUnknown();
208  descriptions.addDefault(desc);
209 }
void addDefault(ParameterSetDescription const &psetDescription)
double dEdxAnalyzer::mass ( double  P,
double  I 
)

Definition at line 148 of file dEdxAnalyzer.cc.

References dEdxC, dEdxK, and mathSSE::sqrt().

Referenced by Particle.Particle::__str__(), DiObject.DiMuon::__str__(), and analyze().

148  {
149  if (I - dEdxC < 0)
150  return -1;
151  return sqrt((I - dEdxC) / dEdxK) * P;
152 }
double dEdxC
Definition: dEdxAnalyzer.h:76
double dEdxK
Definition: dEdxAnalyzer.h:76
T sqrt(T t)
Definition: SSEVec.h:19
const std::complex< double > I
Definition: I.h:8
std::pair< OmniClusterRef, TrackingParticleRef > P

Member Data Documentation

std::vector<std::string> dEdxAnalyzer::AlgoNames
private

Definition at line 85 of file dEdxAnalyzer.h.

edm::ParameterSet dEdxAnalyzer::conf_
private

Definition at line 51 of file dEdxAnalyzer.h.

Referenced by bookHistograms(), dEdxAnalyzer(), and endJob().

double dEdxAnalyzer::dEdxC
private

Definition at line 76 of file dEdxAnalyzer.h.

Referenced by bookHistograms(), and mass().

std::vector<std::string> dEdxAnalyzer::dEdxInputList_
private

Definition at line 81 of file dEdxAnalyzer.h.

Referenced by analyze(), bookHistograms(), and dEdxAnalyzer().

double dEdxAnalyzer::dEdxK
private

Definition at line 76 of file dEdxAnalyzer.h.

Referenced by bookHistograms(), and mass().

std::vector<dEdxMEs> dEdxAnalyzer::dEdxMEsVector
private

Definition at line 86 of file dEdxAnalyzer.h.

Referenced by analyze(), and bookHistograms().

std::vector<edm::EDGetTokenT<reco::DeDxDataValueMap> > dEdxAnalyzer::dEdxTokenList_
private

Definition at line 82 of file dEdxAnalyzer.h.

Referenced by analyze(), and dEdxAnalyzer().

bool dEdxAnalyzer::doAllPlots_
private

Definition at line 53 of file dEdxAnalyzer.h.

Referenced by analyze(), and bookHistograms().

bool dEdxAnalyzer::doDeDxPlots_
private

Definition at line 54 of file dEdxAnalyzer.h.

Referenced by analyze(), and bookHistograms().

DQMStore* dEdxAnalyzer::dqmStore_
private

Definition at line 49 of file dEdxAnalyzer.h.

Referenced by endJob().

edm::ParameterSet dEdxAnalyzer::fullconf_
private

Definition at line 50 of file dEdxAnalyzer.h.

GenericTriggerEventFlag* dEdxAnalyzer::genTriggerEventFlag_
private

Definition at line 89 of file dEdxAnalyzer.h.

Referenced by analyze(), bookHistograms(), and ~dEdxAnalyzer().

double dEdxAnalyzer::HighPtThreshold
private

Definition at line 75 of file dEdxAnalyzer.h.

Referenced by analyze(), and bookHistograms().

double dEdxAnalyzer::HIPdEdxMin
private

Definition at line 75 of file dEdxAnalyzer.h.

Referenced by analyze(), and bookHistograms().

std::string dEdxAnalyzer::histname
private

Definition at line 87 of file dEdxAnalyzer.h.

Referenced by bookHistograms().

double dEdxAnalyzer::TrackHitMin
private

Definition at line 75 of file dEdxAnalyzer.h.

Referenced by analyze(), and bookHistograms().

edm::InputTag dEdxAnalyzer::trackInputTag_
private

Definition at line 78 of file dEdxAnalyzer.h.

Referenced by dEdxAnalyzer().

std::string dEdxAnalyzer::TrackName
private

Definition at line 84 of file dEdxAnalyzer.h.

edm::EDGetTokenT<reco::TrackCollection> dEdxAnalyzer::trackToken_
private

Definition at line 79 of file dEdxAnalyzer.h.

Referenced by analyze(), and dEdxAnalyzer().