#include "AliTrackReference.h"
#include "AliTPCParam.h"
#include "AliDetector.h"
-#include "AliStack.h"
+#include "AliStack.h"
#include "AliGenInfo.h"
//
// charge z
//
+ c.cd();
sprintf(chdesc,"%s Sector %d IROC",runDesc.Data(), isector);
sprintf(chcut1,"Cl.fDetector==%d", isector);
prof = ProfileQZ(chcut1, chdesc,20);
sprintf(chshell,"%s/qz_sec%dIROC.eps", dirname,isector);
- prof->Draw();
+ // prof->Draw();
c.Update();
c.Print(chshell);
//
+ c.cd();
sprintf(chdesc,"%s Sector %d OROC",runDesc.Data(), isector);
sprintf(chcut1,"Cl.fDetector==%d", isector+36);
prof = ProfileQZ(chcut1, chdesc,20);
sprintf(chshell,"%s/qz_sec%dOROC.eps", dirname,isector);
- prof->Draw();
+ //prof->Draw();
c.Update();
c.Print(chshell);
//
runDesc+=run;
// TPC tracks
//
- sprintf(strcl,"ls run%d*/TPCtracks.root > /tmp/files.txt", run);
+ sprintf(strcl,"ls *%d*/TPCtracks.root > files.txt", run);
gSystem->Exec(strcl);
- in0.open("/tmp/files.txt");
+ in0.open("files.txt");
for (;in0>>sfile;){
if (sfile.Length()==0) break;
printf("%s\n",sfile.Data());
}
//
// Fitted signals
- sprintf(strcl,"ls run%d*/FitSignal.root > /tmp/files.txt", run);
+ sprintf(strcl,"ls *%d*/FitSignal.root > files.txt", run);
gSystem->Exec(strcl);
- in1.open("/tmp/files.txt");
+ in1.open("files.txt");
for (;in1>>sfile;){
if (sfile.Length()==0) break;
printf("%s\n",sfile.Data());
}
//
// Fitted pedestal
- sprintf(strcl,"ls run%d*/TPCsignal.root > /tmp/files.txt", run);
+ sprintf(strcl,"ls *%d*/TPCsignal.root > files.txt", run);
gSystem->Exec(strcl);
- in2.open("/tmp/files.txt");
+ in2.open("files.txt");
for (;in2>>sfile;){
if (sfile.Length()==0) break;
printf("%s\n",sfile.Data());
}
//
// Random signals
- sprintf(strcl,"ls run%d*/TPCsignal.root > /tmp/files.txt", run);
+ sprintf(strcl,"ls *%d*/TPCsignal.root > files.txt", run);
gSystem->Exec(strcl);
- in4.open("/tmp/files.txt");
+ in4.open("files.txt");
for (;in4>>sfile;){
if (sfile.Length()==0) break;
printf("%s\n",sfile.Data());
// Rec points trees
//
printf("\n IMPORT REC points");
- sprintf(strcl,"ls run%d*/*RecPoints* > /tmp/files.txt", run);
+ sprintf(strcl,"ls *%d*/*RecPoints* > files.txt", run);
gSystem->Exec(strcl);
- in3.open("/tmp/files.txt");
+ in3.open("files.txt");
for (;in3>>sfile;){
if (sfile.Length()==0) break;
printf("%s\n",sfile.Data());
//
// base cut on the tracks
//
- comp.fTree->Draw(">>listTracks","Track.fN>30&&abs(Track.fP4)<0.002");
+ comp.fTree->Draw(">>listTracks","Etrack.fTPCncls>30&&abs(Etrack.fIp.fP[4])<1");
comp.fTree->SetEventList(listTracks);
//
compF.fTree->Draw(">>listFitS","p2>0&&p2<5&&p1<900&&p0<10000&&p4<1&&p4>0&&p5<p3&&chi2<150");
//
// base cut on the tracks
//
- comp.fTree->Draw(">>listTracks","Track.fN>20&&abs(Track.fP4)<0.001&&abs(Etrack.fP[3])<0.01");
+ comp.fTree->Draw(">>listTracks","Etrack.fTPCncls>20&&abs(Etrack.fIp.fP[4])<1&&abs(Etrack.fIp.fP[3])<0.01");
comp.fTree->SetEventList(listTracks);
//
compF.fTree->Draw(">>listFitS","p2>0&&p2<5&&p1<900&&p0<10000&&p4<1&&p4>0&&p5<p3&&chi2<150");
// make default aliases
//
// laser z beam
- comp.fTree->SetAlias("lz0","abs(Etrack.fP[1]-20)<5");
- comp.fTree->SetAlias("lz1","abs(Etrack.fP[1]-70)<20");
- comp.fTree->SetAlias("lz2","abs(Etrack.fP[1]-150)<20");
- comp.fTree->SetAlias("lz3","abs(Etrack.fP[1]-210)<20");
+ comp.fTree->SetAlias("lz0","abs(Etrack.fIp.fP[1]-20)<5");
+ comp.fTree->SetAlias("lz1","abs(Etrack.fIp.fP[1]-70)<20");
+ comp.fTree->SetAlias("lz2","abs(Etrack.fIp.fP[1]-150)<20");
+ comp.fTree->SetAlias("lz3","abs(Etrack.fIp.fP[1]-210)<20");
}
TF1 * f1 = new TF1("fdiff","sqrt([0]*[0]+(250-x)*[1]*[1])");
f1->SetParameter(1,0.2);
f1->SetParameter(0,0.2);
- comp.DrawXY("Cl.fZ","sqrt(Cl.fSigmaY2)","abs(Track.fTrackPoints.GetAngleY())<0.05","Track.fTrackPoints.fTX>0"+cut0,5,10,240,-0,1);
+ comp.DrawXY("abs(Cl.fZ)","sqrt(Cl.fSigmaY2)","abs(Track.fTrackPoints.GetAngleY())<0.05","Track.fTrackPoints.fTX>0"+cut0,5,10,240,-0,1);
TH1F * prfInnerY = (TH1F*)comp.fMean->Clone();
- comp.DrawXY("Cl.fZ","sqrt(Cl.fSigmaY2)","abs(Track.fTrackPoints.GetAngleY())<0.05","Track.fTrackPoints.fTX>0"+cut1,5,10,240,-0,1);
+ comp.DrawXY("abs(Cl.fZ)","sqrt(Cl.fSigmaY2)","abs(Track.fTrackPoints.GetAngleY())<0.05","Track.fTrackPoints.fTX>0"+cut1,5,10,240,-0,1);
TH1F * prfOuterY = (TH1F*)comp.fMean->Clone();
//
//
TF1 * f1 = new TF1("fdiff","sqrt([0]*[0]+(250-x)*[1]*[1])");
f1->SetParameter(1,0.2);
f1->SetParameter(0,0.2);
- comp.DrawXY("Cl.fZ","Track.fTrackPoints.GetY()-Cl.GetY()","abs(Track.fTrackPoints.GetAngleY())<0.05","Track.fTrackPoints.fTX>0"+cut0,5,10,240,-0.5,0.5);
+ comp.DrawXY("abs(Cl.fZ)","Track.fTrackPoints.GetY()-Cl.GetY()","abs(Track.fTrackPoints.GetAngleY())<0.05","Track.fTrackPoints.fTX>0"+cut0,5,10,240,-0.5,0.5);
TH1F * prfInnerY = (TH1F*)comp.fRes->Clone();
- comp.DrawXY("Cl.fZ","Track.fTrackPoints.GetY()-Cl.GetY()","abs(Track.fTrackPoints.GetAngleY())<0.05","Track.fTrackPoints.fTX>0"+cut1,5,10,240,-0.5,0.5);
+ comp.DrawXY("abs(Cl.fZ)","Track.fTrackPoints.GetY()-Cl.GetY()","abs(Track.fTrackPoints.GetAngleY())<0.05","Track.fTrackPoints.fTX>0"+cut1,5,10,240,-0.5,0.5);
TH1F * prfOuterY = (TH1F*)comp.fRes->Clone();
//
//
//
//
TProfile * profA = new TProfile("profZ","profZ",70,89,250);
- comp.fTree->Draw("Cl.fZ-Track.fTrackPoints.GetZ():Track.fTrackPoints.GetX()>>profZ","abs(Cl.fZ-Track.fTrackPoints.GetZ())<1&&Track.fTrackPoints.fTX>10"+cut0,"prof");
+ comp.fTree->Draw("abs(Cl.fZ)-abs(Track.fTrackPoints.GetZ()):Track.fTrackPoints.GetX()>>profZ","abs(abs(Cl.fZ)-abs(Track.fTrackPoints.GetZ()))<1&&Track.fTrackPoints.fTX>10"+cut0,"prof");
profA->SetXTitle("Local X (cm)");
profA->SetYTitle("Mean #Delta Z (cm)");
TLegend *legend = new TLegend(0.55,0.25,0.85,0.30, description);
TProfile *profA = new TProfile(name,name,max,0,max-1);
char expr[100];
sprintf(expr,"Cl.fMax:Cl.fRow>>%s",name);
- comp.fTree->Draw(expr,"Cl.fZ>0&&Cl.fMax<500"+cut0,"prof");
+ comp.fTree->Draw(expr,"abs(Cl.fZ)>0&&Cl.fMax<500"+cut0,"prof");
profA->SetXTitle("Pad Row");
profA->SetYTitle("Amplitude at maxima (ADC)");
return profA;
TProfile *profA = new TProfile(name,name,max,-0.14,0.14);
char expr[100];
sprintf(expr,"Cl.fMax:Cl.fY/Cl.fX>>%s",name);
- comp.fTree->Draw(expr,"Cl.fZ>0&&Cl.fMax<500"+cut0,"prof");
+ comp.fTree->Draw(expr,"abs(Cl.fZ)>0&&Cl.fMax<500"+cut0,"prof");
profA->SetXTitle("Local #phi(rad)");
profA->SetYTitle("Amplitude at maxima (ADC)");
- return profA;
+ return profA;
}
TProfile * ProfileQRow(TCut cut0, char *name, Int_t max){
TProfile *profA = new TProfile(name,name,max,0,max-1);
char expr[100];
sprintf(expr,"Cl.fQ:Cl.fRow>>%s",name);
- comp.fTree->Draw(expr,"Cl.fZ>0&&Cl.fMax<500"+cut0,"prof");
+ comp.fTree->Draw(expr,"abs(Cl.fZ)>0&&Cl.fMax<500"+cut0,"prof");
profA->SetXTitle("Pad Row");
profA->SetYTitle("Total charge(ADC)");
return profA;
TProfile *profA = new TProfile(name,name,max,-0.14,0.14);
char expr[100];
sprintf(expr,"Cl.fQ:Cl.fY/Cl.fX>>%s",name);
- comp.fTree->Draw(expr,"Cl.fZ>0&&Cl.fMax<500"+cut0,"prof");
+ comp.fTree->Draw(expr,"abs(Cl.fZ)>0&&Cl.fMax<500"+cut0,"prof");
profA->SetXTitle("Local #phi(rad)");
profA->SetYTitle("Total charge (ADC)");
return profA;
//
// make profile histrogram of amplitudes
//
- TF1 * f1 = new TF1("f1","[0]+[1]*[0]*(250-x)");
+ TF1 * fline = new TF1("fline","[0]+[1]*[0]*(250-x)");
+ TF1 * f1 = new TF1("f1","[0]*exp(-[1]*(250-x))");
TProfile *profA = new TProfile(name,name,max,0,250);
char expr[100];
- sprintf(expr,"Cl.fQ:Cl.fZ>>%s",name);
- comp.fTree->Draw(expr,"Cl.fZ>0&&Cl.fMax<500"+cut0,"prof");
+ sprintf(expr,"Cl.fQ:abs(Cl.fZ)>>%s",name);
+ comp.fTree->Draw(expr,"abs(Cl.fZ)>0&&Cl.fMax<500"+cut0,"prof");
profA->SetXTitle("Z position (cm)");
profA->SetYTitle("Amplitude (ADC)");
char chc[100];
+ profA->Fit(fline);
+ f1->SetParameter(0,fline->GetParameter(0));
+ f1->SetParameter(1,fline->GetParameter(1));
profA->Fit(f1);
- sprintf(chc,"p_{0} = %f p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
- TLegend *legend = new TLegend(0.25,0.12,0.85,0.35, chc);
+ sprintf(chc,"Exponential fit params: p_{0} = %f p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
+ printf("%s",chc);
+ TLegend *legend = new TLegend(0.25,0.12,0.85,0.25, chc);
legend->Draw();
return profA;
}
TF1 * f1 = new TF1("f1","[0]+[1]*[0]*(250-x)");
TProfile *profA = new TProfile(name,name,max,0,250);
char expr[100];
- sprintf(expr,"Cl.fMax:Cl.fZ>>%s",name);
- comp.fTree->Draw(expr,"Cl.fZ>0&&Cl.fMax<500"+cut0,"prof");
+ sprintf(expr,"Cl.fMax:abs(Cl.fZ)>>%s",name);
+ comp.fTree->Draw(expr,"abs(Cl.fZ)>0&&Cl.fMax<500"+cut0,"prof");
profA->SetXTitle("Z position (cm)");
profA->SetYTitle("Amplitude at maxima (ADC)");
char chc[100];