// -------------------------------------------------------------------------- // ----- Header for the CbmSttHitProducer ------ // ----- Partially Created by A. Zinchenko ------ // ----- Last update 3.03.08 by A. Zinchenko ------ // -------------------------------------------------------------------------- /* Generated by Together */ #ifndef CBMSTTHITPRODUCER_H #define CBMSTTHITPRODUCER_H #include "FairTask.h" #include "FairGeoVector.h" #include "FairGeoRotation.h" class CbmGeoSttPar; class CbmSttPoint; class CbmSttHit; class FairBaseParSet; class TVector3; class TClonesArray; class CbmSttHitProducer : public FairTask { public: /** Default constructor **/ CbmSttHitProducer(); /** Standard constructor **/ CbmSttHitProducer(const char *name, const char *title="CBM Task"); /** Destructor **/ virtual ~CbmSttHitProducer(); /** Initialisation **/ virtual InitStatus ReInit(); virtual InitStatus Init(); virtual void SetParContainers(); /** Executed task **/ virtual void Exec(Option_t * option); /** Finish task **/ virtual void Finish(); //TRefArray *GetRef(){return fRef;} CbmSttHit* AddHit(TVector3 &posHit, TVector3 &posHitErr, Int_t TrackID, Int_t ref, CbmSttPoint *point); 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;} void Register(); void SetNlayer(Int_t a) ; //void SetSigmaX(Double_t sigma[]) ; //void SetSigmaY(Double_t s1[], Double_t s2[], Double_t s3[]); // set the mode of TR computation //void SetSimpleTR(Bool_t s) {fSimpleTR = s; } //Double_t GetSigmaX (Int_t stack); //Double_t GetSigmaY (Double_t teta, Int_t stack ); /* void SetPar(Int_t Nfoils, Float_t FoilThick, Float_t GapThick){ fNfoils = Nfoils; fFoilThick = FoilThick; fGapThick = GapThick; } */ private: TClonesArray *fSttPoints; //! STT MC points TClonesArray *fHitCollection; //! STT hits TClonesArray *fListStack; //Tracks //TRefArray *fRef; //! Double_t fDx; //! Double_t fDy; //! Double_t fSigmaX[3]; //! Double_t fSigmaY[3] [7]; //! Int_t fTrdPerStation; //! Int_t fNlayer; //! TString fVersion; //! Int_t fNHits; //! //CbmTrdRadiator* fRadiator; //! CbmGeoSttPar* fGeoPar; //! FairBaseParSet* fBasePar; //! // for the CbmTrdRadiator Int_t fNfoils; //! Float_t fFoilThick; //! Float_t fGapThick; //! Bool_t fSimpleTR; //! simple or "full" TR computation // Number of tubes (segments) along the wire static const Int_t fgkNSegm[3][2]; //! {{2,4},{4,6},{6,8}} // Half sizes of the chambers Double_t fSizeX[3][2]; //! 3 stations, 2 chamber types Double_t fSizeY[3][2]; //! // Translation vectors for 3 stations and 4 chambers (+-1, +-2) FairGeoVector fTransl[3][4]; //! // Rotation matrices for 3 doublets FairGeoRotation fRotat[3]; //! CbmSttHitProducer(const CbmSttHitProducer&); CbmSttHitProducer& operator=(const CbmSttHitProducer&); ClassDef(CbmSttHitProducer,1) //CBMSttHitProducer }; #endif //CBMSTTHITPRODUCER_H