#include <TGraph2D.h>
#include <TGeoManager.h>
#include <TH1.h>
+#include <TH2.h>
+#include <TLatex.h>
+#include <TStyle.h>
#include <TInterpreter.h>
#include "AliGeomManager.h"
#include "AliHeader.h"
#include "AliITS.h"
-#include "AliITSDetTypeRec.h"
+#include "AliITSRecPointContainer.h"
#include "AliITSgeomTGeo.h"
#include "AliITSRecPoint.h"
#include "AliRun.h"
gInterpreter->ExecuteMacro("loadlibs.C");
}
- // retrives geometry
+ // retrieves geometry
if(!gGeoManager){
AliGeomManager::LoadGeometry("geometry.root");
}
}
ITSloader->LoadRecPoints("read");
+ AliITSRecPointContainer* rpcont=AliITSRecPointContainer::Instance();
+
Float_t cluglo[3]={0.,0.,0.};
- AliITSDetTypeRec* detTypeRec = new AliITSDetTypeRec();
Int_t totmod=AliITSgeomTGeo::GetNModules();
Int_t modmin=AliITSgeomTGeo::GetModuleIndex(1,1,1);
TH1F** hzg=new TH1F*[6];
TH1F** hr=new TH1F*[6];
TH1F** hphi=new TH1F*[6];
+ TH2F** hzphi=new TH2F*[6];
TH1F** hq=new TH1F*[6];
-
+ TH1F** hdrtime=new TH1F*[6];
+
Char_t name[10];
for(Int_t iLay=0;iLay<6;iLay++){
sprintf(name,"hmod%d",iLay+1);
hq[iLay]=new TH1F(name,"",100,0.,300.);
hq[iLay]->GetXaxis()->SetTitle("Charge (keV)");
hq[iLay]->GetXaxis()->CenterTitle();
+ sprintf(name,"hdtim%d",iLay+1);
+ hdrtime[iLay]=new TH1F(name,"",100,0.,7000.);
+ hdrtime[iLay]->GetXaxis()->SetTitle("Drift Time (ns)");
+ hdrtime[iLay]->GetXaxis()->CenterTitle();
+ sprintf(name,"hzphi%d",iLay+1);
+ hzphi[iLay]=new TH2F(name,Form("Layer %d",iLay+1),50,-TMath::Pi(),TMath::Pi(),50,-zlim[iLay],zlim[iLay]);
+ hzphi[iLay]->GetXaxis()->SetTitle("#varphi (rad)");
+ hzphi[iLay]->GetYaxis()->SetTitle("Zglob (cm)");
+ hzphi[iLay]->SetStats(0);
}
TGraph *gptsXY=new TGraph(0);
for(Int_t iev=0;iev<totev;iev++){
rl->GetEvent(iev);
TTree *TR = ITSloader->TreeR();
- TClonesArray *ITSrec = detTypeRec->RecPoints();
- TBranch *branch = 0;
- if(TR && ITSrec){
- branch = ITSloader->TreeR()->GetBranch("ITSRecPoints");
- if(branch)branch->SetAddress(&ITSrec);
- }
- Int_t nparticles = rl->GetHeader()->GetNtrack();
- cout<<"Event #"<<iev<<" #Particles="<<nparticles<<endl;
+ rpcont->FetchClusters(0,TR);
+ TClonesArray *ITSrec = NULL;
+ if(iev%100==0) printf("Event #%d\n",iev);
Int_t ipt=0;
for (Int_t mod=modmin; mod<=modmax; mod++){
- detTypeRec->ResetRecPoints();
- branch->GetEvent(mod);
+ ITSrec = rpcont->UncheckedGetClusters(mod);
Int_t nrecp = ITSrec->GetEntries();
if(nrecp>0){
for(Int_t irec=0;irec<nrecp;irec++) {
hr[lay]->Fill(rad);
hphi[lay]->Fill(phi);
hq[lay]->Fill(recp->GetQ());
+ hdrtime[lay]->Fill(recp->GetDriftTime());
+ hzphi[lay]->Fill(phi,cluglo[2]);
}
}
}
hq[iLay]->Draw();
}
+ TCanvas* cdrtim=new TCanvas("cdrtim","SDD drift time",1000,600);
+ cdrtim->Divide(2,1);
+ cdrtim->cd(1);
+ hdrtime[2]->Draw();
+ cdrtim->cd(2);
+ hdrtime[3]->Draw();
+
+ gStyle->SetPalette(1);
+ TLatex* tstat=new TLatex();
+ tstat->SetNDC();
+ TCanvas* cspd=new TCanvas("cspd","SPD",1000,600);
+ cspd->Divide(2,1);
+ cspd->cd(1);
+ hzphi[0]->Draw("colz");
+ tstat->DrawLatex(0.6,0.92,Form("# Clusters = %d",int(hzphi[0]->GetEntries())));
+ cspd->cd(2);
+ hzphi[1]->Draw("colz");
+ tstat->DrawLatex(0.6,0.92,Form("# Clusters = %d",int(hzphi[1]->GetEntries())));
+
+ TCanvas* csdd=new TCanvas("csdd","SDD",1000,600);
+ csdd->Divide(2,1);
+ csdd->cd(1);
+ hzphi[2]->Draw("colz");
+ tstat->DrawLatex(0.6,0.92,Form("# Clusters = %d",int(hzphi[2]->GetEntries())));
+ csdd->cd(2);
+ hzphi[3]->Draw("colz");
+ tstat->DrawLatex(0.6,0.92,Form("# Clusters = %d",int(hzphi[3]->GetEntries())));
+
+ TCanvas* cssd=new TCanvas("cssd","SSD",1000,600);
+ cssd->Divide(2,1);
+ cssd->cd(1);
+ hzphi[4]->Draw("colz");
+ tstat->DrawLatex(0.6,0.92,Form("# Clusters = %d",int(hzphi[4]->GetEntries())));
+ cssd->cd(2);
+ hzphi[5]->Draw("colz");
+ tstat->DrawLatex(0.6,0.92,Form("# Clusters = %d",int(hzphi[5]->GetEntries())));
+
TCanvas *cev0;
sprintf(ctit,"Event %d XY",nevfordisp);
cev0=new TCanvas("cev0",ctit,600,600);