test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
ZToLLEdmNtupleDumper Class Reference
Inheritance diagram for ZToLLEdmNtupleDumper:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

typedef math::XYZVector Vector
 
- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

 ZToLLEdmNtupleDumper (const edm::ParameterSet &)
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

std::vector< double > alpha_
 
edm::EDGetTokenT< BeamSpotbeamSpotToken_
 
std::vector< double > beta_
 
int counter
 
std::vector< double > dREcal_
 
std::vector< double > dRHcal_
 
std::vector< double > dRTrk_
 
std::vector< double > dRVetoTrk_
 
std::vector< double > etEcalThreshold_
 
std::vector< double > etHcalThreshold_
 
std::vector< string > hltPath_
 
edm::EDGetTokenT
< VertexCollection
primaryVerticesToken_
 
std::vector< double > ptThreshold_
 
std::vector< double > relativeIsolation_
 
std::vector< edm::EDGetTokenT
< GenParticleMatch > > 
zGenParticlesMatchTokens_
 
std::vector< std::string > zName_
 
std::vector< edm::EDGetTokenT
< CandidateView > > 
zTokens_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::EDProducer
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)
 
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 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)
 

Detailed Description

Definition at line 38 of file ZToLLEdmNtupleDumper.cc.

Member Typedef Documentation

Definition at line 40 of file ZToLLEdmNtupleDumper.cc.

Constructor & Destructor Documentation

ZToLLEdmNtupleDumper::ZToLLEdmNtupleDumper ( const edm::ParameterSet cfg)

Definition at line 108 of file ZToLLEdmNtupleDumper.cc.

References HLT_25ns14e33_v1_cff::alias, alpha, beta, edm::ParameterSet::getParameter(), i, and AlCaHLTBitMon_QueryRunRegistry::string.

