CMS 3D CMS Logo

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

#include <Alignment/OfflineValidation/src/ValidationMisalignedTracker.cc>

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

Public Member Functions

 ValidationMisalignedTracker (const edm::ParameterSet &)
 
 ~ValidationMisalignedTracker () 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 final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const 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
 
bool wantsStreamRuns () const
 
 ~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
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > 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
 
bool registeredToConsumeMany (TypeID const &, 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::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

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

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void endJob () override
 

Private Attributes

const std::vector< std::string > associators
 
const std::vector< edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > > assocToken_
 
double chi2tmp
 
float costheta
 
float cottheta
 
int count
 
int countpart [2]
 
int countpartrec [2]
 
int countrec
 
float d0
 
float eff
 
float ene [2][2]
 
float enezmu
 
float eta
 
float etazmu
 
int eventCount_
 
const edm::EDGetTokenT< edm::HepMCProductevtToken_
 
float fake
 
float fakecostheta
 
float fakecottheta
 
int fakecount
 
int fakecountpart [2]
 
int fakecountpartrec [2]
 
int fakecountrec
 
int fakecountsim
 
float faked0
 
float fakeene [2][2]
 
float fakeenezmu
 
float fakeeta
 
float fakeetazmu
 
int fakeflag
 
int fakeflagrec
 
float fakeminptmu
 
float fakemxptmu
 
float fakemzmu
 
int fakenAssoc
 
int fakenhit
 
float fakep [2][2]
 
float fakephi
 
float fakephizmu
 
float fakepLzmu
 
float fakept
 
float fakeptmu [2][2]
 
float fakeptzmu
 
float fakepx [2][2]
 
float fakepy [2][2]
 
float fakepz [2][2]
 
float fakerecchiq
 
float fakereccottheta
 
float fakerecd0
 
float fakerecene [2][2]
 
float fakerecenezmu
 
float fakereceta
 
float fakerecetazmu
 
float fakerecminptmu
 
float fakerecmxptmu
 
float fakerecmzmu
 
int fakerecnhit
 
float fakerecp [2][2]
 
float fakerecphi
 
float fakerecphizmu
 
float fakerecpLzmu
 
float fakerecpt
 
float fakerecptmu [2][2]
 
float fakerecptzmu
 
float fakerecpx [2][2]
 
float fakerecpy [2][2]
 
float fakerecpz [2][2]
 
float fakerectheta
 
float fakerecthetazmu
 
float fakerecyzmu
 
float fakerecz0
 
float fakerescottheta
 
float fakeresd0
 
float fakereseta
 
float fakeresphi
 
float fakerespt
 
float fakeresz0
 
float faketheta
 
float fakethetazmu
 
int faketrackType
 
float fakeyzmu
 
float fakez0
 
TFile * file_
 
int flag
 
int flagrec
 
float fractiontmp
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordgeomToken_
 
int ievt
 
int irun
 
const std::vector< edm::InputTaglabel
 
const edm::InputTag label_tp_effic
 
const edm::InputTag label_tp_fake
 
GlobalVector magField
 
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecordmagFieldToken_
 
float minptmu
 
float mxptmu
 
float mzmu
 
int nAssoc
 
int nhit
 
bool onlyDiag
 
float p [2][2]
 
float phi
 
float phizmu
 
float pLzmu
 
float pt
 
float ptmu [2][2]
 
std::vector< float > ptused
 
float ptzmu
 
float px [2][2]
 
float py [2][2]
 
float pz [2][2]
 
float recchiq
 
float reccottheta
 
float recd0
 
float recene [2][2]
 
float recenezmu
 
float receta
 
float recetazmu
 
float recminptmu
 
float recmxptmu
 
float recmzmu
 
int recnhit
 
float recp [2][2]
 
float recphi
 
float recphizmu
 
float recpLzmu
 
float recpt
 
float recptmu [2][2]
 
float recptzmu
 
float recpx [2][2]
 
float recpy [2][2]
 
float recpz [2][2]
 
float rectheta
 
float recthetazmu
 
float recyzmu
 
float recz0
 
float rescottheta
 
float resd0
 
float reseta
 
float resphi
 
float respt
 
float resz0
 
const std::string rootfile_
 
const bool selection_eff
 
const bool selection_fake
 
const std::string simobject
 
bool skip
 
float theta
 
float thetazmu
 
const edm::EDGetTokenT< TrackingParticleCollectiontpeffToken_
 
const edm::EDGetTokenT< TrackingParticleCollectiontpfakeToken_
 
const std::string trackassociator
 
const edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
 
int trackType
 
TTree * tree_eff
 
TTree * tree_fake
 
float yzmu
 
float z0
 
const bool ZmassSelection_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- 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 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<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 42 of file ValidationMisalignedTracker.h.

Constructor & Destructor Documentation

◆ ValidationMisalignedTracker()

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

Definition at line 34 of file ValidationMisalignedTracker.cc.

References label, and edm::vector_transform().

37  selection_eff(iConfig.getUntrackedParameter<bool>("selection_eff", false)),
38  selection_fake(iConfig.getUntrackedParameter<bool>("selection_fake", true)),
39  ZmassSelection_(iConfig.getUntrackedParameter<bool>("ZmassSelection", false)),
40  simobject(iConfig.getUntrackedParameter<std::string>("simobject", "g4SimHits")),
41  trackassociator(iConfig.getUntrackedParameter<std::string>("TrackAssociator", "ByHits")),
42  associators(iConfig.getParameter<std::vector<std::string> >("associators")),
43  label(iConfig.getParameter<std::vector<edm::InputTag> >("label")),
44  label_tp_effic(iConfig.getParameter<edm::InputTag>("label_tp_effic")),
45  label_tp_fake(iConfig.getParameter<edm::InputTag>("label_tp_fake")),
46 
47  rootfile_(iConfig.getUntrackedParameter<std::string>("rootfile", "myroot.root")),
48  evtToken_(consumes<edm::HepMCProduct>(edm::InputTag("source"))),
49  tpeffToken_(consumes<TrackingParticleCollection>(label_tp_effic)),
50  tpfakeToken_(consumes<TrackingParticleCollection>(label_tp_fake)),
53  label, [this](const edm::InputTag& lab) { return consumes<reco::TrackToTrackingParticleAssociator>(lab); })} {
54  //now do what ever initialization is needed
55  mzmu = 0., recmzmu = 0., ptzmu = 0., recptzmu = 0., etazmu = 0., recetazmu = 0., thetazmu = 0., recthetazmu = 0.,
56  phizmu = 0., recphizmu = 0.;
57  recenezmu = 0., enezmu = 0., pLzmu = 0., recpLzmu = 0., yzmu = 0., recyzmu = 0., mxptmu = 0., recmxptmu = 0.,
58  minptmu = 0., recminptmu = 0.;
59  // mzele=0.,recmzele=0.
60 
61  flag = 0, flagrec = 0, count = 0, countrec = 0;
62  nAssoc = 0;
63 
64  for (int i = 0; i < 2; i++) {
65  countpart[i] = 0;
66  countpartrec[i] = 0;
67  for (int j = 0; j < 2; j++) {
68  ene[i][j] = 0.;
69  p[i][j] = 0.;
70  px[i][j] = 0.;
71  py[i][j] = 0.;
72  pz[i][j] = 0.;
73  ptmu[i][j] = 0.;
74  recene[i][j] = 0.;
75  recp[i][j] = 0.;
76  recpx[i][j] = 0.;
77  recpy[i][j] = 0.;
78  recpz[i][j] = 0.;
79  recptmu[i][j] = 0.;
80  }
81  }
82 
83  eventCount_ = 0;
84 
85  file_ = new TFile(rootfile_.c_str(), "RECREATE");
86 
87  // initialize the tree
88  tree_eff = new TTree("EffTracks", "Efficiency Tracks Tree");
89 
90  tree_eff->Branch("Run", &irun, "irun/i");
91  tree_eff->Branch("Event", &ievt, "ievt/i");
92 
93  // SimTrack
94  tree_eff->Branch("TrackID", &trackType, "trackType/i");
95  tree_eff->Branch("pt", &pt, "pt/F");
96  tree_eff->Branch("eta", &eta, "eta/F");
97  tree_eff->Branch("CotTheta", &cottheta, "cottheta/F");
98  tree_eff->Branch("phi", &phi, "phi/F");
99  tree_eff->Branch("d0", &d0, "d0/F");
100  tree_eff->Branch("z0", &z0, "z0/F");
101  tree_eff->Branch("nhit", &nhit, "nhit/i");
102 
103  // RecTrack
104  tree_eff->Branch("recpt", &recpt, "recpt/F");
105  tree_eff->Branch("receta", &receta, "receta/F");
106  tree_eff->Branch("CotRecTheta", &reccottheta, "reccottheta/F");
107  tree_eff->Branch("recphi", &recphi, "recphi/F");
108  tree_eff->Branch("recd0", &recd0, "recd0/F");
109  tree_eff->Branch("recz0", &recz0, "recz0/F");
110  tree_eff->Branch("nAssoc", &nAssoc, "nAssoc/i");
111  tree_eff->Branch("recnhit", &recnhit, "recnhit/i");
112  tree_eff->Branch("CHISQ", &recchiq, "recchiq/F");
113 
114  tree_eff->Branch("reseta", &reseta, "reseta/F");
115  tree_eff->Branch("respt", &respt, "respt/F");
116  tree_eff->Branch("resd0", &resd0, "resd0/F");
117  tree_eff->Branch("resz0", &resz0, "resz0/F");
118  tree_eff->Branch("resphi", &resphi, "resphi/F");
119  tree_eff->Branch("rescottheta", &rescottheta, "rescottheta/F");
120  tree_eff->Branch("eff", &eff, "eff/F");
121 
122  // Invariant masses, pt of Z
123  tree_eff->Branch("mzmu", &mzmu, "mzmu/F");
124  tree_eff->Branch("ptzmu", &ptzmu, "ptzmu/F");
125  tree_eff->Branch("pLzmu", &pLzmu, "pLzmu/F");
126  tree_eff->Branch("enezmu", &enezmu, "enezmu/F");
127  tree_eff->Branch("etazmu", &etazmu, "etazmu/F");
128  tree_eff->Branch("thetazmu", &thetazmu, "thetazmu/F");
129  tree_eff->Branch("phizmu", &phizmu, "phizmu/F");
130  tree_eff->Branch("yzmu", &yzmu, "yzmu/F");
131  tree_eff->Branch("mxptmu", &mxptmu, "mxptmu/F");
132  tree_eff->Branch("minptmu", &minptmu, "minptmu/F");
133 
134  tree_eff->Branch("recmzmu", &recmzmu, "recmzmu/F");
135  tree_eff->Branch("recptzmu", &recptzmu, "recptzmu/F");
136  tree_eff->Branch("recpLzmu", &recpLzmu, "recpLzmu/F");
137  tree_eff->Branch("recenezmu", &recenezmu, "recenezmu/F");
138  tree_eff->Branch("recetazmu", &recetazmu, "recetazmu/F");
139  tree_eff->Branch("recthetazmu", &recthetazmu, "recthetazmu/F");
140  tree_eff->Branch("recphizmu", &recphizmu, "recphizmu/F");
141  tree_eff->Branch("recyzmu", &recyzmu, "recyzmu/F");
142  tree_eff->Branch("recmxptmu", &recmxptmu, "recmxptmu/F");
143  tree_eff->Branch("recminptmu", &recminptmu, "recminptmu/F");
144 
145  //tree->Branch("mzele",&ntmzele,"ntmzele/F");
146  //tree->Branch("recmzele",&ntmzeleRec,"ntmzeleRec/F");
147  tree_eff->Branch("chi2Associator", &recchiq, "recchiq/F");
148 
149  // Fake
150 
151  tree_fake = new TTree("FakeTracks", "Fake Rate Tracks Tree");
152 
153  tree_fake->Branch("Run", &irun, "irun/i");
154  tree_fake->Branch("Event", &ievt, "ievt/i");
155 
156  // SimTrack
157  tree_fake->Branch("fakeTrackID", &faketrackType, "faketrackType/i");
158  tree_fake->Branch("fakept", &fakept, "fakept/F");
159  tree_fake->Branch("fakeeta", &fakeeta, "fakeeta/F");
160  tree_fake->Branch("fakeCotTheta", &fakecottheta, "fakecottheta/F");
161  tree_fake->Branch("fakephi", &fakephi, "fakephi/F");
162  tree_fake->Branch("faked0", &faked0, "faked0/F");
163  tree_fake->Branch("fakez0", &fakez0, "fakez0/F");
164  tree_fake->Branch("fakenhit", &fakenhit, "fakenhit/i");
165 
166  // RecTrack
167  tree_fake->Branch("fakerecpt", &fakerecpt, "fakerecpt/F");
168  tree_fake->Branch("fakereceta", &fakereceta, "fakereceta/F");
169  tree_fake->Branch("fakeCotRecTheta", &fakereccottheta, "fakereccottheta/F");
170  tree_fake->Branch("fakerecphi", &fakerecphi, "fakerecphi/F");
171  tree_fake->Branch("fakerecd0", &fakerecd0, "fakerecd0/F");
172  tree_fake->Branch("fakerecz0", &fakerecz0, "fakerecz0/F");
173  tree_fake->Branch("fakenAssoc", &fakenAssoc, "fakenAssoc/i");
174  tree_fake->Branch("fakerecnhit", &fakerecnhit, "fakerecnhit/i");
175  tree_fake->Branch("fakeCHISQ", &fakerecchiq, "fakerecchiq/F");
176 
177  tree_fake->Branch("fakereseta", &fakereseta, "fakereseta/F");
178  tree_fake->Branch("fakerespt", &fakerespt, "fakerespt/F");
179  tree_fake->Branch("fakeresd0", &fakeresd0, "fakeresd0/F");
180  tree_fake->Branch("fakeresz0", &fakeresz0, "fakeresz0/F");
181  tree_fake->Branch("fakeresphi", &fakeresphi, "fakeresphi/F");
182  tree_fake->Branch("fakerescottheta", &fakerescottheta, "fakerescottheta/F");
183  tree_fake->Branch("fake", &fake, "fake/F");
184 
185  // Invariant masses, pt of Z
186  tree_fake->Branch("fakemzmu", &fakemzmu, "fakemzmu/F");
187  tree_fake->Branch("fakeptzmu", &fakeptzmu, "fakeptzmu/F");
188  tree_fake->Branch("fakepLzmu", &fakepLzmu, "fakepLzmu/F");
189  tree_fake->Branch("fakeenezmu", &fakeenezmu, "fakeenezmu/F");
190  tree_fake->Branch("fakeetazmu", &fakeetazmu, "fakeetazmu/F");
191  tree_fake->Branch("fakethetazmu", &fakethetazmu, "fakethetazmu/F");
192  tree_fake->Branch("fakephizmu", &fakephizmu, "fakephizmu/F");
193  tree_fake->Branch("fakeyzmu", &fakeyzmu, "fakeyzmu/F");
194  tree_fake->Branch("fakemxptmu", &fakemxptmu, "fakemxptmu/F");
195  tree_fake->Branch("fakeminptmu", &fakeminptmu, "fakeminptmu/F");
196 
197  tree_fake->Branch("fakerecmzmu", &fakerecmzmu, "fakerecmzmu/F");
198  tree_fake->Branch("fakerecptzmu", &fakerecptzmu, "fakerecptzmu/F");
199  tree_fake->Branch("fakerecpLzmu", &fakerecpLzmu, "fakerecpLzmu/F");
200  tree_fake->Branch("fakerecenezmu", &fakerecenezmu, "fakerecenezmu/F");
201  tree_fake->Branch("fakerecetazmu", &fakerecetazmu, "fakerecetazmu/F");
202  tree_fake->Branch("fakerecthetazmu", &fakerecthetazmu, "fakerecthetazmu/F");
203  tree_fake->Branch("fakerecphizmu", &fakerecphizmu, "fakerecphizmu/F");
204  tree_fake->Branch("fakerecyzmu", &fakerecyzmu, "fakerecyzmu/F");
205  tree_fake->Branch("fakerecmxptmu", &fakerecmxptmu, "fakerecmxptmu/F");
206  tree_fake->Branch("fakerecminptmu", &fakerecminptmu, "fakerecminptmu/F");
207 
208  tree_fake->Branch("fakechi2Associator", &fakerecchiq, "fakerecchiq/F");
209 }
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_
const std::vector< std::string > associators
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
const edm::EDGetTokenT< TrackingParticleCollection > tpeffToken_
auto vector_transform(std::vector< InputType > const &input, Function predicate) -> std::vector< typename std::remove_cv< typename std::remove_reference< decltype(predicate(input.front()))>::type >::type >
Definition: transform.h:11
const edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::EDGetTokenT< edm::HepMCProduct > evtToken_
T getUntrackedParameter(std::string const &, T const &) const
const edm::EDGetTokenT< TrackingParticleCollection > tpfakeToken_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
const std::vector< edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > > assocToken_
const std::vector< edm::InputTag > label

