// ------------------------------------------------------------------------- // ----- eventPlane.h header file ----- // ----- Created 23/05/13 by Selim ----- // ------------------------------------------------------------------------- #ifndef eventPlane_H #define eventPlane_H 1 #include "FairTask.h" #include "CbmMCEventData.h" #include "CbmPsdEventData.h" #include "CbmStsEventData.h" #include #include "CbmVertex.h" #include "CbmStsKFTrackFitter.h" class TClonesArray; class CbmMCEventHeader; class eventPlane : public FairTask { public: /** Default constructor **/ eventPlane(); eventPlane(const char* name, Int_t verbose = 1, Double_t En = 0.); /** Destructor **/ ~eventPlane(); /** Virtual method Init **/ virtual InitStatus Init(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); void setFileName_PsdModCoord(TString fileName) { fileName_PsdModCoord = fileName; } void setFileName_flat_Qcorr(TString fileName) { fileName_Qcorr = fileName; } // Q-recentering void setFileName_flat_Barr(TString fileName) { fileName_Barr = fileName; } // flattening method of Barrette void WriteHistogramms(); void Finish(); //====== PSD void PSDcoordinates(); void PSDmodEdep(); // energy deposition / module void PSDfullEdep(); // full energy deposition void PSDtransverseMomMeth(); //-- EP flattening void PSDsetFlat(Bool_t Qcorr, Bool_t Barr)//, Int_t Nbins_corr) // flattening correction done in 7 bins in centrality (for now fixed) { fdoFlat_PSD_Qcorr = Qcorr; fdoFlat_PSD_Barr = Barr; //fNbins_corr = Nbins_corr; } void PSDinit_flat_Qcorr(); void PSDinit_flat_Barr(); //====== STS void STSsetYcut(Double_t cut) { fcut_delta = cut; } void STSprojRapidityCM(); void STSuseReco(Bool_t reco) { fdoSTSreco = reco; } void STSMCtransverseMomMeth(); void STSRECOtransverseMomMeth(); //-- EP flattening void STSsetFlat(Bool_t Qcorr, Bool_t Barr)//, Int_t Nbins_corr) // flattening correction done in 7 bins in centrality (for now fixed) { fdoFlat_STS_Qcorr = Qcorr; fdoFlat_STS_Barr = Barr; //fNbins_corr = Nbins_corr; } void STSinit_flat_Qcorr(); void STSinit_flat_Barr(); private: Double_t fPi; CbmMCEventHeader *fHeader; CbmMCEventData *fMCEventData; TString fileName_PsdModCoord; TString fileName_Qcorr, fileName_Barr; // == PSD TClonesArray *flistPSDhit; CbmPsdEventData* fCbmPsdEvent; Double_t fX_mod[100]; Double_t fY_mod[100]; Double_t fphi_mod[100]; Double_t fR_mod[100]; Int_t finc_mod; Double_t fedep_mod[100]; TH2F *hEmod; Bool_t fdoFlat_PSD_Qcorr, fdoFlat_PSD_Barr; // boolen for event plane flattening // Q-recentering // 7 centrality bins for event plane flattening Double_t PSD_shift_Qx[7], PSD_shift_Qy[7], PSD_RMS_Qx[7], PSD_RMS_Qy[7]; // Barrette method // 7 centrality bins for event plane flattening + 8 order Barrette correction Double_t PSD_mean_cosphi[7][8], PSD_mean_sinphi[7][8]; //std::vector::const_iterator itcorr; // later: binning in centrality for event plane flattening let to user choice //std::vector shift_Qx; //std::vector shift_Qy; //std::vector RMS_Qx; //std::vector RMS_Qy; // //Int_t fNbins_corr; // == STS TClonesArray *flistSTSMCtrack; TClonesArray *flistSTSRECOtrack; TClonesArray *flistSTStrackMATCH; CbmVertex *flistPV; CbmStsEventData* fCbmStsEvent; Bool_t fdoSTSreco; // keep trace of cuts on mc/reco track (not needed with current tracking software) TH1F *hY; TH1F *hP; TH1F *hIP; TH1F *hChi2toNDF; Double_t fy_proj_cm, fy_cm; Double_t fEn; Double_t fcut_delta; // for selection of forward rapidity STS tracks Bool_t fdoFlat_STS_Qcorr, fdoFlat_STS_Barr; // boolen for event plane flattening // Q-recentering // 7 centrality bins for event plane flattening Double_t STS_harmo1_shift_Qx_sub1[7], STS_harmo1_shift_Qy_sub1[7], STS_harmo1_RMS_Qx_sub1[7], STS_harmo1_RMS_Qy_sub1[7]; Double_t STS_harmo1_shift_Qx_sub2[7], STS_harmo1_shift_Qy_sub2[7], STS_harmo1_RMS_Qx_sub2[7], STS_harmo1_RMS_Qy_sub2[7]; Double_t STS_harmo1_shift_Qx_full[7], STS_harmo1_shift_Qy_full[7], STS_harmo1_RMS_Qx_full[7], STS_harmo1_RMS_Qy_full[7]; Double_t STS_harmo2_shift_Qx_sub1[7], STS_harmo2_shift_Qy_sub1[7], STS_harmo2_RMS_Qx_sub1[7], STS_harmo2_RMS_Qy_sub1[7]; Double_t STS_harmo2_shift_Qx_sub2[7], STS_harmo2_shift_Qy_sub2[7], STS_harmo2_RMS_Qx_sub2[7], STS_harmo2_RMS_Qy_sub2[7]; Double_t STS_harmo2_shift_Qx_full[7], STS_harmo2_shift_Qy_full[7], STS_harmo2_RMS_Qx_full[7], STS_harmo2_RMS_Qy_full[7]; // Barrette method // 7 centrality bins for event plane flattening + 8 order Barrette correction Double_t STS_harmo1_mean_cosphi_sub1[7][8], STS_harmo1_mean_sinphi_sub1[7][8]; Double_t STS_harmo1_mean_cosphi_sub2[7][8], STS_harmo1_mean_sinphi_sub2[7][8]; Double_t STS_harmo1_mean_cosphi_full[7][8], STS_harmo1_mean_sinphi_full[7][8]; Double_t STS_harmo2_mean_cosphi_sub1[7][8], STS_harmo2_mean_sinphi_sub1[7][8]; Double_t STS_harmo2_mean_cosphi_sub2[7][8], STS_harmo2_mean_sinphi_sub2[7][8]; Double_t STS_harmo2_mean_cosphi_full[7][8], STS_harmo2_mean_sinphi_full[7][8]; ClassDef(eventPlane,1); }; #endif