From c128dc0666b16425e56c1e651055cfb16f33e3e1 Mon Sep 17 00:00:00 2001 From: jbarbosa Date: Thu, 10 May 2001 12:25:16 +0000 Subject: [PATCH] Moved code into AliRICH. --- RICH/RICHpadtest.C | 74 ++++---- RICH/RICHpadtestC.C | 412 +------------------------------------------- 2 files changed, 47 insertions(+), 439 deletions(-) diff --git a/RICH/RICHpadtest.C b/RICH/RICHpadtest.C index e200a4384d5..e67114c11c8 100644 --- a/RICH/RICHpadtest.C +++ b/RICH/RICHpadtest.C @@ -49,9 +49,14 @@ void RICHpadtest (Int_t diaglevel,Int_t evNumber1=0,Int_t evNumber2=0) if (!gAlice) gAlice = new AliRun("gAlice","Alice test program"); } + AliRICH *RICH = (AliRICH*)gAlice->GetDetector("RICH"); + + RICH->DiagnosticsSE(diaglevel,evNumber1,evNumber2); + + // Create some histograms - AliRICH *RICH = (AliRICH*)gAlice->GetDetector("RICH"); +/* AliRICH *RICH = (AliRICH*)gAlice->GetDetector("RICH"); AliRICHSegmentationV0* segmentation; AliRICHChamber* chamber; @@ -62,11 +67,11 @@ void RICHpadtest (Int_t diaglevel,Int_t evNumber1=0,Int_t evNumber2=0) Int_t NpadY = segmentation->Npy(); // number of pads on Y Int_t Pad[144][160]; - /*for (Int_t i=0;iTreeR()->GetEntries(); - gAlice->TreeR()->GetEvent(nent-1); - TClonesArray *Rawclusters = RICH->RawClustAddress(2); // Raw clusters branch - //printf ("Rawclusters:%p",Rawclusters); - Int_t nrawclusters = Rawclusters->GetEntriesFast(); - //printf (" nrawclusters:%d\n",nrawclusters); - gAlice->TreeR()->GetEvent(nent-1); - TClonesArray *RecHits1D = RICH->RecHitsAddress1D(2); - Int_t nrechits1D = RecHits1D->GetEntriesFast(); - //printf (" nrechits:%d\n",nrechits); - TClonesArray *RecHits3D = RICH->RecHitsAddress3D(2); - Int_t nrechits3D = RecHits3D->GetEntriesFast(); - //printf (" nrechits:%d\n",nrechits); + + if(gAlice->TreeR()) + { + Int_t nent=(Int_t)gAlice->TreeR()->GetEntries(); + gAlice->TreeR()->GetEvent(nent-1); + TClonesArray *Rawclusters = RICH->RawClustAddress(2); // Raw clusters branch + //printf ("Rawclusters:%p",Rawclusters); + Int_t nrawclusters = Rawclusters->GetEntriesFast(); + //printf (" nrawclusters:%d\n",nrawclusters); + gAlice->TreeR()->GetEvent(nent-1); + TClonesArray *RecHits1D = RICH->RecHitsAddress1D(2); + Int_t nrechits1D = RecHits1D->GetEntriesFast(); + //printf (" nrechits:%d\n",nrechits); + TClonesArray *RecHits3D = RICH->RecHitsAddress3D(2); + Int_t nrechits3D = RecHits3D->GetEntriesFast(); + //printf (" nrechits:%d\n",nrechits); + } + else + printf("No TreeR found on file.\n"); TTree *TH = gAlice->TreeH(); Int_t ntracks = TH->GetEntries(); - + gAlice->ResetDigits(); Int_t nent=(Int_t)gAlice->TreeD()->GetEntries(); gAlice->TreeD()->GetEvent(0); @@ -286,9 +297,9 @@ void RICHpadtest (Int_t diaglevel,Int_t evNumber1=0,Int_t evNumber2=0) Float_t cy = cHit->Z(); // y-position Int_t cmother = cHit->fCMother; // Index of mother particle Int_t closs = cHit->fLoss; // How did the particle get lost? - //printf ("Cerenkov hit, X:%d, Y:%d\n",cx,cy); + //printf ("Cerenkov hit number %d/%d, X:%d, Y:%d\n",hit,ncerenkovs,cx,cy); - //printf("Particle:%9d\n",index); + //printf("Particle:%9d\n",current->GetPdgCode()); TParticle *current = (TParticle*)gAlice->Particle(index); Float_t energyckov = current->Energy(); @@ -313,7 +324,8 @@ void RICHpadtest (Int_t diaglevel,Int_t evNumber1=0,Int_t evNumber2=0) { cerenkov->Fill(cx,cy,(float) 1); - + printf ("Cerenkov hit number %d/%d, X:%d, Y:%d\n",hit,ncerenkovs,cx,cy); + TParticle *MIP = (TParticle*)gAlice->Particle(cmother); mipHit = (AliRICHHit*) Hits->UncheckedAt(0); mom[0] = current->Px(); @@ -847,16 +859,16 @@ void RICHpadtest (Int_t diaglevel,Int_t evNumber1=0,Int_t evNumber2=0) Int_t Np=0; - /*for (Int_t i=0;i< NpadX;i++) { - for (Int_t j=0;j< NpadY;j++) { - if (Pad[i][j]>=6){ - Np+=1; - } - } - }*/ + //for (Int_t i=0;i< NpadX;i++) { + //for (Int_t j=0;j< NpadY;j++) { + //if (Pad[i][j]>=6){ + //Np+=1; + //} + //} + //} //printf("The total number of pads which give a signal: %d %d\n",Nh,Nh1); printf("\nEnd of macro\n"); - printf("**********************************\n"); + printf("**********************************\n");*/ } diff --git a/RICH/RICHpadtestC.C b/RICH/RICHpadtestC.C index fb884d9e596..38339030d72 100644 --- a/RICH/RICHpadtestC.C +++ b/RICH/RICHpadtestC.C @@ -11,18 +11,6 @@ void RICHpadtestC (Int_t evNumber1=0,Int_t evNumber2=0) ///////////////////////////////////////////////////////////////////////// - Int_t NpadX = 162; // number of pads on X - Int_t NpadY = 162; // number of pads on Y - - Int_t Pad[162][162]; - for (Int_t i=0;iGetID("AliRun") < 0) { @@ -55,402 +43,10 @@ void RICHpadtestC (Int_t evNumber1=0,Int_t evNumber2=0) if (!gAlice) gAlice = new AliRun("gAlice","Alice test program"); } -// Create some histograms - - Int_t xmin= -NpadX/2; - Int_t xmax= NpadX/2; - Int_t ymin= -NpadY/2; - Int_t ymax= NpadY/2; - - TH1F *pionspectra1 = new TH1F("pionspectra1","Pion Spectra",200,-4,2); - TH1F *pionspectra2 = new TH1F("pionspectra2","Pion Spectra",200,-4,2); - TH1F *pionspectra3 = new TH1F("pionspectra3","Pion Spectra",200,-4,2); - TH1F *protonspectra1 = new TH1F("protonspectra1","Proton Spectra",200,-4,2); - TH1F *protonspectra2 = new TH1F("protonspectra2","Proton Spectra",200,-4,2); - TH1F *protonspectra3 = new TH1F("protonspectra3","Proton Spectra",200,-4,2); - TH1F *kaonspectra1 = new TH1F("kaonspectra1","Kaon Spectra",100,-4,2); - TH1F *kaonspectra2 = new TH1F("kaonspectra2","Kaon Spectra",100,-4,2); - TH1F *kaonspectra3 = new TH1F("kaonspectra3","Kaon Spectra",100,-4,2); - TH1F *electronspectra1 = new TH1F("electronspectra1","Electron Spectra",100,-4,2); - TH1F *electronspectra2 = new TH1F("electronspectra2","Electron Spectra",100,-4,2); - TH1F *electronspectra3 = new TH1F("electronspectra3","Electron Spectra",100,-4,2); - TH1F *muonspectra1 = new TH1F("muonspectra1","Muon Spectra",100,-4,2); - TH1F *muonspectra2 = new TH1F("muonspectra2","Muon Spectra",100,-4,2); - TH1F *muonspectra3 = new TH1F("muonspectra3","Muon Spectra",100,-4,2); - TH1F *neutronspectra1 = new TH1F("neutronspectra1","Neutron Spectra",100,-4,2); - TH1F *neutronspectra2 = new TH1F("neutronspectra2","Neutron Spectra",100,-4,2); - TH1F *neutronspectra3 = new TH1F("neutronspectra2","Neutron Spectra",100,-4,2); - TH1F *chargedspectra1 = new TH1F("chargedspectra1","Charged particles above 1 GeV Spectra",100,-1,3); - TH1F *chargedspectra2 = new TH1F("chargedspectra2","Charged particles above 1 GeV Spectra",100,-1,3); - TH1F *chargedspectra3 = new TH1F("chargedspectra2","Charged particles above 1 GeV Spectra",100,-1,3); - TH2F *production = new TH2F("production","Mother production vertices",100,-300,300,100,0,600); - - - - -// Start loop over events - - Int_t Nh=0; - Int_t pads=0; - Int_t Nh1=0; - Float_t mom[3]; - Int_t nraw=0; - Int_t phot=0; - Int_t feed=0; - Int_t padmip=0; - Int_t pion=0, kaon=0, proton=0, electron=0, positron=0, neutron=0, highneutrons=0, muon=0; - Int_t chargedpions=0,primarypions=0,highprimarypions=0,chargedkaons=0,primarykaons=0,highprimarykaons=0; - Int_t chargedmuons=0, photons=0, primaryphotons=0, highprimaryphotons=0; - TRandom random; - - for (int nev=0; nev<= evNumber2; nev++) { - Int_t nparticles = gAlice->GetEvent(nev); - - - printf ("Event number : %d\n",nev); - printf ("Number of particles: %d\n",nparticles); - if (nev < evNumber1) continue; - if (nparticles <= 0) return; - -// Get pointers to RICH detector and Hits containers + // Get pointers to RICH detector and Hits containers - AliRICH *RICH = (AliRICH*)gAlice->GetDetector("RICH"); - Int_t nent=(Int_t)gAlice->TreeR()->GetEntries(); - gAlice->TreeR()->GetEvent(nent-1); - TClonesArray *Rawclusters = RICH->RawClustAddress(2); // Raw clusters branch - Int_t nrawclusters = Rawclusters->GetEntriesFast(); - TTree *TH = gAlice->TreeH(); - Int_t ntracks = TH->GetEntries(); - - - -// Start loop on tracks in the hits containers - Int_t Nc=0; - for (Int_t track=0; trackResetHits(); - Int_t nbytes += TH->GetEvent(track); - if (RICH) { - TClonesArray *PadHits = RICH->PadHits(); // Cluster branch - TClonesArray *Hits = RICH->Hits(); // Hits branch - TClonesArray *Cerenkovs = RICH->Cerenkovs(); // Cerenkovs branch - } - //see hits distribution - Int_t nhits = Hits->GetEntriesFast(); - if (nhits) Nh+=nhits; - for (Int_t hit=0;hitUncheckedAt(hit); - Int_t nch = mHit->fChamber; // chamber number - Float_t x = mHit->X(); // x-pos of hit - Float_t y = mHit->Z(); // y-pos - Float_t z = mHit->Y(); - Int_t index = mHit->Track(); - Int_t particle = mHit->fParticle; - Float_t R; - - TParticle *current = (TParticle*)(*gAlice->Particles())[index]; - - Float_t energy=current->Energy(); - - R=TMath::Sqrt(current->Vx()*current->Vx() + current->Vy()*current->Vy()); - - //printf("Particle type: %d\n",current->GetPdgCode()); - if (TMath::Abs(particle) < 50000051) - { - //if (TMath::Abs(particle) == 50000050 || TMath::Abs(particle) == 2112) - if (TMath::Abs(particle) == 2112 || TMath::Abs(particle) == 50000050) - { - //gMC->Rndm(&random, 1); - if (random->Rndm() < .1) - production->Fill(current->Vz(),R,(float) 1); - if (TMath::Abs(particle) == 50000050) - { - photons +=1; - if (R<.005) - { - primaryphotons +=1; - if (current->Energy()>0.001) - highprimaryphotons +=1; - } - } - if (TMath::Abs(particle) == 2112) - { - neutron +=1; - if (current->Energy()>0.0001) - highneutrons +=1; - } - } - else - { - production->Fill(current->Vz(),R,(float) 1); - //printf("Adding %d at %f\n",particle,R); - } - //mip->Fill(x,y,(float) 1); - } - - if (TMath::Abs(particle)==211 || TMath::Abs(particle)==111) - { - pionspectra1->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (current->Vx()>.005 && current->Vy()>.005 && current->Vz()>.005) - pionspectra2->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (R>2.5 && R<4.5) - { - pionspectra3->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - //printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\R:%f\n\n\n\n\n\n\n\n\n",R); - } - //printf("Pion mass: %e\n",current->GetCalcMass()); - pion +=1; - if (TMath::Abs(particle)==211) - { - chargedpions +=1; - if (R<.005) - { - primarypions +=1; - if (current->Energy()>1) - highprimarypions +=1; - } - } - } - if (TMath::Abs(particle)==2212) - { - protonspectra1->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (current->Vx()>.005 && current->Vy()>.005 && current->Vz()>.005) - protonspectra2->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (R>3 && R<4.3) - protonspectra3->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - //printf("\n\n\n\n\n\n\nProton mass: %e\n\n\n\n\n\n\n\n\n",current->GetCalcMass()); - proton +=1; - } - if (TMath::Abs(particle)==321 || TMath::Abs(particle)==130 || TMath::Abs(particle)==310 - || TMath::Abs(particle)==311) - { - kaonspectra1->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (current->Vx()>.005 && current->Vy()>.005 && current->Vz()>.005) - kaonspectra2->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (R>2.5 && R<4.5) - kaonspectra3->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - //printf("Kaon mass: %e\n",current->GetCalcMass()); - kaon +=1; - if (TMath::Abs(particle)==321) - { - chargedkaons +=1; - if (R<.005) - { - primarykaons +=1; - if (current->Energy()>1) - highprimarykaons +=1; - } - } - } - if (TMath::Abs(particle)==11) - { - electronspectra1->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (current->Vx()>.005 && current->Vy()>.005 && current->Vz()>.005) - electronspectra2->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (R>2.5 && R<4.5) - electronspectra3->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - //printf("Electron mass: %e\n",current->GetCalcMass()); - if (particle == 11) - electron +=1; - if (particle == -11) - positron +=1; - } - if (TMath::Abs(particle)==13) - { - muonspectra1->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (current->Vx()>.005 && current->Vy()>.005 && current->Vz()>.005) - muonspectra2->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (R>2.5 && R<4.5) - muonspectra3->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - //printf("Muon mass: %e\n",current->GetCalcMass()); - muon +=1; - } - if (TMath::Abs(particle)==2112) - { - neutronspectra1->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (current->Vx()>.005 && current->Vy()>.005 && current->Vz()>.005) - neutronspectra2->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (R>2.5 && R<4.5) - { - neutronspectra3->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - //printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\R:%f\n\n\n\n\n\n\n\n\n",R); - } - //printf("Neutron mass: %e\n",current->GetCalcMass()); - neutron +=1; - } - if(TMath::Abs(particle)==211 || TMath::Abs(particle)==2212 || TMath::Abs(particle)==321) - { - if (current->Energy()-current->GetCalcMass()>1) - { - chargedspectra1->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (current->Vx()>.005 && current->Vy()>.005 && current->Vz()>.005) - chargedspectra2->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - if (R>2.5 && R<4.5) - chargedspectra3->Fill(TMath::Log10(current->Energy() - current->GetCalcMass()),(float) 1); - } - } - //printf("Hits:%d\n",hit); - //printf ("Chamber number:%d x:%f y:%f\n",nch,x,y); - // Fill the histograms - Nh1+=nhits; - //h->Fill(x,y,(float) 1); - //} - //} - } - - } - - } - - //Create canvases, set the view range, show histograms - - TCanvas *c15 = new TCanvas("c15","Mothers Production Vertices",50,50,600,600); - production->SetFillColor(42); - production->SetXTitle("z (m)"); - production->SetYTitle("R (m)"); - production->Draw(); - - TCanvas *c16 = new TCanvas("c16","Particles Spectra II",100,100,600,350); - c16->Divide(2,1); - - c16->cd(1); - //TCanvas *c13 = new TCanvas("c13","Electron Spectra",400,10,600,700); - electronspectra1->SetFillColor(42); - electronspectra1->SetXTitle("log(GeV)"); - electronspectra2->SetFillColor(46); - electronspectra2->SetXTitle("log(GeV)"); - electronspectra3->SetFillColor(10); - electronspectra3->SetXTitle("log(GeV)"); - //c13->SetLogx(); - electronspectra1->Draw(); - electronspectra2->Draw("same"); - electronspectra3->Draw("same"); - - c16->cd(2); - //TCanvas *c14 = new TCanvas("c14","Muon Spectra",400,10,600,700); - muonspectra1->SetFillColor(42); - muonspectra1->SetXTitle("log(GeV)"); - muonspectra2->SetFillColor(46); - muonspectra2->SetXTitle("log(GeV)"); - muonspectra3->SetFillColor(10); - muonspectra3->SetXTitle("log(GeV)"); - //c14->SetLogx(); - muonspectra1->Draw(); - muonspectra2->Draw("same"); - muonspectra3->Draw("same"); - - //c16->cd(3); - //TCanvas *c16 = new TCanvas("c16","Neutron Spectra",400,10,600,700); - //neutronspectra1->SetFillColor(42); - //neutronspectra1->SetXTitle("log(GeV)"); - //neutronspectra2->SetFillColor(46); - //neutronspectra2->SetXTitle("log(GeV)"); - //neutronspectra3->SetFillColor(10); - //neutronspectra3->SetXTitle("log(GeV)"); - //c16->SetLogx(); - //neutronspectra1->Draw(); - //neutronspectra2->Draw("same"); - //neutronspectra3->Draw("same"); - - TCanvas *c9 = new TCanvas("c9","Particles Spectra",150,150,600,700); - //TCanvas *c9 = new TCanvas("c9","Pion Spectra",400,10,600,700); - c9->Divide(2,2); - - c9->cd(1); - pionspectra1->SetFillColor(42); - pionspectra1->SetXTitle("log(GeV)"); - pionspectra2->SetFillColor(46); - pionspectra2->SetXTitle("log(GeV)"); - pionspectra3->SetFillColor(10); - pionspectra3->SetXTitle("log(GeV)"); - //c9->SetLogx(); - pionspectra1->Draw(); - pionspectra2->Draw("same"); - pionspectra3->Draw("same"); - - c9->cd(2); - //TCanvas *c10 = new TCanvas("c10","Proton Spectra",400,10,600,700); - protonspectra1->SetFillColor(42); - protonspectra1->SetXTitle("log(GeV)"); - protonspectra2->SetFillColor(46); - protonspectra2->SetXTitle("log(GeV)"); - protonspectra3->SetFillColor(10); - protonspectra3->SetXTitle("log(GeV)"); - //c10->SetLogx(); - protonspectra1->Draw(); - protonspectra2->Draw("same"); - protonspectra3->Draw("same"); - - c9->cd(3); - //TCanvas *c11 = new TCanvas("c11","Kaon Spectra",400,10,600,700); - kaonspectra1->SetFillColor(42); - kaonspectra1->SetXTitle("log(GeV)"); - kaonspectra2->SetFillColor(46); - kaonspectra2->SetXTitle("log(GeV)"); - kaonspectra3->SetFillColor(10); - kaonspectra3->SetXTitle("log(GeV)"); - //c11->SetLogx(); - kaonspectra1->Draw(); - kaonspectra2->Draw("same"); - kaonspectra3->Draw("same"); - - c9->cd(4); - //TCanvas *c12 = new TCanvas("c12","Charged Particles Spectra",400,10,600,700); - chargedspectra1->SetFillColor(42); - chargedspectra1->SetXTitle("log(GeV)"); - chargedspectra2->SetFillColor(46); - chargedspectra2->SetXTitle("log(GeV)"); - chargedspectra3->SetFillColor(10); - chargedspectra3->SetXTitle("log(GeV)"); - //c12->SetLogx(); - chargedspectra1->Draw(); - chargedspectra2->Draw("same"); - chargedspectra3->Draw("same"); - - // calculate the number of pads which give a signal - - - Int_t Np=0; - for (Int_t i=0; i< NpadX;i++) { - for (Int_t j=0;j< NpadY;j++) { - if (Pad[i][j]>=6){ - Np+=1; - } - } - } - //printf("The total number of pads which give a signal: %d %d\n",Nh,Nh1); - - printf("*****************************************\n"); - printf("* Particle * Flux(m2) *\n"); - printf("*****************************************\n"); - - printf("* Pions: * %3.1f *\n",pion/11.757312); - printf("* Charged Pions: * %3.1f *\n",chargedpions/11.757312); - printf("* Primary Pions: * %3.1f *\n",primarypions/11.757312); - printf("* Primary Pions (p>1GeV/c): * %3.1f *\n",highprimarypions/11.757312); - printf("* Kaons: * %3.1f *\n",kaon/11.757312); - printf("* Charged Kaons: * %3.1f *\n",chargedkaons/11.757312); - printf("* Primary Kaons: * %3.1f *\n",primarykaons/11.757312); - printf("* Primary Kaons (p>1GeV/c): * %3.1f *\n",highprimarykaons/11.757312); - printf("* Muons: * %3.1f *\n",muon/11.757312); - printf("* Electrons: * %3.1f *\n",electron/11.757312); - printf("* Positrons: * %3.1f *\n",positron/11.757312); - printf("* Protons: * %3.1f *\n",proton/11.757312); - printf("* All Charged: * %3.1f *\n",(chargedpions+chargedkaons+muon+electron+positron+proton)/11.757312); - printf("*****************************************\n"); - //printf("* Photons: * %3.1f *\n",photons/11.757312); - //printf("* Primary Photons: * %3.1f *\n",primaryphotons/11.757312); - //printf("* Primary Photons (p>1MeV/c):* %3.1f *\n",highprimaryphotons/11.757312); - //printf("*****************************************\n"); - //printf("* Neutrons: * %3.1f *\n",neutron); - //printf("* Neutrons (p>100keV/c): * %3.1f *\n",highneutrons); - //printf("*****************************************\n"); - - printf("\nEnd of macro\n"); + AliRICH *RICH = (AliRICH*)gAlice->GetDetector("RICH"); + + RICH->DiagnosticsFE(evNumber1,evNumber2); } - - - - - -- 2.43.0