+ // Both arguments are kFALSE when the method is called by the constructor
+ // redefine2D is TRUE when the method is called by ComputeMean at the second
+ // pass.
+ // redefine2D is FALSE and complete is TRUE when the method is called
+ // after a failure cof ComputeMean(kTRUE)
+
+ static Int_t counter = 0;
+ if(fVertexXY && redefine2D){
+ counter++;
+ Double_t rangeX=fVertexXY->GetXaxis()->GetXmax()-fVertexXY->GetXaxis()->GetXmin();
+ Double_t rangeY=fVertexXY->GetYaxis()->GetXmax()-fVertexXY->GetYaxis()->GetXmin();
+ Int_t nx=fVertexXY->GetNbinsX();
+ Int_t ny=fVertexXY->GetNbinsY();
+ delete fVertexXY;
+ Double_t xmi=fWeighPos[0]-rangeX/2.;
+ Double_t xma=fWeighPos[0]+rangeX/2.;
+ Double_t ymi=fWeighPos[1]-rangeY/2.;
+ Double_t yma=fWeighPos[1]+rangeY/2.;
+ fVertexXY = new TH2F("VertexXY","Vertex Diamond (Y vs X)",nx,xmi,xma,ny,ymi,yma);
+ fVertexXY->SetXTitle("X , cm");
+ fVertexXY->SetYTitle("Y , cm");
+ fVertexXY->SetOption("colz");
+ fVertexXY->SetDirectory(0);
+ }
+ else if(fVertexXY && !redefine2D){
+ fVertexXY->Reset();
+ }
+ if(fVertexZ){
+ fVertexZ->Reset();
+ fDistH->Reset();
+ if(complete){
+ fErrXH->Reset();
+ fMultH->Reset();
+ fErrXHa->Reset();
+ fMultHa->Reset();
+ fContrH->Reset();
+ fContrHa->Reset();
+ }
+ }