#ifndef Level3SummaryReaderModule_HH #define Level3SummaryReaderModule_HH //***************************************************************************** // File: Level3SummaryReaderModule.hh // ---------------------------------------------------------------------------- // Type: Class implementation source // Package: Level3Mods // Class: Level3SummaryReaderModule // Language: Standard C++ // Project: CDF Run II Offline Software Upgrade // OrigAuth: Kevin McFarland, Gilles de Lentdecker, Beate Heineman // Company: Fermilab //============================================================================= //***************************************************************************** //---------------------- // Base Class Headers -- //---------------------- #ifdef CDF #include "BaBar/Cdf.hh" #endif #include "FrameMods/HepHistModule.hh" #include "Framework/APPModule.hh" #include "Framework/APPMenu.hh" #include "Framework/AbsParmBool.hh" #include "Framework/AbsParmGeneral.hh" #include "Framework/AbsParmList.hh" #include "Framework/AbsParmString.hh" #include #include "ElectronObjects/CdfEmObject.hh" #include "ElectronObjects/CdfEmObjectView.hh" #include "HepTuple/HepRootFileManager.h" //------------------------------------ // Collaborating Class Declarations -- //------------------------------------ class CdfTrack; class HepLorentzVector; class HepHist1D; // --------------------- // -- Class Interface -- // --------------------- class EMBranch { public: EMBranch( HepNtuple* ntuple ); ~EMBranch(); void setParms(const std::string branchName, const string emDescription); void addBranch(); void fill( AbsEvent* anEvent ); void capture(); private: int _Nobj; std::string _branchName; std::string _description; HepNtuple* _ntuple; void initializeVariables(); // variables to fill int _nEmObj; float* _elet; float* _eta; float* _trackpt; float* _unsignedpt; float* _trackcharge; float* _trackZ0; float* _trackPhi0; float* _trackD0; float* _hadem2; float* _hadem3; float* _delx; float* _delz; float* _ChiS; float* _ChiW; float* _LshrCes; float* _LshrEl2; float* _LshrEl3; float* _SeedIeta; float* _SeedIphi; float* _Iso4; float* _CesZ; float* _CesAvgChi2; // if version > 0 float* _phet; float* _tracklambda; float* _phIso4; }; class MuonBranch { public: MuonBranch( HepNtuple* ntuple ); ~MuonBranch(); void setParms(const std::string branchName, const string muonDescription); void addBranch(); void fill( AbsEvent* anEvent ); void capture(); private: int _Nobj; std::string _branchName; std::string _description; HepNtuple* _ntuple; void initializeVariables(); // variables to fill int _nMuons; int _trigNum; float* _charge; float* _pt; float* _eta; float* _phi0; float* _d0; float* _z0; float* _em; float* _had; float* _dxCmu; float* _chixCmu; float* _dxCmp; float* _chixCmp; float* _dxCmx; float* _chixCmx; //if version > 0 float* _chixPosCmu; float* _chixPosCmp; float* _chixPosCmx; }; class Jet4Branch { public: Jet4Branch( HepNtuple* ntuple ); ~Jet4Branch(); void setParms(const std::string branchName, const string jet4Description); void addBranch(); void fill( AbsEvent* anEvent ); void capture(); private: int _Nobj; std::string _branchName; std::string _description; HepNtuple* _ntuple; void initializeVariables(); // variables to fill int _nJet4; float* _et; float* _eta; float* _phi; }; class Jet7Branch { public: Jet7Branch( HepNtuple* ntuple ); ~Jet7Branch(); void setParms(const std::string branchName, const string Jet7Description); void addBranch(); void fill( AbsEvent* anEvent ); void capture(); private: int _Nobj; std::string _branchName; std::string _description; HepNtuple* _ntuple; void initializeVariables(); // variables to fill int _nJet7; float* _et; float* _eta; float* _phi; }; class COTBranch { public: COTBranch( HepNtuple* ntuple ); ~COTBranch(); void setParms(const std::string branchName, const string COTDescription); void addBranch(); void fill( AbsEvent* anEvent ); void capture(); private: int _Nobj; std::string _branchName; std::string _description; HepNtuple* _ntuple; void initializeVariables(); // variables to fill int _nCOTtracks; float* _pt; float* _charge; float* _z0; float* _d0; float* _phi0; float* _lambda; double* _hitmap; int* _algo; // int* _mask1; // int* _mask2; // int* _mask3; // int* _mask4; }; class SVXBranch { public: SVXBranch( HepNtuple* ntuple ); ~SVXBranch(); void setParms(const std::string branchName, const string SVXDescription); void addBranch(); void fill( AbsEvent* anEvent ); void capture(); private: int _Nobj; std::string _branchName; std::string _description; HepNtuple* _ntuple; void initializeVariables(); // variables to fill int _nSVXtracks; float* _pt; float* _charge; float* _z0; float* _d0; float* _phi0; float* _lambda; double* _hitmap; int* _algo; float* _D0Significance; }; class METBranch { public: METBranch( HepNtuple* ntuple ); ~METBranch(); void setParms(const std::string branchName, const string METDescription); void addBranch(); void fill( AbsEvent* anEvent ); void capture(); private: int _Nobj; std::string _branchName; std::string _description; HepNtuple* _ntuple; void initializeVariables(); // variables to fill int _nMET; float* _metX; float* _metY; float* _phi; float* _etSum; }; class TauBranch { public: TauBranch( HepNtuple* ntuple ); ~TauBranch(); void setParms(const std::string branchName, const string TauDescription); void addBranch(); void fill( AbsEvent* anEvent ); void capture(); private: int _Nobj; std::string _branchName; std::string _description; HepNtuple* _ntuple; void initializeVariables(); // variables to fill int _nTaus; float* _pt; float* _eta; float* _phi; float* _cluMass; float* _tkMass; float* _chargedtkSeed; }; class Level3SummaryReaderModule : public HepHistModule { public : // Constructors Level3SummaryReaderModule( const char* const theName = "Level3SummaryReaderModule", const char* const theDescription = " L3 Module reading Summary Information" ); // Destructor virtual ~Level3SummaryReaderModule( ); // Operations virtual AppResult beginJob( AbsEvent* aJob ); virtual AppResult beginRun( AbsEvent* aRun ); virtual AppResult event( AbsEvent* anEvent ); virtual AppResult other( AbsEvent* anEvent ); virtual AppResult endRun( AbsEvent* aRun ); virtual AppResult endJob( AbsEvent* aJob ); virtual AppResult abortJob( AbsEvent* aJob ); virtual AppModule* clone(const char* cloneName); const char* rcsId( void ) const; void analysis(AbsEvent* anEvent); private: // ------------------------------------------------------------------- // Electron menu : // ------------------------------------------------------------------- APPMenu _commonMenu; AbsParmGeneral _Jet4Et; AbsParmGeneral _Jet7Et; AbsParmGeneral _TrackPt; AbsParmGeneral _EmObjectEt; AbsParmGeneral _MuonPt; AbsParmGeneral _TauPt; AbsParmGeneral angle_cut; AbsParmGeneral low_mass; AbsParmGeneral high_mass; AbsParmGeneral muon_pt; int counter; int total; int theevent; HepRootFileManager* _manager; HepNtuple* _ntuple; private: MuonBranch* _muonBranch; EMBranch* _emBranch; Jet4Branch* _jet4Branch; Jet7Branch* _jet7Branch; COTBranch* _cotBranch; SVXBranch* _svxBranch; METBranch* _metBranch; TauBranch* _tauBranch; }; #endif // Level3SummaryReaderModule