108  {
109  string alias;
110  vector<ParameterSet> psets = cfg.getParameter<vector<ParameterSet> > ( "zBlocks" );
111  for( std::vector<edm::ParameterSet>::const_iterator i = psets.begin(); i != psets.end(); ++ i ) {
112  string zName = i->getParameter<string>( "zName" );
113  edm::EDGetTokenT<CandidateView> zToken = consumes<CandidateView>( i->getParameter<InputTag>( "z" ) );
114  edm::EDGetTokenT<GenParticleMatch> zGenParticlesMatchToken = consumes<GenParticleMatch>( i->getParameter<InputTag>( "zGenParticlesMatch" ) );
115  beamSpotToken_ = consumes<BeamSpot>( i->getParameter<InputTag>( "beamSpot" ) );
116  primaryVerticesToken_= consumes<VertexCollection>( i->getParameter<InputTag>( "primaryVertices" ) ) ;
117  double ptThreshold = i->getParameter<double>("ptThreshold");
118  double etEcalThreshold = i->getParameter<double>("etEcalThreshold");
119  double etHcalThreshold= i->getParameter<double>("etHcalThreshold");
120  double dRVetoTrk=i->getParameter<double>("deltaRVetoTrk");
121  double dRTrk=i->getParameter<double>("deltaRTrk");
122  double dREcal=i->getParameter<double>("deltaREcal");
123  double dRHcal=i->getParameter<double>("deltaRHcal");
124  double alpha=i->getParameter<double>("alpha");
125  double beta=i->getParameter<double>("beta");
126  bool relativeIsolation = i->getParameter<bool>("relativeIsolation");
127  string hltPath = i ->getParameter<std::string >("hltPath");
128  zName_.push_back( zName );
129  zTokens_.push_back( zToken );
130  zGenParticlesMatchTokens_.push_back( zGenParticlesMatchToken );
131  ptThreshold_.push_back( ptThreshold );
132  etEcalThreshold_.push_back(etEcalThreshold);
133  etHcalThreshold_.push_back(etHcalThreshold);
134  dRVetoTrk_.push_back(dRVetoTrk);
135  dRTrk_.push_back(dRTrk);
136  dREcal_.push_back(dREcal);
137  dRHcal_.push_back(dRHcal);
138  alpha_.push_back(alpha);
139  beta_.push_back(beta);
140  relativeIsolation_.push_back(relativeIsolation);
141  hltPath_.push_back(hltPath);
142  produces<vector<edm::EventNumber_t> >( alias = zName + "EventNumber" ).setBranchAlias( alias );
143  produces<vector<unsigned int> >( alias = zName + "RunNumber" ).setBranchAlias( alias );
144  produces<vector<unsigned int> >( alias = zName + "LumiBlock" ).setBranchAlias( alias );
145  produces<vector<float> >( alias = zName + "Mass" ).setBranchAlias( alias );
146  produces<vector<float> >( alias = zName + "MassSa" ).setBranchAlias( alias );
147  produces<vector<float> >( alias = zName + "Pt" ).setBranchAlias( alias );
148  produces<vector<float> >( alias = zName + "Eta" ).setBranchAlias( alias );
149  produces<vector<float> >( alias = zName + "Phi" ).setBranchAlias( alias );
150  produces<vector<float> >( alias = zName + "Y" ).setBranchAlias( alias );
151  produces<vector<float> >( alias = zName + "Dau1Pt" ).setBranchAlias( alias );
152  produces<vector<float> >( alias = zName + "Dau2Pt" ).setBranchAlias( alias );
153  produces<vector<float> >( alias = zName + "Dau1SaPt" ).setBranchAlias( alias );
154  produces<vector<float> >( alias = zName + "Dau2SaPt" ).setBranchAlias( alias );
155  produces<vector<unsigned int> >( alias = zName + "Dau1HLTBit" ).setBranchAlias( alias );
156  produces<vector<unsigned int> >( alias = zName + "Dau2HLTBit" ).setBranchAlias( alias );
157  produces<vector<int> >( alias = zName + "Dau1Q" ).setBranchAlias( alias );
158  produces<vector<int> >( alias = zName + "Dau2Q" ).setBranchAlias( alias );
159  produces<vector<float> >( alias = zName + "Dau1Eta" ).setBranchAlias( alias );
160  produces<vector<float> >( alias = zName + "Dau2Eta" ).setBranchAlias( alias );
161  produces<vector<float> >( alias = zName + "Dau1SaEta" ).setBranchAlias( alias );
162  produces<vector<float> >( alias = zName + "Dau2SaEta" ).setBranchAlias( alias );
163  produces<vector<float> >( alias = zName + "Dau1Phi" ).setBranchAlias( alias );
164  produces<vector<float> >( alias = zName + "Dau2Phi" ).setBranchAlias( alias );
165  produces<vector<float> >( alias = zName + "Dau1SaPhi" ).setBranchAlias( alias );
166  produces<vector<float> >( alias = zName + "Dau2SaPhi" ).setBranchAlias( alias );
167  produces<vector<float> >( alias = zName + "Dau1Iso" ).setBranchAlias( alias );
168  produces<vector<float> >( alias = zName + "Dau2Iso" ).setBranchAlias( alias );
169  produces<vector<float> >( alias = zName + "Dau1TrkIso" ).setBranchAlias( alias );
170  produces<vector<float> >( alias = zName + "Dau2TrkIso" ).setBranchAlias( alias );
171  produces<vector<float> >( alias = zName + "Dau1EcalIso" ).setBranchAlias( alias );
172  produces<vector<float> >( alias = zName + "Dau2EcalIso" ).setBranchAlias( alias );
173  produces<vector<float> >( alias = zName + "Dau1HcalIso" ).setBranchAlias( alias );
174  produces<vector<float> >( alias = zName + "Dau2HcalIso" ).setBranchAlias( alias );
175  produces<vector<float> >( alias = zName + "Dau1MuEnergyEm" ).setBranchAlias( alias );
176  produces<vector<float> >( alias = zName + "Dau1MuEnergyHad" ).setBranchAlias( alias );
177  produces<vector<float> >( alias = zName + "Dau2MuEnergyEm" ).setBranchAlias( alias );
178  produces<vector<float> >( alias = zName + "Dau2MuEnergyHad" ).setBranchAlias( alias );
179 
180  produces<vector<float> >( alias = zName + "VtxNormChi2" ).setBranchAlias( alias );
181  produces<vector<unsigned int> >( alias = zName + "Dau1NofHit" ).setBranchAlias( alias );
182  produces<vector<unsigned int> >( alias = zName + "Dau2NofHit" ).setBranchAlias( alias );
183  produces<vector<unsigned int> >( alias = zName + "Dau1NofHitTk" ).setBranchAlias( alias );
184  produces<vector<unsigned int> >( alias = zName + "Dau1NofHitSta" ).setBranchAlias( alias );
185  produces<vector<unsigned int> >( alias = zName + "Dau2NofHitTk" ).setBranchAlias( alias );
186  produces<vector<unsigned int> >( alias = zName + "Dau2NofHitSta" ).setBranchAlias( alias );
187  produces<vector<unsigned int> >( alias = zName + "Dau1NofMuChambers" ).setBranchAlias( alias );
188  produces<vector<unsigned int> >( alias = zName + "Dau2NofMuChambers" ).setBranchAlias( alias );
189  produces<vector<unsigned int> >( alias = zName + "Dau1NofMuMatches" ).setBranchAlias( alias );
190  produces<vector<unsigned int> >( alias = zName + "Dau2NofMuMatches" ).setBranchAlias( alias );
191  produces<vector<float> >( alias = zName + "Dau1Chi2" ).setBranchAlias( alias );
192  produces<vector<float> >( alias = zName + "Dau2Chi2" ).setBranchAlias( alias );
193  produces<vector<float> >( alias = zName + "Dau1TrkChi2" ).setBranchAlias( alias );
194  produces<vector<float> >( alias = zName + "Dau2TrkChi2" ).setBranchAlias( alias );
195  produces<vector<float> >( alias = zName + "Dau1dxyFromBS" ).setBranchAlias( alias );
196  produces<vector<float> >( alias = zName + "Dau2dxyFromBS" ).setBranchAlias( alias );
197  produces<vector<float> >( alias = zName + "Dau1dzFromBS" ).setBranchAlias( alias );
198  produces<vector<float> >( alias = zName + "Dau2dzFromBS" ).setBranchAlias( alias );
199  produces<vector<float> >( alias = zName + "Dau1dxyFromPV" ).setBranchAlias( alias );
200  produces<vector<float> >( alias = zName + "Dau2dxyFromPV" ).setBranchAlias( alias );
201  produces<vector<float> >( alias = zName + "Dau1dzFromPV" ).setBranchAlias( alias );
202  produces<vector<float> >( alias = zName + "Dau2dzFromPV" ).setBranchAlias( alias );
203  produces<vector<float> >( alias = zName + "TrueMass" ).setBranchAlias( alias );
204  produces<vector<float> >( alias = zName + "TruePt" ).setBranchAlias( alias );
205  produces<vector<float> >( alias = zName + "TrueEta" ).setBranchAlias( alias );
206  produces<vector<float> >( alias = zName + "TruePhi" ).setBranchAlias( alias );
207  produces<vector<float> >( alias = zName + "TrueY" ).setBranchAlias( alias );
208  }
209 }
const double beta
std::vector< std::string > zName_
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
float alpha
Definition: AMPTWrapper.h:95
edm::EDGetTokenT< VertexCollection > primaryVerticesToken_
edm::EDGetTokenT< BeamSpot > beamSpotToken_
std::vector< double > ptThreshold_
std::vector< double > dRTrk_
std::vector< double > etEcalThreshold_
std::vector< edm::EDGetTokenT< GenParticleMatch > > zGenParticlesMatchTokens_
std::vector< double > dREcal_
std::vector< string > hltPath_
std::vector< double > relativeIsolation_
std::vector< double > dRVetoTrk_
std::vector< double > etHcalThreshold_
std::vector< double > alpha_
std::vector< double > dRHcal_
std::vector< edm::EDGetTokenT< CandidateView > > zTokens_
std::vector< double > beta_

