From 72d2488ecb29c2b9cc048cbdf7934a529185df77 Mon Sep 17 00:00:00 2001 From: gconesab Date: Wed, 9 Dec 2009 15:11:37 +0000 Subject: [PATCH] Add selection of event depending on the trigger that fired it. --- PWG4/PartCorrBase/AliAnaPartCorrMaker.cxx | 2 +- PWG4/PartCorrBase/AliCaloTrackAODReader.cxx | 1 - PWG4/PartCorrBase/AliCaloTrackAODReader.h | 3 +++ PWG4/PartCorrBase/AliCaloTrackESDReader.cxx | 1 - PWG4/PartCorrBase/AliCaloTrackESDReader.h | 5 ++++- PWG4/PartCorrBase/AliCaloTrackReader.cxx | 20 +++++++++++++++----- PWG4/PartCorrBase/AliCaloTrackReader.h | 9 +++++++-- 7 files changed, 30 insertions(+), 11 deletions(-) diff --git a/PWG4/PartCorrBase/AliAnaPartCorrMaker.cxx b/PWG4/PartCorrBase/AliAnaPartCorrMaker.cxx index 38384e7046a..b51a03e5642 100755 --- a/PWG4/PartCorrBase/AliAnaPartCorrMaker.cxx +++ b/PWG4/PartCorrBase/AliAnaPartCorrMaker.cxx @@ -243,7 +243,7 @@ void AliAnaPartCorrMaker::ProcessEvent(const Int_t iEntry, const char * currentF //Tell the reader to fill the data in the 3 detector lists Bool_t ok = fReader->FillInputEvent(iEntry, currentFileName); if(!ok){ - printf("*** Skip event *** %d \n",iEntry); + if(fAnaDebug >= 1 )printf("*** Skip event *** %d \n",iEntry); return ; } diff --git a/PWG4/PartCorrBase/AliCaloTrackAODReader.cxx b/PWG4/PartCorrBase/AliCaloTrackAODReader.cxx index 9d0d95ff9dd..bc91fdf7979 100755 --- a/PWG4/PartCorrBase/AliCaloTrackAODReader.cxx +++ b/PWG4/PartCorrBase/AliCaloTrackAODReader.cxx @@ -31,7 +31,6 @@ //---- ANALYSIS system ---- #include "AliCaloTrackAODReader.h" -#include "AliAODEvent.h" #include "AliAODCaloCluster.h" #include "AliAODTrack.h" #include "AliESDtrack.h" diff --git a/PWG4/PartCorrBase/AliCaloTrackAODReader.h b/PWG4/PartCorrBase/AliCaloTrackAODReader.h index e3a39320e50..14a67322bd5 100755 --- a/PWG4/PartCorrBase/AliCaloTrackAODReader.h +++ b/PWG4/PartCorrBase/AliCaloTrackAODReader.h @@ -17,6 +17,7 @@ // --- AliRoot system --- #include "AliCaloTrackReader.h" +#include "AliAODEvent.h" class AliCaloTrackAODReader : public AliCaloTrackReader { @@ -42,6 +43,8 @@ public: void SwitchOnWriteStdAOD() {fWriteOutputStdAOD = kTRUE;} void SwitchOffWriteStdAOD() {fWriteOutputStdAOD = kFALSE;} + TString GetFiredTriggerClasses() {return ((AliAODEvent*)GetInputEvent())->GetFiredTriggerClasses();} + void Print(const Option_t * opt) const; private: diff --git a/PWG4/PartCorrBase/AliCaloTrackESDReader.cxx b/PWG4/PartCorrBase/AliCaloTrackESDReader.cxx index 41f5906fa28..cbca34f61fc 100755 --- a/PWG4/PartCorrBase/AliCaloTrackESDReader.cxx +++ b/PWG4/PartCorrBase/AliCaloTrackESDReader.cxx @@ -35,7 +35,6 @@ //---- ANALYSIS system ---- #include "AliCaloTrackESDReader.h" -#include "AliESDEvent.h" #include "AliESDCaloCluster.h" #include "AliAODCaloCluster.h" #include "AliAODTrack.h" diff --git a/PWG4/PartCorrBase/AliCaloTrackESDReader.h b/PWG4/PartCorrBase/AliCaloTrackESDReader.h index 4a7d21ff5af..de087c14a2c 100755 --- a/PWG4/PartCorrBase/AliCaloTrackESDReader.h +++ b/PWG4/PartCorrBase/AliCaloTrackESDReader.h @@ -20,6 +20,7 @@ // --- AliRoot system --- #include "AliCaloTrackReader.h" +#include "AliESDEvent.h" class AliCaloTrackESDReader : public AliCaloTrackReader { @@ -39,7 +40,9 @@ class AliCaloTrackESDReader : public AliCaloTrackReader { void GetVertex(Double_t v[3]) const ; Double_t GetBField() const; void SetInputOutputMCEvent(AliVEvent* esd, AliAODEvent* aod, AliMCEvent* mc) ; - + + TString GetFiredTriggerClasses() {return ((AliESDEvent*)GetInputEvent())->GetFiredTriggerClasses();} + ClassDef(AliCaloTrackESDReader,1) } ; diff --git a/PWG4/PartCorrBase/AliCaloTrackReader.cxx b/PWG4/PartCorrBase/AliCaloTrackReader.cxx index 45ba54dc84f..56edc068a69 100755 --- a/PWG4/PartCorrBase/AliCaloTrackReader.cxx +++ b/PWG4/PartCorrBase/AliCaloTrackReader.cxx @@ -55,7 +55,7 @@ ClassImp(AliCaloTrackReader) fAODCTSNormalInputEntries(0), fAODEMCALNormalInputEntries(0), fAODPHOSNormalInputEntries(0), fTrackStatus(0), fReadStack(kFALSE), fReadAODMCParticles(kFALSE), - fCleanOutputStdAOD(kFALSE), fDeltaAODFileName("deltaAODPartCorr.root") + fCleanOutputStdAOD(kFALSE), fDeltaAODFileName("deltaAODPartCorr.root"),fFiredTriggerClassName("") { //Ctor @@ -88,7 +88,8 @@ AliCaloTrackReader::AliCaloTrackReader(const AliCaloTrackReader & g) : fAODPHOSNormalInputEntries(g.fAODPHOSNormalInputEntries), fTrackStatus(g.fTrackStatus), fReadStack(g.fReadStack), fReadAODMCParticles(g.fReadAODMCParticles), - fCleanOutputStdAOD(g.fCleanOutputStdAOD), fDeltaAODFileName(g.fDeltaAODFileName) + fCleanOutputStdAOD(g.fCleanOutputStdAOD), fDeltaAODFileName(g.fDeltaAODFileName), + fFiredTriggerClassName(g.fFiredTriggerClassName ) { // cpy ctor @@ -145,6 +146,7 @@ AliCaloTrackReader & AliCaloTrackReader::operator = (const AliCaloTrackReader & fCleanOutputStdAOD = source.fCleanOutputStdAOD; fDeltaAODFileName = source.fDeltaAODFileName; + fFiredTriggerClassName = source.fFiredTriggerClassName ; return *this; @@ -358,6 +360,7 @@ void AliCaloTrackReader::InitParameters() fReadAODMCParticles = kFALSE; // Check in the constructor of the other readers if it was set or in the configuration file fCleanOutputStdAOD = kFALSE; // Clean the standard clusters/tracks? fDeltaAODFileName = "deltaAODPartCorr.root"; + fFiredTriggerClassName = ""; } @@ -401,7 +404,15 @@ Bool_t AliCaloTrackReader::FillInputEvent(const Int_t iEntry, const char * curre fEventNumber = iEntry; fCurrentFileName = TString(currentFileName); - + + //Select events only fired by a certain trigger configuration if it is provided + if( fFiredTriggerClassName !=""){ + if(fDebug > 0) + printf("AliCaloTrackReader::FillInputEvent() - FiredTriggerClass <%s>, selected class <%s>, compare name %d\n", + GetFiredTriggerClasses().Data(),fFiredTriggerClassName.Data(), GetFiredTriggerClasses().Contains(fFiredTriggerClassName)); + if( !GetFiredTriggerClasses().Contains(fFiredTriggerClassName) ) return kFALSE; + } + if(fOutputEvent && (fDataType != kAOD) && ((fOutputEvent->GetCaloClusters())->GetEntriesFast()!=0 ||(fOutputEvent->GetTracks())->GetEntriesFast()!=0)){ printf("AliCaloTrackReader::AODCaloClusters or AODTracks already filled by the filter, do not use the ESD reader, use the AOD reader, STOP\n"); abort(); @@ -422,8 +433,7 @@ Bool_t AliCaloTrackReader::FillInputEvent(const Int_t iEntry, const char * curre printf("AliCaloTrackReader::FillInputEvent() - Skip events from event %d, no more events in second AOD file \n", iEntry); return kFALSE; } - printf("Reader 4 \n"); - + //Get the Event Int_t nbytes = fSecondInputAODTree->GetEvent(iEntry+fSecondInputFirstEvent); if ( nbytes == 0 ) {//If nothing in AOD diff --git a/PWG4/PartCorrBase/AliCaloTrackReader.h b/PWG4/PartCorrBase/AliCaloTrackReader.h index c2599346973..5d4fcaf72a5 100755 --- a/PWG4/PartCorrBase/AliCaloTrackReader.h +++ b/PWG4/PartCorrBase/AliCaloTrackReader.h @@ -170,6 +170,10 @@ class AliCaloTrackReader : public TObject { void SetDeltaAODFileName(TString name ) {fDeltaAODFileName = name ; } TString GetDeltaAODFileName() const {return fDeltaAODFileName ; } + + void SetFiredTriggerClassName(TString name ) {fFiredTriggerClassName = name ; } + TString GetFiredTriggerClassName() const {return fFiredTriggerClassName ; } + virtual TString GetFiredTriggerClasses() {return "";} protected: Int_t fEventNumber; // Event number @@ -216,8 +220,9 @@ class AliCaloTrackReader : public TObject { Bool_t fCleanOutputStdAOD; // clean the written standard tracks and caloclusters in output AOD TString fDeltaAODFileName ; // Delta AOD file name - - ClassDef(AliCaloTrackReader,8) + TString fFiredTriggerClassName ; // Name of trigger event type used to do the analysis + + ClassDef(AliCaloTrackReader,9) } ; -- 2.43.0