// ------------------------------------------------------------------------- // ----- CbmStsHitProducerIdel header file ----- // ----- Created 10/01/06 by V. Friese ----- // ------------------------------------------------------------------------- /** CbmStsHitProducerIdeal.h *@author V.Friese ** ** The ideal hit producer produces hits of type CbmStsMapsHit by copying ** the MCPoint position. The position error is set to 1 mum, much ** smaller than can be obtained by any detector. Using the hits from ** this HitProducer is thus equivalent to using MC information ** directly, but with the correct data interface. **/ #ifndef MVDSTRIPHITPRODUCER_H #define MVDSTRIPHITPRODUCER_H #include "CbmTask.h" #include "MvdDigiPar.h" #include "MvdGeoMappingPar.h" #include "MvdHit.h" #include "MvdPoint.h" #include "MvdPixel.h" #include "MvdDigiPixel.h" #include "CbmGeoVector.h" #include "CbmGeoTransform.h" #include "TVector3.h" #include "TRandom.h" #include "TGeoMatrix.h" #include "TGeoBBox.h" #include #include class TClonesArray; class MvdStripHitProducer : public CbmTask { public: /** Default constructor **/ MvdStripHitProducer(); MvdStripHitProducer(Double_t lx, Double_t ly, Double_t skew, Double_t treshold, Double_t noise); /** Destructor **/ virtual ~MvdStripHitProducer(); /** Virtual method Init **/ virtual void SetParContainers(); virtual InitStatus Init(); virtual InitStatus ReInit(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); private: TString fBranchName; /** Input array of MvdPoints **/ TClonesArray* fPointArray; /** Output array of MvdHits **/ TClonesArray* fHitArray; TClonesArray* fStripArray; TClonesArray* fFeStripArray; MvdDigiPar* fDigiPar; MvdGeoMappingPar* fGeoMappingPar; void Register(); void Reset(); void ProduceHits(); TGeoHMatrix GetTransformation (std::string detName); void GetLocalHitPoints(MvdPoint* myPoint, CbmGeoVector& myHitIn, CbmGeoVector& myHitOut); MvdHit CalcGlobalPoint(std::vector strips); TVector3 GetSensorDimensions(std::string detName); Double_t flx; //strip widh in x; Double_t fly; //strip width in y; Double_t fskew; //skew angle between upper and lower strips; Double_t fthreshold; //strip threshold in electrons Double_t fnoise; //strip noise in electrons Int_t stripHits; ClassDef(MvdStripHitProducer,5); }; #endif