1#ifndef __TRIDENTWAB_ANAPROCESSOR_H__
2#define __TRIDENTWAB_ANAPROCESSOR_H__
66 std::vector<TrackerHit*> *
hits_{};
70 std::vector<CalCluster*> *
clus_{};
91 std::map<std::string, std::shared_ptr<FlatTupleMaker> >
_reg_tuples;
100 typedef std::map<std::string,std::shared_ptr<TridentHistos> >::iterator
reg_it;
108 std::shared_ptr<AnaHelpers>
_ah;
112 std::vector<CalCluster*>
getUnmatchedClusters(std::vector<CalCluster*>& allClusters,std::vector<std::pair<CalCluster*,Track*> > electrons, std::vector<std::pair<CalCluster*,Track*> > positrons);
127 template<
typename Iter,
typename RandomGenerator>
129 std::uniform_int_distribution<> dis(0, std::distance(start, end) - 1);
130 std::advance(start, dis(g));
134 template<
typename Iter>
136 static std::random_device rd;
137 static std::mt19937 gen(rd());
Helper class for hipster analysis.
Class used to encapsulate information about a mc particle.
Class used to encapsulate information about a particle.
Base classes for all user event processing components to extend.
Class used to encapsulate raw svt hit information.
Class used to decode TS words.
Class used to encapsulate track information.
Class used to encapsulate tracker hit information.
Class used to encapsulate Vertex information.
Base class for all event processing components.
virtual bool process()
Process the histograms and generate analysis output.
~TridentWABAnaProcessor()
std::map< std::string, std::shared_ptr< BaseSelector > > _reg_WAB_selectors
std::vector< std::string > regionWABSelections_
std::vector< RawSvtHit * > * rawhits_
std::string selectionCfg_
virtual void configure(const ParameterSet ¶meters)
Callback for the Processor to configure itself from the given set of parameters.
std::shared_ptr< TridentHistos > _vtx_histos
virtual void finalize()
Callback for the Processor to take any necessary action when the processing of events finishes,...
Iter select_randomly(Iter start, Iter end)
std::vector< std::string > regionSelections_
virtual void initialize(TTree *tree)
Callback for the Processor to take any necessary action when the processing of events starts,...
std::map< std::string, std::shared_ptr< TridentHistos > > _reg_vtx_histos
std::vector< Track * > * trks_
std::map< std::string, std::shared_ptr< BaseSelector > > _reg_vtx_selectors
std::vector< CalCluster * > * clus_
std::map< std::string, std::shared_ptr< TridentHistos > > _reg_WAB_histos
std::shared_ptr< BaseSelector > vtxSelector
std::vector< TrackerHit * > * hits_
std::vector< std::string > _regionsWAB
std::map< std::string, std::shared_ptr< TridentHistos > >::iterator reg_it
std::map< std::string, std::shared_ptr< FlatTupleMaker > > _reg_tuples
Iter select_randomly(Iter start, Iter end, RandomGenerator &g)
std::shared_ptr< AnaHelpers > _ah
Vertex * matchPairToVertex(Track *ele, Track *pos, std::vector< Vertex * > &verts)
std::pair< Track *, MCParticle * > matchToMCParticle(Track *part, std::vector< MCParticle * > &mcParts)
std::shared_ptr< BaseSelector > trkSelector
std::vector< Particle * > * fspart_
std::vector< CalCluster * > getUnmatchedClusters(std::vector< CalCluster * > &allClusters, std::vector< std::pair< CalCluster *, Track * > > electrons, std::vector< std::pair< CalCluster *, Track * > > positrons)
std::vector< Vertex * > * vtxs_
std::vector< std::string > _regions
std::vector< MCParticle * > * mcParts_