◆ ~ValidationMisalignedTracker()

ValidationMisalignedTracker::~ValidationMisalignedTracker ( )
override

Definition at line 211 of file ValidationMisalignedTracker.cc.

References eventCount_, file_, tree_eff, and tree_fake.

211  {
212  edm::LogVerbatim("ValidationMisalignedTracker")
213  << "ValidationMisalignedTracker::endJob Processed " << eventCount_ << " events";
214 
215  // store the tree in the output file
216  file_->Write();
217 
218  // Closing the file deletes the tree.
219  file_->Close();
220  tree_eff = nullptr;
221  tree_fake = nullptr;
222 }
Log< level::Info, true > LogVerbatim

Member Function Documentation

◆ analyze()

void ValidationMisalignedTracker::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 243 of file ValidationMisalignedTracker.cc.

References funct::abs(), associators, assocToken_, funct::cos(), costheta, cottheta, count, countpart, countpartrec, countrec, d0, TrackerGeometry::detsTOB(), eff, edm::AssociationMap< Tag >::end(), ene, enezmu, eta, etazmu, evtToken_, fake, fakecostheta, fakecottheta, faked0, fakeeta, fakenhit, fakephi, fakept, fakerecchiq, fakereccottheta, fakerecd0, fakereceta, fakerecnhit, fakerecphi, fakerecpt, fakerectheta, fakerecz0, fakerescottheta, fakeresd0, fakereseta, fakeresphi, fakerespt, fakeresz0, faketheta, faketrackType, fakez0, edm::AssociationMap< Tag >::find(), flag, flagrec, dqmMemoryStats::float, SimTrack::genpartIndex(), geomToken_, edm::EventSetup::getData(), edm::HepMCProduct::GetEvent(), mps_fire::i, iEvent, ievt, irun, dqmiolumiharvest::j, dqm-mbProfile::log, LogTrace, magFieldToken_, SiStripPI::max, SiStripPI::min, minptmu, CoreSimTrack::momentum(), FreeTrajectoryState::momentum(), mxptmu, mzmu, nhit, p, phi, phizmu, pLzmu, FreeTrajectoryState::position(), edm::Handle< T >::product(), pt, ptmu, ptused, ptzmu, px, py, pz, recchiq, reccottheta, recd0, recene, recenezmu, receta, recetazmu, recminptmu, recmxptmu, recmzmu, recnhit, recp, recphi, recphizmu, recpLzmu, recpt, recptmu, recptzmu, recpx, recpy, recpz, rectheta, recthetazmu, recyzmu, recz0, rescottheta, resd0, reseta, resphi, respt, resz0, hcal_runs::rt, selection_eff, selection_fake, funct::sin(), edm::View< T >::size(), skip, mathSSE::sqrt(), submitPVValidationJobs::t, funct::tan(), TrajectoryStateClosestToPoint::theState(), theta, thetazmu, cmsswSequenceInfo::tp, tpeffToken_, tpfakeToken_, HLT_2023v12_cff::track, JetHT_cfg::trackCollection, trackToken_, trackType, tree_eff, tree_fake, CoreSimTrack::type(), findQualityFiles::v, w(), yzmu, z0, and ZmassSelection_.

