//////////////////////////////////// // KRATTA SIM Prameters analysator // for the Asy-Eos experiment // TKratSimKapAna1 DECLARATION // May 2013 // revison 05/2013 // E.d.F ver 1.0 // sebastian.kupny@uj.edu.pl // Changes: //////////////////////////////////// #ifndef KRATTA_SIM_KAP_ANA1_H #define KRATTA_SIM_KAP_ANA1_H #include #include #include #include "TClonesArray.h" #include "TF1.h" #include "TGraph.h" #include "TH1F.h" #include "TH2F.h" #include "TLine.h" #include "TMarker.h" #include "FairRootManager.h" #include "FairRunAna.h" #include "FairRuntimeDb.h" #include "FairTask.h" #include "R3BMCTrack.h" #include "R3BMCStack.h" #include "KrakowArrayPoint.h" #include "H2FS_test.h" #include "TKratSimKapReaderDataContainer.h" #include "TKratSimKapAna1DataContainer.h" class TKratSimKapAna1 : public FairTask { public: /** Default constructor **/ TKratSimKapAna1(); /** Constructor **/ TKratSimKapAna1 (const char* name, Int_t verbose = 1); TKratSimKapAna1(Int_t verbose); /** Destructor **/ ~TKratSimKapAna1(); /** Virtual method Init **/ virtual InitStatus Init(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); virtual void Finish(); virtual void Reset(); virtual void PrintResults(); virtual void ResetCounters(); virtual InitStatus ReInit(); TString GetFileWithHistogramsName(void){ return fRootFileWithOutputHistName; } void SetFileWithHistogramsName(TString name ){ fRootFileWithOutputHistName = name; } /** Input container #1 - MCPoint**/ void SetMCPointContInName( TString MCPointCopyName ){ fMCPointCopyName = MCPointCopyName; } TString GetMCPointContInName( void ) const { return fMCPointCopyName; } /** Input container #2 - MCTrack**/ void SetMCTrackContInName( TString MCTrackCopyName ){; fMCTrackCopyName = MCTrackCopyName; } TString GetMCTrackContInName( void ) const { return fMCTrackCopyName; } /** Input container #3 - TKratSimKapReaderDataContainer**/ void SetTKratSimKapReaderContInName( TString TKratSimKapReaderDataContainerName ){ fTKratSimKapReaderDataContainerName = TKratSimKapReaderDataContainerName; } TString GetTKratSimKapReaderContInName( void ) const { return fTKratSimKapReaderDataContainerName; } /** Input container - TKratSimKapAna1DataContainer **/ void SetKratContOutName( TString TKratSimKapAna1DataContainerName ){ fTKratSimKapAna1DataContainerName = TKratSimKapAna1DataContainerName; } TString GetKratContOutName( void ) const { return fTKratSimKapAna1DataContainerName; } /** Does write output data container to the file **/ void SaveOutputIntoTree(Bool_t saveOutputToTree = kTRUE){ fSaveOutputToTree = saveOutputToTree; } Bool_t DoesSaveOutputIntoTree( void ){ return fSaveOutputToTree; } protected: TClonesArray *fASYEventCopy; TClonesArray *fMCPoint; TString fMCPointName; TClonesArray *fMCPointCopy; TString fMCPointCopyName; TClonesArray *fMCTrack; TString fMCTrackName; TClonesArray *fMCTrackCopy; TString fMCTrackCopyName; TString fTKratSimKapReaderDataContainerName; TString fTKratSimKapAna1DataContainerName; TKratSimKapReaderDataContainer *fKapDataCont; TClonesArray *fKapDataContClones; TKratSimKapAna1DataContainer *fKapAna1DataCont; TClonesArray *fKapAna1DataContClones; TKratFSCalculator *fFSCalculator; Bool_t fSaveOutputToTree; /// Variables used in analysis Double_t fEkin; /// this value has to be read in reader task Double_t fMom; /// this value has to be read in reader task Int_t fThinCrystalId; Int_t fThickCrystalId; Double_t fAcceptanceToleranceInPrecent; /// = 10.; //[%] //Double_t fSum_fDeltaEfE; Double_t fEnergyLowLimit; ///= fEkinInGeV * (1 - fAcceptanceToleranceInPrecent/100.); Double_t fEnergyUpperLimit; ///= fEkinInGeV * (1 + fAcceptanceToleranceInPrecent/100.); //Double_t fEnergyLoss; //Double_t tmpDepositedEnergy; //Double_t fThin_TotalEnergyLossInEvent; // fTotalEnergyLossInEventInThin; //Double_t fThin_TotalEnergyLossInEventInThick; // fTotalEnergyLossInEventInThick Double_t fThin_TotalEnergyLoss; // fTotalEnergyLossInThin Double_t fThick_TotalEnergyLoss; // fTotalEnergyLossInThick Double_t fThin_EnergyLoss; Double_t fThick_EnergyLoss; Double_t fThin_EnergyLossByPrim; Double_t fThick_EnergyLossByPrim; Double_t fThin_EnergyLossByElectrons; Double_t fThick_EnergyLossByElectrons; Double_t fThin_EnergyLossByTheOthers; Double_t fThick_EnergyLossByTheOthers; Double_t fThin_SumEnergyLoss; Double_t fThick_SumEnergyLoss; Double_t fThin_SumEnergyLossByPrim; Double_t fThick_SumEnergyLossByPrim; Double_t fThin_SumEnergyLossByElectrons; Double_t fThick_SumEnergyLossByElectrons; Double_t fThin_SumEnergyLossByTheOthers; Double_t fThick_SumEnergyLossByTheOthers; //ULong64_t fNumberOfTracks; // fNumberOfTracks //ULong64_t fMaxTrackNumberInEvent; // fMaxTrackNumberInEvent //Int_t fDetId; //Int_t fTrackID; /// Counters Int_t iFiredOnlyFirst; Int_t iFiredBoth; Int_t iFiredNoOne; Int_t iTotalEnergyIsMax; Int_t iDeltaEEnergyIsMax; Int_t iTotalEnergyIsNotMax; Int_t iTotalEnergyIsLargerThanMax; Int_t ihist_R_NO; Int_t ihist_R_1; Int_t ihist_R_2; Int_t ihist_R_12; Int_t ihist_R_REST; /// [2013-04-16] Calcluation for total energy - check the abundancy of hits of followed types for neutrons //Int_t ihist_total_R_NO; //Int_t ihist_total_R_1; //Int_t ihist_total_R_2; //Int_t ihist_total_R_12; /// Some histograms: //TH2F *fHistDEE_n1;// = new TH2F("hist1", "Kratta deltaE-E", 1000, -0.02, 1.1, 1000, -0.05, 0.5); //TH1F *fHistDEE_n2;// = new TH1F("hist2", "Kratta. Energy sum \DeltaE + E", 1000, -0.05, 2.5 ); TH2F *fHistDEE_n1; TH2F *fHistDEE_n2; TH2F *fHistDEE_n3; TH2F *fHistDEE_n4; TH2F *fHistDEE_nv1; TFile *fRootFileWithOutputHist; TString fRootFileWithOutputHistName; Int_t fFileCounter; private: TKratSimKapAna1(const TKratSimKapAna1&); TKratSimKapAna1& operator=(const TKratSimKapAna1&){ return *this; } virtual void SetParContainers(); ClassDef(TKratSimKapAna1,1); }; #endif ///KRATTA_SIM_KAP_ANA1_H