CMS 3D CMS Logo

List of all members | 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)
 

Private Member Functions

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

Private Attributes

std::vector< std::string > associators
 
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_
 
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
 
std::vector< edm::InputTaglabel
 
edm::InputTag label_tp_effic
 
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
 
std::string rootfile_
 
bool selection_eff
 
bool selection_fake
 
std::string simobject
 
bool skip
 
float theta
 
float thetazmu
 
std::string trackassociator
 
int trackType
 
TTree * tree_eff
 
TTree * tree_fake
 
float yzmu
 
float z0
 
bool ZmassSelection_
 

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 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 36 of file ValidationMisalignedTracker.h.

Constructor & Destructor Documentation

◆ ValidationMisalignedTracker()

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

Definition at line 38 of file ValidationMisalignedTracker.cc.

References associators, cottheta, count, countpart, countpartrec, countrec, d0, eff, ene, enezmu, eta, etazmu, eventCount_, fake, fakecottheta, faked0, fakeenezmu, fakeeta, fakeetazmu, fakeminptmu, fakemxptmu, fakemzmu, fakenAssoc, fakenhit, fakephi, fakephizmu, fakepLzmu, fakept, fakeptzmu, fakerecchiq, fakereccottheta, fakerecd0, fakerecenezmu, fakereceta, fakerecetazmu, fakerecminptmu, fakerecmxptmu, fakerecmzmu, fakerecnhit, fakerecphi, fakerecphizmu, fakerecpLzmu, fakerecpt, fakerecptzmu, fakerecthetazmu, fakerecyzmu, fakerecz0, fakerescottheta, fakeresd0, fakereseta, fakeresphi, fakerespt, fakeresz0, fakethetazmu, faketrackType, fakeyzmu, fakez0, file_, flag, flagrec, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), mps_fire::i, ievt, irun, dqmiolumiharvest::j, label, label_tp_effic, label_tp_fake, minptmu, mxptmu, mzmu, nAssoc, nhit, p, phi, phizmu, pLzmu, pt, ptmu, 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, recthetazmu, recyzmu, recz0, rescottheta, resd0, reseta, resphi, respt, resz0, rootfile_, selection_eff, selection_fake, simobject, AlCaHLTBitMon_QueryRunRegistry::string, thetazmu, trackassociator, trackType, tree_eff, tree_fake, yzmu, z0, and ZmassSelection_.

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

◆ ~ValidationMisalignedTracker()

ValidationMisalignedTracker::~ValidationMisalignedTracker ( )
override

Definition at line 208 of file ValidationMisalignedTracker.cc.

References gather_cfg::cout, eventCount_, file_, tree_eff, and tree_fake.

208  {
209  std::cout << "ValidationMisalignedTracker::endJob Processed " << eventCount_ << " events" << std::endl;
210 
211  // store the tree in the output file
212  file_->Write();
213 
214  // Closing the file deletes the tree.
215  file_->Close();
216  tree_eff = nullptr;
217  tree_fake = nullptr;
218 }

Member Function Documentation

◆ analyze()

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

Implements edm::one::EDAnalyzerBase.

Definition at line 225 of file ValidationMisalignedTracker.cc.

References funct::abs(), associators, funct::cos(), costheta, cottheta, count, countpart, countpartrec, countrec, gather_cfg::cout, d0, TrackerGeometry::detsTOB(), eff, edm::AssociationMap< Tag >::end(), ene, enezmu, eta, etazmu, 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, label, label_tp_effic, label_tp_fake, 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, HLT_2022v12_cff::track, duplicaterechits_cfi::trackCollection, trackType, tree_eff, tree_fake, CoreSimTrack::type(), findQualityFiles::v, w(), yzmu, z0, and ZmassSelection_.

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

References gather_cfg::cout.

Referenced by o2olib.O2ORunMgr::executeJob().

760 { std::cout << "\t Misalignment analysis completed \n" << std::endl; }

Member Data Documentation

◆ associators

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

Definition at line 97 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ chi2tmp

double ValidationMisalignedTracker::chi2tmp
private

Definition at line 94 of file ValidationMisalignedTracker.h.

◆ costheta

float ValidationMisalignedTracker::costheta
private

Definition at line 71 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ cottheta

float ValidationMisalignedTracker::cottheta
private

Definition at line 71 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ count

int ValidationMisalignedTracker::count
private

◆ countpart

int ValidationMisalignedTracker::countpart[2]
private

Definition at line 64 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ countpartrec