Member Function Documentation

void ZToLLEdmNtupleDumper::produce ( edm::Event evt,
const edm::EventSetup  
)
overrideprivatevirtual

only for ZGolden evaluated zMassSa for the mu+sta pdf, see zmumuSaMassHistogram.cc

I fill the dau1 with positive and dau2 with negatove values for the pt, in order to flag the muons used for building zMassSa

I fill the dau1 with negatove and dau2 with positive values for the pt

Implements edm::EDProducer.

Definition at line 213 of file ZToLLEdmNtupleDumper.cc.

References EnergyCorrector::c, reco::Muon::calEnergy(), candIsolation(), reco::Candidate::charge(), counter, gather_cfg::cout, reco::Candidate::daughter(), reco::MuonEnergy::em, reco::Candidate::eta(), edm::EventID::event(), event(), Exception, reco::Candidate::get(), edm::Event::getByToken(), reco::MuonEnergy::had, reco::Candidate::hasMasterClone(), i, edm::EventBase::id(), pat::Muon::innerTrack(), edm::errors::InvalidReference, reco::Muon::isGlobalMuon(), edm::Ref< C, T, F >::isNonnull(), reco::Muon::isStandAloneMuon(), reco::Muon::isTrackerMuon(), fjr2json::lumi, edm::EventBase::luminosityBlock(), reco::Candidate::mass(), reco::Candidate::masterClone(), pat::Muon::normChi2(), reco::Muon::numberOfChambers(), reco::Muon::numberOfMatches(), pat::Muon::numberOfValidHits(), pat::Muon::outerTrack(), reco::Candidate::phi(), reco::Candidate::polarP4(), HLT_25ns14e33_v1_cff::primaryVertices, EnergyCorrector::pt, reco::Candidate::pt(), edm::Event::put(), reco::Candidate::rapidity(), edm::EventID::run(), DTTTrigCorrFirst::run, findQualityFiles::size, pat::GenericParticle::track(), pat::PATObject< ObjectType >::triggerObjectMatchesByPath(), and reco::Candidate::vertexNormalizedChi2().

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

