26 #include "TClonesArray.h"
67 fh_Det1ev =
new TH2D(
"fh_Det1ev",
"points in detector plane (1 event)",170,-170,170,250,-250,250);
68 fh_Det1ev_zoom =
new TH2D(
"fh_Det1ev_zoom",
"points in detector plane (1 event, zoom in)",100,10,60,100,60,110);
69 fh_Detall =
new TH2D(
"fh_Detall",
"points in detector plane (all events)",170,-170,170,250,-250,250);
70 fh_Detall_zoom =
new TH2D(
"fh_Detall_zoom",
"points in detector plane (all events, zoom in)",150,40,70,150,110,140);
71 fh_n_vs_p =
new TH2D(
"fh_n_vs_p",
"Npoints versus momentum",150,0,15,70,0,70);
73 fh_Nhits =
new TH1D(
"fh_Nhits",
"Number of hits of e rings (STS>=6)",70,0,70);
75 fh_Nall =
new TH1D(
"fh_Nall",
"Number of all rings in RICH",150,0,150);
76 fh_Nel =
new TH1D(
"fh_Nel",
"Number of electron rings in RICH",150,0,150);
77 fh_Nelprim =
new TH1D(
"fh_Nelprim",
"Number of electron (STS>=6) rings in RICH",150,0,150);
78 fh_Npi =
new TH1D(
"fh_Npi",
"Number of pi rings in RICH",150,0,150);
79 fh_Nk =
new TH1D(
"fh_Nk",
"Number of K rings in RICH",150,0,150);
80 fh_Nhad =
new TH1D(
"fh_Nhad",
"Number of hadrons crossing PMT plane",50,0,50);
81 fh_Nnoise =
new TH1D(
"fh_Nnoise",
"Number of noise hits PMT plane",100,0,2000);
118 if (! det) cout <<
" -I no RICH Geo Node found !!!!! " << endl;
123 fDetZ = detPosLab.
Z() + detPosCen.
Z();
126 if (NULL == ioman) { Fatal(
"CbmRichTestHits::Init",
"RootManager not instantised!");}
129 if ( NULL ==
fMcTracks) { Fatal(
"CbmRichTestHits::Init",
"No MCTrack array!");}
132 if ( NULL ==
fRichPoints) { Fatal(
"CbmRichTestHits::Init",
"No RichPoint array!");}
135 if ( NULL ==
fRichHits) { Fatal(
"CbmRichTestHits::Init",
"No RichHit array!");}
149 Int_t Nhad, Nring, Nel, Nel_prim, Npi, Nk, Nnoise;
150 Nhad = Nring = Nel = Nel_prim = Npi = Nk = Nnoise = 0;
152 map<Int_t,Int_t> hitMap;
154 Int_t nHits =
fRichHits->GetEntriesFast();
155 Int_t nMCTracks =
fMcTracks->GetEntriesFast();
157 for(Int_t iHit=0; iHit<nHits; iHit++){
159 if( NULL == pHit )
continue;
162 fh_Detall->Fill(position.X(),position.Y());
165 fh_Det1ev->Fill(position.X(),position.Y());
177 if (gcode != 50000050) Nhad++;
178 if (gcode == 50000050){
181 if (motherID == -1)
continue;
188 for (Int_t iMCTrack=0; iMCTrack<nMCTracks; iMCTrack++) {
190 if ( NULL == pTrack )
continue;
191 Int_t Nhits = hitMap[iMCTrack];
197 if (TMath::Abs(gcode) == 11) {
204 if (TMath::Abs(gcode) == 211) Npi++;
205 if (TMath::Abs(gcode) == 321) Nk++;
218 cout <<
"--------------------------------------------------------------------------" << endl;
219 cout <<
"----------- Test Rich HitProducer -----------" << endl;
221 cout <<
" Number of particles in RICH detector ----- event number " <<
fNEvents << endl;
222 cout <<
" hadrons in RICH (no Cherenkov photons) = " << Nhad << endl;
223 cout <<
" total rings = " << Nring << endl;
224 cout <<
" electrons = " << Nel << endl;
225 cout <<
" electrons (STS>=6) = " << Nel_prim << endl;
226 cout <<
" pions = " << Npi << endl;
227 cout <<
" Kaons = " << Nk << endl;
229 cout <<
"--------------------------------------------------------------------------" << endl;