// -*- mode: c++ -*- //____________________________________________________________________ // // $Id: BrTpcDeconvoluteClusterModule.h,v 1.3 2001/08/16 15:45:17 jens Exp $ // $Author: jens $ // $Date: 2001/08/16 15:45:17 $ // $Copyright: (C) 2001 BRAHMS Collaboration // #ifndef BRAT_BrTpcDeconvoluteClusterModule #define BRAT_BrTpcDeconvoluteClusterModule // ROOT includes #ifndef ROOT_TObjArray #include #endif #ifndef ROOT_TH1 #include #endif //BRAT includes #ifndef BRAT_BrModule #include "BrModule.h" #endif #ifndef BRAT_BrDataTable #include "BrDataTable.h" #endif #ifndef BRAT_BrTpcCluster #include "BrTpcCluster.h" #endif #ifndef BRAT_BrTpcAdcTable #include "BrTpcAdcTable.h" #endif class BrTpcDeconvoluteClusterModule : public BrModule { protected: BrDataTable *fClusterTable; // pointer to data (both input and output) BrTpcAdcTable *fAdcTable; // pointer to help table // // Int_t fClusterId; // For defining unique IDs. Int_t fCurrentRow; // Used to remember row no Int_t fMinPadCut; // Min no of pads in good cluster Int_t fMinTimeCut; // Min no of time bins in good cluster Float_t fMinMaxADCCut; // Min max ADC in good cluster Float_t fHighPsigCut; // Pad cut used to define multi hits Float_t fHighTsigCut; // Time cut used to define multi hits // // Cluster histograms // TH1F* hNpads; // No of pads in good clusters TH1F* hNtime; // No of time bins in good clusters TH1F* hNclusters; // No of clusters after deconvolution TH1F* hNnoiseclusters; // No of clusters that does not survive cuts TH1F* hNsubclusters; // No of good clusters from deconvolution TH1F* hNpeaks; // No of good clusters pr multicluster TH1F* hMaxADC; // Max ADC values in good clusters TH1F* hSumADC; // Integrated ADC values in good clusters TH1F* hPadvar; // Pad variance, good clusters TH1F* hTimevar; // Pad variance, good clusters private: virtual Bool_t DeconvoluteClusters(); virtual void FillSubClusters(Int_t npeaks, TObjArray *subClusters); virtual void FillWorkingArrays(BrTpcCluster *cluster); virtual Int_t FindSubClusters(BrTpcCluster *primaryCluster, TObjArray *subClusters); virtual Int_t FindHitStatus(BrTpcCluster* cluster); public: BrTpcDeconvoluteClusterModule(); BrTpcDeconvoluteClusterModule(const Char_t *name, const Char_t *title); virtual ~BrTpcDeconvoluteClusterModule(); virtual void DefineHistograms(); virtual void Event(BrEventNode* inputNode, BrEventNode* outputNode); virtual void Init(); virtual void Print(Option_t* option="B") const; // *MENU* virtual void SetHighPsigCut(Float_t val = 1.6) { fHighPsigCut = val;} virtual void SetHighTsigCut(Float_t val = 1.6) { fHighTsigCut = val;} virtual void SetMinPadCut(Int_t val = 1) { fMinPadCut = val;} virtual void SetMinTimeCut(Int_t val = 1) { fMinTimeCut = val;} virtual void SetMinMaxADCCut(Float_t val = 10) { fMinMaxADCCut = val; } // THE FOLLOWING SHOULD ALWAYS BE 0 == NO STREAMER!!!!! ClassDef(BrTpcDeconvoluteClusterModule, 0) // BRAHMS TPC Cluster Module }; #endif ////////////////////////////////////////////////////////////////////////// // // $Log: BrTpcDeconvoluteClusterModule.h,v $ // Revision 1.3 2001/08/16 15:45:17 jens // // BrTpcClusterModule // BrTpcDeconvoluteClusterModule // BrTpcTrackModule // Changed some variable names for histograms and the title scheme for histogram. // Now histograms have title like e.g. ": max ADC in clusters". // // BrTpcClusterModule // Added the possibility to reset sequences in fSeqTable. BrTpcSequence::fClustNum // is altered in BrTpcClusterModule::FindClusters, and thus made it impossible to // reanalyze an event. I.e. previously a new instance of BrEvent had to be // allocated and filled from input. // // Revision 1.2 2001/06/22 17:45:22 cholm // Change names so that every data class has the same format, so that // we will not have to worry about that later on. The affected classes // are: // // BrTPCSequence -> BrTpcSequence // BrTPCCluster -> BrTpcCluster // BrTPCClusterTable -> BrTpcClusterTable // // These changes has ofcourse been propegated to the modules as well, // giving the changes // // BrTPCClusterFinder -> BrTpcClusterFinder // BrTPCSequenceAdder -> BrTpcSequenceAdder // // Revision 1.1.1.1 2001/06/21 14:55:13 hagel // Initial revision of brat2 // // Revision 1.2 2001/06/17 17:29:39 pchristi // Near final version. A little cosmetics is still needed. // // Revision 1.1 2001/05/29 14:20:30 pchristi // Initial import of new Tpc classes //