213  {
214  Handle<reco::BeamSpot> beamSpotHandle;
215  if (!evt.getByToken(beamSpotToken_, beamSpotHandle)) {
216  std::cout << ">>> No beam spot found !!!"<<std::endl;
217  }
218  Handle<reco::VertexCollection> primaryVertices; // Collection of primary Vertices
219  if (!evt.getByToken(primaryVerticesToken_, primaryVertices)){
220  std::cout << ">>> No primary verteces found !!!"<<std::endl;
221  }
222 
223  unsigned int size = zTokens_.size();
224  for( unsigned int c = 0; c < size; ++ c ) {
225  Handle<CandidateView> zColl;
226  evt.getByToken( zTokens_[c], zColl );
227  bool isMCMatchTrue = false;
228  //if (zGenParticlesMatchTokens_[c] != "") isMCMatchTrue = true;
229  Handle<GenParticleMatch> zGenParticlesMatch;
230  if (evt.getByToken( zGenParticlesMatchTokens_[c], zGenParticlesMatch )) {
231  isMCMatchTrue=true;
232  }
233  unsigned int zSize = zColl->size();
234  auto_ptr<vector<edm::EventNumber_t> > event( new vector<edm::EventNumber_t> );
235  auto_ptr<vector<unsigned int> > run( new vector<unsigned int> );
236  auto_ptr<vector<unsigned int> > lumi( new vector<unsigned int > );
237  auto_ptr<vector<float> > zMass( new vector<float> );
238  auto_ptr<vector<float> > zMassSa( new vector<float> );
239  auto_ptr<vector<float> > zPt( new vector<float> );
240  auto_ptr<vector<float> > zEta( new vector<float> );
241  auto_ptr<vector<float> > zPhi( new vector<float> );
242  auto_ptr<vector<float> > zY( new vector<float> );
243  auto_ptr<vector<float> > zDau1Pt( new vector<float> );
244  auto_ptr<vector<float> > zDau2Pt( new vector<float> );
245  auto_ptr<vector<float> > zDau1SaPt( new vector<float> );
246  auto_ptr<vector<float> > zDau2SaPt( new vector<float> );
247  auto_ptr<vector<unsigned int> > zDau1HLTBit( new vector<unsigned int> );
248  auto_ptr<vector<unsigned int> > zDau2HLTBit( new vector<unsigned int> );
249  auto_ptr<vector<int> > zDau1Q( new vector<int> );
250  auto_ptr<vector<int> > zDau2Q( new vector<int> );
251  auto_ptr<vector<float> > zDau1Eta( new vector<float> );
252  auto_ptr<vector<float> > zDau2Eta( new vector<float> );
253  auto_ptr<vector<float> > zDau1SaEta( new vector<float> );
254  auto_ptr<vector<float> > zDau2SaEta( new vector<float> );
255  auto_ptr<vector<float> > zDau1Phi( new vector<float> );
256  auto_ptr<vector<float> > zDau2Phi( new vector<float> );
257  auto_ptr<vector<float> > zDau1SaPhi( new vector<float> );
258  auto_ptr<vector<float> > zDau2SaPhi( new vector<float> );
259  auto_ptr<vector<float> > zDau1Iso( new vector<float> );
260  auto_ptr<vector<float> > zDau2Iso( new vector<float> );
261  auto_ptr<vector<float> > zDau1TrkIso( new vector<float> );
262  auto_ptr<vector<float> > zDau2TrkIso( new vector<float> );
263  auto_ptr<vector<float> > zDau1EcalIso( new vector<float> );
264  auto_ptr<vector<float> > zDau2EcalIso( new vector<float> );
265  auto_ptr<vector<float> > zDau1HcalIso( new vector<float> );
266  auto_ptr<vector<float> > zDau2HcalIso( new vector<float> );
267  auto_ptr<vector<float> > zDau1MuEnergyEm( new vector<float> );
268  auto_ptr<vector<float> > zDau2MuEnergyEm( new vector<float> );
269  auto_ptr<vector<float> > zDau1MuEnergyHad( new vector<float> );
270  auto_ptr<vector<float> > zDau2MuEnergyHad( new vector<float> );
271  auto_ptr<vector<float> > vtxNormChi2( new vector<float> );
272  auto_ptr<vector<unsigned int> > zDau1NofHit( new vector<unsigned int> );
273  auto_ptr<vector<unsigned int> > zDau2NofHit( new vector<unsigned int> );
274  auto_ptr<vector<unsigned int> > zDau1NofHitTk( new vector<unsigned int> );
275  auto_ptr<vector<unsigned int> > zDau2NofHitTk( new vector<unsigned int> );
276  auto_ptr<vector<unsigned int> > zDau1NofHitSta( new vector<unsigned int> );
277  auto_ptr<vector<unsigned int> > zDau2NofHitSta( new vector<unsigned int> );
278  auto_ptr<vector<unsigned int> > zDau1NofMuChambers( new vector<unsigned int> );
279  auto_ptr<vector<unsigned int> > zDau2NofMuChambers( new vector<unsigned int> );
280  auto_ptr<vector<unsigned int> > zDau1NofMuMatches( new vector<unsigned int> );
281  auto_ptr<vector<unsigned int> > zDau2NofMuMatches( new vector<unsigned int> );
282  auto_ptr<vector<float> > zDau1Chi2( new vector<float> );
283  auto_ptr<vector<float> > zDau2Chi2( new vector<float> );
284  auto_ptr<vector<float> > zDau1TrkChi2( new vector<float> );
285  auto_ptr<vector<float> > zDau2TrkChi2( new vector<float> );
286  auto_ptr<vector<float> > zDau1dxyFromBS( new vector<float> );
287  auto_ptr<vector<float> > zDau2dxyFromBS( new vector<float> );
288  auto_ptr<vector<float> > zDau1dzFromBS( new vector<float> );
289  auto_ptr<vector<float> > zDau2dzFromBS( new vector<float> );
290  auto_ptr<vector<float> > zDau1dxyFromPV( new vector<float> );
291  auto_ptr<vector<float> > zDau2dxyFromPV( new vector<float> );
292  auto_ptr<vector<float> > zDau1dzFromPV( new vector<float> );
293  auto_ptr<vector<float> > zDau2dzFromPV( new vector<float> );
294  auto_ptr<vector<float> > trueZMass( new vector<float> );
295  auto_ptr<vector<float> > trueZPt( new vector<float> );
296  auto_ptr<vector<float> > trueZEta( new vector<float> );
297  auto_ptr<vector<float> > trueZPhi( new vector<float> );
298  auto_ptr<vector<float> > trueZY( new vector<float> );
299  event -> push_back(evt.id().event());
300  run -> push_back(evt.id().run());
301  lumi -> push_back(evt.luminosityBlock());
302  for( unsigned int i = 0; i < zSize; ++ i ) {
303  const Candidate & z = (*zColl)[ i ];
304  CandidateBaseRef zRef = zColl->refAt(i);
305  zMass->push_back( z.mass() );
306  zPt->push_back( z.pt() );
307  zEta->push_back( z.eta() );
308  zPhi->push_back( z.phi() );
309  zY->push_back( z.rapidity() );
310  vtxNormChi2->push_back(z.vertexNormalizedChi2() );
311  const Candidate * dau1 = z.daughter(0);
312  const Candidate * dau2 = z.daughter(1);
313  zDau1Pt->push_back( dau1->pt() );
314  zDau2Pt->push_back( dau2->pt() );
315  zDau1Q->push_back( dau1->charge() );
316  zDau2Q->push_back( dau2->charge() );
317  zDau1Eta->push_back( dau1->eta() );
318  zDau2Eta->push_back( dau2->eta() );
319  zDau1Phi->push_back( dau1->phi() );
320  zDau2Phi->push_back( dau2->phi() );
321  if(!(dau1->hasMasterClone()&&dau2->hasMasterClone()))
323  << "Candidate daughters have no master clone\n";
324  const CandidateBaseRef & mr1 = dau1->masterClone(), & mr2 = dau2->masterClone();
325 
326  const Candidate * m1 = &*mr1, * m2 = &*mr2;
327 
328  // isolation as defined by us into the analyzer
331  // tracker isolation : alpha =0
332  double trkIso1 = candIsolation(m1,ptThreshold_[c], etEcalThreshold_[c], etHcalThreshold_[c] ,dRVetoTrk_[c], dRTrk_[c], dREcal_[c] , dRHcal_[c], 0.0, beta_[c], relativeIsolation_[c]);
333  double trkIso2 = candIsolation(m2,ptThreshold_[c], etEcalThreshold_[c], etHcalThreshold_[c] ,dRVetoTrk_[c], dRTrk_[c], dREcal_[c] , dRHcal_[c], 0.0, beta_[c], relativeIsolation_[c] );
334  // ecal isolation : alpha =1, beta =1
335  double ecalIso1 = candIsolation(m1,ptThreshold_[c], etEcalThreshold_[c], etHcalThreshold_[c] ,dRVetoTrk_[c], dRTrk_[c], dREcal_[c] , dRHcal_[c], 1.0, 1.0, relativeIsolation_[c]);
336  double ecalIso2 = candIsolation(m2,ptThreshold_[c], etEcalThreshold_[c], etHcalThreshold_[c] ,dRVetoTrk_[c], dRTrk_[c], dREcal_[c] , dRHcal_[c], 1.0, 1.0, relativeIsolation_[c] );
337  // hcal isolation : alpha =1, beta =-1
338  double hcalIso1 = candIsolation(m1,ptThreshold_[c], etEcalThreshold_[c], etHcalThreshold_[c] ,dRVetoTrk_[c], dRTrk_[c], dREcal_[c] , dRHcal_[c], 1.0, -1.0, relativeIsolation_[c]);
339  double hcalIso2 = candIsolation(m2,ptThreshold_[c], etEcalThreshold_[c], etHcalThreshold_[c] ,dRVetoTrk_[c], dRTrk_[c], dREcal_[c] , dRHcal_[c], 1.0, -1.0, relativeIsolation_[c] );
340 
341  zDau1Iso->push_back( iso1 );
342  zDau2Iso->push_back( iso2 );
343  zDau1TrkIso->push_back( trkIso1 );
344  zDau2TrkIso->push_back( trkIso2 );
345  zDau1EcalIso->push_back( ecalIso1 );
346  zDau2EcalIso->push_back( ecalIso2 );
347  zDau1HcalIso->push_back( hcalIso1 );
348  zDau2HcalIso->push_back( hcalIso2 );
349  if (isMCMatchTrue){
350  GenParticleRef trueZRef = (*zGenParticlesMatch)[zRef];
351  //CandidateRef trueZRef = trueZIter->val;
352  if( trueZRef.isNonnull() ) {
353  const Candidate & z = * trueZRef;
354  trueZMass->push_back( z.mass() );
355  trueZPt->push_back( z.pt() );
356  trueZEta->push_back( z.eta() );
357  trueZPhi->push_back( z.phi() );
358  trueZY->push_back( z.rapidity() );
359  } else {
360  trueZMass->push_back( -100 );
361  trueZPt->push_back( -100 );
362  trueZEta->push_back( -100 );
363  trueZPhi->push_back( -100 );
364  trueZY->push_back( -100 );
365  }
366  }
367  // quality variables
368  const pat::Muon * mu1 = dynamic_cast<const pat::Muon*>(m1);
369  // protection for standalone and trackerMuon
370  if (mu1->isGlobalMuon() == true){
371  zDau1NofHit->push_back(mu1->numberOfValidHits());
372  zDau1NofHitTk->push_back(mu1->innerTrack()->numberOfValidHits());
373  zDau1NofHitSta->push_back(mu1->outerTrack()->numberOfValidHits());
374  zDau1Chi2->push_back(mu1->normChi2());
375  TrackRef mu1TrkRef = mu1->innerTrack();
376  zDau1TrkChi2->push_back( mu1TrkRef->normalizedChi2());
377  zDau1dxyFromBS->push_back(mu1TrkRef->dxy(beamSpotHandle->position()));
378  zDau1dzFromBS->push_back(mu1TrkRef->dz(beamSpotHandle->position()));
379  zDau1dxyFromPV->push_back(mu1TrkRef->dxy(primaryVertices->begin()->position() ));
380  zDau1dzFromPV->push_back(mu1TrkRef->dz(primaryVertices->begin()->position() ));
381  zDau1MuEnergyEm->push_back( mu1->calEnergy().em);
382  zDau1MuEnergyHad->push_back( mu1->calEnergy().had);
383 
384  } else if (mu1->isStandAloneMuon() == true) {
385  // the muon is a standalone
386  TrackRef mu1StaRef = mu1->outerTrack();
387  zDau1NofHit->push_back(mu1StaRef->numberOfValidHits());
388  zDau1NofHitTk->push_back(0);
389  zDau1NofHitSta->push_back(mu1StaRef->numberOfValidHits());
390  zDau1Chi2->push_back(mu1StaRef->normalizedChi2());
391  zDau1TrkChi2->push_back(0);
392  zDau1dxyFromBS->push_back(mu1StaRef->dxy(beamSpotHandle->position()));
393  zDau1dzFromBS->push_back(mu1StaRef->dz(beamSpotHandle->position()));
394  zDau1dxyFromPV->push_back(mu1StaRef->dxy(primaryVertices->begin()->position() ));
395  zDau1dzFromPV->push_back(mu1StaRef->dz(primaryVertices->begin()->position() ));
396  zDau1MuEnergyEm->push_back( -1);
397  zDau1MuEnergyHad->push_back( -1);
398  } else if (mu1->isTrackerMuon() == true) {
399  // the muon is a trackerMuon
400  TrackRef mu1TrkRef = mu1->innerTrack();
401  zDau1NofHit->push_back(mu1TrkRef->numberOfValidHits());
402  zDau1NofHitTk->push_back(mu1TrkRef->numberOfValidHits());
403  zDau1NofHitSta->push_back(0);
404  zDau1Chi2->push_back(mu1TrkRef->normalizedChi2());
405  zDau1TrkChi2->push_back(mu1TrkRef->normalizedChi2());
406  zDau1dxyFromBS->push_back(mu1TrkRef->dxy(beamSpotHandle->position()));
407  zDau1dzFromBS->push_back(mu1TrkRef->dz(beamSpotHandle->position()));
408  zDau1dxyFromPV->push_back(mu1TrkRef->dxy(primaryVertices->begin()->position() ));
409  zDau1dzFromPV->push_back(mu1TrkRef->dz(primaryVertices->begin()->position() ));
410  zDau1MuEnergyEm->push_back( mu1->calEnergy().em);
411  zDau1MuEnergyHad->push_back( mu1->calEnergy().had);
412  }
413  zDau1NofMuChambers->push_back(mu1->numberOfChambers());
414  zDau1NofMuMatches->push_back(mu1->numberOfMatches());
415 
416  // would we like to add another variables???
417  // HLT trigger bit
419 
420  int dimTrig1 = mu1HLTMatches.size();
421  if(dimTrig1 !=0 ){
422  zDau1HLTBit->push_back(1);
423  } else {
424  zDau1HLTBit->push_back(0);
425  }
426  const pat::Muon * mu2 = dynamic_cast<const pat::Muon*>(m2);
427  if (mu2!=0 ) {
428  if (mu2->isGlobalMuon() == true) {
429  zDau2NofHit->push_back(mu2->numberOfValidHits());
430  zDau2NofHitTk->push_back(mu2->innerTrack()->numberOfValidHits());
431  zDau2NofHitSta->push_back(mu2->outerTrack()->numberOfValidHits());
432  zDau2Chi2->push_back(mu2->normChi2());
433  TrackRef mu2TrkRef = mu2->innerTrack();
434  zDau1TrkChi2->push_back( mu2TrkRef->normalizedChi2());
435  zDau2dxyFromBS->push_back(mu2TrkRef->dxy(beamSpotHandle->position()));
436  zDau2dzFromBS->push_back(mu2TrkRef->dz(beamSpotHandle->position()));
437  zDau2dxyFromPV->push_back(mu2TrkRef->dxy(primaryVertices->begin()->position() ));
438  zDau2dzFromPV->push_back(mu2TrkRef->dz(primaryVertices->begin()->position() ));
439  zDau2MuEnergyEm->push_back( mu2->calEnergy().em);
440  zDau2MuEnergyHad->push_back( mu2->calEnergy().had);
441  } else if (mu2->isStandAloneMuon() == true){
442  // its' a standalone
443  zDau2HLTBit->push_back(0);
444  TrackRef mu2StaRef = mu2->outerTrack();
445  zDau2NofHit->push_back(mu2StaRef->numberOfValidHits());
446  zDau2NofHitTk->push_back(0);
447  zDau2NofHitSta->push_back(mu2StaRef->numberOfValidHits());
448  zDau2Chi2->push_back(mu2StaRef->normalizedChi2());
449  zDau2TrkChi2->push_back(0);
450  zDau2dxyFromBS->push_back(mu2StaRef->dxy(beamSpotHandle->position()));
451  zDau2dzFromBS->push_back(mu2StaRef->dz(beamSpotHandle->position()));
452  zDau2dxyFromPV->push_back(mu2StaRef->dxy(primaryVertices->begin()->position() ));
453  zDau2dzFromPV->push_back(mu2StaRef->dz(primaryVertices->begin()->position() ));
454  zDau1MuEnergyEm->push_back( -1);
455  zDau1MuEnergyHad->push_back( -1);
456  } else if (mu2->isTrackerMuon() == true) {
457  // the muon is a trackerMuon
458  TrackRef mu2TrkRef = mu2->innerTrack();
459  zDau2NofHit->push_back(mu2TrkRef->numberOfValidHits());
460  zDau2NofHitSta->push_back(0);
461  zDau2NofHitTk->push_back(mu2TrkRef->numberOfValidHits());
462  zDau2Chi2->push_back(mu2TrkRef->normalizedChi2());
463  zDau2TrkChi2->push_back(mu2TrkRef->normalizedChi2());
464  zDau2dxyFromBS->push_back(mu2TrkRef->dxy(beamSpotHandle->position()));
465  zDau2dzFromBS->push_back(mu2TrkRef->dz(beamSpotHandle->position()));
466  zDau2dxyFromPV->push_back(mu2TrkRef->dxy(primaryVertices->begin()->position() ));
467  zDau2dzFromPV->push_back(mu2TrkRef->dz(primaryVertices->begin()->position() ));
468  zDau2MuEnergyEm->push_back( mu2->calEnergy().em);
469  zDau2MuEnergyHad->push_back( mu2->calEnergy().had);
470  }
471 
472  // HLT trigger bit
474  int dimTrig2 = mu2HLTMatches.size();
475  if(dimTrig2 !=0 ){
476  zDau2HLTBit->push_back(1);
477  }
478  else {
479  zDau2HLTBit->push_back(0);
480  }
482  if ( mu1->isGlobalMuon() && mu2->isGlobalMuon() ) {
483  TrackRef stAloneTrack1;
484  TrackRef stAloneTrack2;
485  Vector momentum;
487  double mu_mass;
488  stAloneTrack1 = dau1->get<TrackRef,reco::StandAloneMuonTag>();
489  stAloneTrack2 = dau2->get<TrackRef,reco::StandAloneMuonTag>();
490  zDau1SaEta->push_back(stAloneTrack1->eta());
491  zDau2SaEta->push_back(stAloneTrack2->eta());
492  zDau1SaPhi->push_back(stAloneTrack1->phi());
493  zDau2SaPhi->push_back(stAloneTrack2->phi());
494  if(counter % 2 == 0) {
495  momentum = stAloneTrack1->momentum();
496  p4_1 = dau2->polarP4();
497  mu_mass = dau1->mass();
499  zDau1SaPt->push_back(stAloneTrack1 ->pt());
500  zDau2SaPt->push_back(- stAloneTrack2->pt());
501  }else{
502  momentum = stAloneTrack2->momentum();
503  p4_1= dau1->polarP4();
504  mu_mass = dau2->mass();
506  zDau1SaPt->push_back( - stAloneTrack1->pt());
507  zDau2SaPt->push_back( stAloneTrack2->pt());
508  }
509 
510  Candidate::PolarLorentzVector p4_2(momentum.rho(), momentum.eta(),momentum.phi(), mu_mass);
511  double mass = (p4_1+p4_2).mass();
512  zMassSa->push_back(mass);
513  ++counter;
514  }
515 
516 
517  zDau2NofMuChambers->push_back(mu2->numberOfChambers());
518  zDau2NofMuMatches->push_back(mu2->numberOfMatches());
519  } else{
520  // for ZMuTk case...
521  // it's a track......
522  const pat::GenericParticle * trk2 = dynamic_cast<const pat::GenericParticle*>(m2);
523  TrackRef mu2TrkRef = trk2->track();
524  zDau2NofHit->push_back(mu2TrkRef->numberOfValidHits());
525  zDau2NofHitTk->push_back( mu2TrkRef->numberOfValidHits());
526  zDau2NofHitSta->push_back( 0);
527  zDau2NofMuChambers->push_back(0);
528  zDau2NofMuMatches->push_back(0);
529  zDau2Chi2->push_back(mu2TrkRef->normalizedChi2());
530  zDau2dxyFromBS->push_back(mu2TrkRef->dxy(beamSpotHandle->position()));
531  zDau2dzFromBS->push_back(mu2TrkRef->dz(beamSpotHandle->position()));
532  zDau2dxyFromPV->push_back(mu2TrkRef->dxy(primaryVertices->begin()->position() ));
533  zDau2dzFromPV->push_back(mu2TrkRef->dz(primaryVertices->begin()->position() ));
534  zDau1MuEnergyEm->push_back( -1);
535  zDau1MuEnergyHad->push_back( -1);
536  }
537  }
538  const string & zName = zName_[c];
539  evt.put( event,zName + "EventNumber" );
540  evt.put( run, zName + "RunNumber" );
541  evt.put( lumi,zName + "LumiBlock" );
542  evt.put( zMass, zName + "Mass" );
543  evt.put( zMassSa, zName + "MassSa" );
544  evt.put( zPt, zName + "Pt" );
545  evt.put( zEta, zName + "Eta" );
546  evt.put( zPhi, zName + "Phi" );
547  evt.put( zY, zName + "Y" );
548  evt.put( zDau1Pt, zName + "Dau1Pt" );
549  evt.put( zDau2Pt, zName + "Dau2Pt" );
550  evt.put( zDau1SaPt, zName + "Dau1SaPt" );
551  evt.put( zDau2SaPt, zName + "Dau2SaPt" );
552  evt.put( zDau1HLTBit, zName + "Dau1HLTBit" );
553  evt.put( zDau2HLTBit, zName + "Dau2HLTBit" );
554  evt.put( zDau1Q, zName + "Dau1Q" );
555  evt.put( zDau2Q, zName + "Dau2Q" );
556  evt.put( zDau1Eta, zName + "Dau1Eta" );
557  evt.put( zDau2Eta, zName + "Dau2Eta" );
558  evt.put( zDau1SaEta, zName + "Dau1SaEta" );
559  evt.put( zDau2SaEta, zName + "Dau2SaEta" );
560  evt.put( zDau1Phi, zName + "Dau1Phi" );
561  evt.put( zDau2Phi, zName + "Dau2Phi" );
562  evt.put( zDau1SaPhi, zName + "Dau1SaPhi" );
563  evt.put( zDau2SaPhi, zName + "Dau2SaPhi" );
564  evt.put( zDau1Iso, zName + "Dau1Iso" );
565  evt.put( zDau2Iso, zName + "Dau2Iso" );
566  evt.put( zDau1TrkIso, zName + "Dau1TrkIso" );
567  evt.put( zDau2TrkIso, zName + "Dau2TrkIso" );
568  evt.put( zDau1EcalIso, zName + "Dau1EcalIso" );
569  evt.put( zDau2EcalIso, zName + "Dau2EcalIso" );
570  evt.put( zDau1HcalIso, zName + "Dau1HcalIso" );
571  evt.put( zDau2HcalIso, zName + "Dau2HcalIso" );
572  evt.put( zDau1MuEnergyEm, zName + "Dau1MuEnergyEm" );
573  evt.put( zDau2MuEnergyEm, zName + "Dau2MuEnergyEm" );
574  evt.put( zDau1MuEnergyHad, zName + "Dau1MuEnergyHad" );
575  evt.put( zDau2MuEnergyHad, zName + "Dau2MuEnergyHad" );
576  evt.put( vtxNormChi2, zName + "VtxNormChi2" );
577  evt.put( zDau1NofHit, zName + "Dau1NofHit" );
578  evt.put( zDau2NofHit, zName + "Dau2NofHit" );
579  evt.put( zDau1NofHitTk, zName + "Dau1NofHitTk" );
580  evt.put( zDau2NofHitTk, zName + "Dau2NofHitTk" );
581  evt.put( zDau1NofHitSta, zName + "Dau1NofHitSta" );
582  evt.put( zDau2NofHitSta, zName + "Dau2NofHitSta" );
583  evt.put( zDau1NofMuChambers, zName + "Dau1NofMuChambers" );
584  evt.put( zDau1NofMuMatches, zName + "Dau1NofMuMatches" );
585  evt.put( zDau2NofMuChambers, zName + "Dau2NofMuChambers" );
586  evt.put( zDau2NofMuMatches, zName + "Dau2NofMuMatches" );
587  evt.put( zDau1Chi2, zName + "Dau1Chi2" );
588  evt.put( zDau2Chi2, zName + "Dau2Chi2" );
589  evt.put( zDau1TrkChi2, zName + "Dau1TrkChi2" );
590  evt.put( zDau2TrkChi2, zName + "Dau2TrkChi2" );
591  evt.put( zDau1dxyFromBS, zName + "Dau1dxyFromBS" );
592  evt.put( zDau2dxyFromBS, zName + "Dau2dxyFromBS" );
593  evt.put( zDau1dxyFromPV, zName + "Dau1dxyFromPV" );
594  evt.put( zDau2dxyFromPV, zName + "Dau2dxyFromPV" );
595  evt.put( zDau1dzFromBS, zName + "Dau1dzFromBS" );
596  evt.put( zDau2dzFromBS, zName + "Dau2dzFromBS" );
597  evt.put( zDau1dzFromPV, zName + "Dau1dzFromPV" );
598  evt.put( zDau2dzFromPV, zName + "Dau2dzFromPV" );
599  evt.put( trueZMass, zName + "TrueMass" );
600  evt.put( trueZPt, zName + "TruePt" );
601  evt.put( trueZEta, zName + "TrueEta" );
602  evt.put( trueZPhi, zName + "TruePhi" );
603  evt.put( trueZY, zName + "TrueY" );
604 }
605 }
RunNumber_t run() const
Definition: EventID.h:39
std::vector< std::string > zName_
EventNumber_t event() const
Definition: EventID.h:41
int i
Definition: DBlmapReader.cc:9
reco::TrackRef innerTrack() const
reference to Track reconstructed in the tracker only (reimplemented from reco::Muon) ...
Definition: Muon.h:72
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
edm::EDGetTokenT< VertexCollection > primaryVerticesToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:464
virtual double pt() const =0
transverse momentum
edm::EDGetTokenT< BeamSpot > beamSpotToken_
tuple lumi
Definition: fjr2json.py:35
bool isTrackerMuon() const
Definition: Muon.h:219
std::vector< double > ptThreshold_
virtual double mass() const =0
mass
stand alone muon component tag
Definition: RecoCandidate.h:78
bool isGlobalMuon() const
Definition: Muon.h:218
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:63
virtual double rapidity() const =0
rapidity
std::vector< TriggerObjectStandAlone > TriggerObjectStandAloneCollection
Collection of TriggerObjectStandAlone.
bool isStandAloneMuon() const
Definition: Muon.h:220
std::vector< double > dRTrk_
reco::TrackRef outerTrack() const
reference to Track reconstructed in the muon detector only (reimplemented from reco::Muon) ...
Definition: Muon.h:76
std::vector< double > etEcalThreshold_
virtual const PolarLorentzVector & polarP4() const =0
four-momentum Lorentz vector
std::vector< edm::EDGetTokenT< GenParticleMatch > > zGenParticlesMatchTokens_
Analysis-level Generic Particle class (e.g. for hadron or muon not fully reconstructed) ...
virtual bool hasMasterClone() const =0
fixed size vector
Definition: Vector.h:31
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:120
virtual int charge() const =0
electric charge
virtual reco::TrackRef track() const
std::vector< double > dREcal_
const TriggerObjectStandAloneCollection triggerObjectMatchesByPath(const std::string &namePath, const bool pathLastFilterAccepted=false, const bool pathL3FilterAccepted=true) const
Definition: PATObject.h:610
double candIsolation(const reco::Candidate *c, double ptThreshold, double etEcalThreshold, double etHcalThreshold, double dRVetoTrk, double dRTrk, double dREcal, double dRHcal, double alpha, double beta, bool relativeIsolation)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
virtual double vertexNormalizedChi2() const =0
chi-squared divided by n.d.o.f.
MuonEnergy calEnergy() const
get energy deposition information
Definition: Muon.h:111
std::vector< string > hltPath_
std::vector< double > relativeIsolation_
std::vector< double > dRVetoTrk_
int numberOfChambers() const
Definition: Muon.h:184
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
std::vector< double > etHcalThreshold_
int numberOfMatches(ArbitrationType type=SegmentAndTrackArbitration) const
get number of chambers with matched segments
std::vector< double > alpha_
edm::EventID id() const
Definition: EventBase.h:60
std::vector< double > dRHcal_
T get() const
get a component
Definition: Candidate.h:217
std::vector< edm::EDGetTokenT< CandidateView > > zTokens_
tuple cout
Definition: gather_cfg.py:121
unsigned int numberOfValidHits() const
numberOfValidHits returns the number of valid hits on the global track.
double normChi2() const
Norm chi2 gives the normalized chi2 of the global track.
Analysis-level muon class.
Definition: Muon.h:49
tuple size
Write out results.
virtual double phi() const =0
momentum azimuthal angle
virtual double eta() const =0
momentum pseudorapidity
std::vector< double > beta_
virtual const CandidateBaseRef & masterClone() const =0
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: Candidate.h:39

