/* ************************************************************************* */ /* Hadronic Tau reconstruction parameters */ /* Author: Fedor Ratnikov (CDF/Rutgers) */ /* Date: 06/23/2000 */ /* ************************************************************************* */ #ifndef TAU_EMBED_MODULE_HH #define TAU_EMBED_MODULE_HH #include "TObjArray.h" #include "TRandom.h" #include "Experiment/Experiment.hh" #include "Edm/EventRecord.hh" #include "Stntuple/mod/StntupleModule.hh" class TStnEvent; class TStnTrackBlock; class TStnElectronBlock; class TStnElectronID; class CT_HitSet; class CdfEmObject; class AbsEvent; class CalData; class CalTower; class MyCalDataMaker; class TauEmbedModule : public StntupleModule { protected: AbsEvent* fCdfEvent; CT_HitSet* fCT_HitSet; TObjArray* fListOfTightElectrons; TObjArray* fListOfLooseElectrons; TObjArray* fListOfBiasedElectrons; TObjArray* fListOfUnbiasedElectrons; TStnTrackBlock* fTrackBlock; TStnElectronBlock* fElectronBlock; TStnEvent* fEvent; TStnElectronID* fEleID; TRandom* fRandom; MyCalDataMaker* fCalDataMaker; // process name, default - PROD AbsParmGeneral fProcessName; AbsParmGeneral fPdgCode; // PDG code of embedded particle //----------------------------------------------------------------------------- // embedding mode: // --------------- // 1: drop 1 tight electron, leave the unbiased one // 2: drop both electrons, replace the unbiased one with the particle of // preference (create W' -> tau nu sample) // 3: //----------------------------------------------------------------------------- AbsParmGeneral fEmbeddingMode; // PDG code of embedded particle public: TauEmbedModule (const char* const Name = "TauEmbedModule", const char* const Description = "TauEmbedModule"); virtual ~TauEmbedModule(); virtual AppResult beginJob( AbsEvent* aJob); virtual AppResult beginRun( AbsEvent* aRun); virtual AppResult event ( AbsEvent* anEvent); virtual AppResult endJob ( AbsEvent* aJob); virtual AppModule* clone (const char* fCloneName); int RemoveCotHits (TObjArray* ListOfElectrons); int RemoveSvxHits (TObjArray* ListOfElectrons); int RemoveCesHits (TObjArray* ListOfElectrons); int RemoveCprHits (TObjArray* ListOfElectrons); int RemoveCalHits (TObjArray* ListOfElectrons); int RemoveImuHits (TObjArray* ListOfElectrons); int RemovePesHits (TObjArray* ListOfElectrons); int RemoveTofHits (TObjArray* ListOfElectrons); int MakeListOfElectrons(TStnElectronID* EleID); int CreateMcBanks (TObjArray* ListOfElectrons); }; #endif