CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo Class Reference

#include <PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h>

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &setup)
 
void clear ()
 
TrajectorySeedCollectiongetTrajectorySeedCollection ()
 
void init ()
 
 PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo (const edm::ParameterSet &, edm::ConsumesCollector &&iC)
 
 ~PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo ()
 

Private Types

typedef Regions::const_iterator IR
 
typedef std::vector
< TrackingRegion * > 
Regions
 

Private Member Functions

bool inspect (const TrackingRegion &region)
 
void loop ()
 

Private Attributes

const edm::ParameterSet _conf
 
edm::ParameterSet creatorPSet
 
edm::ParameterSet hitsfactoryPSet
 
const edm::EventSetupmyEsetup
 
const edm::EventmyEvent
 
PrintRecoObjects po
 
reco::Vertex primaryVertex
 
edm::ParameterSet QuadCutPSet
 
edm::ParameterSet regfactoryPSet
 
Regions regions
 
TrajectorySeedCollectionseedCollection
 
edm::ParameterSet SeedComparitorPSet
 
std::stringstream ss
 
ClusterChecker theClusterCheck
 
CombinedHitQuadrupletGeneratorForPhotonConversiontheHitsGenerator
 
GlobalTrackingRegionProducerFromBeamSpottheRegionProducer
 
SeedForPhotonConversionFromQuadrupletstheSeedCreator
 
bool theSilentOnClusterCheck
 
edm::EDGetTokenT
< reco::VertexCollection
token_vertex
 
reco::VertexCollection vertexCollection
 
edm::Handle
< reco::VertexCollection
vertexHandle
 

Detailed Description

Definition at line 30 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Member Typedef Documentation

typedef Regions::const_iterator PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::IR
private

Constructor & Destructor Documentation

PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo ( const edm::ParameterSet conf,
edm::ConsumesCollector &&  iC 
)

Definition at line 22 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.cc.

References _conf, edm::ParameterSet::getParameter(), init(), regfactoryPSet, theRegionProducer, and token_vertex.