Member Data Documentation

std::vector<double> ZToLLEdmNtupleDumper::alpha_
private

Definition at line 51 of file ZToLLEdmNtupleDumper.cc.

edm::EDGetTokenT<BeamSpot> ZToLLEdmNtupleDumper::beamSpotToken_
private

Definition at line 48 of file ZToLLEdmNtupleDumper.cc.

std::vector<double> ZToLLEdmNtupleDumper::beta_
private

Definition at line 51 of file ZToLLEdmNtupleDumper.cc.

int ZToLLEdmNtupleDumper::counter
private

Definition at line 54 of file ZToLLEdmNtupleDumper.cc.

Referenced by counter.Counters::__getitem__().

std::vector<double> ZToLLEdmNtupleDumper::dREcal_
private

Definition at line 51 of file ZToLLEdmNtupleDumper.cc.

std::vector<double> ZToLLEdmNtupleDumper::dRHcal_
private

Definition at line 51 of file ZToLLEdmNtupleDumper.cc.

std::vector<double> ZToLLEdmNtupleDumper::dRTrk_
private

Definition at line 51 of file ZToLLEdmNtupleDumper.cc.

std::vector<double> ZToLLEdmNtupleDumper::dRVetoTrk_
private

Definition at line 51 of file ZToLLEdmNtupleDumper.cc.

