//-------------------------------------------------------------------------- // Class: StntupleMakerModule // // Environment: Software developed for the CDF at FNAL. // // Copyright Information: // Copyright (C) 1997 Fermilab // // revision history: // ----------------- //------------------------------------------------------------------------ #ifndef ROOTMODS_StntupleMakerModule #define ROOTMODS_StntupleMakerModule #ifdef __GNUG__ #pragma interface #endif #include "TNamed.h" #ifdef __CINT__ class AbsParmGeneral; class AbsParmGeneral; class AbsParmList; class AbsParmList; class AbsParmDouble; #else # include "Framework/AbsParmGeneral.hh" # include # include #endif #include "Stntuple/mod/StntupleModule.hh" // necessary for Cpr clustering in photons class CprWireCollectionMaker; class CprClusterMaker; class StntupleMakerModule : public StntupleModule { //------------------------------------------------------------------------------ // data members //------------------------------------------------------------------------------ protected: // process name, default - PROD AbsParmGeneral fProcessName; // jet collections to be processed // (default: only one - // PROD:JetCluModule-cone0.4) AbsParmList fJetCollName; AbsParmGeneral fTopTJetCollName; AbsParmGeneral fTopLJetCollName; // muon collection to to be processed // (default: ProductionMuon) AbsParmGeneral fMuonCollName; AbsParmGeneral fTopTMuonCollName; AbsParmGeneral fTopLMuonCollName; AbsParmGeneral fCosmicCollName; // Electron collections to to be processed AbsParmGeneral fElectronCollName; AbsParmGeneral fPhoenixElectronCollName; AbsParmList fTofMatchCollName; AbsParmGeneral fTopTElectronCollName; AbsParmGeneral fTopLElectronCollName; // track collections to be processed // (default: PROD:default) AbsParmList fTrackCollName; // vertex collection to be processed AbsParmList fVertexCollName; // pi0 collection to be processed AbsParmList fPi0CollName; // tau collections to be processed // (default: PROD:CdfTauCollection) AbsParmList fTauCollName; // Global Top collection to be processed AbsParmGeneral fTopSummaryName; // CdfMet to be processed AbsParmList fMetCollName; AbsParmGeneral fTopMetName; // SecVtx Collection to be processed AbsParmList fSecVtxCollName; // JetProb Collection to be processed AbsParmList fJetProbCollName; // switches defining active branches // (branches to be written out) - // by default all are enabled AbsParmGeneral fCmuInitMode; AbsParmGeneral fGenpUseCuts; AbsParmDouble fGenpEtaMin; AbsParmDouble fGenpEtaMax; AbsParmDouble fGenpPtMin; // 0: TL3D, 1: Level3ModuleResults AbsParmGeneral fL3Source; AbsParmGeneral fMakeCalData; AbsParmGeneral fMakeCcrData; AbsParmGeneral fMakeCesData; AbsParmGeneral fMakeClcData; AbsParmGeneral fMakeClusters; AbsParmGeneral fMakeCmpData; AbsParmGeneral fMakeCmuData; AbsParmGeneral fMakeCmxData; AbsParmGeneral fMakeBmuData; AbsParmGeneral fMakeBsuData; AbsParmGeneral fMakeTsuData; AbsParmGeneral fMakeConversions; AbsParmGeneral fMakeCosmic; AbsParmGeneral fMakeCotData; AbsParmGeneral fMakeCprData; AbsParmGeneral fMakeCp2Data; AbsParmGeneral fMakeDcasData; AbsParmGeneral fMakeElectrons; AbsParmGeneral fMakeEmtData; AbsParmGeneral fMakeEmTiming; AbsParmGeneral fMakeFwdDetData; AbsParmGeneral fMakeGenp; AbsParmGeneral fMakeHatData; AbsParmGeneral fMakeJets; AbsParmGeneral fMakeJetProb; AbsParmGeneral fMakeL3Muons; AbsParmGeneral fMakeL3Taus; AbsParmGeneral fMakeL3Summary; AbsParmGeneral fMakeMet; AbsParmGeneral fMakeMuons; AbsParmGeneral fMakeObsp; AbsParmGeneral fMakePesData; AbsParmGeneral fMakePesCorrectedData; AbsParmGeneral fMakePhoenixElectrons; AbsParmGeneral fMakePhotons; AbsParmGeneral fMakePi0s; AbsParmGeneral fMakeSecVtxTag; AbsParmGeneral fMakeSiGeantIsect; AbsParmGeneral fMakeSiIsect; AbsParmGeneral fMakeSiStrips; AbsParmGeneral fMakeSvxData; AbsParmGeneral fMakeSvt; AbsParmGeneral fMakeTaus; AbsParmGeneral fMakeTofData; AbsParmGeneral fMakeTofMatches; AbsParmGeneral fMakeTopTElectrons; AbsParmGeneral fMakeTopLElectrons; AbsParmGeneral fMakeTopTJets; AbsParmGeneral fMakeTopLJets; AbsParmGeneral fMakeTopMet; AbsParmGeneral fMakeTopTMuons; AbsParmGeneral fMakeTopLMuons; AbsParmGeneral fMakeTopSummary; AbsParmGeneral fMakeTracks; AbsParmGeneral fMakeTrackLinks; AbsParmGeneral fMakeTrigger; AbsParmGeneral fMakeTrigSim; AbsParmGeneral fMakeVertices; AbsParmGeneral fMakeXft; AbsParmGeneral fMakeZVertices; AbsParmGeneral fMetCorrectionMode; AbsParmList fPdgCode; AbsParmGeneral fStoreXftHits; AbsParmGeneral fStoreXftPixels; AbsParmGeneral fStoreXftTracks; TNamed* fVersion; class Command : public APPCommand { protected: StntupleMakerModule* fModule; public: Command(); virtual ~Command(); Command( const char* name, StntupleMakerModule* module); virtual int handle(int argc, char** argv); virtual void show() const; virtual bool isShowable() const; virtual std::string description () const; }; // all the commands have to have access to // the class data friend class Command; // needed for cpr clustering in photons CprWireCollectionMaker* pCprCollMaker; CprClusterMaker* pCprClusMaker; //------------------------------------------------------------------------------ // function members //------------------------------------------------------------------------------ public: // constructors and destructor StntupleMakerModule(const char* name = "StntupleMaker", const char* desc = "AC++ Stntuple maker"); ~StntupleMakerModule(); // ****** accessors // ****** overwritten virtual functions // of AppModule AppResult beginRun(AbsEvent* event); AppResult endRun (AbsEvent* event); AppResult beginJob(AbsEvent* event); AppResult endJob (AbsEvent* event); AppResult event (AbsEvent* event); // ****** functions of the module void GetDefTrackCollName(char* Name); // ****** STNTUPLE interactive helper // functions static int InitCalDataBlock (TStnDataBlock* Block); static int InitElectronBlock(TStnDataBlock* Block); static int InitGenpBlock (TStnDataBlock* Block); static int InitHeaderBlock (TStnDataBlock* Block); static int InitJetBlock (TStnDataBlock* Block); static int InitMetBlock (TStnDataBlock* Block); static int InitMuonBlock (TStnDataBlock* Block); static int InitObspBlock (TStnDataBlock* Block); static int InitTauBlock (TStnDataBlock* Block); static int InitTofDataBlock (TStnDataBlock* Block); static int InitTrackBlock (TStnDataBlock* Block); static int InitTriggerBlock (TStnDataBlock* Block); static int InitTrigSimBlock (TStnDataBlock* Block); static int InitElectronBlockLinks(TStnDataBlock* Block); // ****** setters ClassDef(StntupleMakerModule,0) }; #endif