243  {
244  std::vector<const reco::TrackToTrackingParticleAssociator*> associatore;
245 
246  {
247  for (unsigned int w = 0; w < associators.size(); w++) {
249  associatore.push_back(theAssociator.product());
250  }
251  }
252 
253  edm::LogInfo("Tracker Misalignment Validation") << "\n Starting!";
254 
255  // Monte Carlo Z selection
256  skip = false;
257  std::vector<int> indmu;
258 
260  const edm::Handle<edm::HepMCProduct>& evt = iEvent.getHandle(evtToken_);
261  bool accepted = false;
262  bool foundmuons = false;
263  HepMC::GenEvent* myGenEvent = new HepMC::GenEvent(*(evt->GetEvent()));
264 
265  for (HepMC::GenEvent::particle_iterator p = myGenEvent->particles_begin(); p != myGenEvent->particles_end(); ++p) {
266  if (!accepted && ((*p)->pdg_id() == 23) && (*p)->status() == 3) {
267  accepted = true;
268  for (HepMC::GenVertex::particle_iterator aDaughter = (*p)->end_vertex()->particles_begin(HepMC::descendants);
269  aDaughter != (*p)->end_vertex()->particles_end(HepMC::descendants);
270  aDaughter++) {
271  if (abs((*aDaughter)->pdg_id()) == 13) {
272  foundmuons = true;
273  if ((*aDaughter)->status() != 1) {
274  for (HepMC::GenVertex::particle_iterator byaDaughter =
275  (*aDaughter)->end_vertex()->particles_begin(HepMC::descendants);
276  byaDaughter != (*aDaughter)->end_vertex()->particles_end(HepMC::descendants);
277  byaDaughter++) {
278  if ((*byaDaughter)->status() == 1 && abs((*byaDaughter)->pdg_id()) == 13) {
279  indmu.push_back((*byaDaughter)->barcode());
280  edm::LogVerbatim("ValidationMisalignedTracker")
281  << "Stable muon from Z with charge " << (*byaDaughter)->pdg_id() << " and index "
282  << (*byaDaughter)->barcode();
283  }
284  }
285  } else {
286  indmu.push_back((*aDaughter)->barcode());
287  edm::LogVerbatim("ValidationMisalignedTracker")
288  << "Stable muon from Z with charge " << (*aDaughter)->pdg_id() << " and index "
289  << (*aDaughter)->barcode();
290  }
291  }
292  }
293  if (!foundmuons) {
294  edm::LogVerbatim("ValidationMisalignedTracker") << "No muons from Z ...skip event";
295  skip = true;
296  }
297  }
298  }
299  if (!accepted) {
300  edm::LogVerbatim("ValidationMisalignedTracker") << "No Z particles in the event ...skip event";
301  skip = true;
302  }
303  } else {
304  skip = false;
305  }
306 
307  //
308  // Retrieve tracker geometry from event setup
309  //
310  const TrackerGeometry* trackerGeometry = &iSetup.getData(geomToken_);
311  auto testGeomDet = trackerGeometry->detsTOB().front();
312  edm::LogVerbatim("ValidationMisalignedTracker") << testGeomDet->position();
313 
314  //Dump Run and Event
315  irun = iEvent.id().run();
316  ievt = iEvent.id().event();
317 
318  // Reset tree variables
319  int countpart[2] = {0, 0}, countpartrec[2] = {0, 0}, flag = 0, flagrec = 0, count = 0, countrec = 0;
320  //int countsim=0;
321  float ene[2][2], px[2][2], py[2][2], pz[2][2], ptmu[2][2];
322  float recene[2][2], recp[2][2], recpx[2][2], recpy[2][2], recpz[2][2], recptmu[2][2];
323 
324  for (int i = 0; i < 2; i++) {
325  for (int j = 0; j < 2; j++) {
326  ene[i][j] = 0.;
327  px[i][j] = 0.;
328  py[i][j] = 0.;
329  pz[i][j] = 0.;
330  ptmu[i][j] = 0.;
331  recene[i][j] = 0.;
332  recp[i][j] = 0.;
333  recpx[i][j] = 0.;
334  recpy[i][j] = 0.;
335  recpz[i][j] = 0.;
336  recptmu[i][j] = 0.;
337  }
338  }
339 
340  const edm::Handle<TrackingParticleCollection>& TPCollectionHeff = iEvent.getHandle(tpeffToken_);
341  const TrackingParticleCollection tPCeff = *(TPCollectionHeff.product());
342 
343  const edm::Handle<TrackingParticleCollection>& TPCollectionHfake = iEvent.getHandle(tpfakeToken_);
344  const TrackingParticleCollection tPCfake = *(TPCollectionHfake.product());
345 
346  int w = 0;
347  for (unsigned int ww = 0; ww < associators.size(); ww++) {
348  //
349  //get collections from the event
350  //
351 
353  const edm::View<reco::Track> tC = *(trackCollection.product());
354 
355  //associate tracks
356  LogTrace("TrackValidator") << "Calling associateRecoToSim method\n";
357  reco::RecoToSimCollection recSimColl = associatore[ww]->associateRecoToSim(trackCollection, TPCollectionHfake);
358 
359  LogTrace("TrackValidator") << "Calling associateSimToReco method\n";
360  reco::SimToRecoCollection simRecColl = associatore[ww]->associateSimToReco(trackCollection, TPCollectionHeff);
361 
362  //
363  //compute number of tracks per eta interval
364  //
365 
366  if (selection_eff && !skip) {
367  edm::LogVerbatim("ValidationMisalignedTracker") << "Computing Efficiency";
368 
369  edm::LogVerbatim("TrackValidator") << "\n# of TrackingParticles (before cuts): " << tPCeff.size() << "\n";
370  int ats = 0;
371  int st = 0;
372  for (TrackingParticleCollection::size_type i = 0; i < tPCeff.size(); i++) {
373  // Initialize variables
374  eta = 0., theta = 0., phi = 0., pt = 0., cottheta = 0., costheta = 0.;
375  d0 = 0., z0 = 0.;
376  nhit = 0;
377  receta = 0., rectheta = 0., recphi = 0., recpt = 0., reccottheta = 0., recd0 = 0., recz0 = 0.;
378  respt = 0., resd0 = 0., resz0 = 0., reseta = 0., resphi = 0., rescottheta = 0.;
379  recchiq = 0.;
380  recnhit = 0;
381  trackType = 0;
382  eff = 0;
383 
384  // typedef edm::Ref<TrackingParticleCollection> TrackingParticleRef;
385  TrackingParticleRef tp(TPCollectionHeff, i);
386  if (tp->charge() == 0)
387  continue;
388  st++;
389  //pt=sqrt(tp->momentum().perp2());
390  //eta=tp->momentum().eta();
391  //vpos=tp->vertex().perp2()));
392 
393  const SimTrack* simulatedTrack = &(*tp->g4Track_begin());
394 
395  const MagneticField* theMF = &iSetup.getData(magFieldToken_);
396  FreeTrajectoryState ftsAtProduction(
397  GlobalPoint(tp->vertex().x(), tp->vertex().y(), tp->vertex().z()),
398  GlobalVector(
399  simulatedTrack->momentum().x(), simulatedTrack->momentum().y(), simulatedTrack->momentum().z()),
400  TrackCharge(tp->charge()),
401  theMF);
402  TSCPBuilderNoMaterial tscpBuilder;
403  TrajectoryStateClosestToPoint tsAtClosestApproach =
404  tscpBuilder(ftsAtProduction, GlobalPoint(0, 0, 0)); //as in TrackProducerAlgorithm
405  GlobalPoint v = tsAtClosestApproach.theState().position();
406  GlobalVector p = tsAtClosestApproach.theState().momentum();
407 
408  // double qoverpSim = tsAtClosestApproach.charge()/p.mag();
409  // double lambdaSim = M_PI/2-p.theta();
410  // double phiSim = p.phi();
411  double dxySim = (-v.x() * sin(p.phi()) + v.y() * cos(p.phi()));
412  double dszSim = v.z() * p.perp() / p.mag() - (v.x() * p.x() + v.y() * p.y()) / p.perp() * p.z() / p.mag();
413  d0 = float(-dxySim);
414  z0 = float(dszSim * p.mag() / p.perp());
415 
416  if (abs(simulatedTrack->type()) == 13 && simulatedTrack->genpartIndex() != -1) {
417  edm::LogVerbatim("ValidationMisalignedTracker") << " TRACCIA SIM DI MUONI ";
418  edm::LogVerbatim("ValidationMisalignedTracker") << "Gen part " << simulatedTrack->genpartIndex();
419  trackType = simulatedTrack->type();
420  theta = simulatedTrack->momentum().theta();
421  costheta = cos(theta);
422  cottheta = 1. / tan(theta);
423 
424  eta = simulatedTrack->momentum().eta();
425  phi = simulatedTrack->momentum().phi();
426  pt = simulatedTrack->momentum().pt();
427  nhit = tp->matchedHit();
428 
429  edm::LogVerbatim("ValidationMisalignedTracker")
430  << "3) Before assoc: SimTrack of type = " << simulatedTrack->type() << " ,at eta = " << eta
431  << " ,with pt at vertex = " << simulatedTrack->momentum().pt() << " GeV/c"
432  << " ,d0 =" << d0 << " ,z0 =" << z0 << " ,nhit=" << nhit;
433 
434  if (ZmassSelection_) {
435  if (abs(trackType) == 13 &&
436  (simulatedTrack->genpartIndex() == indmu[0] || simulatedTrack->genpartIndex() == indmu[1])) {
437  edm::LogVerbatim("ValidationMisalignedTracker") << " TRACK sim of muons from Z ";
438  flag = 0;
439  count = countpart[0];
440  countpart[0]++;
441  } else if (abs(trackType) == 11) {
442  //edm::LogVerbatim("ValidationMisalignedTracker") << " TRACCIA SIM DI ELETTRONI ";
443  flag = 1;
444  count = countpart[1];
445  countpart[1]++;
446  }
447 
448  px[flag][count] = simulatedTrack->momentum().x();
449  py[flag][count] = simulatedTrack->momentum().y();
450  pz[flag][count] = simulatedTrack->momentum().z();
451  ptmu[flag][count] = simulatedTrack->momentum().pt();
452  ene[flag][count] = simulatedTrack->momentum().e();
453  }
454 
455  std::vector<std::pair<edm::RefToBase<reco::Track>, double> > rt;
456  if (simRecColl.find(tp) != simRecColl.end()) {
457  rt = simRecColl[tp];
458  if (!rt.empty()) {
459  edm::RefToBase<reco::Track> t = rt.begin()->first;
460  ats++;
461 
462  // bool flagptused=false;
463  // for (unsigned int j=0;j<ptused.size();j++){
464  // if (fabs(t->pt()-ptused[j])<0.001) {
465  // flagptused=true;
466  // }
467  // }
468 
469  edm::LogVerbatim("TrackValidator") << "TrackingParticle #" << st << " with pt=" << t->pt()
470  << " associated with quality:" << rt.begin()->second << "\n";
471  edm::LogVerbatim("ValidationMisalignedTracker") << "Reconstructed Track:" << t->pt();
472  edm::LogVerbatim("ValidationMisalignedTracker") << "\tpT: " << t->pt();
473  edm::LogVerbatim("ValidationMisalignedTracker") << "\timpact parameter:d0: " << t->d0();
474  edm::LogVerbatim("ValidationMisalignedTracker") << "\timpact parameter:z0: " << t->dz();
475  edm::LogVerbatim("ValidationMisalignedTracker")
476  << "\tAzimuthal angle of point of closest approach:" << t->phi();
477  edm::LogVerbatim("ValidationMisalignedTracker") << "\tcharge: " << t->charge();
478  edm::LogVerbatim("ValidationMisalignedTracker") << "\teta: " << t->eta();
479  edm::LogVerbatim("ValidationMisalignedTracker") << "\tnormalizedChi2: " << t->normalizedChi2();
480 
481  recnhit = t->numberOfValidHits();
482  recchiq = t->normalizedChi2();
483  rectheta = t->theta();
484  reccottheta = 1. / tan(rectheta);
485  //receta=-log(tan(rectheta/2.));
486  receta = t->momentum().eta();
487  // reccostheta=cos(matchedrectrack->momentum().theta());
488  recphi = t->phi();
489  recpt = t->pt();
490  ptused.push_back(recpt);
491  recd0 = t->d0();
492  recz0 = t->dz();
493 
494  edm::LogVerbatim("ValidationMisalignedTracker")
495  << "5) After call to associator: the best match has " << recnhit << " hits, Chi2 = " << recchiq
496  << ", pt at vertex = " << recpt << " GeV/c, "
497  << ", recd0 = " << recd0 << ", recz0= " << recz0;
498 
499  respt = recpt - pt;
500  resd0 = recd0 - d0;
501  resz0 = recz0 - z0;
502  reseta = receta - eta;
503  resphi = recphi - phi;
505  eff = 1;
506 
507  edm::LogVerbatim("ValidationMisalignedTracker")
508  << "6) Transverse momentum residual=" << respt << " ,d0 residual=" << resd0
509  << " ,z0 residual=" << resz0 << " with eff=" << eff;
510 
511  if (ZmassSelection_) {
512  if (abs(trackType) == 13) {
513  edm::LogVerbatim("ValidationMisalignedTracker") << " TRACCIA RECO DI MUONI ";
514  flagrec = 0;
515  countrec = countpartrec[0];
516  countpartrec[0]++;
517  } else if (abs(trackType) == 11) {
518  edm::LogVerbatim("ValidationMisalignedTracker") << " TRACCIA RECO DI ELETTRONI ";
519  flagrec = 1;
520  countrec = countpartrec[1];
521  countpartrec[1]++;
522  }
523 
524  recp[flagrec][countrec] = sqrt(t->momentum().mag2());
525  recpx[flagrec][countrec] = t->momentum().x();
526  recpy[flagrec][countrec] = t->momentum().y();
527  recpz[flagrec][countrec] = t->momentum().z();
529  sqrt((t->momentum().x() * t->momentum().x()) + (t->momentum().y() * t->momentum().y()));
530  if (abs(trackType) == 13)
531  recene[flagrec][countrec] = sqrt(recp[flagrec][countrec] * recp[flagrec][countrec] + 0.105 * 0.105);
532  if (abs(trackType) == 11)
533  recene[flagrec][countrec] = sqrt(recp[flagrec][countrec] * recp[flagrec][countrec] + 0.0005 * 0.0005);
534  }
535 
536  edm::LogVerbatim("ValidationMisalignedTracker") << "7) Transverse momentum reconstructed =" << recpt
537  << " at eta= " << receta << " and phi= " << recphi;
538  }
539  } else {
540  edm::LogVerbatim("TrackValidator")
541  << "TrackingParticle #" << st << " with pt=" << sqrt(tp->momentum().perp2())
542  << " NOT associated to any reco::Track"
543  << "\n";
544  receta = -100.;
545  recphi = -100.;
546  recpt = -100.;
547  recd0 = -100.;
548  recz0 = -100;
549  respt = -100.;
550  resd0 = -100.;
551  resz0 = -100.;
552  resphi = -100.;
553  reseta = -100.;
554  rescottheta = -100.;
555  recnhit = 100;
556  recchiq = -100;
557  eff = 0;
558  flagrec = 100;
559  }
560 
561  edm::LogVerbatim("ValidationMisalignedTracker") << "Eff=" << eff;
562 
563  // simulated muons
564 
565  edm::LogVerbatim("ValidationMisalignedTracker") << "Flag is" << flag;
566  edm::LogVerbatim("ValidationMisalignedTracker") << "RecFlag is" << flagrec;
567 
568  if (countpart[0] == 2 && flag == 0) {
569  mzmu =
570  sqrt((ene[0][0] + ene[0][1]) * (ene[0][0] + ene[0][1]) - (px[0][0] + px[0][1]) * (px[0][0] + px[0][1]) -
571  (py[0][0] + py[0][1]) * (py[0][0] + py[0][1]) - (pz[0][0] + pz[0][1]) * (pz[0][0] + pz[0][1]));
572  edm::LogVerbatim("ValidationMisalignedTracker") << "Mzmu " << mzmu;
573  ptzmu = sqrt((px[0][0] + px[0][1]) * (px[0][0] + px[0][1]) + (py[0][0] + py[0][1]) * (py[0][0] + py[0][1]));
574 
575  pLzmu = pz[0][0] + pz[0][1];
576  enezmu = ene[0][0] + ene[0][1];
577  phizmu = atan2((py[0][0] + py[0][1]), (px[0][0] + px[0][1]));
578  thetazmu = atan2(ptzmu, (pz[0][0] + pz[0][1]));
579  etazmu = -log(tan(thetazmu * 3.14 / 360.));
580  yzmu = 0.5 * log((enezmu + pLzmu) / (enezmu - pLzmu));
581  mxptmu = std::max(ptmu[0][0], ptmu[0][1]);
582  minptmu = std::min(ptmu[0][0], ptmu[0][1]);
583  } else {
584  mzmu = -100.;
585  ptzmu = -100.;
586  pLzmu = -100.;
587  enezmu = -100.;
588  etazmu = -100.;
589  phizmu = -100.;
590  thetazmu = -100.;
591  yzmu = -100.;
592  mxptmu = -100.;
593  minptmu = -100.;
594  }
595 
596  // reconstructed muons
597  if (countpartrec[0] == 2 && flagrec == 0) {
598  recmzmu = sqrt((recene[0][0] + recene[0][1]) * (recene[0][0] + recene[0][1]) -
599  (recpx[0][0] + recpx[0][1]) * (recpx[0][0] + recpx[0][1]) -
600  (recpy[0][0] + recpy[0][1]) * (recpy[0][0] + recpy[0][1]) -
601  (recpz[0][0] + recpz[0][1]) * (recpz[0][0] + recpz[0][1]));
602  edm::LogVerbatim("ValidationMisalignedTracker") << "RecMzmu " << recmzmu;
603  recptzmu = sqrt((recpx[0][0] + recpx[0][1]) * (recpx[0][0] + recpx[0][1]) +
604  (recpy[0][0] + recpy[0][1]) * (recpy[0][0] + recpy[0][1]));
605 
606  recpLzmu = recpz[0][0] + recpz[0][1];
607  recenezmu = recene[0][0] + recene[0][1];
608  recphizmu = atan2((recpy[0][0] + recpy[0][1]), (recpx[0][0] + recpx[0][1]));
609  recthetazmu = atan2(recptzmu, (recpz[0][0] + recpz[0][1]));
610  recetazmu = -log(tan(recthetazmu * 3.14 / 360.));
611  recyzmu = 0.5 * log((recenezmu + recpLzmu) / (recenezmu - recpLzmu));
612  recmxptmu = std::max(recptmu[0][0], recptmu[0][1]);
613  recminptmu = std::min(recptmu[0][0], recptmu[0][1]);
614  } else {
615  recmzmu = -100.;
616  recptzmu = -100.;
617  recpLzmu = -100.;
618  recenezmu = -100.;
619  recetazmu = -100.;
620  recphizmu = -100.;
621  recthetazmu = -100.;
622  recyzmu = -100.;
623  recmxptmu = -100;
624  recminptmu = -100.;
625  }
626 
627  tree_eff->Fill();
628 
629  } // end of loop on muons
630  } // end of loop for tracking particle
631  } // end of loop for efficiency
632 
633  //
634  // Fake Rate
635  //
636  if (selection_fake) {
637  edm::LogVerbatim("ValidationMisalignedTracker") << "Computing Fake Rate";
638 
639  fakeeta = 0., faketheta = 0., fakephi = 0., fakept = 0., fakecottheta = 0., fakecostheta = 0.;
640  faked0 = 0., fakez0 = 0.;
641  fakenhit = 0;
642  fakereceta = 0., fakerectheta = 0., fakerecphi = 0., fakerecpt = 0., fakereccottheta = 0., fakerecd0 = 0.,
643  fakerecz0 = 0.;
644  fakerespt = 0., fakeresd0 = 0., fakeresz0 = 0., fakereseta = 0., fakeresphi = 0., fakerescottheta = 0.;
645  fakerecchiq = 0.;
646  fakerecnhit = 0;
647  faketrackType = 0;
648  fake = 0;
649 
650  // int at=0;
651  int rT = 0;
652  for (reco::TrackCollection::size_type i = 0; i < tC.size(); ++i) {
654  rT++;
655 
656  fakeeta = 0., faketheta = 0., fakephi = 0., fakept = 0., fakecottheta = 0., fakecostheta = 0.;
657  faked0 = 0., fakez0 = 0.;
658  fakenhit = 0;
659  fakereceta = 0., fakerectheta = 0., fakerecphi = 0., fakerecpt = 0., fakereccottheta = 0., fakerecd0 = 0.,
660  fakerecz0 = 0.;
661  fakerespt = 0., fakeresd0 = 0., fakeresz0 = 0., fakereseta = 0., fakeresphi = 0., fakerescottheta = 0.;
662  fakerecchiq = 0.;
663  fakerecnhit = 0;
664  faketrackType = 0;
665  fake = 0;
666 
667  fakerecnhit = track->numberOfValidHits();
668  fakerecchiq = track->normalizedChi2();
669  fakerectheta = track->theta();
670  fakereccottheta = 1. / tan(rectheta);
671  //fakereceta=-log(tan(rectheta/2.));
672  fakereceta = track->momentum().eta();
673  // fakereccostheta=cos(track->momentum().theta());
674  fakerecphi = track->phi();
675  fakerecpt = track->pt();
676  fakerecd0 = track->d0();
677  fakerecz0 = track->dz();
678 
679  edm::LogVerbatim("ValidationMisalignedTracker") << "1) Before assoc: TkRecTrack at eta = " << fakereceta;
680  edm::LogVerbatim("ValidationMisalignedTracker") << "Track number " << i;
681  edm::LogVerbatim("ValidationMisalignedTracker") << "\tPT: " << track->pt();
682  edm::LogVerbatim("ValidationMisalignedTracker") << "\timpact parameter:d0: " << track->d0();
683  edm::LogVerbatim("ValidationMisalignedTracker") << "\timpact parameter:z0: " << track->dz();
684  edm::LogVerbatim("ValidationMisalignedTracker")
685  << "\tAzimuthal angle of point of closest approach:" << track->phi();
686  edm::LogVerbatim("ValidationMisalignedTracker") << "\tcharge: " << track->charge();
687  edm::LogVerbatim("ValidationMisalignedTracker") << "\teta: " << track->eta();
688  edm::LogVerbatim("ValidationMisalignedTracker") << "\tnormalizedChi2: " << track->normalizedChi2();
689 
690  std::vector<std::pair<TrackingParticleRef, double> > tp;
691 
692  //Compute fake rate vs eta
693  if (recSimColl.find(track) != recSimColl.end()) {
694  tp = recSimColl[track];
695  if (!tp.empty()) {
696  edm::LogVerbatim("TrackValidator") << "reco::Track #" << rT << " with pt=" << track->pt()
697  << " associated with quality:" << tp.begin()->second << "\n";
698 
699  TrackingParticleRef tpr = tp.begin()->first;
700  const SimTrack* fakeassocTrack = &(*tpr->g4Track_begin());
701 
702  const MagneticField* theMF = &iSetup.getData(magFieldToken_);
703  FreeTrajectoryState ftsAtProduction(
704  GlobalPoint(tpr->vertex().x(), tpr->vertex().y(), tpr->vertex().z()),
705  GlobalVector(
706  fakeassocTrack->momentum().x(), fakeassocTrack->momentum().y(), fakeassocTrack->momentum().z()),
707  TrackCharge(tpr->charge()),
708  theMF);
709  TSCPBuilderNoMaterial tscpBuilder;
710  TrajectoryStateClosestToPoint tsAtClosestApproach =
711  tscpBuilder(ftsAtProduction, GlobalPoint(0, 0, 0)); //as in TrackProducerAlgorithm
712  GlobalPoint v = tsAtClosestApproach.theState().position();
713  GlobalVector p = tsAtClosestApproach.theState().momentum();
714 
715  // double qoverpSim = tsAtClosestApproach.charge()/p.mag();
716  // double lambdaSim = M_PI/2-p.theta();
717  // double phiSim = p.phi();
718  double dxySim = (-v.x() * sin(p.phi()) + v.y() * cos(p.phi()));
719  double dszSim = v.z() * p.perp() / p.mag() - (v.x() * p.x() + v.y() * p.y()) / p.perp() * p.z() / p.mag();
720  faked0 = float(-dxySim);
721  fakez0 = float(dszSim * p.mag() / p.perp());
722 
723  faketrackType = fakeassocTrack->type();
724  faketheta = fakeassocTrack->momentum().theta();
725  fakecottheta = 1. / tan(faketheta);
726  fakeeta = fakeassocTrack->momentum().eta();
727  fakephi = fakeassocTrack->momentum().phi();
728  fakept = fakeassocTrack->momentum().pt();
729  fakenhit = tpr->matchedHit();
730 
731  edm::LogVerbatim("ValidationMisalignedTracker")
732  << "4) After call to associator: the best SimTrack match is of type" << fakeassocTrack->type()
733  << " ,at eta = " << fakeeta << " and phi = " << fakephi << " ,with pt at vertex = " << fakept
734  << " GeV/c"
735  << " ,d0 global = " << faked0 << " ,z0 = " << fakez0;
736  fake = 1;
737 
741  fakereseta = -log(tan(fakerectheta / 2.)) - (-log(tan(faketheta / 2.)));
744  }
745  } else {
746  edm::LogVerbatim("TrackValidator")
747  << "reco::Track #" << rT << " with pt=" << track->pt() << " NOT associated to any TrackingParticle"
748  << "\n";
749 
750  fakeeta = -100.;
751  faketheta = -100;
752  fakephi = -100.;
753  fakept = -100.;
754  faked0 = -100.;
755  fakez0 = -100;
756  fakerespt = -100.;
757  fakeresd0 = -100.;
758  fakeresz0 = -100.;
759  fakeresphi = -100.;
760  fakereseta = -100.;
761  fakerescottheta = -100.;
762  fakenhit = 100;
763  fake = 0;
764  }
765 
766  tree_fake->Fill();
767  }
768 
769  } // End of loop on fakerate
770 
771  w++;
772 
773  } // End of loop on associators
774 }
Log< level::Info, true > LogVerbatim
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_
const std::vector< std::string > associators
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
T w() const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
T const * product() const
Definition: Handle.h:70
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
const edm::EDGetTokenT< TrackingParticleCollection > tpeffToken_
uint16_t size_type
const edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
const math::XYZTLorentzVectorD & momentum() const
Definition: CoreSimTrack.h:19
const_iterator find(const key_type &k) const
find element with specified reference key
#define LogTrace(id)
size_type size() const
const edm::EDGetTokenT< edm::HepMCProduct > evtToken_
const_iterator end() const
last iterator over the map (read only)
GlobalPoint position() const
int type() const
particle type (HEP PDT convension)
Definition: CoreSimTrack.h:22
int TrackCharge
Definition: TrackCharge.h:4
int iEvent
Definition: GenABIO.cc:224
const edm::EDGetTokenT< TrackingParticleCollection > tpfakeToken_
const DetContainer & detsTOB() const
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
const std::vector< edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > > assocToken_
T sqrt(T t)
Definition: SSEVec.h:19
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
GlobalVector momentum() const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
trackCollection
Definition: JetHT_cfg.py:51
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:37
Log< level::Info, false > LogInfo
const FreeTrajectoryState & theState() const
std::vector< TrackingParticle > TrackingParticleCollection
Global3DVector GlobalVector
Definition: GlobalVector.h:10
int genpartIndex() const
index of the corresponding Generator particle in the Event container (-1 if no Genpart) ...
Definition: SimTrack.h:37

