#ifndef _CPRWIRECOLLECTIONMAKER_HH #define _CPRWIRECOLLECTIONMAKER_HH //--------------------------------------------------------- // File and Version Information : // CprWireCollectionMaker.hh // // Description: // Class definition for CprWireCollectionMaker which // makes a collection of hit wires in the CPR around // the seed wire. // // Environment: // Software developed for the CDF Detector. // // Author List: // 04/26/2000 Tania Moulik : created // // Revision History : // 06/04/2000 Tania Moulik Adding seed based clustering // 07/15/2000 Tania Moulik Adding ces based clustering //---------------------------------------------------------- //--------------- // C++ Headers -- //--------------- #include #include #include #include using std::vector; using std::map; using std::less; using std::ostream; //---------------------- // Collaborating Class Headers -- //---------------------- #ifndef USE_CDFEDM2 class TRY_Abstract_Record; #endif #ifdef USE_CDFEDM2 #include "Edm/EventRecord.hh" #include "TrackingObjects/Storable/CdfTrackColl.hh" #include "TrackingObjects/Storable/CdfTrackView.hh" #else #include "Trybos/TRY_Record_Iter_Same.hh" #include "TrackingObjects/Trybos/StoredCdfTrackSet.hh" #include "TrackingObjects/Tracks/CdfTrackCollection.hh" #include "TrackingObjects/Tracks/CdfTrackSetView.hh" #endif #include "ElectronObjects/CdfEmClusterColl.hh" #include "CalorObjects/CesCluster.hh" #include "AbsEnv/AbsEnv.hh" #include "StripChamberGeometry/CdfCprWedge.hh" #include "StripChamberGeometry/CprWedgeCode.hh" #include "CalorObjects/CprWire.hh" #include "BaBar/Cdf.hh" #include "Calor/CprWirePar.hh" #include "Calor/CprDefs.hh" #include "CalorObjects/Calib.hh" class WireEless { public: bool operator () (const CprWire &i, const CprWire &j) { return (i.getPulseHeight() > j.getPulseHeight() ); } }; class CprWireCollectionMaker{ public: CprWireCollectionMaker(); ~CprWireCollectionMaker(); // // void initCollection(AbsEvent*); int nwires( const CdfCprWedge*) const; CprWire get_wire( const CdfCprWedge*, int ) const; double get_Xlocal(); double get_Zlocal(); double Eta_global(); double Phi_global(); int get_Side(); int get_Wedge(); int get_SeedWireNo(); int extrapolate_track(const CdfTrack_clnk & theTrack); const vector get_track_based_wires(CprWirePar *); const vector get_ces_based_wires (CprWirePar *,vector ::const_iterator iter1, vector ::const_iterator iter2, HepPoint3D primvtx); const vector get_seed_based_wires(CprWirePar *, vector::const_iterator Seed); const vector get_all_seed_wires( void ); void set_seed(double seedThrs); int extrapolate_ces_to_cpr(float xces, float zces); // MR Add methods to access database void initJob(bool useCPRQ); // init Run routine: // Load the calibration constants. void initRun(bool verbose); // event init and end routines. // MR private: double _wires[2][CPR_NUM_MOD][CPR_NUM_WIRE]; double _xlocal; double _zlocal; double _eta_global; double _phi_global; int _phiwedge; int _barrel ; vector _seedWire; int _seed; int _wireused[CPR_NUM_WIRE*CPR_NUM_MOD*2]; double _seedthrs; HepPoint3D _primvtx; Calib _calib; bool _dbInitialized; bool _useCPRQ; }; #endif