int ValidationMisalignedTracker::countpartrec[2]
private

Definition at line 64 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ countrec

int ValidationMisalignedTracker::countrec
private

Definition at line 65 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ d0

float ValidationMisalignedTracker::d0
private

Definition at line 71 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ eff

float ValidationMisalignedTracker::eff
private

Definition at line 76 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ ene

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

Definition at line 67 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ enezmu

float ValidationMisalignedTracker::enezmu
private

Definition at line 63 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ eta

float ValidationMisalignedTracker::eta
private

◆ etazmu

float ValidationMisalignedTracker::etazmu
private

Definition at line 62 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ eventCount_

int ValidationMisalignedTracker::eventCount_
private

◆ fake

float ValidationMisalignedTracker::fake
private

Definition at line 92 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakecostheta

float ValidationMisalignedTracker::fakecostheta
private

Definition at line 87 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakecottheta

float ValidationMisalignedTracker::fakecottheta
private

Definition at line 87 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakecount

int ValidationMisalignedTracker::fakecount
private

Definition at line 82 of file ValidationMisalignedTracker.h.

◆ fakecountpart

int ValidationMisalignedTracker::fakecountpart[2]
private

Definition at line 82 of file ValidationMisalignedTracker.h.

◆ fakecountpartrec

int ValidationMisalignedTracker::fakecountpartrec[2]
private

Definition at line 82 of file ValidationMisalignedTracker.h.

◆ fakecountrec

int ValidationMisalignedTracker::fakecountrec
private

Definition at line 82 of file ValidationMisalignedTracker.h.

◆ fakecountsim

int ValidationMisalignedTracker::fakecountsim
private

Definition at line 82 of file ValidationMisalignedTracker.h.

◆ faked0

float ValidationMisalignedTracker::faked0
private

Definition at line 87 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakeene

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

Definition at line 83 of file ValidationMisalignedTracker.h.

◆ fakeenezmu

float ValidationMisalignedTracker::fakeenezmu
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakeeta

float ValidationMisalignedTracker::fakeeta
private

Definition at line 87 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakeetazmu

float ValidationMisalignedTracker::fakeetazmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakeflag

int ValidationMisalignedTracker::fakeflag
private

Definition at line 82 of file ValidationMisalignedTracker.h.

◆ fakeflagrec

int ValidationMisalignedTracker::fakeflagrec
private

Definition at line 82 of file ValidationMisalignedTracker.h.

◆ fakeminptmu

float ValidationMisalignedTracker::fakeminptmu
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakemxptmu

float ValidationMisalignedTracker::fakemxptmu
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakemzmu

float ValidationMisalignedTracker::fakemzmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakenAssoc

int ValidationMisalignedTracker::fakenAssoc
private

Definition at line 90 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakenhit

int ValidationMisalignedTracker::fakenhit
private

Definition at line 88 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakep

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

Definition at line 83 of file ValidationMisalignedTracker.h.

◆ fakephi

float ValidationMisalignedTracker::fakephi
private

Definition at line 87 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakephizmu

float ValidationMisalignedTracker::fakephizmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakepLzmu

float ValidationMisalignedTracker::fakepLzmu
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakept

float ValidationMisalignedTracker::fakept
private

Definition at line 87 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakeptmu

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

Definition at line 83 of file ValidationMisalignedTracker.h.

◆ fakeptzmu

float ValidationMisalignedTracker::fakeptzmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakepx

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

Definition at line 83 of file ValidationMisalignedTracker.h.

◆ fakepy

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

Definition at line 83 of file ValidationMisalignedTracker.h.

◆ fakepz

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

Definition at line 83 of file ValidationMisalignedTracker.h.

◆ fakerecchiq

float ValidationMisalignedTracker::fakerecchiq
private

Definition at line 91 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakereccottheta

float ValidationMisalignedTracker::fakereccottheta
private

Definition at line 89 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakerecd0

float ValidationMisalignedTracker::fakerecd0
private

Definition at line 89 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakerecene

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

Definition at line 84 of file ValidationMisalignedTracker.h.

◆ fakerecenezmu

float ValidationMisalignedTracker::fakerecenezmu
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakereceta

float ValidationMisalignedTracker::fakereceta
private

Definition at line 89 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakerecetazmu

float ValidationMisalignedTracker::fakerecetazmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakerecminptmu

float ValidationMisalignedTracker::fakerecminptmu
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakerecmxptmu

