#ifndef TKratTreat_H #define TKratTreat_H #include "FairTask.h" #include #include //pc=paolo commentato //pc#include "R3BLandDigiPar.h" //pc#include "R3BLandDigi.h" const int dimmax = 500; class TClonesArray; class TObjectArray; class TH1F; class TH2F; /*pcstruct PM_RES { Double_t Ltime,Rtime,LlightCFD,RlightCFD,LlightQDC,RlightQDC,Lenergy,Renergy; }; pc*/ class FS : public TNamed { public: int multi; double *fast; //[multi] double *slow; //[multi] int *numtel; //[multi] double *de; //[multi] double *ekin; //[multi] FS(){ multi=0; fast= new double[dimmax]; slow= new double[dimmax]; numtel= new int[dimmax]; de= new double[dimmax]; ekin= new double[dimmax]; } virtual ~FS(){ delete [] fast; delete [] slow; delete [] numtel; delete [] de; delete [] ekin; } ClassDef(FS,1); }; class TKratTreat : public FairTask { public: /** Default constructor **/ TKratTreat(); /** Constructor **/ TKratTreat(Int_t verbose); /** Destructor **/ ~TKratTreat(); /** Virtual method Init **/ virtual InitStatus Init(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); virtual void Finish(); virtual void Reset(); /** KRATTA IN **/ void SetKratContInName( TString KrakowPointName ){ fKrakowPointName = KrakowPointName; } TString GetKratContInName( void ) const { return fKrakowPointName; } /** MCTrack IN **/ void SetMCTrackInName( TString MCTrackName ){; fMCTrackName = MCTrackName; } TString GetMCTrackInName( void ) const { return fMCTrackName; } /** KRATTA OUT **/ void SetKratContOutName( TString FSName ){ fFSName = FSName; } TString GetKratContOutName( void ) const { return fFSName; } /** DOES WRITE OUTPUT DATA CONTAINER TO THE FILE **/ void SaveOutputIntoTree(Bool_t saveOutputToTree = kTRUE){ fSaveOutputToTree = saveOutputToTree; } Bool_t DoesSaveOutputIntoTree( void ){ return fSaveOutputToTree; } //pc inline void UseBeam(const Double_t& beamEnergy) { fBeamEnergy = beamEnergy; } //pc R3BLandDigi* AddHit(Int_t paddleNr, Double_t tdcL, Double_t tdcR, Double_t tdc, //pc Double_t qdcL, Double_t qdcR, Double_t qdc, Double_t xx,Double_t yy, Double_t zz ); protected: TClonesArray* fKrattaPoints; TClonesArray* fKrattaMCTrack; //pc TClonesArray* fLandDigi; // Parameter class //pc R3BLandDigiPar* fLandDigiPar; //- Control Hitograms TH1F *hLight; TH1F *hEnergy; TH2F *hLightEnergy; TH2F *hFS; TH1F *hLight2; TH1F *hEnergy2; TH2F *hLightEnergy2; TH2F *hFS2; TH1F *hLight3; TH1F *hEnergy3; TH2F *hLightEnergy3; TH2F *hFS3; TH1F *hLight4; TH1F *hEnergy4; TH2F *hLightEnergy4; TH2F *hFS4; TH1F *hLight5; TH1F *hEnergy5; TH2F *hLightEnergy5; TH2F *hFS5; TH2F *hFSTot; /*pc TH1F *hPMl; TH1F *hPMr; TH1F *hTotalLight; TH1F *hTotalLight1; TH1F *hTotalEnergy; TH1F *hTotalEnergy1; TH1F *hTotalLightRel; TH1F *hTotalEnergyRel; TH1F *hTotalLightRel2; TH1F *hMult1; TH1F *hMult2; TH1F *hParticle; TH1F *hPaddleEnergy; TH1F *hFirstEnergy; TH2F *hElossLight; Int_t eventNo; Int_t npaddles; Int_t nplanes; Int_t paddle_per_plane; Double_t plength; // half length of paddle Double_t att; // light attenuation factor [1/cm] Double_t mn; // mass of neutron in MeV/c**2 Double_t mnu; // mass of neutron in atomic mass units Double_t amu; //atomic mass unit in MeV/c**2 Double_t c; Double_t cMedia; // speed of light in material in cm/ns Double_t calFactor; //calibration factor energy of LAND paddles Double_t fBeamEnergy; PM_RES **PM_res;pc*/ FS *fs; private: virtual void SetParContainers(); TString fKrakowPointName; TString fMCTrackName; TString fFSName; Bool_t fSaveOutputToTree; ClassDef(TKratTreat,1); }; #endif ///TKratTreat_H