52 virtual InitStatus
Init();
54 virtual void Exec(Option_t* opt);
70 Double_t
param2[4] = {999., 999., 999., 999.};
71 Double_t
param3[4] = {999., 999., 999., 999.};
73 Double_t
x2[6] = {-999., -999.,-999.,-999.,-999.,-999.};
74 Double_t
y2[6] = {-999., -999.,-999.,-999.,-999.,-999.};
75 Double_t
z2[6] = {-999., -999.,-999.,-999.,-999.,-999.};
76 Double_t
x3[6] = {-999., -999.,-999.,-999.,-999.,-999.};
77 Double_t
y3[6] = {-999., -999.,-999.,-999.,-999.,-999.};
78 Double_t
z3[6] = {-999., -999.,-999.,-999.,-999.,-999.};
89 TString fInputBranchName;
90 TString fOutputBranchName;
91 TString fBmnEventHeaderBranchName;
94 TClonesArray* fBmnMwpcDigitArray;
95 TClonesArray* fBmnHitsArray;
97 TClonesArray* fBmnMwpcSegmentsArray;
98 TClonesArray* fBmnMwpcEventHeader;
100 TString fOutputFileName;
111 Short_t kNChambers, kNPlanes, kNWires;
113 Int_t kCh_min, kCh_max;
118 TH1D *hNtrMC, *hDen_mc, *hNum_mc, *hEff_mc,
119 *hx_target, *hy_target, *hNp_MCtrue_ch2, *hNp_MCtrue_ch3,
120 *hDen_mcreaction2, *hNum_mcreaction2,*hEff_mcreaction2,
121 *hDen_mcreaction3, *hNum_mcreaction3,*hEff_mcreaction3, *hHalfDeadCh;
123 TH2D *hYvsX_mc_ch2, *hYvsX_mc_ch3;
125 vector<TH1D*> hNp_best_Ch, hNbest_Ch, hOccupancy, hTime,
126 hoccupancyXp, hoccupancyUp, hoccupancyVp, hoccupancyXm, hoccupancyUm, hoccupancyVm, hfiredWire_Ch, hClusterSize, hChisq_ndf_Ch, hNFired_layers_Ch,
127 hWiresXp, hWiresUp, hWiresVp, hWiresXm, hWiresUm, hWiresVm,
128 hResiduals_pl0_Ch, hResiduals_pl1_Ch, hResiduals_pl2_Ch, hResiduals_pl3_Ch, hResiduals_pl4_Ch, hResiduals_pl5_Ch,hfired_wire_Ch, hNum_layers_out_beam_Ch,
129 hpar_Ax_Ch, hpar_Ay_Ch,hpar_Bx_Ch,hpar_By_Ch,
130 hx_target_best, hy_target_best,
131 hAx_mc_ch, hAy_mc_ch,hBx_mc_ch,hBy_mc_ch,
132 hdAx_mc_SegCh, hdAy_mc_SegCh,hdX_mc_SegCh,hdY_mc_SegCh,
133 hdAx_mc_Seg_deltaCh, hdAy_mc_Seg_deltaCh, hdX_mc_Seg_deltaCh,hdY_mc_Seg_deltaCh;
135 vector<TH2D*> hEvent_display_Ch, htime_wire_Ch, hY_X_Ch;
137 Int_t kMinHits_before_target;
139 Int_t kChMaxAllWires;
141 Double_t dw, dw_half;
142 Double_t sq3, sq12, sigma;
145 vector<MC_points> vec_points;
162 Int_t **Beam_wires_min;
163 Int_t **Beam_wires_max;
168 Double_t **Chi2_ndf_Ch;
169 Double_t **Chi2_ndf_best_Ch;
175 Double_t ***par_ab_Ch;
176 Double_t ***Coord_xuv;
177 Double_t ***XVU_coord;
178 Double_t ***Coord_wire;
183 Int_t ***ClusterSize;
184 Double_t ***DigitsArray;
185 Double_t **Chi2_ndf_seg;
186 Double_t ***Coor_seg;
187 Double_t ***Cluster_seg;
188 Double_t ***par_ab_seg;
189 Double_t ****sigma2_seg;
190 Double_t ***Cluster_coord;
197 const int kMaxMC = 100;
201 void PrepareArraysToProcessEvent();
202 void ReadWires(Double_t ***, Int_t **, vector<MC_points>&);
203 void Clustering(Int_t, Int_t***, Double_t***, Double_t***, Double_t***, Int_t **, Int_t *);
204 void SegmentParamAlignment(Int_t, Int_t *, Double_t ***, Float_t **);
205 void SegmentFinder(Int_t , Int_t** , Double_t ***, Int_t ***,Int_t *, Double_t ***, Double_t ***, Int_t **,Int_t , Short_t , Int_t );
206 void SegmentFinder2coord(Int_t, Int_t **, Double_t ***, Int_t ***,Int_t *, Double_t ***, Double_t ***, Int_t **,Int_t, Short_t , Int_t ,Int_t *, Double_t ***);
207 void ProcessSegments( Int_t , Int_t *, Double_t ***, Double_t ***, Int_t **, Float_t **, Int_t , Double_t , Double_t ,Int_t ** , Double_t **, Double_t ***, Double_t ***, Double_t ***, Int_t *, Int_t *, Double_t ****);
208 void ProcessSegments2coord( Int_t , Int_t *, Double_t ***, Double_t ***, Int_t **, Float_t **, Int_t , Double_t , Double_t ,Int_t ** , Double_t **, Double_t ***, Double_t ***, Double_t ***, Int_t *, Int_t *, Double_t ****);
209 void FillFreeCoefVectorXUV(Int_t, Double_t*, Float_t**, Float_t**, Float_t*, Int_t*);
210 void FillFreeCoefVector(Int_t , Double_t*, Double_t*** , Int_t , Float_t** , Double_t*, Int_t*);
211 void FillFitMatrix(Int_t, Double_t **, Float_t **, Double_t *, Int_t *);
212 void InverseMatrix(Double_t**, Double_t**);
213 void MCefficiencyCalculation(Int_t, vector<MC_points>&, Double_t ***, Int_t *);
214 void SegmentsStoring(Int_t *, Double_t ***,Double_t **, Int_t **, Double_t ***, Double_t ***, Double_t ****);
216 const Int_t PDG_Li7 = 1000030070;
217 const Int_t PDG_He4 = 1000020040;
219 TString fBmnEvQualityBranchName;
220 TClonesArray* fBmnEvQuality;