CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
TrackParameterAnalyzer Class Reference

#include <Validation/RecoVertex/src/TrackParameterAnalyzer.cc>

Inheritance diagram for TrackParameterAnalyzer:
edm::one::EDAnalyzer<> edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
void endJob () override
 
 TrackParameterAnalyzer (const edm::ParameterSet &)
 
 ~TrackParameterAnalyzer () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const noexcept final
 
bool wantsGlobalRuns () const noexcept final
 
bool wantsInputProcessBlocks () const noexcept final
 
bool wantsProcessBlocks () const noexcept final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const noexcept
 
bool wantsStreamRuns () const noexcept
 
 ~EDAnalyzerBase () 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
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

bool match (const ParameterVector &a, const ParameterVector &b)
 

Private Attributes

edm::EDGetTokenT< edm::SimTrackContaineredmSimTrackContainerToken_
 
edm::EDGetTokenT< edm::SimVertexContaineredmSimVertexContainerToken_
 
TH1 * h1_Beff_
 
TH1 * h1_par0_
 
TH1 * h1_par1_
 
TH1 * h1_par2_
 
TH1 * h1_par3_
 
TH1 * h1_par4_
 
TH1 * h1_pull0_
 
TH1 * h1_pull1_
 
TH1 * h1_pull2_
 
TH1 * h1_pull3_
 
TH1 * h1_pull4_
 
TH1 * h1_res0_
 
TH1 * h1_res1_
 
TH1 * h1_res2_
 
TH1 * h1_res3_
 
TH1 * h1_res4_
 
TH2 * h2_dvsphi_
 
std::string outputFile_
 
edm::EDGetTokenT< reco::TrackCollectionrecoTrackCollectionToken_
 
TFile * rootFile_
 
double simUnit_
 
bool verbose_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 46 of file TrackParameterAnalyzer.h.

Constructor & Destructor Documentation

◆ TrackParameterAnalyzer()

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

Definition at line 36 of file TrackParameterAnalyzer.cc.

References edm::getReleaseVersion(), outputFile_, rootFile_, and simUnit_.