float ValidationMisalignedTracker::fakerecmxptmu
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakerecmzmu

float ValidationMisalignedTracker::fakerecmzmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakerecnhit

int ValidationMisalignedTracker::fakerecnhit
private

Definition at line 90 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakerecp

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

Definition at line 84 of file ValidationMisalignedTracker.h.

◆ fakerecphi

float ValidationMisalignedTracker::fakerecphi
private

Definition at line 89 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakerecphizmu

float ValidationMisalignedTracker::fakerecphizmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakerecpLzmu

float ValidationMisalignedTracker::fakerecpLzmu
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakerecpt

float ValidationMisalignedTracker::fakerecpt
private

Definition at line 89 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakerecptmu

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

Definition at line 84 of file ValidationMisalignedTracker.h.

◆ fakerecptzmu

float ValidationMisalignedTracker::fakerecptzmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakerecpx

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

Definition at line 84 of file ValidationMisalignedTracker.h.

◆ fakerecpy

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

Definition at line 84 of file ValidationMisalignedTracker.h.

◆ fakerecpz

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

Definition at line 84 of file ValidationMisalignedTracker.h.

◆ fakerectheta

float ValidationMisalignedTracker::fakerectheta
private

Definition at line 89 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakerecthetazmu

float ValidationMisalignedTracker::fakerecthetazmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakerecyzmu

float ValidationMisalignedTracker::fakerecyzmu
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakerecz0

float ValidationMisalignedTracker::fakerecz0
private

Definition at line 89 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakerescottheta

float ValidationMisalignedTracker::fakerescottheta
private

Definition at line 92 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakeresd0

float ValidationMisalignedTracker::fakeresd0
private

Definition at line 92 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakereseta

float ValidationMisalignedTracker::fakereseta
private

Definition at line 92 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakeresphi

float ValidationMisalignedTracker::fakeresphi
private

Definition at line 92 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakerespt

float ValidationMisalignedTracker::fakerespt
private

Definition at line 92 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakeresz0

float ValidationMisalignedTracker::fakeresz0
private

Definition at line 92 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ faketheta

float ValidationMisalignedTracker::faketheta
private

Definition at line 87 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ fakethetazmu

float ValidationMisalignedTracker::fakethetazmu
private

Definition at line 78 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ faketrackType

int ValidationMisalignedTracker::faketrackType
private

Definition at line 86 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fakeyzmu

float ValidationMisalignedTracker::fakeyzmu
private

Definition at line 80 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ fakez0

float ValidationMisalignedTracker::fakez0
private

Definition at line 87 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ file_

TFile* ValidationMisalignedTracker::file_
private

◆ flag

int ValidationMisalignedTracker::flag
private

Definition at line 65 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ flagrec

int ValidationMisalignedTracker::flagrec
private

Definition at line 65 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ fractiontmp

float ValidationMisalignedTracker::fractiontmp
private

Definition at line 95 of file ValidationMisalignedTracker.h.

◆ geomToken_

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

Definition at line 47 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ ievt

int ValidationMisalignedTracker::ievt
private

Definition at line 60 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ irun

int ValidationMisalignedTracker::irun
private

Definition at line 60 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ label

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

◆ label_tp_effic

edm::InputTag ValidationMisalignedTracker::label_tp_effic
private

Definition at line 100 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ label_tp_fake

edm::InputTag ValidationMisalignedTracker::label_tp_fake
private

Definition at line 101 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ magField

GlobalVector ValidationMisalignedTracker::magField
private

Definition at line 103 of file ValidationMisalignedTracker.h.

◆ magFieldToken_

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

Definition at line 48 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ minptmu

float ValidationMisalignedTracker::minptmu
private

Definition at line 63 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ mxptmu

float ValidationMisalignedTracker::mxptmu
private

Definition at line 63 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ mzmu

float ValidationMisalignedTracker::mzmu
private

Definition at line 62 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ nAssoc

int ValidationMisalignedTracker::nAssoc
private

Definition at line 74 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ nhit

int ValidationMisalignedTracker::nhit
private

Definition at line 72 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ onlyDiag

bool ValidationMisalignedTracker::onlyDiag
private

Definition at line 96 of file ValidationMisalignedTracker.h.

◆ p

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

◆ phi

float ValidationMisalignedTracker::phi
private

◆ phizmu

float ValidationMisalignedTracker::phizmu
private

Definition at line 62 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ pLzmu

float ValidationMisalignedTracker::pLzmu
private

