// Constructor
//
+ for (Int_t ii=0; ii<kTofMaxCluster; ii++) fTofClusters[ii]=0x0;
+
TString validity = (TString)fTOFcalib->GetOfflineValidity();
if (validity.CompareTo("valid")==0) {
AliInfo(Form(" validity = %s - Using offline calibration parameters",validity.Data()));
// Constructor
//
+ for (Int_t ii=0; ii<kTofMaxCluster; ii++) fTofClusters[ii]=0x0;
+
TString validity = (TString)fTOFcalib->GetOfflineValidity();
if (validity.CompareTo("valid")==0) {
AliInfo(Form(" validity = %s - Using offline calibration parameters",validity.Data()));
fTOFRawStream(source.fTOFRawStream)
{
// copy constructor
+
+ for (Int_t ii=0; ii<kTofMaxCluster; ii++) fTofClusters[ii]=source.fTofClusters[ii];
+
}
//------------------------------------------------------------------------
fDecoderVersion=source.fDecoderVersion;
fTOFcalib=source.fTOFcalib;
fTOFRawStream=source.fTOFRawStream;
+ for (Int_t ii=0; ii<kTofMaxCluster; ii++) fTofClusters[ii]=source.fTofClusters[ii];
+
return *this;
}
// Constructor
//
+ for (Int_t ii=0; ii<kTofMaxCluster; ii++) fTofClusters[ii]=0x0;
+
if (AliTOFReconstructor::GetRecoParam()) {
fkRecoParam = AliTOFReconstructor::GetRecoParam();
fMaxDeltaTime = fkRecoParam->GetMaxDeltaTime();
// Constructor
//
+ for (Int_t ii=0; ii<kTofMaxCluster; ii++) fTofClusters[ii]=0x0;
+
if (AliTOFReconstructor::GetRecoParam()) {
fkRecoParam = AliTOFReconstructor::GetRecoParam();
fMaxDeltaTime = fkRecoParam->GetMaxDeltaTime();
{
// copy constructor
+ for (Int_t ii=0; ii<kTofMaxCluster; ii++) fTofClusters[ii]=source.fTofClusters[ii];
+
if (AliTOFReconstructor::GetRecoParam()) {
fkRecoParam = AliTOFReconstructor::GetRecoParam();
fMaxDeltaTime = fkRecoParam->GetMaxDeltaTime();
return *this;
TObject::operator=(source);
+ for (Int_t ii=0; ii<kTofMaxCluster; ii++) fTofClusters[ii]=source.fTofClusters[ii];
fDigits=source.fDigits;
fRecPoints=source.fRecPoints;
fVerbose=source.fVerbose;
fDigits->Clear();
TClonesArray &aDigits = *fDigits;
- if (digitsTree == 0x0)
+ if (digitsTree == 0x0) {
AliFatal("Can not get TreeD for TOF");
+ return;
+ }
TBranch *branch = digitsTree->GetBranch("TOF");
if (!branch) {
Int_t detectorIndex[5];
for (jj=0; jj<5; jj++) detectorIndex[jj] = -1;
- Int_t parTOF[5];
- for (jj=0; jj<5; jj++) parTOF[jj] = -1;
+ Int_t parTOF[7];
+ for (jj=0; jj<7; jj++) parTOF[jj] = -1;
Int_t trackLabels[3];
for (jj=0; jj<3; jj++) trackLabels[jj] = -1;
Int_t digitIndex = -1;
parTOF[2] = fTofClusters[ii]->GetADC(); // ADC=TOT
parTOF[3] = fTofClusters[ii]->GetTDCND(); // TDCND
parTOF[4] = fTofClusters[ii]->GetTDCRAW();//RAW
+ parTOF[5] = 0;
+ parTOF[6] = 0;
status = fTofClusters[ii]->GetStatus();
posClus[0] = fTofClusters[ii]->GetX();
Double_t covClus[6];
for (jj=0; jj<6; jj++) covClus[jj] = 0.;
- Int_t parTOF[5];
- for (jj=0; jj<5; jj++) parTOF[jj] = 0;
+ Int_t parTOF[7];
+ for (jj=0; jj<7; jj++) parTOF[jj] = 0;
Bool_t status = kTRUE; //assume all sim channels ok in the beginning...
parTOF[2] = Int_t(digitInteresting->GetAdc());
parTOF[3] = Int_t(digitInteresting->GetTdcND());
parTOF[4] = Int_t(digitInteresting->GetTdc());
+ parTOF[5] = 0;
+ parTOF[6] = 0;
volIdClus = fTOFGeometry->GetAliSensVolIndex(det[0],det[1],det[2]);
//volIdClus = GetClusterVolIndex(det);
Double_t covClus[6];
for (jj=0; jj<6; jj++) covClus[jj] = 0.;
- Int_t parTOF[5];
- for (jj=0; jj<5; jj++) parTOF[jj] = 0;
+ Int_t parTOF[7];
+ for (jj=0; jj<7; jj++) parTOF[jj] = 0;
Bool_t status = kTRUE; //assume all sim channels ok in the beginning...
Int_t tracks[kMaxNumberOfTracksPerDigit];
parTOF[2] = Int_t(digitInteresting->GetAdc());
parTOF[3] = Int_t(digitInteresting->GetTdcND());
parTOF[4] = Int_t(digitInteresting->GetTdc());
+ parTOF[5] = 0;
+ parTOF[6] = 0;
volIdClus = fTOFGeometry->GetAliSensVolIndex(det[0],det[1],det[2]);
//volIdClus = GetClusterVolIndex(det);
Int_t iPadX = -1;
Int_t iPadZ = -1;
- Int_t parTOF[5];
- for (jj=0; jj<5; jj++) parTOF[jj] = 0;
+ Int_t parTOF[7];
+ for (jj=0; jj<7; jj++) parTOF[jj] = 0;
Double_t posClus[3];
for (jj=0; jj<3; jj++) posClus[jj] = 0.;
Int_t det[5];
for (jj=0; jj<3; jj++) indDet[jj][4] = padsCluster[2*jj+1+3];
GetClusterPars(/*check,*/ 3, indDet, interestingWeight, posClus, covClus);
for (jj=0; jj<3; jj++) delete [] indDet[jj];
+ delete [] indDet;
// To fill the track index array
dummyCounter=-1;
Int_t iPadZ = -1;
Bool_t check = kFALSE;
- Int_t parTOF[5];
- for (jj=0; jj<5; jj++) parTOF[jj] = 0;
+ Int_t parTOF[7];
+ for (jj=0; jj<7; jj++) parTOF[jj] = 0;
Double_t posClus[3];
for (jj=0; jj<3; jj++) posClus[jj] = 0.;
Int_t det[5];
for (jj=0; jj<2; jj++) indDet[jj][4] = padsCluster[2*jj+1+3];
GetClusterPars(/*check,*/ 2, indDet, interestingWeight, posClus, covClus);
for (jj=0; jj<2; jj++) delete [] indDet[jj];
+ delete [] indDet;
// To fill the track index array
dummyCounter=-1;
Int_t iPadZ = -1;
Bool_t check = kFALSE;
- Int_t parTOF[5];
- for (jj=0; jj<5; jj++) parTOF[jj] = 0;
+ Int_t parTOF[7];
+ for (jj=0; jj<7; jj++) parTOF[jj] = 0;
Double_t posClus[3];
for (jj=0; jj<3; jj++) posClus[jj] = 0.;
Int_t det[5];
for (jj=0; jj<2; jj++) indDet[jj][4] = padsCluster[2*jj+1+3];
GetClusterPars(/*check,*/ 2, indDet, interestingWeight, posClus, covClus);
for (jj=0; jj<2; jj++) delete [] indDet[jj];
+ delete [] indDet;
// To fill the track index array
dummyCounter=-1;
Int_t iPadZ = -1;
Bool_t check = kFALSE;
- Int_t parTOF[5];
- for (jj=0; jj<5; jj++) parTOF[jj] = 0;
+ Int_t parTOF[7];
+ for (jj=0; jj<7; jj++) parTOF[jj] = 0;
Double_t posClus[3];
for (jj=0; jj<3; jj++) posClus[jj] = 0.;
Int_t det[5];
for (jj=0; jj<interestingCounter+1; jj++) indDet[jj][4] = padsCluster[2*jj+1+3];
GetClusterPars(/*check,*/ interestingCounter+1, indDet, interestingWeight, posClus, covClus);
for (jj=0; jj<interestingCounter+1; jj++) delete [] indDet[jj];
+ delete [] indDet;
// To fill the track index array
dummyCounter=-1;
for (jj=0; jj<interestingCounter+1; jj++) indDet[jj][4] = padsCluster[2*jj+1+3];
GetClusterPars(/*check,*/ interestingCounter+1, indDet, interestingWeight, posClus, covClus);
for (jj=0; jj<interestingCounter+1; jj++) delete [] indDet[jj];
+ delete [] indDet;
+
// To fill the track index array
dummyCounter=-1;
for (jj=0; jj<interestingCounter+1; jj++) indDet[jj][4] = padsCluster[2*jj+1+3];
GetClusterPars(/*check,*/ interestingCounter+1, indDet, interestingWeight, posClus, covClus);
for (jj=0; jj<interestingCounter+1; jj++) delete [] indDet[jj];
+ delete [] indDet;
// To fill the track index array
dummyCounter=-1;
AliLoader *localTOFLoader = (AliLoader*)fRunLoader->GetLoader("TOFLoader");
TTree * localTreeD = (TTree*)localTOFLoader->TreeD();
- if (localTreeD == 0x0)
+ if (localTreeD == 0x0) {
AliFatal("Can not get TreeD");
+ return;
+ }
TBranch *branch = localTreeD->GetBranch("TOF");
if (!branch) {
parTOF[2] = Int_t(adcAverage);
parTOF[3] = Int_t(tofAverage);//tofND
parTOF[4] = Int_t(tofAverage);//tofRAW
+ parTOF[5] = 0;
+ parTOF[6] = 0;
}
AliTOF * tof = (AliTOF *) gAlice->GetDetector("TOF") ;
//Make branches
- char branchname[20];
- sprintf (branchname, "%s", tof->GetName ());
+
+ const Int_t kSize = 20;
+ char branchname[kSize];
+ snprintf(branchname,kSize,"%s", tof->GetName ());
AliRunLoader* outrl = AliRunLoader::GetRunLoader(fManager->GetOutputFolderName());
if (outrl == 0x0)
// This function returns the colume path of a given pad
//--------------------------------------------------------------------
Int_t sector = ind[0];
- Char_t string1[100];
- Char_t string2[100];
- Char_t string3[100];
+
+ const Int_t kSize = 100;
+
+ Char_t string1[kSize];
+ Char_t string2[kSize];
+ Char_t string3[kSize];
Int_t icopy=-1;
icopy=sector;
- sprintf(string1,"/ALIC_1/B077_1/BSEGMO%i_1/BTOF%i_1",icopy,icopy);
+ snprintf(string1,kSize,"/ALIC_1/B077_1/BSEGMO%i_1/BTOF%i_1",icopy,icopy);
Int_t iplate=ind[1];
Int_t istrip=ind[2];
if( iplate==3) icopy=istrip+NStripC()+NStripB()+NStripA();
if( iplate==4) icopy=istrip+NStripC()+2*NStripB()+NStripA();
icopy++;
- sprintf(string2,"FTOA_0/FLTA_0/FSTR_%i",icopy);
+ snprintf(string2,kSize,"FTOA_0/FLTA_0/FSTR_%i",icopy);
if(fHoles && (sector==13 || sector==14 || sector==15)){
- if(iplate<2) sprintf(string2,"FTOB_0/FLTB_0/FSTR_%i",icopy);
- if(iplate>2) sprintf(string2,"FTOC_0/FLTC_0/FSTR_%i",icopy);
+ if(iplate<2) snprintf(string2,kSize,"FTOB_0/FLTB_0/FSTR_%i",icopy);
+ if(iplate>2) snprintf(string2,kSize,"FTOC_0/FLTC_0/FSTR_%i",icopy);
}
Int_t padz = ind[3]+1;
Int_t padx = ind[4]+1;
- sprintf(string3,"FPCB_1/FSEN_1/FSEZ_%i/FPAD_%i",padz,padx);
- sprintf(path,"%s/%s/%s",string1,string2,string3);
+ snprintf(string3,kSize,"FPCB_1/FSEN_1/FSEZ_%i/FPAD_%i",padz,padx);
+ snprintf(path,2*kSize,"%s/%s/%s",string1,string2,string3);
}
//_____________________________________________________________________________
// This function returns the colume path of a given sector
//--------------------------------------------------------------------
- Char_t string[100];
+ const Int_t kSize = 200;
+
+ Char_t string[kSize];
Int_t icopy = sector;
- sprintf(string,"/ALIC_1/B077_1/BSEGMO%i_1/BTOF%i_1",icopy,icopy);
- sprintf(path,"%s",string);
+ snprintf(string,kSize,"/ALIC_1/B077_1/BSEGMO%i_1/BTOF%i_1",icopy,icopy);
+ snprintf(path,kSize,"%s",string);
}
//_____________________________________________________________________________
// This function returns the colume path of a given strip
//--------------------------------------------------------------------
- Char_t string1[100];
- Char_t string2[100];
- Char_t string3[100];
+ const Int_t kSize = 200;
+
+ Char_t string1[kSize];
+ Char_t string2[kSize];
+ Char_t string3[kSize];
Int_t icopy = sector;
- sprintf(string1,"/ALIC_1/B077_1/BSEGMO%i_1/BTOF%i_1",icopy,icopy);
+ snprintf(string1,kSize,"/ALIC_1/B077_1/BSEGMO%i_1/BTOF%i_1",icopy,icopy);
if(plate==0) icopy=strip;
if(plate==1) icopy=strip+NStripC();
if(plate==3) icopy=strip+NStripC()+NStripB()+NStripA();
if(plate==4) icopy=strip+NStripC()+2*NStripB()+NStripA();
icopy++;
- sprintf(string2,"FTOA_0/FLTA_0/FSTR_%i",icopy);
+ snprintf(string2,kSize,"FTOA_0/FLTA_0/FSTR_%i",icopy);
if(fHoles && (sector==13 || sector==14 || sector==15)){
- if(plate<2) sprintf(string2,"FTOB_0/FLTB_0/FSTR_%i",icopy);
- if(plate>2) sprintf(string2,"FTOC_0/FLTC_0/FSTR_%i",icopy);
+ if(plate<2) snprintf(string2,kSize,"FTOB_0/FLTB_0/FSTR_%i",icopy);
+ if(plate>2) snprintf(string2,kSize,"FTOC_0/FLTC_0/FSTR_%i",icopy);
}
- sprintf(string3,"FPCB_1/FSEN_1");
- sprintf(path,"%s/%s/%s",string1,string2,string3);
+ snprintf(string3,kSize,"FPCB_1/FSEN_1");
+ snprintf(path,2*kSize,"%s/%s/%s",string1,string2,string3);
}
//_____________________________________________________________________________
Translation(posLocal,step);
// FSTR reference frame -> FTOA/B/C = FLTA/B/C reference frame
- Double_t angles[6];
+ Double_t angles[6] = {0.,0.,0.,0.,0.,0.};
if (GetAngles(iplate,istrip) >0.) {
angles[0] = 90.;
angles[1] = 0.;
// FSTR reference frame -> FTOA/B/C = FLTA/B/C reference frame
- Double_t angles[6];
+ Double_t angles[6] = {0.,0.,0.,0.,0.,0.};
if (GetAngles(iplate,istrip) >0.) {
angles[0] = 90.;
angles[1] = 0.;
Translation(posLocal,step);
// FSTR reference frame -> FTOA/B/C = FLTA/B/C reference frame
- Double_t angles[6];
+ Double_t angles[6] = {0.,0.,0.,0.,0.,0.};
if (GetAngles(iplate,istrip) >0.) {
angles[0] = 90.;
angles[1] = 0.;
{
// main constructor
+ for (Int_t ii=0; ii<kNmaxDataPoints; ii++) fLVDataPoints[ii]= 0x0;
+ for (Int_t ii=0; ii<kNmaxDataPoints; ii++) fHVDataPoints[ii]= 0x0;
+ for (Int_t ii=0; ii<kNmaxDataPoints; ii++) fMap[ii]= 0x0;
+
}
//---------------------------------------------------------------
// constructor with arguments
+ for (Int_t ii=0; ii<kNmaxDataPoints; ii++) fLVDataPoints[ii]= 0x0;
+ for (Int_t ii=0; ii<kNmaxDataPoints; ii++) fHVDataPoints[ii]= 0x0;
+ for (Int_t ii=0; ii<kNmaxDataPoints; ii++) fMap[ii]= 0x0;
+
AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s \n\tStartTime DCS Query %s \n\tEndTime DCS Query %s", nRun,
TTimeStamp(startTime).AsString(),
TTimeStamp(endTime).AsString(),
for(int j=0;j<kNplates;j++)
fAliasNamesXHVmap[i][j]=data.fAliasNamesXHVmap[i][j];
+
+ if (fLVDataPoints)
+ for (Int_t ii=0; ii<kNmaxDataPoints; ii++) if (fLVDataPoints[ii]) fLVDataPoints[ii]->Delete();
+ if (fHVDataPoints)
+ for (Int_t ii=0; ii<kNmaxDataPoints; ii++) if (fHVDataPoints[ii]) fHVDataPoints[ii]->Delete();
+ if (fMap)
+ for (Int_t ii=0; ii<kNmaxDataPoints; ii++) if (fMap[ii]) fMap[ii]->Delete();
+
+
}
//---------------------------------------------------------------
// Draw HV+LV map labelled as index
//
+ const Int_t kSize = 100;
+
if(!fIsProcessed) return;
if (index>=fNumberOfHVandLVmaps) return;
AliTOFDCSmaps *mappa=(AliTOFDCSmaps*)GetHVandLVmap(index);
- char title[100];
- if (index==0) sprintf(title,"HVandLV map at time %d (%dst map)",mappa->GetTime(),index+1);
- else if (index==1) sprintf(title,"HVandLV map at time %d (%dnd map)",mappa->GetTime(),index+1);
- else if (index==2) sprintf(title,"HVandLV map at time %d (%drd map)",mappa->GetTime(),index+1);
- else if (index>=3) sprintf(title,"HVandLV map at time %d (%dth map)",mappa->GetTime(),index+1);
+ char title[kSize];
+ if (index==0) snprintf(title,kSize,"HVandLV map at time %d (%dst map)",mappa->GetTime(),index+1);
+ else if (index==1) snprintf(title,kSize,"HVandLV map at time %d (%dnd map)",mappa->GetTime(),index+1);
+ else if (index==2) snprintf(title,kSize,"HVandLV map at time %d (%drd map)",mappa->GetTime(),index+1);
+ else if (index>=3) snprintf(title,kSize,"HVandLV map at time %d (%dth map)",mappa->GetTime(),index+1);
fHisto->Delete();
fHisto = new TH1C("histo","",kNpads,-0.5,kNpads-0.5);
//fHisto->Clear();
// Draw LV map labelled as index
//
+ const Int_t kSize = 100;
+
if(!fIsProcessed) return;
if (index>=fNumberOfLVdataPoints) return;
AliTOFDCSmaps *mappa=(AliTOFDCSmaps*)GetLVmap(index);
- char title[100];
- if (index==0) sprintf(title,"LV map at time %d (%dst map)",mappa->GetTime(),index+1);
- else if (index==1) sprintf(title,"LV map at time %d (%dnd map)",mappa->GetTime(),index+1);
- else if (index==2) sprintf(title,"LV map at time %d (%drd map)",mappa->GetTime(),index+1);
- else if (index>=3) sprintf(title,"LV map at time %d (%dth map)",mappa->GetTime(),index+1);
+ char title[kSize];
+ if (index==0) snprintf(title,kSize,"LV map at time %d (%dst map)",mappa->GetTime(),index+1);
+ else if (index==1) snprintf(title,kSize,"LV map at time %d (%dnd map)",mappa->GetTime(),index+1);
+ else if (index==2) snprintf(title,kSize,"LV map at time %d (%drd map)",mappa->GetTime(),index+1);
+ else if (index>=3) snprintf(title,kSize,"LV map at time %d (%dth map)",mappa->GetTime(),index+1);
fHisto->Delete();
fHisto = new TH1C("histo","",kNpads,-0.5,kNpads-0.5);
//fHisto->Clear();
// Draw HV map labelled as index
//
+ const Int_t kSize = 100;
+
if(!fIsProcessed) return;
if (index>=fNumberOfHVdataPoints) return;
AliTOFDCSmaps *mappa=(AliTOFDCSmaps*)GetHVmap(index);
- char title[100];
- if (index==0) sprintf(title,"HV map at time %d (%dst map)",mappa->GetTime(),index+1);
- else if (index==1) sprintf(title,"HV map at time %d (%dnd map)",mappa->GetTime(),index+1);
- else if (index==2) sprintf(title,"HV map at time %d (%drd map)",mappa->GetTime(),index+1);
- else if (index>=3) sprintf(title,"HV map at time %d (%dth map)",mappa->GetTime(),index+1);
+ char title[kSize];
+ if (index==0) snprintf(title,kSize,"HV map at time %d (%dst map)",mappa->GetTime(),index+1);
+ else if (index==1) snprintf(title,kSize,"HV map at time %d (%dnd map)",mappa->GetTime(),index+1);
+ else if (index==2) snprintf(title,kSize,"HV map at time %d (%drd map)",mappa->GetTime(),index+1);
+ else if (index>=3) snprintf(title,kSize,"HV map at time %d (%dth map)",mappa->GetTime(),index+1);
fHisto->Delete();
fHisto = new TH1C("histo","",kNpads,-0.5,kNpads-0.5);
//fHisto->Clear();
gAlice->GetMCApp()->ResetHits();
hitTree->GetEvent(track);
- AliMC *mcApplication = (AliMC*)gAlice->GetMCApp();
+ //AliMC *mcApplication = (AliMC*)gAlice->GetMCApp();
- particle = mcApplication->Particle(track);
+ //particle = mcApplication->Particle(track);
Int_t nhits = tofHits->GetEntriesFast();
for (Int_t hit = 0; hit < nhits; hit++)
delete c3; c3=0;
// generating output filename only if not previously specified using SetTZeroFile
- char outFileName[70];
+
+ const Int_t kSize = 70;
+ char outFileName[kSize];
strcpy(outFileName,"ht010tr120ps"); // global time resolution has to be converted from Int_t to char
// in order to have in the output filename this parameter
strcat(outFileName,fHeadersFile);
{
//AliTOFtracker main Ctor
+ for (Int_t ii=0; ii<kMaxCluster; ii++) fClusters[ii]=0x0;
+
// Gettimg the geometry
fGeom= new AliTOFGeometry();
fTOFtrackPoints=0x0;
}
+ if (fClusters) {
+ for (Int_t ii=0; ii<kMaxCluster; ii++)
+ if (fClusters[ii]) fClusters[ii]->Delete();
+ }
+
}
//_____________________________________________________________________________
void AliTOFtracker::GetPidSettings(AliESDpid *esdPID) {
// fPid->MakePID(event,timeZero);
fSeeds->Clear();
- fTracks->Delete();
+ //fTracks->Delete();
+ fTracks->Clear();
return 0;
}
}
} // loop on found TOF track points
+ if (idclus==-1) {
+ AliDebug(1,Form("Reconstructed track %d doesn't match any TOF cluster", iseed));
+ delete trackTOFin;
+ continue;
+ }
AliTOFcluster *c=fClusters[idclus];
{
//AliTOFtrackerMI main Ctor
+ for (Int_t ii=0; ii<kMaxCluster; ii++) fClusters[ii]=0x0;
+
fDy=AliTOFGeometry::XPad();
fDz=AliTOFGeometry::ZPad();
fDebugStreamer = new TTreeSRedirector("TOFdebug.root");
delete fSeeds;
fSeeds=0x0;
}
+
+ if (fClusters) {
+ for (Int_t ii=0; ii<kMaxCluster; ii++)
+ if (fClusters[ii]) fClusters[ii]->Delete();
+ }
+
}
//_____________________________________________________________________________
void AliTOFtrackerMI::GetPidSettings(AliESDpid *esdPID) {
Float_t mintimedist[kNclusterMax];
Float_t likelihood[kNclusterMax];
Float_t length[kNclusterMax];
- Double_t tpcpid[5];
+ Double_t tpcpid[AliPID::kSPECIES];
dist3D[0][0]=1;
for (Int_t i=0; i<fNseedsTOF; i++) {
//
t->GetTPCpid(tpcpid);
Double_t sumpid=0;
- for (Int_t ipid=0;ipid<5;ipid++){
+ for (Int_t ipid=0;ipid<AliPID::kSPECIES;ipid++){
sumpid+=tpcpid[ipid];
}
- for (Int_t ipid=0;ipid<5;ipid++){
+ for (Int_t ipid=0;ipid<AliPID::kSPECIES;ipid++){
if (sumpid>0) tpcpid[ipid]/=sumpid;
else{
tpcpid[ipid]=0.2;
fHRecSigYVsPWin(0x0),
fHRecSigZVsPWin(0x0)
{
- //AliTOFtrackerV1 main Ctor
+ //AliTOFtrackerV1 main Ctor
+
+ for (Int_t ii=0; ii<kMaxCluster; ii++) fClusters[ii]=0x0;
InitCheckHists();
delete fSeeds;
fSeeds=0x0;
}
+
+
+ if (fClusters) {
+ for (Int_t ii=0; ii<kMaxCluster; ii++)
+ if (fClusters[ii]) fClusters[ii]->Delete();
+ }
+
}
//_____________________________________________________________________________
void AliTOFtrackerV1::GetPidSettings(AliESDpid *esdPID) {
CheckActiveChannels(const Char_t *);
-CheckActiveChannels(Int_t);
+CheckActiveChannels(Int_t nrun=-1);
CheckActiveChannelsFromCDBEntry(AliCDBEntry *);
//____________________________________________________________________
//____________________________________________________________________
-CheckActiveChannels(Int_t run)
+CheckActiveChannels(Int_t nrun)
{
TGrid *alien = TGrid::Connect("alien://");
if (!alien || !alien->IsConnected()) return;
AliCDBManager *cdbm = AliCDBManager::Instance();
cdbm->SetDefaultStorage("raw://");
- cdbm->SetRun(80015);
+ if (nrun==-1)
+ cdbm->SetRun(80015);
+ else
+ cdbm->SetRun(nrun);
AliCDBEntry *cdbe = cdbm->Get("TOF/Calib/Status");
CheckActiveChannelsFromCDBEntry(cdbe);
Bool_t hw_ok, pulser_ok, noise_ok;
for (Int_t i = 0; i < array->GetSize(); i++) {
hw_ok = array->GetHWStatus(i) & AliTOFChannelOnlineStatusArray::kTOFHWOk;
- pulser_ok = array->GetPulserStatus(i) & AliTOFChannelOnlineStatusArray::kTOFPulserOk;
+ pulser_ok = !(array->GetPulserStatus(i) & AliTOFChannelOnlineStatusArray::kTOFPulserBad);
noise_ok = array->GetNoiseStatus(i) & AliTOFChannelOnlineStatusArray::kTOFNoiseOk;
hStatus_hw_ok->SetBinContent(i + 1, hw_ok);
hStatus_pulser_ok->SetBinContent(i + 1, pulser_ok);