// --- AliRoot system ---
#include "AliCaloTrackReader.h"
+#include "AliESDEvent.h"
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)
} ;
fAODCTSNormalInputEntries(0), fAODEMCALNormalInputEntries(0),
fAODPHOSNormalInputEntries(0), fTrackStatus(0),
fReadStack(kFALSE), fReadAODMCParticles(kFALSE),
- fCleanOutputStdAOD(kFALSE), fDeltaAODFileName("deltaAODPartCorr.root")
+ fCleanOutputStdAOD(kFALSE), fDeltaAODFileName("deltaAODPartCorr.root"),fFiredTriggerClassName("")
{
//Ctor
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
fCleanOutputStdAOD = source.fCleanOutputStdAOD;
fDeltaAODFileName = source.fDeltaAODFileName;
+ fFiredTriggerClassName = source.fFiredTriggerClassName ;
return *this;
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 = "";
}
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();
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
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
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)
} ;