* provided "as is" without express or implied warranty. *
**************************************************************************/
+/* $Id$ */
+
//-------------------------------------------------------------------------
// Implementation of class AliAnalysisTaskPileup
//
fTriggerClasses(0x0),
fTriggerClassIndex(0x0),
fIsInitCDB(0),
- fCentralityClasses(0x0)
+ fCentralityClasses(0x0),
+ fStorageList("")
#if defined(READOCDB)
- , fTriggerRunScalers(0x0),
- fStorageList(0x0)
+ , fTriggerRunScalers(0x0)
#endif
{
fTriggerClasses(0x0),
fTriggerClassIndex(0x0),
fIsInitCDB(0),
- fCentralityClasses(0x0)
+ fCentralityClasses(0x0),
+ fStorageList("")
#if defined(READOCDB)
- , fTriggerRunScalers(0x0),
- fStorageList(0x0)
+ , fTriggerRunScalers(0x0)
#endif
-
{
/// Constructor
/// Destructor
// For proof: do not delete output containers
- if ( ! AliAnalysisManager::GetAnalysisManager()->IsProofMode() ) {
+ if ( ! AliAnalysisManager::GetAnalysisManager() || ! AliAnalysisManager::GetAnalysisManager()->IsProofMode() ) {
delete fEventCounters;
}
delete fTriggerClasses;
delete fTriggerClassIndex;
-#if defined(READOCDB)
- delete fTriggerRunScalers;
- delete fStorageList;
-#endif
+ //#if defined(READOCDB)
+ //delete fTriggerRunScalers; // Not owner -> Owned by OCDB
+ //#endif
}
/// Notify run
#if defined(READOCDB)
- fStorageList->Compress();
+ if ( fStorageList.IsNull() ) {
+ AliError("Default storage not set! Pileup corrections won't be calculated!");
+ return;
+ }
if ( ! AliCDBManager::Instance()->GetDefaultStorage() ) {
- for ( Int_t ientry=0; ientry<fStorageList->GetEntries(); ientry++ ) {
- TObjString* calibStr = (TObjString*)fStorageList->At(ientry);
+ TObjArray* storageList = fStorageList.Tokenize(" ");
+ storageList->SetOwner();
+ for ( Int_t ientry=0; ientry<storageList->GetEntries(); ientry++ ) {
+ TObjString* calibStr = (TObjString*)storageList->At(ientry);
ientry++;
- TObjString* dbStr = (TObjString*)fStorageList->At(ientry);
+ TObjString* dbStr = (TObjString*)storageList->At(ientry);
TString calibName = calibStr->GetString();
if ( ! calibName.CompareTo("default") ) {
AliCDBManager::Instance()->SetDefaultStorage(dbStr->GetName());
AliCDBManager::Instance()->SetSpecificStorage(calibStr->GetName(), dbStr->GetName());
}
}
+ delete storageList;
}
// Default storage was not correclty set: nothing done
entry = AliCDBManager::Instance()->Get("GRP/CTP/Scalers");
if ( ! entry ) return;
AliInfo("Found an AliTriggerRunScalers in GRP/CTP/Scalers, reading it");
- fTriggerRunScalers = dynamic_cast<AliTriggerRunScalers*> (entry->GetObject());
- entry->SetOwner(0);
+ fTriggerRunScalers = static_cast<AliTriggerRunScalers*> (entry->GetObject());
if (fTriggerRunScalers->CorrectScalersOverflow() == 0) AliInfo("32bit Trigger counters corrected for overflow");
fIsInitCDB = kTRUE;
#if defined(READOCDB)
Double_t deltaScalersBeam = 0., deltaScalers = 0.;
#endif
- Bool_t isFiredOnce = kFALSE;
+ //Bool_t isFiredOnce = kFALSE;
for (Int_t itrig=0; itrig<nTriggerClasses+1; itrig++) {
Double_t correctFactorL0 = 1.;
else {
classIndex = -1;
trigName = "any";
- isClassFired = isFiredOnce;
+ isClassFired = kTRUE; // isFiredOnce;
}
if ( ! isClassFired ) continue;
- isFiredOnce = kTRUE;
+ //isFiredOnce = kTRUE;
//const AliTriggerScalersESD* trigScaler = trigScalerRecords->GetTriggerScalersForClass(classIndex+1); // REMEMBER TO CUT
//if ( classIndex > 1 ) printf("Index: trigger %i scaler %i\n", classIndex+1, trigScaler->GetClassIndex()); // REMEMBER TO CUT
{
/// Set specific storage
#if defined(READOCDB)
- if ( ! fStorageList ) {
- fStorageList = new TObjArray(5);
- fStorageList->SetOwner();
- }
- fStorageList->AddLast(new TObjString(calibType));
- fStorageList->AddLast(new TObjString(dbString));
+ if ( ! fStorageList.IsNull() ) fStorageList += " ";
+ fStorageList += Form("%s %s", calibType.Data(), dbString.Data());
+ if ( fDebug >= 3 ) printf("AliAnalysisTaskPileup: Setting storage %s %s", calibType.Data(), dbString.Data());
#else
calibType = "";
dbString = "";
- AliWarning(Form("Class was not compiled to run on OCDB. Command will not have effect"));
+ AliWarning("Class was not compiled to run on OCDB. Command will not have effect");
#endif
}