std::vector<double> ZToLLEdmNtupleDumper::etEcalThreshold_
private

Definition at line 51 of file ZToLLEdmNtupleDumper.cc.

std::vector<double> ZToLLEdmNtupleDumper::etHcalThreshold_
private

Definition at line 51 of file ZToLLEdmNtupleDumper.cc.

std::vector<string> ZToLLEdmNtupleDumper::hltPath_
private

Definition at line 53 of file ZToLLEdmNtupleDumper.cc.

edm::EDGetTokenT<VertexCollection> ZToLLEdmNtupleDumper::primaryVerticesToken_
private

Definition at line 49 of file ZToLLEdmNtupleDumper.cc.

std::vector<double> ZToLLEdmNtupleDumper::ptThreshold_
private

Definition at line 51 of file ZToLLEdmNtupleDumper.cc.

std::vector<double> ZToLLEdmNtupleDumper::relativeIsolation_
private

Definition at line 52 of file ZToLLEdmNtupleDumper.cc.

std::vector<edm::EDGetTokenT<GenParticleMatch> > ZToLLEdmNtupleDumper::zGenParticlesMatchTokens_
private

Definition at line 47 of file ZToLLEdmNtupleDumper.cc.

std::vector<std::string> ZToLLEdmNtupleDumper::zName_
private

Definition at line 45 of file ZToLLEdmNtupleDumper.cc.

std::vector<edm::EDGetTokenT<CandidateView> > ZToLLEdmNtupleDumper::zTokens_
private

Definition at line 46 of file ZToLLEdmNtupleDumper.cc.