#include "AliRawReaderRoot.h"
#include "AliITSOnlineSDDInjectors.h"
#include "AliITSRawStreamSDD.h"
+#include "AliITSRawStreamSDDCompressed.h"
#include "AliITSDDLModuleMapSDD.h"
#endif
// Origin: F. Prino (prino@to.infn.it)
-void AnalyzeSDDInjectorsAllMod(Char_t *datafil, Int_t adcfreq=20, Int_t nDDL=0, Int_t firstEv=10, Int_t lastEv=15,Int_t jpad=16, Int_t statuscut=7){
+void AnalyzeSDDInjectorsAllMod(Char_t *datafil,
+ Int_t adcfreq=20,
+ Int_t nDDL=0,
+ Int_t firstEv=18,
+ Int_t lastEv=20,
+ Int_t jpad=20,
+ Int_t statuscut=7){
+
const Int_t kTotDDL=24;
const Int_t kModPerDDL=12;
const Int_t kSides=2;
+ Bool_t writtenoutput=kFALSE;
AliITSDDLModuleMapSDD* dmap=new AliITSDDLModuleMapSDD();
- dmap->SetJun08Map();
+ dmap->SetJun09Map();
TH2F** histo = new TH2F*[kTotDDL*kModPerDDL*kSides];
Int_t nWrittenEv[kTotDDL*kModPerDDL*kSides];
gStyle->SetPalette(1);
TCanvas* c1 = new TCanvas("c1","Drift Speed vs. anode",900,900);
Char_t text[50];
+ UInt_t timeSt=0;
Int_t iev=firstEv;
AliRawReader *rd;
c1->Clear();
c1->Divide(4,6,0.001,0.001);
printf("Event # %d\n",iev);
- UInt_t timeSt=rd->GetTimestamp();
+ timeSt=rd->GetTimestamp();
rd->Reset();
for(Int_t iddl=0; iddl<kTotDDL;iddl++){
for(Int_t imod=0; imod<kModPerDDL;imod++){
}
}
- AliITSRawStreamSDD s(rd);
- while(s.Next()){
+
+ UChar_t cdhAttr=AliITSRawStreamSDD::ReadBlockAttributes(rd);
+ UInt_t amSamplFreq=AliITSRawStreamSDD::ReadAMSamplFreqFromCDH(cdhAttr);
+ AliITSRawStream* s=AliITSRawStreamSDD::CreateRawStreamSDD(rd,cdhAttr);
+ if(!writtenoutput){
+ printf("Use %s raw stream, sampling frequency %d MHz\n",s->ClassName(),amSamplFreq);
+ writtenoutput=kTRUE;
+ }
+ while(s->Next()){
Int_t iDDL=rd->GetDDLID();
- Int_t iCarlos=s.GetCarlosId();
- if(s.IsCompletedModule()) continue;
- if(s.IsCompletedDDL()) continue;
+ Int_t iCarlos=s->GetCarlosId();
+ if(s->IsCompletedModule()) continue;
+ if(s->IsCompletedDDL()) continue;
if(iDDL>=0 && iDDL<kTotDDL){
- Int_t index=kSides*(kModPerDDL*iDDL+iCarlos)+s.GetChannel();
- histo[index]->Fill(s.GetCoord2(),s.GetCoord1(),s.GetSignal());
+ Int_t index=kSides*(kModPerDDL*iDDL+iCarlos)+s->GetChannel();
+ histo[index]->Fill(s->GetCoord2(),s->GetCoord1(),s->GetSignal());
}
}
for(Int_t isid=0;isid<kSides;isid++){
Int_t index=kSides*(kModPerDDL*iddl+imod)+isid;
anal[index]->AnalyzeEvent(histo[index]);
- anal[index]->WriteToASCII(iev,timeSt,nWrittenEv[index]);
nWrittenEv[index]++;
Int_t iMod=dmap->GetModuleNumber(iddl,imod);
if(iMod!=-1){
}
}
}
+ delete s;
iev++;
readEv++;
printf(" --- OK\n");
hpad7l->Scale(nfac);
hpad7r->Scale(nfac);
+ TFile *outfil1=new TFile("DriftSpeedVsAnode.root","recreate");
+ for(Int_t iddl=0; iddl<kTotDDL;iddl++){
+ for(Int_t imod=0; imod<kModPerDDL;imod++){
+ for(Int_t isid=0;isid<kSides;isid++){
+ Int_t index=kSides*(kModPerDDL*iddl+imod)+isid;
+ anal[index]->FitMeanDriftSpeedVsAnode();
+ anal[index]->WriteToASCII(0,timeSt,0);
+ anal[index]->WriteInjectorStatusToASCII();
+ anal[index]->WriteToROOT(outfil1);
+ }
+ }
+ }
+ outfil1->Close();
+
Int_t ipt0=0, ipt1=0;
Float_t Edrift=(1800-45)/291/0.012;
TFile *outfil=new TFile("DriftSpeedHistos.root","recreate");
gvvsmod0->SetMinimum(gvmin);
gvvsmod0->SetMaximum(gvmax);
gvvsmod0->GetXaxis()->SetTitle("Module Number");
- Char_t title[25];
+ Char_t title[50];
sprintf(title,"Vdrift at injector pad %d",jpad);
gvvsmod0->GetYaxis()->SetTitle(title);
gvvsmod1->Draw("PSAME");
}
-void AnalyzeSDDInjectorsAllMod(Int_t nrun, Int_t n2, Char_t* dir="LHC08d_SDD", Int_t adcfreq=20, Int_t nDDL=0, Int_t firstEv=15, Int_t lastEv=15){
+void AnalyzeSDDInjectorsAllMod(Int_t nrun, Int_t n2, Int_t year=2009, Char_t* dir="LHC09b_SDD",
+ Int_t adcfreq=20,
+ Int_t nDDL=0,
+ Int_t firstEv=18,
+ Int_t lastEv=20,
+ Int_t jpad=20,
+ Int_t statuscut=7){
+
TGrid::Connect("alien:",0,0,"t");
Char_t filnam[200];
- sprintf(filnam,"alien:///alice/data/2008/%s/%09d/raw/08%09d%03d.10.root",dir,nrun,nrun,n2);
+ sprintf(filnam,"alien:///alice/data/%d/%s/%09d/raw/%02d%09d%03d.10.root",year,dir,nrun,year-2000,nrun,n2);
printf("Open file %s\n",filnam);
- AnalyzeSDDInjectorsAllMod(filnam,adcfreq,nDDL,firstEv,lastEv);
+ AnalyzeSDDInjectorsAllMod(filnam,adcfreq,nDDL,firstEv,lastEv,jpad,statuscut);
}