fSuperModuleData.Add(new AliEMCALSuperModuleCalibAbs(i));
}
fSuperModuleData.Compress(); // compress the TObjArray
+ fSuperModuleData.SetOwner(kTRUE);
}
//____________________________________________________________________________
// list of values to be read
// first: overall values for the whole SuperModule
- Int_t CalibMethod;
- Int_t CalibPass;
- Float_t AbsoluteCalib;
+ Int_t iCalibMethod = 0;
+ Int_t iCalibPass = 0;
+ Float_t absoluteCalib = 0;
// third: info for each tower
- Float_t RelativeCalib; // (ADC>GeV relative gain/conversion), value around 1
+ Float_t relativeCalib = 0; // (ADC>GeV relative gain/conversion), value around 1
// end - all values
Int_t nAPDPerSM = AliEMCALGeoParams::fgkEMCALCols * AliEMCALGeoParams::fgkEMCALRows;
for (Int_t i = 0; i < fNSuperModule; i++) {
AliEMCALSuperModuleCalibAbs * t = (AliEMCALSuperModuleCalibAbs*) fSuperModuleData[i];
if (!inputFile) {
- printf("AliEMCALCalibAbs::ReadCalibAbsInfo - Error while reading input file; likely EOF..");
+ printf("AliEMCALCalibAbs::ReadCalibAbsInfo - Error while reading input file; likely EOF..\n");
return;
}
inputFile >> iSM;
t->SetSuperModuleNum(iSM);
// first: overall values for the whole SuperModule
- inputFile >> CalibMethod >> CalibPass >> AbsoluteCalib;
- t->SetCalibMethod(CalibMethod);
- t->SetCalibPass(CalibPass);
- t->SetAbsoluteCalib(AbsoluteCalib);
+ inputFile >> iCalibMethod >> iCalibPass >> absoluteCalib;
+ t->SetCalibMethod(iCalibMethod);
+ t->SetCalibPass(iCalibPass);
+ t->SetAbsoluteCalib(absoluteCalib);
// third: info for each tower
for (Int_t j=0; j<nAPDPerSM; j++) {
- inputFile >> iCol >> iRow
- >> RelativeCalib;
+ inputFile >> iCol >> iRow >> relativeCalib;
+
+ // check that input values are not out bounds
+ if (iCol<0 || iCol>(AliEMCALGeoParams::fgkEMCALCols-1) ||
+ iRow<0 || iRow>(AliEMCALGeoParams::fgkEMCALRows-1) ) {
+ printf("AliEMCALCalibAbs::ReadCalibAbsInfo - Error while reading input file; j %d iCol %d iRow %d\n", j, iCol, iRow);
+ return;
+ }
// assume that this info is already swapped and done for this basis?
if (swapSides) {
iRow = AliEMCALGeoParams::fgkEMCALRows-1 - iRow;
}
- t->SetRelativeCalib(iCol, iRow, RelativeCalib);
+ t->SetRelativeCalib(iCol, iRow, relativeCalib);
}
} // i, SuperModule
Int_t iRow = 0;
Int_t nAPDPerSM = AliEMCALGeoParams::fgkEMCALCols * AliEMCALGeoParams::fgkEMCALRows;
- Float_t RelativeCalib = 0;
+ Float_t relativeCalib = 0;
for (Int_t i = 0; i < fNSuperModule; i++) {
AliEMCALSuperModuleCalibAbs * t = (AliEMCALSuperModuleCalibAbs*) fSuperModuleData[i];
iCol = j / AliEMCALGeoParams::fgkEMCALRows;
iRow = j % AliEMCALGeoParams::fgkEMCALRows;
- RelativeCalib = t->GetRelativeCalib(iCol, iRow);
+ relativeCalib = t->GetRelativeCalib(iCol, iRow);
if (swapSides) {
// C side, oriented differently than A side: swap is requested
}
outputFile << iCol << " " << iRow
- << " " << RelativeCalib << endl;
+ << " " << relativeCalib << endl;
}
} // i, SuperModule
Int_t iSM = 0; // SuperModule index
// list of values to be read
// first: overall values for the whole SuperModule
- Int_t CalibMethod;
- Int_t CalibPass = 0;
- Float_t AbsoluteCalib = 0;
+ Int_t iCalibMethod = 0;
+ Int_t iCalibPass = 0;
+ Float_t absoluteCalib = 0;
// third: info for each tower
- Float_t RelativeCalib[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows];
+ Float_t relativeCalib[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows];
// end - all values
// just to make the initializations of the arrays are done correctly, let's use memset
- memset(RelativeCalib, 0, sizeof(RelativeCalib));
+ memset(relativeCalib, 0, sizeof(relativeCalib));
// declare the branches
tree->SetBranchAddress("iSM", &iSM);
- tree->SetBranchAddress("CalibMethod", &CalibMethod);
- tree->SetBranchAddress("CalibPass", &CalibPass);
- tree->SetBranchAddress("AbsoluteCalib", &AbsoluteCalib);
+ tree->SetBranchAddress("CalibMethod", &iCalibMethod);
+ tree->SetBranchAddress("CalibPass", &iCalibPass);
+ tree->SetBranchAddress("AbsoluteCalib", &absoluteCalib);
//
- tree->SetBranchAddress("RelativeCalib", RelativeCalib);
+ tree->SetBranchAddress("RelativeCalib", relativeCalib);
// indices for looping over the towers
Int_t iCol = 0;
t->SetSuperModuleNum(iSM);
// first, overall values
- t->SetCalibMethod(CalibMethod);
- t->SetCalibPass(CalibPass);
- t->SetAbsoluteCalib(AbsoluteCalib);
+ t->SetCalibMethod(iCalibMethod);
+ t->SetCalibPass(iCalibPass);
+ t->SetAbsoluteCalib(absoluteCalib);
// third: info for each tower
for (Int_t j=0; j<nAPDPerSM; j++) {
iRowMod = AliEMCALGeoParams::fgkEMCALRows-1 - iRow;
}
- t->SetRelativeCalib(iColMod, iRowMod, RelativeCalib[iCol][iRow]);
+ t->SetRelativeCalib(iColMod, iRowMod, relativeCalib[iCol][iRow]);
}
} // loop over entries
Int_t iSM = 0; // SuperModule index
// list of values to be written
// first: overall values for the whole SuperModule
- Int_t CalibMethod = 0;
- Int_t CalibPass = 0;
- Float_t AbsoluteCalib = 0;
+ Int_t iCalibMethod = 0;
+ Int_t iCalibPass = 0;
+ Float_t absoluteCalib = 0;
// third: info for each tower
- Float_t RelativeCalib[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows];
+ Float_t relativeCalib[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows];
// end - all values
// just to make the initializations of the arrays are done correctly, let's use memset
- memset(RelativeCalib, 0, sizeof(RelativeCalib));
+ memset(relativeCalib, 0, sizeof(relativeCalib));
Int_t nAPDPerSM = AliEMCALGeoParams::fgkEMCALCols * AliEMCALGeoParams::fgkEMCALRows;
// for looping over towers
// declare the branches
// first
tree->Branch("iSM", &iSM, "iSM/I");
- tree->Branch("CalibMethod", &CalibMethod, "CalibMethod/I");
- tree->Branch("CalibPass", &CalibPass, "CalibPass/I");
- tree->Branch("AbsoluteCalib", &AbsoluteCalib, "AbsoluteCalib/F");
+ tree->Branch("CalibMethod", &iCalibMethod, "CalibMethod/I");
+ tree->Branch("CalibPass", &iCalibPass, "CalibPass/I");
+ tree->Branch("AbsoluteCalib", &absoluteCalib, "AbsoluteCalib/F");
// third: info for each tower; see if a 2D array works OK or if we'll have to use 1D arrays instead
- tree->Branch( "RelativeCalib", &RelativeCalib, Form("RelativeCalib[%d][%d]/F", AliEMCALGeoParams::fgkEMCALCols, AliEMCALGeoParams::fgkEMCALRows) );
+ tree->Branch( "RelativeCalib", &relativeCalib, Form("RelativeCalib[%d][%d]/F", AliEMCALGeoParams::fgkEMCALCols, AliEMCALGeoParams::fgkEMCALRows) );
for (iSM = 0; iSM < fNSuperModule; iSM++) {
AliEMCALSuperModuleCalibAbs * t = (AliEMCALSuperModuleCalibAbs*) fSuperModuleData[iSM];
iSM = t->GetSuperModuleNum();
// first, overall values
- CalibMethod = t->GetCalibMethod();
- CalibPass = t->GetCalibPass();
- AbsoluteCalib = t->GetAbsoluteCalib();
+ iCalibMethod = t->GetCalibMethod();
+ iCalibPass = t->GetCalibPass();
+ absoluteCalib = t->GetAbsoluteCalib();
// third: info for each tower
for (Int_t j=0; j<nAPDPerSM; j++) {
iRowMod = AliEMCALGeoParams::fgkEMCALRows-1 - iRow;
}
- RelativeCalib[iColMod][iRowMod] = t->GetRelativeCalib(iCol, iRow);
+ relativeCalib[iColMod][iRowMod] = t->GetRelativeCalib(iCol, iRow);
}
tree->Fill();
//____________________________________________________________________________
AliEMCALSuperModuleCalibAbs * AliEMCALCalibAbs::GetSuperModuleCalibAbsNum(Int_t supModIndex)const
-{
+{ // getter via index
for (int i=0; i<fNSuperModule; i++) {
AliEMCALSuperModuleCalibAbs * t = (AliEMCALSuperModuleCalibAbs*) fSuperModuleData[i];
if (t->GetSuperModuleNum() == supModIndex) {