From: cvetan Date: Wed, 24 Jun 2009 10:12:10 +0000 (+0000) Subject: Update of the event-specie selection routine according to the discussions with trigge... X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=4e0a640fbc067c03fc5d86466ffb4c8ac1c12912 Update of the event-specie selection routine according to the discussions with trigger coordination. For the moment, the reconstruction will produce quite some warnings until the trigger class names don't fit the trigger naming scheme. --- diff --git a/STEER/AliRecoParam.cxx b/STEER/AliRecoParam.cxx index cc0dba90fb4..9da24f92c72 100644 --- a/STEER/AliRecoParam.cxx +++ b/STEER/AliRecoParam.cxx @@ -231,56 +231,62 @@ void AliRecoParam::SetEventSpecie(const AliRunInfo *runInfo, const AliEventInfo // Now we look into the trigger type in order to decide // on the remaining cases (cosmic event within LHC run, - // high-mult event based on high-mult SPD trigger - // within p-p run, laser triggers within physics run, + // calibration, for example TPC laser, triggers within physics run, // special DAQ events considered as calibration etc...) if (evInfo.GetEventType() != 7) { // START_OF_*, END_OF_*, CALIBRATION etc events fEventSpecie = kCalib; + return; } TString triggerClasses = evInfo.GetTriggerClasses(); TObjArray* trClassArray = triggerClasses.Tokenize(" "); Int_t nTrClasses = trClassArray->GetEntriesFast(); Bool_t cosmicTrigger = kFALSE, - laserTrigger = kFALSE, - highMultTrigger = kFALSE, + calibTrigger = kFALSE, otherTrigger = kFALSE; for( Int_t i=0; iAt(i))->String(); - if (trClass.BeginsWith("C0A") || - trClass.BeginsWith("C0SC") || - trClass.BeginsWith("C0OC")) { - // ACORDE/SPD/TOF cosmic trigger, so we have cosmic event - // not always true, but we don't have a better idea... - cosmicTrigger = kTRUE; - } - else if (trClass.BeginsWith("C0LSR")) { - // Laser trigger - laserTrigger = kTRUE; + + if (trClass.BeginsWith("C0L")) { + // Calibration triggers always start with C0L + calibTrigger = kTRUE; + continue; } - else if (trClass.BeginsWith("C0SH")) { - // High-multiplicity SPD trugger - // Have to add other high-mult triggers here... - highMultTrigger = kTRUE; + + TObjArray* tmp = trClass.Tokenize("-"); + TObjString* bcName = (TObjString*)tmp->At(1); + if (bcName) { + if ((bcName->String().CompareTo("ABCE") == 0) || + (bcName->String().CompareTo("E") == 0) || + (bcName->String().CompareTo("NONE") == 0)) { + // Cosmic triggers are identified by empty bunch-crossing mask + // The naming comvention is: + // A filled bunch from A side, empty from C side + // B filled bunch from both sides + // C filled bunch from C side, empty from A side + // E empty bunch from both sides + cosmicTrigger = kTRUE; + delete tmp; + continue; + } } else { - otherTrigger = kTRUE; + AliWarning(Form("Trigger class %s doesn't comply with the naming convention!",trClass.Data())); } + delete tmp; + + otherTrigger = kTRUE; } - if (laserTrigger) { + if (calibTrigger) { fEventSpecie = kCalib; return; } - if (cosmicTrigger && !highMultTrigger && !otherTrigger) { + if (cosmicTrigger && !otherTrigger) { fEventSpecie = kCosmic; return; } - if (highMultTrigger) { - fEventSpecie = kHighMult; - return; - } // Here we have to add if we have other cases // and also HLT info if any...