• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

beamtime/cern-oct12/go4/MSFFM/TTRDMuensterFrankfurtProc.h (r4864/r3710)

Go to the documentation of this file.
00001 #ifndef TTRDMUENSTERPROC_H
00002 #define TTRDMUENSTERPROC_H
00003 
00004 #include "TSpadicEvent.h"
00005 #include "TSpadicV10Event.h"
00006 #include "TEpicsEvent.h"
00007 #include "TRocEvent.h"
00008 #include "TMbsCrateEvent.h"
00009 #include "TBeamMonitorEvent.h"
00010 #include "TTRDMuensterFrankfurtEvent.h"
00011 #include "TTRDMuensterFrankfurtParam.h"
00012 
00013 #include "TGo4Picture.h"
00014 #include "TH1.h"
00015 #include "TH2.h"
00016 #include "TF1.h"
00017 #include "TLatex.h"
00018 #include "TLine.h"
00019 #include "TGo4WinCond.h"
00020 #include "TCBMBeamtimeProc.h"
00021 
00022 #include "TFiberHodEvent.h"
00023 
00024 #include "TPrincipal.h"
00025 #include "TMatrix.h"
00026 
00027 class TTRDMuensterFrankfurtProc : public TCBMBeamtimeProc {
00028  public:
00029       
00030   TTRDMuensterFrankfurtProc(const char* name = 0);
00031   virtual ~TTRDMuensterFrankfurtProc();
00032 
00033   virtual void InitEvent(TGo4EventElement*); 
00034 
00035   /* this is the main processing function here*/
00036   virtual void FinalizeEvent();
00037 
00038   void CancelNoise_Cova(Int_t sid, TH1* inPulse[NUM_SPADIC_CHA], TH1* outPulse[NUM_SPADIC_CHA], TSpadicData* theSpadic, bool debug);
00039 
00040   void PulseFitter(TH1* Pulse, Double_t hitTime, Double_t maxAmpl, Int_t sid);
00041 
00042  protected:
00044   TSpadicEvent * fSpadicInputEvent;
00045   TSpadicV10Event * fSpadicV10InputEvent;
00046   TEpicsEvent* fEpicsInputEvent;
00047   TMbsCrateEvent * fCrateInputEvent;
00048   TTRDMuensterFrankfurtEvent * fOutputEvent;
00049   TBeamMonitorEvent* fBeamEvent;  
00050   TFiberHodEvent*    fHodo1;
00051   TFiberHodEvent*    fHodo2;
00052 
00053   TF1 *pulseFit[MAX_SPADIC];
00054   TH1           *fSpadic_S2N;
00055   TH1           *fSpadic_S2Ncleaned;
00056   TH1           *fSpadic_S2Ncnt;
00057   //TH2           *fSpadic_Shape2D[MAX_SPADIC][SPADIC_TRACE_SIZE];
00058   TH1           *fSpadic_gainConstantFit[MAX_SPADIC];
00059   TH1           *fSpadic_timeConstantFit[MAX_SPADIC];
00060   TH1           *fSpadic_delayFit[MAX_SPADIC];
00061   TH1           *fSpadic_baselineFit[MAX_SPADIC];
00062   TH1           *fSpadic_chiSquareFit[MAX_SPADIC];
00063   TH1           *fSpadic_input[MAX_SPADIC][NUM_SPADIC_CHA];            
00064   TH1           *fSpadic_baseline[MAX_SPADIC][NUM_SPADIC_CHA];            
00065   TH1           *fSpadic_output[MAX_SPADIC][NUM_SPADIC_CHA];          
00066   TH1           *fSpadic_CorrMatrix[MAX_SPADIC][NUM_SPADIC_CHA];
00067   TH2           *fSpadic_CorrMatrix_hitTime[MAX_SPADIC][NUM_SPADIC_CHA];
00068   TH2           *fSpadic_CorrMatrix_maxAmpl[MAX_SPADIC][NUM_SPADIC_CHA];
00069   TH1           *fSpadic_ADCdistMF[MAX_SPADIC][NUM_SPADIC_CHA];     
00070   TH1           *fSpadic_NoiseDistMF[MAX_SPADIC];                   
00071   TH2           *fSpadic_NoiseDist2DMF[MAX_SPADIC];
00072   TH1           *fSpadic_PedelPosMF[MAX_SPADIC];                    
00073   TH2           *fSpadic_PedelPos2DMF[MAX_SPADIC];
00074   
00075   TH2           *fSpadic_pi_shape2D[MAX_SPADIC];
00076   TH1           *fSpadic_pi_shape[MAX_SPADIC];                  
00077   TH1           *fSpadic_pi_shapeRatio[MAX_SPADIC*MAX_SPADIC];                  
00078   TH1           *fSpadic_pi_shapecnt[MAX_SPADIC];               
00079   TH2           *fSpadic_el_shape2D[MAX_SPADIC]; 
00080   TH1           *fSpadic_el_shape[MAX_SPADIC];                  
00081   TH1           *fSpadic_el_shapeRatio[MAX_SPADIC*MAX_SPADIC];                  
00082   TH1           *fSpadic_el_shapecnt[MAX_SPADIC];               
00083 
00084   TH1           *fSpadic_pid[MAX_SPADIC];
00085   TH1           *fSpadic_pidMixing;
00086   TH1           *fSpadic_intens[MAX_SPADIC];
00087   TH1           *fSpadic_intens_3pad[MAX_SPADIC];
00088   TH1           *fSpadic_pi_intens[MAX_SPADIC]; 
00089   TH1           *fSpadic_pi_intens_over[MAX_SPADIC]; 
00090   TH1           *fSpadic_pi_intens_under[MAX_SPADIC]; 
00091   TH1           *fSpadic_el_intens[MAX_SPADIC]; 
00092   TH1           *fSpadic_el_intens_over[MAX_SPADIC];
00093   TH1           *fSpadic_el_intens_under[MAX_SPADIC];
00094 
00095   TH1           *fSpadic_intens_el_00;
00096   TH1           *fSpadic_intens_el_01;
00097   TH1           *fSpadic_intens_el_10;
00098   TH1           *fSpadic_intens_el_11;
00099 
00100   TH1           *fSpadic_intens_el_left;
00101   TH1           *fSpadic_intens_el_right;
00102 
00103   TH1           *fSpadic_padMax[MAX_SPADIC];                    
00104   TH1           *fSpadic_recoPos[MAX_SPADIC];
00105   TH2           *fSpadic_beamProfil[4];
00106   TH1           *fSpadic_statistics[MAX_SPADIC];                
00107   //TH1           *fSpadic_el_statistics[MAX_SPADIC];                //! cut quality
00108   //TH1           *fSpadic_pi_statistics[MAX_SPADIC];                //! cut quality
00109   //TH1           *fSpadic_beamQuality[MAX_SPADIC];             //! beam and chamber quality
00110   TH2           *fSpadic_correlation[MAX_SPADIC*MAX_SPADIC];                       
00111   TH2           *fSpadic_alignment[MAX_SPADIC*MAX_SPADIC]; 
00112   TH2           *fFiberHod1_2_x_alignment;
00113   TH2           *fFiberHod1_2_y_alignment;
00114   TH2           *fFiberHod1_2_dx_vs_x_alignment;
00115   TH2           *fFiberHod1_2_dy_vs_y_alignment;
00116   TH2           *fFiberHod1_x_alignment[MAX_SPADIC];
00117   TH2           *fFiberHod1_y_alignment[MAX_SPADIC];
00118   TH2           *fFiberHod2_x_alignment[MAX_SPADIC];
00119   TH2           *fFiberHod2_y_alignment[MAX_SPADIC];
00120   TH1           *fSpadic_efficiency;
00121   TH2           *fSpadic_2Dcorr[MAX_SPADIC];                           
00122   TH1           *fSpadic_trace_noisecorr[MAX_SPADIC][NUM_SPADIC_CHA];  
00123   TH1           *fSpadic_NbCluster[MAX_SPADIC];                        
00124   TH1           *fSpadic_Clustersize[MAX_SPADIC];                      
00125   TH1           *fSpadic_Spectral[MAX_SPADIC];                         
00126       
00127   TH2           *fSpadic_PRFMF[MAX_SPADIC];                         
00128   TH2           *fSpadic_deltaPos[4];
00129   TH2           *fSpadic_MSxyHitPadplane[2];
00130   TH2           *fSpadic_MSxyHitplane[2];
00131   TH2           *fSpadic_FingerCorr[MAX_SPADIC];
00132 
00133 
00134   TH1           *fSpadic_maxAmplitude[MAX_SPADIC]; 
00135   TH1           *fSpadic_el_maxAmplitude[MAX_SPADIC]; 
00136   TH1           *fSpadic_pi_maxAmplitude[MAX_SPADIC]; 
00137   TH1           *fSpadic_hitTime[MAX_SPADIC]; 
00138   TH1           *fSpadic_el_hitTime[MAX_SPADIC]; 
00139   TH1           *fSpadic_pi_hitTime[MAX_SPADIC]; 
00140   TH2           *fSpadic_hitTime_maxAmplitude[MAX_SPADIC]; 
00141   TH2           *fSpadic_hitTime_position[MAX_SPADIC];
00142   TH2           *fSpadic_hitTime_Hodo1Yposition[MAX_SPADIC];
00143   TH2           *fSpadic_hitTime_Hodo2Yposition[MAX_SPADIC];
00144   TH2           *fSpadic_hitTime_Hodo1Xposition[MAX_SPADIC];
00145   TH2           *fSpadic_hitTime_Hodo2Xposition[MAX_SPADIC];
00146   TH2           *fSpadic_overflow_Hodo1position[MAX_SPADIC];
00147   TH2           *fSpadic_overflow_Hodo2position[MAX_SPADIC];
00148   TGo4WinCond   *fSpadic_minAmplitudeCond[MAX_SPADIC];
00149   TGo4WinCond   *fSpadic_minIntensCond[MAX_SPADIC];
00150   TGo4WinCond   *fSpadic_hitTimeCond[MAX_SPADIC];
00151   TGo4WinCond   *fSpadic_integWindow[MAX_SPADIC];
00152   TGo4WinCond   *fSpadic_padMaxWindow[MAX_SPADIC];
00153   TGo4WinCond   *fSpadic_corrMatrixWindow[MAX_SPADIC][NUM_SPADIC_CHA];
00154   //TGo4WinCond   *fSpadic
00155 
00156 
00157   /* JAM: here some demo how to do with spadic v10 data:*/
00158   TH1       *fSpadicV10_input[MAX_SPADICV10][MAX_SPADICV10CHANNELS];            
00159 
00160 
00161   TTRDMuensterFrankfurtParam * fPar;     
00162 
00163   /* here some mapped slow control values:*/
00164   Double_t fEpicsMSTRD_Anode_U[MSTRDNUM];
00165   Double_t fEpicsMSTRD_Anode_I[MSTRDNUM];
00166   Double_t fEpicsMSTRD_Drift_U[MSTRDNUM];
00167   Double_t fEpicsMSTRD_Drift_I[MSTRDNUM];
00168   Double_t fEpicsMSTRD_Sus_U[MSTRDNUM];
00169   Double_t fEpicsMSTRD_Sus_I[MSTRDNUM];
00170   Double_t fEpicsMSTRD_Spa_U[MSTRDNUM];
00171   Double_t fEpicsMSTRD_Spa_I[MSTRDNUM];
00172   Double_t fEpicsMSTRD_Temp[MPOD01SLOT];
00173   Double_t fEpicsMSMpod00_U[MPOD00SLOT][MPOD00CHA];
00174   Double_t fEpicsMSMpod00_I[MPOD00SLOT][MPOD00CHA];
00175   Double_t fEpicsMSMpod01_U[MPOD01SLOT][MPOD01CHA];
00176   Double_t fEpicsMSMpod01_I[MPOD01SLOT][MPOD01CHA];
00177 
00178   Double_t fEpicsTrdGasFlow;
00179   Double_t fEpicsTrdIntegGasFlow;
00180 
00181   TH1 *fEpicsMSTRD_AnodeU[MSTRDNUM];
00182   TH1 *fEpicsMSTRD_AnodeI[MSTRDNUM];
00183   TH1 *fEpicsMSTRD_DriftU[MSTRDNUM];
00184   TH1 *fEpicsMSTRD_DriftI[MSTRDNUM];
00185   TH1 *fEpicsMSTRD_SusU[MSTRDNUM];
00186   TH1 *fEpicsMSTRD_SusI[MSTRDNUM];
00187   TH1 *fEpicsMSTRD_SpaU[MSTRDNUM];
00188   TH1 *fEpicsMSTRD_SpaI[MSTRDNUM];
00189   TH1 *fEpicsMSTRD_T[MPOD01SLOT];
00190   TH1 *fEpicsMSMpod00_Monitor_U[MPOD01SLOT][MPOD01CHA];
00191   TH1 *fEpicsMSMpod00_Monitor_I[MPOD01SLOT][MPOD01CHA];
00192   TH1 *fEpicsMSMpod01_Monitor_U[MPOD01SLOT][MPOD01CHA];
00193   TH1 *fEpicsMSMpod01_Monitor_I[MPOD01SLOT][MPOD01CHA];
00194  
00195   Double_t fEpics_Monitor_U[10];
00196   Double_t fEpics_Monitor_I[10];
00197   TH1 *fEpics_MonitorU[10];
00198   TH1 *fEpics_MonitorI[10];
00199 
00200   TH1 *fEpics_TrdGasFlowMonitor;
00201   TH1 *fEpics_TrdIntegGasFlowMonitor;
00202   
00203   Double_t fEpics_Rich_U[RICHNUM];
00204   Double_t fEpics_Rich_I[RICHNUM];
00205   TH1 *fEpics_RichU[RICHNUM];
00206   TH1 *fEpics_RichI[RICHNUM];
00207 
00208   TLatex *S2N[MAX_SPADIC];
00209   TLatex *E2P[MAX_SPADIC];
00210 
00211   TLine *one;
00212 
00213  protected:
00214 
00215   ClassDef(TTRDMuensterFrankfurtProc,1)
00216     };
00217 
00218 #endif //TUNPACKPROCESSOR_H
00219 

Generated on Tue Dec 10 2013 04:52:17 for ROCsoft by  doxygen 1.7.1