StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StFgtClusterPlotter.cxx
1 #include "StFgtClusterPlotter.h"
3 #include "StRoot/StEvent/StFgtCollection.h"
4 #include "StRoot/StEvent/StFgtHitCollection.h"
5 #include "StRoot/StEvent/StFgtHit.h"
6 #include "StRoot/StFgtUtil/geometry/StFgtGeom.h"
7 #include "StRoot/StEvent/StEvent.h"
8 #include "StRoot/StEvent/StEventInfo.h"
9 #include <TH2D.h>
10 #include <TROOT.h>
11 #include <TStyle.h>
12 #include <TCanvas.h>
13 
14 #include "StRoot/StFgtUtil/geometry/StFgtGeom.h"
15 
16 #include "StRoot/StEvent/StEvent.h"
17 #include "StRoot/StEvent/StFgtCollection.h"
18 
19 
23 /*Bool_t checkPulse(StFgtHit* pClus)
24 {
25  int N=7;
26  stripWeightMap_t strips=pClus->getStripWeightMap();
27  for(stripWeightMap_t::iterator it=strips.begin();it!=strips.end();it++)
28  {
29  Float_t peakAdc=leadEdgeBin=-9999;
30  Float_t sumAdc=0;
31  }
32  for(int i=0;i<N;i++)
33  {
34  sumAdc+=it->getAdc(i);
35  if(leadEdgeBin<0 && it->getAdc(i)>...
36  }
37 
38 }*/
39 
40 
45 {
46  cout <<" making cluster plotter " <<endl;
47  Int_t ierr = kStOk;
48  StEvent* eventPtr = 0;
49  eventPtr = (StEvent*)GetInputDS("StEvent");
50 
51  if( !eventPtr ) {
52  LOG_ERROR << "Error getting pointer to StEvent from '" << ClassName() << "'" << endm;
53  ierr = kStErr;
54  };
55 
56  mFgtCollectionPtr = 0;
57 
58  if( eventPtr ) {
59  mFgtCollectionPtr=eventPtr->fgtCollection();
60  };
61 
62  if( !mFgtCollectionPtr) {
63  LOG_ERROR << "Error getting pointer to StFgtCollection from '" << ClassName() << "'" << endm;
64  ierr = kStErr;
65  };
66  Int_t realEvtNr=-1;
67  if(eventPtr)
68  {
69  if(eventPtr->info())
70  realEvtNr=eventPtr->info()->id();
71  }
72 
73  (*outTxtFileP) <<endl<<endl<<" ------new event: " << realEvtNr << "----------------------" << " running nr: " << runningEvtNr << "------" << endl;
74  (*outTxtFileR) <<endl<<endl<<" ------new event: " << realEvtNr << "----------------------" << " running nr: " << runningEvtNr << "------" << endl;
75 
76  cout <<"in plotter make " << endl;
77  Float_t x;
78  Float_t y;
79  Int_t prvGeoId=-1;
80  for(int iDx=0;iDx<kFgtNumDiscs;iDx++)
81  {
82  vector<float> vPhi[4];
83  vector<float> vR[4];
84 
85  vector<float> vPhiCharge[4];
86  vector<float> vRCharge[4];
87 
88  StFgtStripCollection& strips=*(mFgtCollectionPtr->getStripCollection( iDx ));
89 
90  for( StSPtrVecFgtStripIterator it=strips.getStripVec().begin();it!=strips.getStripVec().end();++it)
91  {
92  /* cout <<"maxAdc: " << (*it)->getMaxAdc() <<endl;
93  cout <<"hits : ";
94  for(int i=0;i<7;i++)
95  { cout <<" " << (*it)->getAdc(i);}
96  cout <<endl;*/
97 
98  Short_t quad, disc, strip;
99  Char_t layer;
100 
101  Bool_t stripDead=false;
102 
103  StFgtGeom::decodeGeoId((*it)->getGeoId(),disc, quad, layer, strip);
104  if(layer=='R')
105  outTxtFile=outTxtFileR;
106  else
107  outTxtFile=outTxtFileP;
108 
109  if(((*it)->getGeoId()-prvGeoId)>2 && prvGeoId>=0)
110  {
111  (*outTxtFile) <<endl<<endl<<endl;;
112  }
113 
114  prvGeoId=(*it)->getGeoId();
115  switch((*it)->getClusterSeedType())
116  {
117  case kFgtSeedType1:
118  (*outTxtFile) <<"#";
119  break;
120  case kFgtSeedType2:
121  (*outTxtFile) <<"#";
122  break;
123  case kFgtSeedType3:
124  (*outTxtFile) <<"#";
125  break;
126  case kFgtClusterPart:
127  (*outTxtFile) <<"*";
128  break;
129  case kFgtClusterEndUp:
130  (*outTxtFile) <<"*";
131  break;
132  case kFgtClusterEndDown:
133  (*outTxtFile) <<"*";
134  break;
135  case kFgtDeadStrip:
136  if(((it-1))>=strips.getStripVec().begin() && (it+1)<strips.getStripVec().end())
137  {
138  if((*(it-1))->getClusterSeedType()>kFgtDeadStrip&& (*(it+1))->getClusterSeedType()>kFgtDeadStrip)
139  (*outTxtFile) <<"*";
140  else
141  (*outTxtFile) <<"x";
142  }
143  else
144  (*outTxtFile) <<"x";
145  break;
146 
147  default:
148  (*outTxtFile) <<"-";
149  }
150  if((*it)->getClusterSeedType()==kFgtDeadStrip)
151  stripDead=true;
152  else
153  stripDead=false;
154  for( Int_t timebin = 0; timebin < kFgtNumTimeBins-2; ++timebin )
155  {
156  if(stripDead)
157  (*outTxtFile) << setw(4) << " ? "<< " ";
158  else
159  {
160  float numSig=(*it)->getAdc(timebin)/(*it)->getPedErr();
161  if(numSig >1)
162  (*outTxtFile) << setw(4) << (*it)->getAdc(timebin)<< " ";
163  else
164  (*outTxtFile) << setw(4) << " . "<< " ";
165  }
166  }
167  (*outTxtFile) << " : charge: " << (*it)->getCharge()<<" +- " << (*it)->getChargeUncert() <<" location: "<<StFgtGeom::encodeGeoName(disc,quad,layer,strip);
168  (*outTxtFile) <<"/"<<(*it)->getGeoId();
169  (*outTxtFile) << " ped: " << (*it)->getPed() <<" +- " << (*it)->getPedErr();
170  (*outTxtFile) << " run evtNr " << runningEvtNr;
171  // (*outTxtFile) <<" t0: " << (*it)->getFitParamT0() <<" fit chi2/ndf: " << (*it)->getFitChi2();
172  if((*it)->getClusterSeedType()==kFgtSeedType1)
173  {
174  (*outTxtFile) << " ---> seed w/ 3 high strips";
175  }
176  if((*it)->getClusterSeedType()==kFgtSeedType2)
177  (*outTxtFile) << " ---> seed w/ 2 high strips";
178  if((*it)->getClusterSeedType()==kFgtSeedType3)
179  (*outTxtFile) << " ---> seed w/ 1 high strip";
180 
181  if((*it)->getClusterSeedType()==kFgtClusterSeedInSeaOfNoise)
182  (*outTxtFile) <<" ---> seed in too much noise";
183 
184  if((*it)->getClusterSeedType()==kFgtClusterPart)
185  (*outTxtFile) << " ---> Part of cluster";
186  if((*it)->getClusterSeedType()==kFgtDeadStrip)
187  (*outTxtFile) <<" ---> Strip is marked dead";
188  if((*it)->getClusterSeedType()==kFgtClusterEndUp)
189  (*outTxtFile) <<" ---> End of a cluster";
190  if((*it)->getClusterSeedType()==kFgtClusterEndDown)
191  (*outTxtFile) <<" ---> Beginning of a cluster";
192  (*outTxtFile) <<endl;
193  }
194 
195  cout <<"trying to get clusters in disc " << iDx << endl;
196  StFgtHitCollection* clusterCol=mFgtCollectionPtr->getHitCollection(iDx);
197 
198  if(clusterCol)
199  {
200 
201  const StSPtrVecFgtHit &hitVec=clusterCol->getHitVec();
202  cout <<"got collection, looking at " << hitVec.size() << " hits .. " <<endl;
203  StSPtrVecFgtHitConstIterator hitIter;
204  for(hitIter=hitVec.begin();hitIter != hitVec.end();hitIter++)
205  {
206  Int_t iq=(*hitIter)->getQuad();
207  Float_t phi=(*hitIter)->getPositionPhi();
208  Float_t r=(*hitIter)->getPositionR();
209  Int_t geoId=(*hitIter)->getCentralStripGeoId();
210  Float_t charge=(*hitIter)->charge();
211  Float_t chargeErr=(*hitIter)->getChargeUncert();
212  Int_t numStrips=(*hitIter)->getStripWeightMap().size();
214  Short_t quad, disc, strip;
215  Char_t layer;
216 
217  Bool_t containsSeed=false;
218 
219  for(stripWeightMap_t::iterator it=(*hitIter)->getStripWeightMap().begin();it!=(*hitIter)->getStripWeightMap().end();it++)
220  {
221  // if(it->first->getClusterSeedType()==kFgtSeedType1 || it->first->getClusterSeedType()==kFgtSeedType2 || it->first->getClusterSeedType()==kFgtSeedType3) //require 2 or 3 strips
222  // if(it->first->getClusterSeedType()==kFgtSeedType1 || it->first->getClusterSeedType()==kFgtSeedType2) //require 3 strips
223  if(it->first->getClusterSeedType()==kFgtSeedType1 || it->first->getClusterSeedType()==kFgtSeedType2 ||it->first->getClusterSeedType()==kFgtSeedType3) //require 1,2,3 strips
224  {
225  containsSeed=true;
227  charge=it->first->getCharge();
228  }
229  }
230  if(containsSeed)
231  {
232  // (*outTxtFile) <<" looking at Cluster for geoId: " << (*hitIter)->getCentralStripGeoId() << " layer: " << (*hitIter)->getLayer() <<endl;
233  for(stripWeightMap_t::iterator it=(*hitIter)->getStripWeightMap().begin();it!=(*hitIter)->getStripWeightMap().end();it++)
234  {
235  StFgtGeom::decodeGeoId(it->first->getGeoId(),disc, quad, layer, strip);
236  for( Int_t timebin = 0; timebin < kFgtNumTimeBins-2; ++timebin )
237  {
238  float numSig=it->first->getAdc(timebin)/it->first->getPedErr();
239  // if(numSig >1)
240  // (*outTxtFile) << setw(4) << it->first->getAdc(timebin)<< " ";
241  // else
242  // (*outTxtFile) << setw(4) << " . "<< " ";
243  }
244 
245  // (*outTxtFile) << " ::: charge: " << it->first->getCharge()<<" +- " << it->first->getChargeUncert() <<" location: "<<StFgtGeom::encodeGeoName(disc,quad,layer,strip);
246  // (*outTxtFile) << " ped: " << it->first->getPed() <<" +- " << it->first->getPedErr();
247  // (*outTxtFile) << " running evtNo " << runningEvtNr;
248  // (*outTxtFile) <<" t0: " << it->first->getFitParamT0() <<" fit chi2/ndf: " << it->first->getFitChi2();
249  if(it->first->getClusterSeedType()==kFgtSeedType1)
250  {
251  // (*outTxtFile) << " ---> seed with 3 high strips";
252  }
253  /* if(it->first->getClusterSeedType()==kFgtSeedType2)
254  (*outTxtFile) << " ---> seed with 2 high strips";
255  if(it->first->getClusterSeedType()==kFgtSeedType3)
256  (*outTxtFile) << " ---> seed with 1 high strip";
257 
258  if(it->first->getClusterSeedType()==kFgtClusterPart)
259  (*outTxtFile) << " ---> part of cluster";
260  (*outTxtFile) <<endl;*/
261  }
262  // (*outTxtFile) <<" -----------------------cluster charge: " << charge<<" -----------------------" <<endl;
263  // (*outTxtFile) <<" -----------------------end of cluster -----------------------" <<endl;
264 
265  if(!containsSeed)
266  {
267  // (*outTxtFile) << " no seed pulse " << endl;
268  continue;
269  }
270 
271  // (*outTxtFile) <<" found seed" <<endl;
272 
273  if((*hitIter)->getLayer()=='R')
274  {
275  vR[iq].push_back((*hitIter)->getPositionR());
276  vRCharge[iq].push_back(charge);
277  }
278  else
279  {
280  vPhi[iq].push_back((*hitIter)->getPositionPhi());
281  vPhiCharge[iq].push_back(charge);
282  }
283 
284  Short_t tDisc, tQuad,tStrip;
285  Char_t tLayer;
286  //get strip id from the geo id
287  StFgtGeom::decodeGeoId(geoId,tDisc,tQuad,tLayer,tStrip);
288  // cout <<"filling charge with phi: " << phi << " r : " << r << " charge: " << charge <<" numStrips: " << numStrips<< " strip nr: " << tStrip<<endl;
289  // cout<<"disc nr: " << iDx <<" quad: " << iq << " numquads: " << kFgtNumQuads <<endl;
290  hCChargePosSpacePhi[iDx*kFgtNumQuads+iq]->Fill(phi,charge);
291  hCChargePosSpaceR[iDx*kFgtNumQuads+iq]->Fill(r,charge);
292  hClusSizePhi[iDx*kFgtNumQuads+iq]->Fill(phi,numStrips);
293  hClusSizePhi[iDx*kFgtNumQuads+iq]->Fill(phi,numStrips);
294  hClusSizeR[iDx*kFgtNumQuads+iq]->Fill(r,numStrips);
295  hCChargeElecSpace[iDx*kFgtNumQuads+iq]->Fill(tStrip,charge);
296  hClusSizeElecSpace[iDx*kFgtNumQuads+iq]->Fill(tStrip,numStrips);
297  }
298  }
299 
300  for(int iQ=0;iQ<4;iQ++)
301  {
302 
303  for(vector<float>::iterator itR=vR[iQ].begin();itR!=vR[iQ].end();itR++)
304  {
305  for(vector<float>::iterator itP=vPhi[iQ].begin();itP!=vPhi[iQ].end();itP++)
306  {
307  x=(*itR)*cos(*itP);
308  y=(*itR)*sin(*itP);
309  radioPlots[iDx]->Fill(x,y);
310  }
311  }
312  for(vector<float>::iterator itR=vRCharge[iQ].begin();itR!=vRCharge[iQ].end();itR++)
313  {
314  for(vector<float>::iterator itP=vPhiCharge[iQ].begin();itP!=vPhiCharge[iQ].end();itP++)
315  {
316  corrPlots[iDx*kFgtNumQuads+iQ]->Fill(*itR,*itP);
317  }
318  }
319 
320  vPhi[iQ].clear();
321  vR[iQ].clear();
322  vPhiCharge[iQ].clear();
323  vRCharge[iQ].clear();
324  }
325 
326  }
327  }
328 
329  runningEvtNr++;
330  return ierr;
331 };
332 
333  StFgtClusterPlotter::StFgtClusterPlotter( const Char_t* name): StMaker( name ),runningEvtNr(0)
334 {
335 
336 
337 };
338 
339 StFgtClusterPlotter::~StFgtClusterPlotter()
340 {
341  //delete histogram arrays
342 };
343 
344 
346  outTxtFile->close();
347  gStyle->SetPalette(1);
348  cout <<"cluster plotter finish funciton " <<endl;
349  Int_t ierr = kStOk;
350  TCanvas* cChargePhi=new TCanvas("chargePhi","chargePhi",850,1100);
351  TCanvas* cChargePhiBig=new TCanvas("chargePhiBig","chargePhiBig",850,1100);
352  cChargePhi->SetLogz();
353  cChargePhi->Divide(kFgtNumDiscs,kFgtNumQuads);
354  TCanvas* cChargeR=new TCanvas("chargeR","chargeR",850,1100);
355  TCanvas* cChargeRBig=new TCanvas("chargeRBig","chargeRBig",850,1100);
356  cChargeR->SetLogz();
357  cChargeR->Divide(kFgtNumDiscs,kFgtNumQuads);
358  TCanvas* cClusSizePhi=new TCanvas("clusSizePhi","clusSizePhi",850,1100);
359  TCanvas* cClusSizePhiBig=new TCanvas("clusSizePhiBig","clusSizePhiBig",850,1100);
360  cClusSizePhi->Divide(kFgtNumDiscs,kFgtNumQuads);
361  TCanvas* cClusSizeR=new TCanvas("clusSizeR","clusSizeR",850,1100);
362  TCanvas* cClusSizeRBig=new TCanvas("clusSizeRBig","clusSizeRBig",850,1100);
363  cClusSizeR->Divide(kFgtNumDiscs,kFgtNumQuads);
364  TCanvas* cChargeElecSpace=new TCanvas("cChargeElecSpace","cChargeEledId",850,1100);
365  TCanvas* cChargeElecSpaceBig=new TCanvas("cChargeElecSpaceBig","cChargeEledIdBig",850,1100);
366  cChargeElecSpace->SetLogz();
367  cChargeElecSpace->Divide(kFgtNumDiscs,kFgtNumQuads);
368  TCanvas* cClusSizeElecSpace=new TCanvas("clusSizeElecSpace","clusSizeEledId",850,1100);
369  TCanvas* cClusSizeElecSpaceBig=new TCanvas("clusSizeElecSpaceBig","clusSizeEledIdBig",850,1100);
370  cClusSizeElecSpace->Divide(kFgtNumDiscs,kFgtNumQuads);
371 
372  TCanvas* cRadio=new TCanvas("radioPlots","radioPlot",1000,1500);
373  cRadio->Divide(2,3); //6 discs
374 
375  TCanvas* cCorr=new TCanvas("correlationPlots","correlationPlot",1000,1500);
376  TCanvas* cCorrBig=new TCanvas("correlationPlotsBig","correlationPlotBig",1000,1500);
377  cCorr->Divide(kFgtNumDiscs,kFgtNumQuads);
378 
379  for(Int_t iD=0;iD<kFgtNumDiscs;iD++)
380  {
381  for(Int_t iQ=0;iQ<kFgtNumQuads;iQ++)
382  {
383  cout <<"drawing disc " << iD <<" quad " << iQ <<endl;
384  cChargePhi->cd(iD*kFgtNumQuads+iQ+1)->SetLogz();
385  hCChargePosSpacePhi[iD*kFgtNumQuads+iQ]->Draw("colz");
386  cChargePhiBig->cd()->SetLogz();
387  hCChargePosSpacePhi[iD*kFgtNumQuads+iQ]->Draw("colz");
388  cChargePhiBig->Print("cChargePhiBig.pdf");
389 
390  cChargeR->cd(iD*kFgtNumQuads+iQ+1)->SetLogz();
391  hCChargePosSpaceR[iD*kFgtNumQuads+iQ]->Draw("colz");
392 
393  cChargeRBig->cd()->SetLogz();
394  hCChargePosSpaceR[iD*kFgtNumQuads+iQ]->Draw("colz");
395  cChargeRBig->Print("cChargeRBig.pdf");
396 
397 
398  cClusSizePhi->cd(iD*kFgtNumQuads+iQ+1)->SetLogz();
399  hClusSizePhi[iD*kFgtNumQuads+iQ]->Draw("colz");
400 
401  cClusSizePhiBig->cd()->SetLogz();
402  hClusSizePhi[iD*kFgtNumQuads+iQ]->Draw("colz");
403  cClusSizePhiBig->Print("cClusSizePhiBig.pdf");
404 
405  cClusSizeR->cd(iD*kFgtNumQuads+iQ+1)->SetLogz();
406  hClusSizeR[iD*kFgtNumQuads+iQ]->Draw("colz");
407 
408  cClusSizeRBig->cd()->SetLogz();
409  hClusSizeR[iD*kFgtNumQuads+iQ]->Draw("colz");
410  cClusSizeRBig->Print("cClusSizeRBig.pdf");
411 
412 
413  cChargeElecSpace->cd(iD*kFgtNumQuads+iQ+1)->SetLogz();
414  hCChargeElecSpace[iD*kFgtNumQuads+iQ]->Draw("colz");
415 
416  cChargeElecSpaceBig->cd()->SetLogz();
417  hCChargeElecSpace[iD*kFgtNumQuads+iQ]->Draw("colz");
418  cChargeElecSpaceBig->Print("cChargeElecSpaceBig.pdf");
419 
420 
421  cClusSizeElecSpace->cd(iD*kFgtNumQuads+iQ+1)->SetLogz();
422  hClusSizeElecSpace[iD*kFgtNumQuads+iQ]->Draw("colz");
423 
424 
425  cClusSizeElecSpace->cd()->SetLogz();
426  hClusSizeElecSpace[iD*kFgtNumQuads+iQ]->Draw("colz");
427  cClusSizeElecSpaceBig->Print("cClusSizeElecCooBig.pdf");
428 
429 
430  cCorr->cd(iD*kFgtNumQuads+iQ+1)->SetLogz();
431  corrPlots[iD*kFgtNumQuads+iQ]->Draw("colz");
432 
433  cCorrBig->cd()->SetLogz();
434  corrPlots[iD*kFgtNumQuads+iQ]->Draw("colz");
435  cCorrBig->Print("r_phi_correlationsBig.pdf");
436 
437  }
438  cRadio->cd(iD+1)->SetLogz();
439  radioPlots[iD]->Draw("colz");
440  }
441 
442 
443  cout <<"saving .." <<endl;
444  cChargePhi->SaveAs("cChargePhi.pdf");
445  cChargePhi->SaveAs("cChargePhi.png");
446 
447  cChargeR->SaveAs("cChargeR.pdf");
448  cChargeR->SaveAs("cChargeR.png");
449 
450  cClusSizePhi->SaveAs("cClusSizePhi.pdf");
451  cClusSizePhi->SaveAs("cClusSizePhi.png");
452 
453  cClusSizeR->SaveAs("cClusSizeR.pdf");
454  cClusSizeR->SaveAs("cClusSizeR.png");
455 
456 
457  cChargeElecSpace->SaveAs("cClusSizeElecSpace.pdf");
458  cChargeElecSpace->SaveAs("cClusSizeElecSpace.png");
459 
460  cClusSizeElecSpace->SaveAs("cClusSizeElecSpace.pdf");
461  cClusSizeElecSpace->SaveAs("cClusSizeElecSpace.png");
462 
463  cRadio->SaveAs("radioPlots.png");
464  cRadio->SaveAs("radioPlots.pdf");
465 
466  cCorr->SaveAs("corrPlots.png");
467  cCorr->SaveAs("corrPlots.pdf");
468 
469  myRootFile->Write();
470  myRootFile->Close();
471 
472  return ierr;
473 };
474 
475 
481 
482  myRootFile=new TFile("clusterPlotter.root","RECREATE");
483  // outTxtFile=new ofstream;
484  // outTxtFile->open("clusters.txt");
485 
486  outTxtFileP=new ofstream;
487  outTxtFileP->open("clustersP.txt");
488  outTxtFileR=new ofstream;
489  outTxtFileR->open("clustersR.txt");
490 
491 
492  Int_t ierr = kStOk;
493  hClusterCharge=new TH1D("clusterCharge","clusterCharge",100, 0, 1000);
494  char buffer[100];
495  hCChargePosSpacePhi=new TH2D*[kFgtNumDiscs*kFgtNumQuads];
496  hCChargePosSpaceR=new TH2D*[kFgtNumDiscs*kFgtNumQuads];
497  hClusSizePhi=new TH2D*[kFgtNumDiscs*kFgtNumQuads];
498  hClusSizeR=new TH2D*[kFgtNumDiscs*kFgtNumQuads];
499  hCChargeElecSpace=new TH2D*[kFgtNumDiscs*kFgtNumQuads];
500  hClusSizeElecSpace=new TH2D*[kFgtNumDiscs*kFgtNumQuads];
501 
502  radioPlots=new TH2D*[kFgtNumDiscs];
503  corrPlots=new TH2D*[kFgtNumDiscs*kFgtNumQuads];
504 
505  trkRadioPlots=new TH2D*[kFgtNumDiscs];
506  trkPhiProj=new TH1D*[kFgtNumDiscs];
507 
508 
509 
510  for(int iD=0;iD<kFgtNumDiscs;iD++)
511  {
512  sprintf(buffer,"radioDisk%d_",iD);
513  radioPlots[iD]=new TH2D(buffer,buffer,100,-50,50,100,-50,50);
514  sprintf(buffer,"trkRadioDisk%d_",iD);
515  trkRadioPlots[iD]=new TH2D(buffer,buffer,100,-50,50,100,-50,50);
516  sprintf(buffer,"trkPhiDisk%d_",iD);
517  trkPhiProj[iD]=new TH1D(buffer,buffer,100,-3.5,3.5);
518 
519  for(int iQ=0;iQ<kFgtNumQuads;iQ++)
520  {
521  sprintf(buffer,"clusterChargeDisk%d_Quad%d_phi",iD,iQ);
522  hCChargePosSpacePhi[iD*kFgtNumQuads+iQ]=new TH2D(buffer,buffer,200,-4,4, 200, 0, 2000);
523  sprintf(buffer,"clusterChargeDisk%d_Quad%d_R",iD,iQ);
524  hCChargePosSpaceR[iD*kFgtNumQuads+iQ]=new TH2D(buffer,buffer,200,10,35, 200, 0, 2000);
525  sprintf(buffer,"clusterSizeDisk%d_Quad%d_phi",iD,iQ);
526  hClusSizePhi[iD*kFgtNumQuads+iQ]=new TH2D(buffer,buffer,1000,-4,4, 20, 0, 20);
527  sprintf(buffer,"clusterSizeDisk%d_Quad%d_R",iD,iQ);
528  hClusSizeR[iD*kFgtNumQuads+iQ]=new TH2D(buffer,buffer,1000,10,35, 20, 0, 20);
529  sprintf(buffer,"clusterSizeDisk%d_Quad%d_ElecSpace",iD,iQ);
530  hClusSizeElecSpace[iD*kFgtNumQuads+iQ]=new TH2D(buffer,buffer,100,0,1000, 20, 0, 20);
531  sprintf(buffer,"clusterChargeDisk%d_Quad%d_ElecSpace",iD,iQ);
532  hCChargeElecSpace[iD*kFgtNumQuads+iQ]=new TH2D(buffer,buffer,100,0,1000, 100, 0, 2000);
533  sprintf(buffer,"radioDisk%d_Quad_%d",iD,iQ);
534 
535  sprintf(buffer,"r_phi_ChargeCorr%d_Quad_%d",iD,iQ);
536  corrPlots[iD*kFgtNumQuads+iQ]=new TH2D(buffer,buffer,100,0,2000,100,0,2000);
537  }
538  }
539  return ierr;
540 };
541 ClassImp(StFgtClusterPlotter);
Definition: Stypes.h:44
Definition: Stypes.h:41
Cluster Plotter.