Definition at line 63 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ pt

float ValidationMisalignedTracker::pt
private

◆ ptmu

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

Definition at line 67 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ ptused

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

Definition at line 104 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ ptzmu

float ValidationMisalignedTracker::ptzmu
private

Definition at line 62 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ px

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

Definition at line 67 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ py

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

Definition at line 67 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ pz

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

Definition at line 67 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recchiq

float ValidationMisalignedTracker::recchiq
private

Definition at line 75 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ reccottheta

float ValidationMisalignedTracker::reccottheta
private

Definition at line 73 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recd0

float ValidationMisalignedTracker::recd0
private

Definition at line 73 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recene

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

Definition at line 68 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recenezmu

float ValidationMisalignedTracker::recenezmu
private

Definition at line 63 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ receta

float ValidationMisalignedTracker::receta
private

Definition at line 73 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recetazmu

float ValidationMisalignedTracker::recetazmu
private

Definition at line 62 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recminptmu

float ValidationMisalignedTracker::recminptmu
private

Definition at line 63 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recmxptmu

float ValidationMisalignedTracker::recmxptmu
private

Definition at line 63 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recmzmu

float ValidationMisalignedTracker::recmzmu
private

Definition at line 62 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recnhit

int ValidationMisalignedTracker::recnhit
private

Definition at line 74 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recp

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

Definition at line 68 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recphi

float ValidationMisalignedTracker::recphi
private

Definition at line 73 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recphizmu

float ValidationMisalignedTracker::recphizmu
private

Definition at line 62 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recpLzmu

float ValidationMisalignedTracker::recpLzmu
private

Definition at line 63 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recpt

float ValidationMisalignedTracker::recpt
private

Definition at line 73 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recptmu

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

Definition at line 68 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recptzmu

float ValidationMisalignedTracker::recptzmu
private

Definition at line 62 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recpx

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

Definition at line 68 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recpy

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

Definition at line 68 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recpz

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

Definition at line 68 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ rectheta

float ValidationMisalignedTracker::rectheta
private

Definition at line 73 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ recthetazmu

float ValidationMisalignedTracker::recthetazmu
private

Definition at line 62 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recyzmu

float ValidationMisalignedTracker::recyzmu
private

Definition at line 63 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ recz0

float ValidationMisalignedTracker::recz0
private

Definition at line 73 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ rescottheta

float ValidationMisalignedTracker::rescottheta
private

Definition at line 76 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ resd0

float ValidationMisalignedTracker::resd0
private

Definition at line 76 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ reseta

float ValidationMisalignedTracker::reseta
private

Definition at line 76 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ resphi

float ValidationMisalignedTracker::resphi
private

Definition at line 76 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ respt

float ValidationMisalignedTracker::respt
private

Definition at line 76 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ resz0

float ValidationMisalignedTracker::resz0
private

Definition at line 76 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ rootfile_

std::string ValidationMisalignedTracker::rootfile_
private

Definition at line 52 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ selection_eff

bool ValidationMisalignedTracker::selection_eff
private

Definition at line 51 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ selection_fake

bool ValidationMisalignedTracker::selection_fake
private

Definition at line 51 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ simobject

std::string ValidationMisalignedTracker::simobject
private

Definition at line 50 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ skip

bool ValidationMisalignedTracker::skip
private

Definition at line 54 of file ValidationMisalignedTracker.h.

Referenced by analyze().

◆ theta

float ValidationMisalignedTracker::theta
private

Definition at line 71 of file ValidationMisalignedTracker.h.

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

◆ thetazmu

float ValidationMisalignedTracker::thetazmu
private

Definition at line 62 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ trackassociator

std::string ValidationMisalignedTracker::trackassociator
private

Definition at line 50 of file ValidationMisalignedTracker.h.

Referenced by ValidationMisalignedTracker().

◆ trackType

int ValidationMisalignedTracker::trackType
private

Definition at line 70 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ tree_eff

TTree* ValidationMisalignedTracker::tree_eff
private

◆ tree_fake

TTree* ValidationMisalignedTracker::tree_fake
private

◆ yzmu

float ValidationMisalignedTracker::yzmu
private

Definition at line 63 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ z0

float ValidationMisalignedTracker::z0
private

Definition at line 71 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().

◆ ZmassSelection_

bool ValidationMisalignedTracker::ZmassSelection_
private

Definition at line 51 of file ValidationMisalignedTracker.h.

Referenced by analyze(), and ValidationMisalignedTracker().