37  : edmSimVertexContainerToken_(consumes<edm::SimVertexContainer>(iConfig.getParameter<edm::InputTag>("simG4"))),
38  edmSimTrackContainerToken_(consumes<edm::SimTrackContainer>(iConfig.getParameter<edm::InputTag>("simG4"))),
39  recoTrackCollectionToken_(consumes<reco::TrackCollection>(
40  edm::InputTag(iConfig.getUntrackedParameter<std::string>("recoTrackProducer")))),
41  outputFile_(iConfig.getUntrackedParameter<std::string>("outputFile")),
42  simUnit_(1.0) // starting from CMSSW_1_2_x, I think
43  ,
44  verbose_(iConfig.getUntrackedParameter<bool>("verbose", false)) {
45  //now do whatever initialization is needed
46  // open output file to store histograms}
47  auto tversion = edm::getReleaseVersion();
48  tversion = tversion.erase(tversion.size() - 1, 1).erase(0, 1);
49  outputFile_ = tversion + "_" + outputFile_;
50  rootFile_ = TFile::Open(outputFile_.c_str(), "RECREATE");
51  if ((edm::getReleaseVersion()).find("CMSSW_1_1_", 0) != std::string::npos) {
52  simUnit_ = 0.1; // for use in CMSSW_1_1_1 tutorial
53  }
54 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< edm::SimTrackContainer > edmSimTrackContainerToken_
edm::EDGetTokenT< reco::TrackCollection > recoTrackCollectionToken_
std::string getReleaseVersion()
edm::EDGetTokenT< edm::SimVertexContainer > edmSimVertexContainerToken_

◆ ~TrackParameterAnalyzer()

TrackParameterAnalyzer::~TrackParameterAnalyzer ( )
override

Definition at line 56 of file TrackParameterAnalyzer.cc.

References rootFile_.

56  {
57  // do anything here that needs to be done at destruction time
58  // (e.g. close files, deallocate resources etc.)
59  delete rootFile_;
60 }

Member Function Documentation

◆ analyze()

void TrackParameterAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 126 of file TrackParameterAnalyzer.cc.

References DummyCfis::c, funct::cos(), gather_cfg::cout, edmSimTrackContainerToken_, edmSimVertexContainerToken_, h1_Beff_, h1_par0_, h1_par1_, h1_par2_, h1_par3_, h1_par4_, h1_pull0_, h1_pull1_, h1_pull2_, h1_pull3_, h1_pull4_, h1_res0_, h1_res1_, h1_res2_, h1_res3_, h1_res4_, h2_dvsphi_, reco::TrackBase::i_dsz, reco::TrackBase::i_dxy, reco::TrackBase::i_lambda, reco::TrackBase::i_phi, reco::TrackBase::i_qoverp, iEvent, hltHgcalLayerClustersEE_cfi::kappa, M_PI, match(), AlCaHLTBitMon_ParallelJobs::p, funct::pow(), submitPVResolutionJobs::q, recoTrackCollectionToken_, alignCSCRings::s, simUnit_, funct::sin(), mathSSE::sqrt(), submitPVValidationJobs::t, findQualityFiles::v, verbose_, and HLTMuonOfflineAnalyzer_cfi::z0.

126  {
127  using CLHEP::HepLorentzVector;
128 
129  const double fBfield = 3.8;
130 
132  iEvent.getByToken(edmSimVertexContainerToken_, simVtcs);
133  if (verbose_) {
134  std::cout << "SimVertex " << simVtcs->size() << std::endl;
135  for (edm::SimVertexContainer::const_iterator v = simVtcs->begin(); v != simVtcs->end(); ++v) {
136  std::cout << "simvtx " << std::setw(10) << std::setprecision(4) << v->position().x() << " " << v->position().y()
137  << " " << v->position().z() << " " << v->parentIndex() << " " << v->noParent() << " " << std::endl;
138  }
139  }
140 
141  // get the simulated tracks, extract perigee parameters
143  iEvent.getByToken(edmSimTrackContainerToken_, simTrks);
144 
145  if (verbose_) {
146  std::cout << "simtrks " << simTrks->size() << std::endl;
147  }
148  std::vector<ParameterVector> tsim;
149  for (edm::SimTrackContainer::const_iterator t = simTrks->begin(); t != simTrks->end(); ++t) {
150  if (t->noVertex()) {
151  std::cout << "simtrk has no vertex" << std::endl;
152  return;
153  } else {
154  // get the vertex position
155  HepLorentzVector v((*simVtcs)[t->vertIndex()].position().x(),
156  (*simVtcs)[t->vertIndex()].position().y(),
157  (*simVtcs)[t->vertIndex()].position().z(),
158  (*simVtcs)[t->vertIndex()].position().e());
159  int pdgCode = t->type();
160 
161  if (pdgCode == -99) {
162  // such entries cause crashes, no idea what they are
163  std::cout << "funny particle skipped , code=" << pdgCode << std::endl;
164  } else {
165  double Q = 0;
166  if ((pdgCode == 11) || (pdgCode == 13) || (pdgCode == 15) || (pdgCode == -211) || (pdgCode == -2212) ||
167  (pdgCode == 321)) {
168  Q = -1;
169  } else if ((pdgCode == -11) || (pdgCode == -13) || (pdgCode == -15) || (pdgCode == 211) || (pdgCode == 2212) ||
170  (pdgCode == 321)) {
171  Q = 1;
172  } else {
173  std::cout << pdgCode << " " << std::endl;
174  }
175  HepLorentzVector p(t->momentum().x(), t->momentum().y(), t->momentum().z(), t->momentum().e());
176  if (verbose_) {
177  std::cout << "simtrk "
178  << " gen=" << std::setw(4) << t->genpartIndex() << " vtx=" << std::setw(4) << t->vertIndex()
179  << " pdg=" << std::setw(5) << t->type() << " Q=" << std::setw(3) << Q << " pt=" << std::setw(6)
180  << p.perp() << " vx=" << std::setw(6) << v.x() << " vy=" << std::setw(6) << v.y()
181  << " vz=" << std::setw(6) << v.z() << std::endl;
182  }
183  if ((Q != 0) && (p.perp() > 0.1)) {
184  double x0 = v.x() * simUnit_;
185  double y0 = v.y() * simUnit_;
186  double z0 = v.z() * simUnit_;
187  double kappa = -Q * 0.002998 * fBfield / p.perp();
188  double D0 = x0 * sin(p.phi()) - y0 * cos(p.phi()) - 0.5 * kappa * (x0 * x0 + y0 * y0);
189  double q = sqrt(1. - 2. * kappa * D0);
190  double s0 = (x0 * cos(p.phi()) + y0 * sin(p.phi())) / q;
191  double s1;
192  if (fabs(kappa * s0) > 0.001) {
193  s1 = asin(kappa * s0) / kappa;
194  } else {
195  double ks02 = (kappa * s0) * (kappa * s0);
196  s1 = s0 * (1. + ks02 / 6. + 3. / 40. * ks02 * ks02 + 5. / 112. * pow(ks02, 3));
197  }
198  ParameterVector par;
199  par[reco::TrackBase::i_qoverp] = Q / sqrt(p.perp2() + p.pz() * p.pz());
200  par[reco::TrackBase::i_lambda] = M_PI / 2. - p.theta();
201  par[reco::TrackBase::i_phi] = p.phi() - asin(kappa * s0);
202  par[reco::TrackBase::i_dxy] = 2. * D0 / (1. + q);
203  par[reco::TrackBase::i_dsz] = z0 * sin(p.theta()) - s1 * cos(p.theta());
204  tsim.push_back(par);
205  }
206  }
207  } // has vertex
208  } //for loop
209 
210  // simtrack parameters are in now tsim
211  // loop over tracks and try to match them to simulated tracks
212 
214  iEvent.getByToken(recoTrackCollectionToken_, recTracks);
215 
216  for (reco::TrackCollection::const_iterator t = recTracks->begin(); t != recTracks->end(); ++t) {
217  reco::TrackBase::ParameterVector p = t->parameters();
218  reco::TrackBase::CovarianceMatrix c = t->covariance();
219  if (verbose_) {
220  std::cout << "reco pars= " << p << std::endl;
221  }
222  for (std::vector<ParameterVector>::const_iterator s = tsim.begin(); s != tsim.end(); ++s) {
223  if (match(*s, p)) {
224  h1_pull0_->Fill((p(0) - (*s)(0)) / sqrt(c(0, 0)));
225  h1_pull1_->Fill((p(1) - (*s)(1)) / sqrt(c(1, 1)));
226  h1_pull2_->Fill((p(2) - (*s)(2)) / sqrt(c(2, 2)));
227  h1_pull3_->Fill((p(3) - (*s)(3)) / sqrt(c(3, 3)));
228  h1_pull4_->Fill((p(4) - (*s)(4)) / sqrt(c(4, 4)));
229 
230  h1_res0_->Fill(p(0) - (*s)(0));
231  h1_res1_->Fill(p(1) - (*s)(1));
232  h1_res2_->Fill(p(2) - (*s)(2));
233  h1_res3_->Fill(p(3) - (*s)(3));
234  h1_res4_->Fill(p(4) - (*s)(4));
235 
236  h1_Beff_->Fill(p(0) / (*s)(0) * fBfield);
237  h2_dvsphi_->Fill(p(2), p(3));
238  h1_par0_->Fill(p(0));
239  h1_par1_->Fill(p(1));
240  h1_par2_->Fill(p(2));
241  h1_par3_->Fill(p(3));
242  h1_par4_->Fill(p(4));
243  }
244  }
245  }
246 }
Divides< arg, void > D0
Definition: Factorize.h:135
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
math::Vector< dimension >::type ParameterVector
parameter vector
Definition: TrackBase.h:71
bool match(const ParameterVector &a, const ParameterVector &b)
int iEvent
Definition: GenABIO.cc:224
edm::EDGetTokenT< edm::SimTrackContainer > edmSimTrackContainerToken_
T sqrt(T t)
Definition: SSEVec.h:23
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
edm::EDGetTokenT< reco::TrackCollection > recoTrackCollectionToken_
#define M_PI
edm::EDGetTokenT< edm::SimVertexContainer > edmSimVertexContainerToken_
reco::TrackBase::ParameterVector ParameterVector
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:74

◆ beginJob()

void TrackParameterAnalyzer::beginJob ( void  )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 65 of file TrackParameterAnalyzer.cc.

References gather_cfg::cout, h1_Beff_, h1_par0_, h1_par1_, h1_par2_, h1_par3_, h1_par4_, h1_pull0_, h1_pull1_, h1_pull2_, h1_pull3_, h1_pull4_, h1_res0_, h1_res1_, h1_res2_, h1_res3_, h1_res4_, h2_dvsphi_, M_PI, rootFile_, and simUnit_.

65  {
66  std::cout << " TrackParameterAnalyzer::beginJob conversion from sim units to rec units is " << simUnit_ << std::endl;
67 
68  rootFile_->cd();
69  h1_pull0_ = new TH1F("pull0", "pull q/p", 100, -25., 25.);
70  h1_pull1_ = new TH1F("pull1", "pull lambda", 100, -25., 25.);
71  h1_pull2_ = new TH1F("pull2", "pull phi ", 100, -25., 25.);
72  h1_pull3_ = new TH1F("pull3", "pull dca ", 100, -25., 25.);
73  h1_pull4_ = new TH1F("pull4", "pull zdca ", 100, -25., 25.);
74 
75  h1_res0_ = new TH1F("res0", "res q/p", 100, -0.1, 0.1);
76  h1_res1_ = new TH1F("res1", "res lambda", 100, -0.1, 0.1);
77  h1_res2_ = new TH1F("res2", "res phi ", 100, -0.1, 0.1);
78  h1_res3_ = new TH1F("res3", "res dca ", 100, -0.1, 0.1);
79  h1_res4_ = new TH1F("res4", "res zdca ", 100, -0.1, 0.1);
80 
81  h1_Beff_ = new TH1F("Beff", "Beff", 2000, -10., 10.);
82  h2_dvsphi_ = new TH2F("dvsphi", "dvsphi", 360, -M_PI, M_PI, 100, -0.1, 0.1);
83  h1_par0_ = new TH1F("par0", "q/p", 100, -0.1, 0.1);
84  h1_par1_ = new TH1F("par1", "lambda", 100, -M_PI / 2., M_PI / 2.);
85  h1_par2_ = new TH1F("par2", "phi ", 100, -M_PI, M_PI);
86  h1_par3_ = new TH1F("par3", "dca ", 100, -0.1, 0.1);
87  h1_par4_ = new TH1F("par4", "zdca ", 1000, -10., 10.);
88 }
#define M_PI

◆ endJob()

void TrackParameterAnalyzer::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 90 of file TrackParameterAnalyzer.cc.

References h1_Beff_, h1_par0_, h1_par1_, h1_par2_, h1_par3_, h1_par4_, h1_pull0_, h1_pull1_, h1_pull2_, h1_pull3_, h1_pull4_, h1_res0_, h1_res1_, h1_res2_, h1_res3_, h1_res4_, h2_dvsphi_, and rootFile_.

90  {
91  rootFile_->cd();
92  h1_pull0_->Write();
93  h1_pull1_->Write();
94  h1_pull2_->Write();
95  h1_pull3_->Write();
96  h1_pull4_->Write();
97 
98  h1_res0_->Write();
99  h1_res1_->Write();
100  h1_res2_->Write();
101  h1_res3_->Write();
102  h1_res4_->Write();
103 
104  h1_Beff_->Write();
105  h2_dvsphi_->Write();
106  h1_par0_->Write();
107  h1_par1_->Write();
108  h1_par2_->Write();
109  h1_par3_->Write();
110  h1_par4_->Write();
111 }

◆ match()

bool TrackParameterAnalyzer::match ( const ParameterVector a,
const ParameterVector b 
)
private

Definition at line 114 of file TrackParameterAnalyzer.cc.

References a, b, and M_PI.

Referenced by analyze().

114  {
115  double dtheta = a(1) - b(1);
116  double dphi = a(2) - b(2);
117  if (dphi > M_PI) {
118  dphi -= M_2_PI;
119  } else if (dphi < -M_PI) {
120  dphi += M_2_PI;
121  }
122  return ((fabs(dtheta) < 0.02) && (fabs(dphi) < 0.04));
123 }
#define M_PI
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121

Member Data Documentation

◆ edmSimTrackContainerToken_

edm::EDGetTokenT<edm::SimTrackContainer> TrackParameterAnalyzer::edmSimTrackContainerToken_
private

Definition at line 59 of file TrackParameterAnalyzer.h.

Referenced by analyze().

◆ edmSimVertexContainerToken_

edm::EDGetTokenT<edm::SimVertexContainer> TrackParameterAnalyzer::edmSimVertexContainerToken_
private

Definition at line 58 of file TrackParameterAnalyzer.h.

Referenced by analyze().

◆ h1_Beff_

TH1* TrackParameterAnalyzer::h1_Beff_
private

Definition at line 74 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_par0_

TH1* TrackParameterAnalyzer::h1_par0_
private

Definition at line 76 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_par1_

TH1* TrackParameterAnalyzer::h1_par1_
private

Definition at line 77 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_par2_

TH1* TrackParameterAnalyzer::h1_par2_
private

Definition at line 78 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_par3_

TH1* TrackParameterAnalyzer::h1_par3_
private

Definition at line 79 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_par4_

TH1* TrackParameterAnalyzer::h1_par4_
private

Definition at line 80 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_pull0_

TH1* TrackParameterAnalyzer::h1_pull0_
private

Definition at line 64 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_pull1_

TH1* TrackParameterAnalyzer::h1_pull1_
private

Definition at line 65 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_pull2_

TH1* TrackParameterAnalyzer::h1_pull2_
private

Definition at line 66 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_pull3_

TH1* TrackParameterAnalyzer::h1_pull3_
private

Definition at line 67 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_pull4_

TH1* TrackParameterAnalyzer::h1_pull4_
private

Definition at line 68 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_res0_

TH1* TrackParameterAnalyzer::h1_res0_
private

Definition at line 69 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_res1_

TH1* TrackParameterAnalyzer::h1_res1_
private

Definition at line 70 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_res2_

TH1* TrackParameterAnalyzer::h1_res2_
private

Definition at line 71 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_res3_

TH1* TrackParameterAnalyzer::h1_res3_
private

Definition at line 72 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h1_res4_

TH1* TrackParameterAnalyzer::h1_res4_
private

Definition at line 73 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ h2_dvsphi_

TH2* TrackParameterAnalyzer::h2_dvsphi_
private

Definition at line 75 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and endJob().

◆ outputFile_

std::string TrackParameterAnalyzer::outputFile_
private

Definition at line 62 of file TrackParameterAnalyzer.h.

Referenced by TrackParameterAnalyzer().

◆ recoTrackCollectionToken_

edm::EDGetTokenT<reco::TrackCollection> TrackParameterAnalyzer::recoTrackCollectionToken_
private

Definition at line 60 of file TrackParameterAnalyzer.h.

Referenced by analyze().

◆ rootFile_

TFile* TrackParameterAnalyzer::rootFile_
private

◆ simUnit_

double TrackParameterAnalyzer::simUnit_
private

Definition at line 81 of file TrackParameterAnalyzer.h.

Referenced by analyze(), beginJob(), and TrackParameterAnalyzer().

◆ verbose_

bool TrackParameterAnalyzer::verbose_
private

Definition at line 82 of file TrackParameterAnalyzer.h.

Referenced by analyze().