◆ endJob()

void ValidationMisalignedTracker::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 777 of file ValidationMisalignedTracker.cc.

Referenced by o2olib.O2ORunMgr::executeJob().

777  {
778  edm::LogVerbatim("ValidationMisalignedTracker") << "\t Misalignment analysis completed \n";
779 }
Log< level::Info, true > LogVerbatim

◆ fillDescriptions()

void ValidationMisalignedTracker::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 227 of file ValidationMisalignedTracker.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, ProducerED_cfi::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

227  {
229  desc.add<std::vector<edm::InputTag> >("label", {});
230  desc.add<edm::InputTag>("label_tp_effic", edm::InputTag("FinalTrackRefitter"));
231  desc.add<edm::InputTag>("label_tp_fake", edm::InputTag("TrackRefitter"));
232  desc.add<std::vector<std::string> >("associators", {});
233  desc.addUntracked<bool>("selection_eff", false);
234  desc.addUntracked<bool>("selection_fake", true);
235  desc.addUntracked<bool>("ZmassSelection", false);
236  desc.addUntracked<std::string>("simobject", "g4SimHits");
237  desc.addUntracked<std::string>("TrackAssociator", "ByHits");
238  desc.addUntracked<std::string>("rootfile", "myroot.root");
239  descriptions.add("validationMisAlignedTracker", desc);
240 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

Member Data Documentation

◆ associators

const std::vector<std::string> ValidationMisalignedTracker::associators
private

Definition at line 58 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ assocToken_

const std::vector<edm::EDGetTokenT<reco::TrackToTrackingParticleAssociator> > ValidationMisalignedTracker::assocToken_
private

Definition at line 67 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ chi2tmp

double ValidationMisalignedTracker::chi2tmp
private

Definition at line 109 of file ValidationMisalignedTracker.h.

◆ costheta

float ValidationMisalignedTracker::costheta
private

Definition at line 86 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ cottheta

float ValidationMisalignedTracker::cottheta
private

Definition at line 86 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ count

int ValidationMisalignedTracker::count
private

◆ countpart

int ValidationMisalignedTracker::countpart[2]
private

Definition at line 79 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ countpartrec

int ValidationMisalignedTracker::countpartrec[2]
private

Definition at line 79 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ countrec

int ValidationMisalignedTracker::countrec
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ d0

float ValidationMisalignedTracker::d0
private

Definition at line 86 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ eff

float ValidationMisalignedTracker::eff
private

Definition at line 91 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ ene

float ValidationMisalignedTracker::ene[2][2]
private

Definition at line 82 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ enezmu

float ValidationMisalignedTracker::enezmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ eta

float ValidationMisalignedTracker::eta
private

◆ etazmu

float ValidationMisalignedTracker::etazmu
private

Definition at line 77 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ eventCount_

int ValidationMisalignedTracker::eventCount_
private

Definition at line 70 of file ValidationMisalignedTracker.h.

Referenced by ~ValidationMisalignedTracker().

◆ evtToken_

const edm::EDGetTokenT<edm::HepMCProduct> ValidationMisalignedTracker::evtToken_
private

Definition at line 63 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fake

float ValidationMisalignedTracker::fake
private

Definition at line 107 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakecostheta

float ValidationMisalignedTracker::fakecostheta
private

Definition at line 102 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakecottheta

float ValidationMisalignedTracker::fakecottheta
private

Definition at line 102 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakecount

int ValidationMisalignedTracker::fakecount
private

Definition at line 97 of file ValidationMisalignedTracker.h.

◆ fakecountpart

int ValidationMisalignedTracker::fakecountpart[2]
private

Definition at line 97 of file ValidationMisalignedTracker.h.

◆ fakecountpartrec

int ValidationMisalignedTracker::fakecountpartrec[2]
private

Definition at line 97 of file ValidationMisalignedTracker.h.

◆ fakecountrec

int ValidationMisalignedTracker::fakecountrec
private

Definition at line 97 of file ValidationMisalignedTracker.h.

◆ fakecountsim

int ValidationMisalignedTracker::fakecountsim
private

Definition at line 97 of file ValidationMisalignedTracker.h.

◆ faked0

float ValidationMisalignedTracker::faked0
private

Definition at line 102 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakeene

float ValidationMisalignedTracker::fakeene[2][2]
private

Definition at line 98 of file ValidationMisalignedTracker.h.

◆ fakeenezmu

float ValidationMisalignedTracker::fakeenezmu
private

Definition at line 95 of file ValidationMisalignedTracker.h.

◆ fakeeta

float ValidationMisalignedTracker::fakeeta
private

Definition at line 102 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakeetazmu

float ValidationMisalignedTracker::fakeetazmu
private

Definition at line 93 of file ValidationMisalignedTracker.h.

◆ fakeflag

int ValidationMisalignedTracker::fakeflag
private

Definition at line 97 of file ValidationMisalignedTracker.h.

◆ fakeflagrec

int ValidationMisalignedTracker::fakeflagrec
private

Definition at line 97 of file ValidationMisalignedTracker.h.

◆ fakeminptmu

float ValidationMisalignedTracker::fakeminptmu
private

Definition at line 95 of file ValidationMisalignedTracker.h.

◆ fakemxptmu

float ValidationMisalignedTracker::fakemxptmu
private

Definition at line 95 of file ValidationMisalignedTracker.h.

◆ fakemzmu

float ValidationMisalignedTracker::fakemzmu
private

Definition at line 93 of file ValidationMisalignedTracker.h.

◆ fakenAssoc

int ValidationMisalignedTracker::fakenAssoc
private

Definition at line 105 of file ValidationMisalignedTracker.h.

◆ fakenhit

int ValidationMisalignedTracker::fakenhit
private

Definition at line 103 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakep

float ValidationMisalignedTracker::fakep[2][2]
private

Definition at line 98 of file ValidationMisalignedTracker.h.

◆ fakephi

float ValidationMisalignedTracker::fakephi
private

Definition at line 102 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakephizmu

float ValidationMisalignedTracker::fakephizmu
private

Definition at line 93 of file ValidationMisalignedTracker.h.

◆ fakepLzmu

float ValidationMisalignedTracker::fakepLzmu
private

Definition at line 95 of file ValidationMisalignedTracker.h.

◆ fakept

float ValidationMisalignedTracker::fakept
private

Definition at line 102 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakeptmu

float ValidationMisalignedTracker::fakeptmu[2][2]
private

Definition at line 98 of file ValidationMisalignedTracker.h.

◆ fakeptzmu

float ValidationMisalignedTracker::fakeptzmu
private

Definition at line 93 of file ValidationMisalignedTracker.h.

◆ fakepx

float ValidationMisalignedTracker::fakepx[2][2]
private

Definition at line 98 of file ValidationMisalignedTracker.h.

◆ fakepy

float ValidationMisalignedTracker::fakepy[2][2]
private

Definition at line 98 of file ValidationMisalignedTracker.h.

◆ fakepz

float ValidationMisalignedTracker::fakepz[2][2]
private

Definition at line 98 of file ValidationMisalignedTracker.h.

◆ fakerecchiq

float ValidationMisalignedTracker::fakerecchiq
private

Definition at line 106 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakereccottheta

float ValidationMisalignedTracker::fakereccottheta
private

Definition at line 104 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakerecd0

float ValidationMisalignedTracker::fakerecd0
private

Definition at line 104 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakerecene

float ValidationMisalignedTracker::fakerecene[2][2]
private

Definition at line 99 of file ValidationMisalignedTracker.h.

◆ fakerecenezmu

float ValidationMisalignedTracker::fakerecenezmu
private

Definition at line 95 of file ValidationMisalignedTracker.h.

◆ fakereceta

float ValidationMisalignedTracker::fakereceta
private

Definition at line 104 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakerecetazmu

float ValidationMisalignedTracker::fakerecetazmu
private

Definition at line 93 of file ValidationMisalignedTracker.h.

◆ fakerecminptmu

float ValidationMisalignedTracker::fakerecminptmu
private

Definition at line 95 of file ValidationMisalignedTracker.h.

◆ fakerecmxptmu

float ValidationMisalignedTracker::fakerecmxptmu
private

Definition at line 95 of file ValidationMisalignedTracker.h.

◆ fakerecmzmu

float ValidationMisalignedTracker::fakerecmzmu
private

Definition at line 93 of file ValidationMisalignedTracker.h.

◆ fakerecnhit

int ValidationMisalignedTracker::fakerecnhit
private

Definition at line 105 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakerecp

float ValidationMisalignedTracker::fakerecp[2][2]
private

Definition at line 99 of file ValidationMisalignedTracker.h.

◆ fakerecphi

float ValidationMisalignedTracker::fakerecphi
private

Definition at line 104 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakerecphizmu

float ValidationMisalignedTracker::fakerecphizmu
private

Definition at line 93 of file ValidationMisalignedTracker.h.

◆ fakerecpLzmu

float ValidationMisalignedTracker::fakerecpLzmu
private

Definition at line 95 of file ValidationMisalignedTracker.h.

◆ fakerecpt

float ValidationMisalignedTracker::fakerecpt
private

Definition at line 104 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakerecptmu

float ValidationMisalignedTracker::fakerecptmu[2][2]
private

Definition at line 99 of file ValidationMisalignedTracker.h.

◆ fakerecptzmu

float ValidationMisalignedTracker::fakerecptzmu
private

Definition at line 93 of file ValidationMisalignedTracker.h.

◆ fakerecpx

float ValidationMisalignedTracker::fakerecpx[2][2]
private

Definition at line 99 of file ValidationMisalignedTracker.h.

◆ fakerecpy

float ValidationMisalignedTracker::fakerecpy[2][2]
private

Definition at line 99 of file ValidationMisalignedTracker.h.

◆ fakerecpz

float ValidationMisalignedTracker::fakerecpz[2][2]
private

Definition at line 99 of file ValidationMisalignedTracker.h.

◆ fakerectheta

float ValidationMisalignedTracker::fakerectheta
private

Definition at line 104 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakerecthetazmu

float ValidationMisalignedTracker::fakerecthetazmu
private

Definition at line 93 of file ValidationMisalignedTracker.h.

◆ fakerecyzmu

float ValidationMisalignedTracker::fakerecyzmu
private

Definition at line 95 of file ValidationMisalignedTracker.h.

◆ fakerecz0

float ValidationMisalignedTracker::fakerecz0
private

Definition at line 104 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakerescottheta

float ValidationMisalignedTracker::fakerescottheta
private

Definition at line 107 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakeresd0

float ValidationMisalignedTracker::fakeresd0
private

Definition at line 107 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakereseta

float ValidationMisalignedTracker::fakereseta
private

Definition at line 107 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakeresphi

float ValidationMisalignedTracker::fakeresphi
private

Definition at line 107 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakerespt

float ValidationMisalignedTracker::fakerespt
private

Definition at line 107 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakeresz0

float ValidationMisalignedTracker::fakeresz0
private

Definition at line 107 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ faketheta

float ValidationMisalignedTracker::faketheta
private

Definition at line 102 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakethetazmu

float ValidationMisalignedTracker::fakethetazmu
private

Definition at line 93 of file ValidationMisalignedTracker.h.

◆ faketrackType

int ValidationMisalignedTracker::faketrackType
private

Definition at line 101 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakeyzmu

float ValidationMisalignedTracker::fakeyzmu
private

Definition at line 95 of file ValidationMisalignedTracker.h.

◆ fakez0

float ValidationMisalignedTracker::fakez0
private

Definition at line 102 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ file_

TFile* ValidationMisalignedTracker::file_
private

Definition at line 73 of file ValidationMisalignedTracker.h.

Referenced by ~ValidationMisalignedTracker().

◆ flag

int ValidationMisalignedTracker::flag
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ flagrec

int ValidationMisalignedTracker::flagrec
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fractiontmp

float ValidationMisalignedTracker::fractiontmp
private

Definition at line 110 of file ValidationMisalignedTracker.h.

◆ geomToken_

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> ValidationMisalignedTracker::geomToken_
private

Definition at line 54 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ ievt

int ValidationMisalignedTracker::ievt
private

Definition at line 75 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ irun

int ValidationMisalignedTracker::irun
private

Definition at line 75 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ label

const std::vector<edm::InputTag> ValidationMisalignedTracker::label
private

◆ label_tp_effic

const edm::InputTag ValidationMisalignedTracker::label_tp_effic
private

Definition at line 60 of file ValidationMisalignedTracker.h.

◆ label_tp_fake

const edm::InputTag ValidationMisalignedTracker::label_tp_fake
private

Definition at line 61 of file ValidationMisalignedTracker.h.

◆ magField

GlobalVector ValidationMisalignedTracker::magField
private

Definition at line 113 of file ValidationMisalignedTracker.h.

◆ magFieldToken_

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> ValidationMisalignedTracker::magFieldToken_
private

Definition at line 55 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ minptmu

float ValidationMisalignedTracker::minptmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ mxptmu

float ValidationMisalignedTracker::mxptmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ mzmu

float ValidationMisalignedTracker::mzmu
private

Definition at line 77 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ nAssoc

int ValidationMisalignedTracker::nAssoc
private

Definition at line 89 of file ValidationMisalignedTracker.h.

◆ nhit

int ValidationMisalignedTracker::nhit
private

Definition at line 87 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ onlyDiag

bool ValidationMisalignedTracker::onlyDiag
private

Definition at line 111 of file ValidationMisalignedTracker.h.

◆ p

float ValidationMisalignedTracker::p[2][2]
private

Definition at line 82 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and Electron.Electron::ptErr().

◆ phi

float ValidationMisalignedTracker::phi
private

◆ phizmu

float ValidationMisalignedTracker::phizmu
private

Definition at line 77 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ pLzmu

float ValidationMisalignedTracker::pLzmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ pt

float ValidationMisalignedTracker::pt
private

◆ ptmu

float ValidationMisalignedTracker::ptmu[2][2]
private

Definition at line 82 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ ptused

std::vector<float> ValidationMisalignedTracker::ptused
private

Definition at line 114 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ ptzmu

float ValidationMisalignedTracker::ptzmu
private

Definition at line 77 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ px

float ValidationMisalignedTracker::px[2][2]
private

Definition at line 82 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ py

float ValidationMisalignedTracker::py[2][2]
private

Definition at line 82 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ pz

float ValidationMisalignedTracker::pz[2][2]
private

Definition at line 82 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recchiq

float ValidationMisalignedTracker::recchiq
private

Definition at line 90 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ reccottheta

float ValidationMisalignedTracker::reccottheta
private

Definition at line 88 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recd0

float ValidationMisalignedTracker::recd0
private

Definition at line 88 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recene

float ValidationMisalignedTracker::recene[2][2]
private

Definition at line 83 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recenezmu

float ValidationMisalignedTracker::recenezmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ receta

float ValidationMisalignedTracker::receta
private

Definition at line 88 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recetazmu

float ValidationMisalignedTracker::recetazmu
private

Definition at line 77 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recminptmu

float ValidationMisalignedTracker::recminptmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recmxptmu

float ValidationMisalignedTracker::recmxptmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recmzmu

float ValidationMisalignedTracker::recmzmu
private

Definition at line 77 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recnhit

int ValidationMisalignedTracker::recnhit
private

Definition at line 89 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recp

float ValidationMisalignedTracker::recp[2][2]
private

Definition at line 83 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recphi

float ValidationMisalignedTracker::recphi
private

Definition at line 88 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recphizmu

float ValidationMisalignedTracker::recphizmu
private

Definition at line 77 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recpLzmu

float ValidationMisalignedTracker::recpLzmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recpt

float ValidationMisalignedTracker::recpt
private

Definition at line 88 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recptmu

float ValidationMisalignedTracker::recptmu[2][2]
private

Definition at line 83 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recptzmu

float ValidationMisalignedTracker::recptzmu
private

Definition at line 77 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recpx

float ValidationMisalignedTracker::recpx[2][2]
private

Definition at line 83 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recpy

float ValidationMisalignedTracker::recpy[2][2]
private

Definition at line 83 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recpz

float ValidationMisalignedTracker::recpz[2][2]
private

Definition at line 83 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ rectheta

float ValidationMisalignedTracker::rectheta
private

Definition at line 88 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recthetazmu

float ValidationMisalignedTracker::recthetazmu
private

Definition at line 77 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recyzmu

float ValidationMisalignedTracker::recyzmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recz0

float ValidationMisalignedTracker::recz0
private

Definition at line 88 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ rescottheta

float ValidationMisalignedTracker::rescottheta
private

Definition at line 91 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ resd0

float ValidationMisalignedTracker::resd0
private

Definition at line 91 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ reseta

float ValidationMisalignedTracker::reseta
private

Definition at line 91 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ resphi

float ValidationMisalignedTracker::resphi
private

Definition at line 91 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ respt

float ValidationMisalignedTracker::respt
private

Definition at line 91 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ resz0

float ValidationMisalignedTracker::resz0
private

Definition at line 91 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ rootfile_

const std::string ValidationMisalignedTracker::rootfile_
private

Definition at line 62 of file ValidationMisalignedTracker.h.

◆ selection_eff

const bool ValidationMisalignedTracker::selection_eff
private

Definition at line 56 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ selection_fake

const bool ValidationMisalignedTracker::selection_fake
private

Definition at line 56 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ simobject

const std::string ValidationMisalignedTracker::simobject
private

Definition at line 57 of file ValidationMisalignedTracker.h.

◆ skip

bool ValidationMisalignedTracker::skip
private

Definition at line 69 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ theta

float ValidationMisalignedTracker::theta
private

Definition at line 86 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and Tau.Tau::zImpact().

◆ thetazmu

float ValidationMisalignedTracker::thetazmu
private

Definition at line 77 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ tpeffToken_

const edm::EDGetTokenT<TrackingParticleCollection> ValidationMisalignedTracker::tpeffToken_
private

Definition at line 64 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ tpfakeToken_

const edm::EDGetTokenT<TrackingParticleCollection> ValidationMisalignedTracker::tpfakeToken_
private

Definition at line 65 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ trackassociator

const std::string ValidationMisalignedTracker::trackassociator
private

Definition at line 57 of file ValidationMisalignedTracker.h.

◆ trackToken_

const edm::EDGetTokenT<edm::View<reco::Track> > ValidationMisalignedTracker::trackToken_
private

Definition at line 66 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ trackType

int ValidationMisalignedTracker::trackType
private

Definition at line 85 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ tree_eff

TTree* ValidationMisalignedTracker::tree_eff
private

Definition at line 71 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ~ValidationMisalignedTracker().

◆ tree_fake

TTree* ValidationMisalignedTracker::tree_fake
private

Definition at line 72 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ~ValidationMisalignedTracker().

◆ yzmu

float ValidationMisalignedTracker::yzmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ z0

float ValidationMisalignedTracker::z0
private

Definition at line 86 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ ZmassSelection_

const bool ValidationMisalignedTracker::ZmassSelection_
private

Definition at line 56 of file ValidationMisalignedTracker.h.

Referenced by analyze().