24  :_conf(conf),seedCollection(0),
25  hitsfactoryPSet(conf.getParameter<edm::ParameterSet>("OrderedHitsFactoryPSet")),
26  creatorPSet(conf.getParameter<edm::ParameterSet>("SeedCreatorPSet")),
27  regfactoryPSet(conf.getParameter<edm::ParameterSet>("RegionFactoryPSet")),
28  theClusterCheck(conf.getParameter<edm::ParameterSet>("ClusterCheckPSet"), std::move(iC)),
29  SeedComparitorPSet(conf.getParameter<edm::ParameterSet>("SeedComparitorPSet")),
30  QuadCutPSet(conf.getParameter<edm::ParameterSet>("QuadCutPSet")),
31  theSilentOnClusterCheck(conf.getParameter<edm::ParameterSet>("ClusterCheckPSet").getUntrackedParameter<bool>("silentClusterCheck",false)){
32 
34 
36 
37  init();
38 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::~PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo ( )

Definition at line 40 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.cc.

References NULL, and theRegionProducer.

40  {
42  delete theRegionProducer;
43 }
#define NULL
Definition: scimark2.h:8

Member Function Documentation

void PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::analyze ( const edm::Event event,
const edm::EventSetup setup 
)

Definition at line 60 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.cc.

References _conf, gather_cfg::cout, event(), edm::ParameterSet::getParameter(), edm::HandleBase::isValid(), loop(), myEsetup, myEvent, po, PrintRecoObjects::print(), GlobalTrackingRegionProducerFromBeamSpot::regions(), regions, reco::return(), seedCollection, HcalObjRepresent::setup(), ss, theClusterCheck, theRegionProducer, theSilentOnClusterCheck, token_vertex, ClusterChecker::tooManyClusters(), and vertexHandle.

Referenced by PhotonConversionTrajectorySeedProducerFromQuadruplets::produce().

60  {
61 
62  myEsetup = &setup;
63  myEvent = &event;
64 
65  if(seedCollection!=0)
66  delete seedCollection;
67 
69 
70  size_t clustsOrZero = theClusterCheck.tooManyClusters(event);
71  if (clustsOrZero){
73  edm::LogError("TooManyClusters") << "Found too many clusters (" << clustsOrZero << "), bailing out.\n";
74  return ;
75  }
76 
77  regions = theRegionProducer->regions(event,setup);
78 
79  event.getByToken(token_vertex, vertexHandle);
80  if (!vertexHandle.isValid()){
81  edm::LogError("PhotonConversionFinderFromTracks") << "Error! Can't get the product primary Vertex Collection "<< _conf.getParameter<edm::InputTag>("primaryVerticesTag") << "\n";
82  return;
83  }
84 
85  //Do the analysis
86  loop();
87 
88 #ifdef mydebug_knuenz
89  std::cout << "Running PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo" <<std::endl;
90 #endif
91 
92 #ifdef debugTSPFSLA
93  std::stringstream ss;
94  ss.str("");
95  ss << "\n++++++++++++++++++\n";
96  ss << "seed collection size " << seedCollection->size();
97  BOOST_FOREACH(TrajectorySeed tjS,*seedCollection){
98  po.print(ss, tjS);
99  }
100  edm::LogInfo("debugTrajSeedFromQuadruplets") << ss.str();
101  //-------------------------------------------------
102 #endif
103 }
T getParameter(std::string const &) const
std::vector< TrajectorySeed > TrajectorySeedCollection
size_t tooManyClusters(const edm::Event &e) const
void print(std::stringstream &ss, const SiStripCluster &clus)
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
bool isValid() const
Definition: HandleBase.h:76
return(e1-e2)*(e1-e2)+dp *dp
virtual std::vector< TrackingRegion * > regions(const edm::Event &ev, const edm::EventSetup &) const
tuple cout
Definition: gather_cfg.py:121
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
void PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::clear ( void  )
TrajectorySeedCollection* PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::getTrajectorySeedCollection ( )
inline
void PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::init ( void  )
bool PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::inspect ( const TrackingRegion region)
private

Definition at line 142 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.cc.

References cppFunctionSkipper::exception, myEsetup, myEvent, QuadCutPSet, CombinedHitQuadrupletGeneratorForPhotonConversion::run(), seedCollection, SeedComparitorPSet, OrderedSeedingHits::size(), ss, theHitsGenerator, theSeedCreator, SeedForPhotonConversionFromQuadruplets::trajectorySeed(), and cms::Exception::what().

Referenced by loop().

142  {
143 
144  const OrderedSeedingHits & hitss = theHitsGenerator->run(region, *myEvent, *myEsetup);
145 
146  unsigned int nHitss = hitss.size();
147 
148 #ifdef debugTSPFSLA
149  ss << "\n nHitss " << nHitss << "\n";
150 #endif
151 
152  if (seedCollection->empty()) seedCollection->reserve(nHitss/2); // don't do multiple reserves in the case of multiple regions: it would make things even worse
153  // as it will cause N re-allocations instead of the normal log(N)/log(2)
154 
155  unsigned int iHits=0, jHits=1;
156 
157  //
158  // Trivial arbitration
159  //
160  // Vector to store old quad values
161  std::vector<Quad> quadVector;
162 
163 
164  for (; iHits < nHitss && jHits < nHitss; iHits+=2 , jHits+=2) {
165 
166 #ifdef debugTSPFSLA
167  // ss << "\n iHits " << iHits << " " << jHits << "\n";
168 #endif
169  //phits is the pair of hits for the positron
170  const SeedingHitSet & phits = hitss[iHits];
171  //mhits is the pair of hits for the electron
172  const SeedingHitSet & mhits = hitss[jHits];
173 
174 
175  try{
176  //FIXME (modify the interface of the seed generator if needed)
177  //passing the region, that is centered around the primary vertex
178  theSeedCreator->trajectorySeed(*seedCollection, phits, mhits, region, *myEsetup, ss, quadVector, SeedComparitorPSet, QuadCutPSet);
179  }catch(cms::Exception& er){
180  edm::LogError("SeedingConversion") << " Problem in the Quad Seed creator " <<er.what()<<std::endl;
181  }catch(std::exception& er){
182  edm::LogError("SeedingConversion") << " Problem in the Quad Seed creator " <<er.what()<<std::endl;
183  }
184  }
185  quadVector.clear();
186  return true;
187 }
virtual char const * what() const
Definition: Exception.cc:141
virtual unsigned int size() const =0
const OrderedHitPairs & run(const TrackingRegion &region, const edm::Event &ev, const edm::EventSetup &es)
const TrajectorySeed * trajectorySeed(TrajectorySeedCollection &seedCollection, const SeedingHitSet &phits, const SeedingHitSet &mhits, const TrackingRegion &region, const edm::EventSetup &es, std::stringstream &ss, std::vector< Quad > &quadV, edm::ParameterSet &SeedComparitorPSet, edm::ParameterSet &QuadCutPSet)
void PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::loop ( )
private

Definition at line 107 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.cc.

References inspect(), reco::Vertex::position(), primaryVertex, PtMinSelector_cfg::ptMin, ss, funct::true, vertexHandle, reco::Vertex::xError(), and reco::Vertex::zError().

Referenced by analyze().

107  {
108 
109 
110  ss.str("");
111 
112  float ptMin=0.1;
113 
114  BOOST_FOREACH(const reco::Vertex primaryVertex, *vertexHandle){
115 
116  //FIXME currnetly using the first primaryVertex, should loop on the promaryVertexes
117  GlobalTrackingRegion region(ptMin
118  ,GlobalPoint(
119  primaryVertex.position().x(),
120  primaryVertex.position().y(),
121  primaryVertex.position().z()
122  )
123  ,primaryVertex.xError()*10
124  ,primaryVertex.zError()*10
125  ,true
126  );
127 
128 #ifdef debugTSPFSLA
129  ss << "[PrintRegion] " << region.print() << std::endl;
130 #endif
131 
132  inspect(region);
133 
134  }
135 #ifdef debugTSPFSLA
136  edm::LogInfo("debugTrajSeedFromQuadruplets") << ss.str();
137 #endif
138 }
double zError() const
error on z
Definition: Vertex.h:104
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
const Point & position() const
position
Definition: Vertex.h:92
double xError() const
error on x
Definition: Vertex.h:100

Member Data Documentation

const edm::ParameterSet PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::_conf
private
edm::ParameterSet PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::creatorPSet
private

Definition at line 62 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Referenced by init().

edm::ParameterSet PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::hitsfactoryPSet
private

Definition at line 62 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Referenced by init().

const edm::EventSetup* PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::myEsetup
private

Definition at line 81 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Referenced by analyze(), and inspect().

const edm::Event* PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::myEvent
private

Definition at line 82 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Referenced by analyze(), and inspect().

PrintRecoObjects PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::po
private

Definition at line 84 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Referenced by analyze().

reco::Vertex PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::primaryVertex
private

Definition at line 78 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Referenced by loop().

edm::ParameterSet PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::QuadCutPSet
private

Definition at line 64 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Referenced by inspect().

edm::ParameterSet PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::regfactoryPSet
private
Regions PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::regions
private

Definition at line 74 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Referenced by analyze().

TrajectorySeedCollection* PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::seedCollection
private
edm::ParameterSet PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::SeedComparitorPSet
private

Definition at line 64 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Referenced by inspect().

std::stringstream PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::ss
private
ClusterChecker PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::theClusterCheck
private

Definition at line 63 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Referenced by analyze().

CombinedHitQuadrupletGeneratorForPhotonConversion* PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::theHitsGenerator
private
GlobalTrackingRegionProducerFromBeamSpot* PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::theRegionProducer
private
SeedForPhotonConversionFromQuadruplets* PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::theSeedCreator
private
bool PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::theSilentOnClusterCheck
private

Definition at line 65 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Referenced by analyze().

edm::EDGetTokenT<reco::VertexCollection> PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::token_vertex
private
reco::VertexCollection PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::vertexCollection
private
edm::Handle<reco::VertexCollection> PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::vertexHandle
private

Definition at line 76 of file PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h.

Referenced by analyze(), and loop().