CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SeedForPhotonConversionFromQuadruplets.h
Go to the documentation of this file.
1 #ifndef SeedForPhotonConversionFromQuadruplets_H
2 #define SeedForPhotonConversionFromQuadruplets_H
3 
9 
10 #include "PrintRecoObjects.h"
11 #include "Quad.h"
12 
14 
15 
17 class SeedComparitor;
18 namespace edm {class ConsumesCollector;}
19 
21 public:
22  static const int cotTheta_Max=99999;
23 
25 
27  const std::string & propagator = "PropagatorWithMaterial", double seedMomentumForBOFF = -5.0);
28 
29  //dtor
31 
32  const TrajectorySeed * trajectorySeed( TrajectorySeedCollection & seedCollection,
33  const SeedingHitSet & phits,
34  const SeedingHitSet & mhits,
35  const TrackingRegion & region,
36  const edm::Event& ev,
37  const edm::EventSetup& es,
38  std::stringstream& ss, std::vector<Quad> & quadV,
40 
41 
42  double simpleGetSlope(const SeedingHitSet::ConstRecHitPointer &ohit, const SeedingHitSet::ConstRecHitPointer &nohit, const SeedingHitSet::ConstRecHitPointer &ihit, const SeedingHitSet::ConstRecHitPointer &nihit, const TrackingRegion & region, double & cotTheta, double & z0);
43  double verySimpleFit(int size, double* ax, double* ay, double* e2y, double& p0, double& e2p0, double& p1);
45 
46  //
47  // Some utility methods added by sguazz
48  void stupidPrint(std::string s,float* d);
49  void stupidPrint(std::string s,double* d);
50  void stupidPrint(const char* s,GlobalPoint* d);
51  void stupidPrint(const char* s,GlobalPoint* d, int n);
52  void bubbleSortVsPhi(GlobalPoint arr[], int n, GlobalPoint vtx);
53  void bubbleReverseSortVsPhi(GlobalPoint arr[], int n, GlobalPoint vtx);
54  //
55  //
56 
57 
58 
59 
60  protected:
61 
62  bool checkHit(
65  const edm::EventSetup& es) const { return true; }
66 
68  const SeedingHitSet & hits,
69  const GlobalPoint & vertexPos,
70  const edm::EventSetup& es,
71  const float cotTheta) const;
72 
74  const GlobalVector& vertexBounds,
75  float ptMin,
76  float sinTheta) const;
77 
78  const TrajectorySeed * buildSeed(
79  TrajectorySeedCollection & seedCollection,
80  const SeedingHitSet & hits,
81  const FreeTrajectoryState & fts,
82  const edm::EventSetup& es,
83  bool apply_dzCut,
84  const TrackingRegion &region) const;
85 
86  bool buildSeedBool(
87  TrajectorySeedCollection & seedCollection,
88  const SeedingHitSet & hits,
89  const FreeTrajectoryState & fts,
90  const edm::EventSetup& es,
91  bool apply_dzCut,
92  const TrackingRegion & region,
93  double dzcut) const;
94 
97  const TrajectoryStateOnSurface &state) const;
98 
99  bool similarQuadExist(Quad & thisQuad, std::vector<Quad>& quadV);
100 
101  double DeltaPhiManual(const math::XYZVector& v1, const math::XYZVector& v2);
102 
103 
104 protected:
107  double kPI_;
108 
109  // FIXME (well the whole class needs to be fixed!)
111 
112  std::stringstream * pss;
114  std::unique_ptr<SeedComparitor> theComparitor;
115 };
116 #endif
CurvilinearTrajectoryError initialError(const GlobalVector &vertexBounds, float ptMin, float sinTheta) const
const TrajectorySeed * trajectorySeed(TrajectorySeedCollection &seedCollection, const SeedingHitSet &phits, const SeedingHitSet &mhits, const TrackingRegion &region, const edm::Event &ev, const edm::EventSetup &es, std::stringstream &ss, std::vector< Quad > &quadV, edm::ParameterSet &QuadCutPSet)
bool buildSeedBool(TrajectorySeedCollection &seedCollection, const SeedingHitSet &hits, const FreeTrajectoryState &fts, const edm::EventSetup &es, bool apply_dzCut, const TrackingRegion &region, double dzcut) const
tuple cfg
Definition: looper.py:237
double DeltaPhiManual(const math::XYZVector &v1, const math::XYZVector &v2)
void bubbleReverseSortVsPhi(GlobalPoint arr[], int n, GlobalPoint vtx)
bool ev
void bubbleSortVsPhi(GlobalPoint arr[], int n, GlobalPoint vtx)
double simpleGetSlope(const SeedingHitSet::ConstRecHitPointer &ohit, const SeedingHitSet::ConstRecHitPointer &nohit, const SeedingHitSet::ConstRecHitPointer &ihit, const SeedingHitSet::ConstRecHitPointer &nihit, const TrackingRegion &region, double &cotTheta, double &z0)
BaseTrackerRecHit const * ConstRecHitPointer
Definition: SeedingHitSet.h:11
GlobalTrajectoryParameters initialKinematic(const SeedingHitSet &hits, const GlobalPoint &vertexPos, const edm::EventSetup &es, const float cotTheta) const
double verySimpleFit(int size, double *ax, double *ay, double *e2y, double &p0, double &e2p0, double &p1)
std::vector< TrajectorySeed > TrajectorySeedCollection
bool checkHit(const TrajectoryStateOnSurface &, const SeedingHitSet::ConstRecHitPointer &hit, const edm::EventSetup &es) const
const TrajectorySeed * buildSeed(TrajectorySeedCollection &seedCollection, const SeedingHitSet &hits, const FreeTrajectoryState &fts, const edm::EventSetup &es, bool apply_dzCut, const TrackingRegion &region) const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
double p1[4]
Definition: TauolaWrapper.h:89
double getSqrEffectiveErrorOnZ(const SeedingHitSet::ConstRecHitPointer &hit, const TrackingRegion &region)
bool similarQuadExist(Quad &thisQuad, std::vector< Quad > &quadV)
SeedingHitSet::RecHitPointer refitHit(SeedingHitSet::ConstRecHitPointer hit, const TrajectoryStateOnSurface &state) const
Definition: Quad.h:4
tuple size
Write out results.
SeedForPhotonConversionFromQuadruplets(const edm::ParameterSet &cfg, edm::ConsumesCollector &iC, const edm::ParameterSet &SeedComparitorPSet)