/*
$Log$
+Revision 1.7 2006/04/16 20:12:46 hristov
+Removing memory leak in case of cached CDB entries
+
+Revision 1.6 2006/04/11 15:28:32 hristov
+Checks on cache status before deleting calibration objects (A.Colla)
+
Revision 1.5 2006/04/05 08:35:38 hristov
Coding conventions (S.Arcelli, C.Zampolli)
fNpadZ = geom->NpadZ();
fNpadX = geom->NpadX();
fNChannels = fNSector*(2*(fNStripC+fNStripB)+fNStripA)*fNpadZ*fNpadX; //generalized version
- fTOFCal = new AliTOFCal(geom);
- fTOFSimCal = new AliTOFCal(geom);
- fTOFCal->CreateArray();
- fTOFSimCal->CreateArray();
- fTOFSimToT=0x0;
+ fTOFCal = 0x0;
+ fTOFSimCal = 0x0;
+ fTOFSimToT = 0x0;
delete geom;
}
//_______________________________________________________________________
fNpadZ = geom->NpadZ();
fNpadX = geom->NpadX();
fNChannels = fNSector*(2*(fNStripC+fNStripB)+fNStripA)*fNpadZ*fNpadX; //generalized version
- fTOFCal = new AliTOFCal(geom);
- fTOFSimCal = new AliTOFCal(geom);
- fTOFCal->CreateArray();
- fTOFSimCal->CreateArray();
- fTOFSimToT=0x0;
+ fTOFCal = 0x0;
+ fTOFSimCal = 0x0;
+ fTOFSimToT = 0x0;
}
//____________________________________________________________________________
//____________________________________________________________________________
+AliTOFcalib& AliTOFcalib::operator=(const AliTOFcalib &calib)
+{
+ //TOF Calibration Class assignment operator
+ this->fNSector = calib.fNSector;
+ this->fNPlate = calib.fNPlate;
+ this->fNStripA = calib.fNStripA;
+ this->fNStripB = calib.fNStripB;
+ this->fNStripC = calib.fNStripC;
+ this->fNpadZ = calib.fNpadZ;
+ this->fNpadX = calib.fNpadX;
+ this->fNChannels = calib.fNChannels;
+ this->fArrayToT = calib.fArrayToT;
+ this->fArrayTime = calib.fArrayTime;
+ this->fTOFCal=calib.fTOFCal;
+ this->fTOFSimCal = calib.fTOFSimCal;
+ this->fTOFSimToT=calib.fTOFSimToT;
+ return *this;
+}
+
+//____________________________________________________________________________
+
AliTOFcalib::~AliTOFcalib()
{
//TOF Calibration Class dtor
for (Int_t kk = 0; kk< nfpar; kk++){
par[kk]=fGold->GetParameter(kk);
}
+ if (!fTOFCal) {
+ AliTOFGeometry *geom=new AliTOFGeometryV5();
+ fTOFCal = new AliTOFCal(geom);
+ fTOFCal->CreateArray();
+ delete geom;
+ }
AliTOFChannel * calChannel = fTOFCal->GetChannel(i);
calChannel->SetSlewPar(par);
}
else if (ipid == 1) etime = expTime[3]*1E-3; //ns
else if (ipid == 2) etime = expTime[4]*1E-3; //ns
Float_t par[6];
+ if (!fTOFCal) {
+ AliTOFGeometry *geom=new AliTOFGeometryV5();
+ fTOFCal = new AliTOFCal(geom);
+ fTOFCal->CreateArray();
+ delete geom;
+ }
AliTOFChannel * calChannel = fTOFCal->GetChannel(index);
for (Int_t j = 0; j<6; j++){
par[j]=calChannel->GetSlewPar(j);
continue;
}
Int_t index = t->GetTOFCalChannel();
+ if (!fTOFCal) {
+ AliTOFGeometry *geom=new AliTOFGeometryV5();
+ fTOFCal = new AliTOFCal(geom);
+ fTOFCal->CreateArray();
+ delete geom;
+ }
AliTOFChannel * calChannel = fTOFCal->GetChannel(index);
Float_t par[6];
for (Int_t j = 0; j<6; j++){
AliCDBId id(out,minrun,maxrun);
AliCDBMetaData *md = new AliCDBMetaData();
md->SetResponsible("Chiara Zampolli");
+ if (!fTOFCal) {
+ AliTOFGeometry *geom=new AliTOFGeometryV5();
+ fTOFCal = new AliTOFCal(geom);
+ fTOFCal->CreateArray();
+ delete geom;
+ }
man->Put(fTOFCal,id,md);
delete md;
}
for (Int_t ipar=0;ipar<npar;ipar++){
par[ipar]=f->GetParameter(ipar);
}
-
+ if (!fTOFSimCal) {
+ AliTOFGeometry *geom=new AliTOFGeometryV5();
+ fTOFSimCal = new AliTOFCal(geom);
+ fTOFSimCal->CreateArray();
+ delete geom;
+ }
for(Int_t iTOFch=0; iTOFch<fTOFSimCal->NPads();iTOFch++){
AliTOFChannel * calChannel = fTOFSimCal->GetChannel(iTOFch);
calChannel->SetSlewPar(par);