// ------------------------------------------------------------------------- // ----- CbmEmcHitproducer header file ----- // ----- Created 14/08/06 by S.Spataro ----- // ------------------------------------------------------------------------- #ifndef CBMFASTSIM_H #define CBMFASTSIM_H 1 #include "CbmTask.h" #include "TH1F.h" #include "TFile.h" #include "TVector3.h" #include #include #include class TClonesArray; class TObjectArray; class PndFsmTrack; class TRandom3; class TLorentzVector; class PndFsmAbsDet; class PndFsmResponse; class PndFsmDetFactory; class TF1; typedef std::list FsmAbsDetList; typedef std::list FsmResponseList; class PndFastSim : public CbmTask { public: typedef std::map mapper; /** Default constructor **/ PndFastSim(); /** Destructor **/ ~PndFastSim(); void Register(); // /** Virtual method Init **/ virtual InitStatus Init(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); bool AddDetector(std::string name, std::string params=""); void SetVerbosity(int vb) {fVb=vb;} bool EnableSplitoffs(std::string fname="splitpars.dat"); //void CreateStructure(); private: PndFsmResponse* sumResponse(FsmResponseList respList); bool cutAndSmear(PndFsmTrack *t, PndFsmResponse *r); bool cutAndSmear(PndFsmTrack *t); void smearEnergy(PndFsmTrack *t, double dE); void smearMomentum(PndFsmTrack *t, double dp); void smearTheta(PndFsmTrack *t, double dtheta); void smearPhi(PndFsmTrack *t, double dphi); void smearVertex(PndFsmTrack *t, TVector3 dV); void smearM(PndFsmTrack *t, double dm); void smearM2(PndFsmTrack *t, double m2); void smearMvddEdx(PndFsmTrack *t, double dedx); void smearTpcdEdx(PndFsmTrack *t, double dedx); void smearSttdEdx(PndFsmTrack *t, double dedx); /** Input array of CbmEmcPoints **/ TClonesArray* fMCStackArray; TClonesArray* fCandidates; TClonesArray* fMcCandidates; TClonesArray* fFsmCandidates; TRandom3 *fRand; int fVb; //verbosity level TF1 *fspo[5][4]; bool fGenSplitOffs; PndFsmDetFactory *fDetFac; std::string fAddedDets; FsmAbsDetList fDetList; /** Output array of CbmEmcHit **/ /** Geo file to use **/ /** Get parameter containers **/ virtual void SetParContainers(); bool smearTrack(PndFsmTrack *t); ClassDef(PndFastSim,1); }; #endif