//-*- mode: c++ -*- // $Id: BrGeantToDetectorTracks.h,v 1.2 2001/09/14 11:27:36 trulsml Exp $ // // $Log: BrGeantToDetectorTracks.h,v $ // Revision 1.2 2001/09/14 11:27:36 trulsml // Changed class version number from 1 to 0. // // Revision 1.1.1.1 2001/06/21 14:55:07 hagel // Initial revision of brat2 // // Revision 1.4 2001/06/19 19:07:09 trine // Default Dedx limit changed to 0.000001 // Possibility to take into account "preprocessor" cut in low timebins // (for more realistic definition of "reconstructible" tracks.) // // Revision 1.3 2001/03/07 12:19:03 cholm // * Made the method BrModule::Info() const obsolete in favour of // BrModule::Print(Option_t* option="B") const. // // Revision 1.2 2000/06/05 13:22:20 trine // Added function BrDetectorHit* GeantToDetectorHit(BrGeantHit* ) // converting BrGeantHits to BrDetectorHits. // Track fits now using BrLocalTrack::Fit() instead of previous BrDetectorTrack* // FitTrackToGHits() // Output track structure now BrDetectorTrack->BrLocalTrack->BrDetectorHits // (same as for reconstruction code.) // Added settable parameters fEdgeCut, fMaxChisq, fMaxSlopeX, fMaxSlopeY // // #ifndef BRAT_BrGeantToDetectorTracks #define BRAT_BrGeantToDetectorTracks #include // BRAHMS classes #ifndef BRAT_BrModule # include "BrModule.h" #endif #ifndef BRAT_BrEventNode # include "BrEventNode.h" #endif #ifndef ROOT_TObjArray # include "TObjArray.h" #endif #ifndef BRAT_BrDataTable # include "BrDataTable.h" #endif #ifndef BRAT_BrDetectorTrack # include "BrDetectorTrack.h" #endif #ifndef BRAT_BrGeantInput #include "BrGeantInput.h" #endif #ifndef BRAT_BrDetectorParamsTPC # include "BrDetectorParamsTPC.h" #endif #ifndef BRAT_BrDetectorParamsDC # include "BrDetectorParamsDC.h" #endif #ifndef BRAT_BrGeantTrack # include "BrGeantTrack.h" #endif #ifndef BRAT_BrGeantHit # include "BrGeantHit.h" #endif #ifndef BRAT_BrDetectorTrack # include "BrDetectorTrack.h" #endif #ifndef BRAT_BrLocalTrack # include "BrLocalTrack.h" #endif #ifndef BRAT_BrDetectorHit # include "BrDetectorHit.h" #endif #ifndef BRAT_ParameterDbManager #include #endif class BrParameterDbManager; class BrGeantToDetectorTracks : public BrModule { public: BrGeantToDetectorTracks(); BrGeantToDetectorTracks(Char_t* Name,Char_t* Title); virtual ~BrGeantToDetectorTracks(); void SetInputModule(BrGeantInput *input); void Init(); void Print(Option_t* option="B") const; void Clear(); void Event(BrEventNode* InputNode, BrEventNode* OutputNode); void SetMinDedx(Float_t mindedx) { fMinDedx = mindedx; } Float_t GetMinDedx ( void ) { return fMinDedx; } void SetEdgeCut(Float_t edgecut) { fEdgeCut = edgecut; } Float_t GetEdgeCut( void ) { return fEdgeCut; } void SetMaxSlopeX(Float_t maxslopex) { fMaxSlopeX = maxslopex; } Float_t GetMaxSlopeX( void ) { return fMaxSlopeX; } void SetMaxSlopeY(Float_t maxslopey) { fMaxSlopeY = maxslopey; } Float_t GetMaxSlopeY( void ) { return fMaxSlopeY; } void SetMaxChisq(Float_t chisq) { fMaxChisq = chisq; } Float_t GetMaxChisq( void ) { return fMaxChisq; } void SetAllowedToMiss( Int_t maxMiss ) { fAllowedMiss = maxMiss; } Int_t GetAllowedToMiss( void ) { return fAllowedMiss; } void SetCutTime( Int_t CutTime ) { fCutTime = CutTime; } Int_t GetCutTime( void ) { return fCutTime; } private: Bool_t fIsTPC; UInt_t fDetectorBit; Float_t fMinDedx; // minimum energy deposit for good Geant hit Float_t fEdgeCut; // minimum distance from edge for good Geant hit Float_t fMaxSlopeX; Float_t fMaxSlopeY; // maximum slopes for good Geant track Float_t fMaxChisq; // maximum chisq for good Geant track Int_t fAllowedMiss; // maximum hitless padrows / DC planes for good track Int_t fRequiredNHits; Int_t fCutTime; TObjArray* fGeantHits; TObjArray* fDetectorTracks; BrGeantInput* fInputModule; BrDetectorParamsTPC* fParams_tpc; BrDetectorParamsDC* fParams_dc; Bool_t CheckHit(BrGeantHit* hit); BrDetectorHit* GeantToDetectorHit(BrGeantHit* hit); BrDetectorTrack* FitTrackToGHits(); public: ClassDef( BrGeantToDetectorTracks, 0) // BrGeantHit(s) to BrDetectorTrack(s) }; #endif