// -------------------------------------------------------------------------- // ----- Header for the CbmTrdHitProducerSmearing ------ // ----- Partially Created by M. Kalisky ------ // ----- Last update 21.03.05 by M. Kalisky ------ // ----- Renamed from CbmTrdHitProducer 04.043.09 F. Uhlig ------ // -------------------------------------------------------------------------- /** ** !!! WARNING !!! ** temporary solution ONLY for old CVS release (before implementation of the ** parameters by Mohammad and Dennis) ** ** compatibility with the new release is not granted. ** This hit producer works only with geometry versions for 9 and 12 ** TRD layers. ** ** For any more detailed studies including the TRD I strongly advice ** to use the new release (should be provided before end of May) ** ** Any futere developements will be implemented only for the new release ** *@ m.kalisky@gsi.de **/ /* Generated by Together */ #ifndef CBMTRDHITPRODUCERSMEARING_H #define CBMTRDHITPRODUCERSMEARING_H #include "CbmTrdDetectorId.h" #include "FairTask.h" #include "TVector3.h" #include class TClonesArray; class CbmTrdHit; class CbmTrdRadiator; class CbmTrdHitProducerSmearing : public FairTask { public: /** Default constructor **/ CbmTrdHitProducerSmearing(); /** Standard constructor **/ CbmTrdHitProducerSmearing(const char *name, const char *title="CBM Task", CbmTrdRadiator *radiator=NULL); /** Destructor **/ virtual ~CbmTrdHitProducerSmearing(); /** Initialisation **/ virtual InitStatus ReInit(); virtual InitStatus Init(); virtual void SetParContainers(); /** Executed task **/ virtual void Exec(Option_t * option); /** Finish task **/ virtual void Finish(); void Register(); void AddHit(Int_t trdId, TVector3 &posHit, TVector3 &posHitErr, Int_t ref, Int_t Plane, Double_t ELoss, Double_t ELossTR, Double_t ELossdEdX); void SetSigmaX(Double_t sigma[]) ; void SetSigmaY(Double_t s1[], Double_t s2[], Double_t s3[]); void SetEfficency(Float_t eff) {fEfficency=eff;} void SmearingXY( Double_t dx , Double_t dy ) { fDx = dx; fDy=dy ;} void SmearingX(Double_t dx) {fDx = dx;} void SmearingY(Double_t dy) {fDy = dy;} Double_t GetSigmaX (Int_t stack); Double_t GetSigmaY (Double_t teta, Int_t stack ); Float_t GetEfficency () { return fEfficency;} private: TClonesArray *fTrdPoints; //! TRD MC points TClonesArray *fHitCollection; //! TRD hits TClonesArray *fListStack; //Tracks Double_t fDx; //! Double_t fDy; //! Double_t fSigmaX[3]; //! Double_t fSigmaY[3] [7]; //! Int_t fNHits; //! Float_t fEfficency; //! Hit finding efficency (0-100%) CbmTrdRadiator* fRadiator; //! CbmTrdDetectorId fDetId; //! std::vector fLayersBeforeStation; //! ClassDef(CbmTrdHitProducerSmearing,2) //CBMTRDHitProducer }; #endif //CBMTRDHITPRODUCERSMEARING_H