fEMCALClustersListName(""), fZvtxCut(0.),
fAcceptFastCluster(kFALSE), fRemoveLEDEvents(kTRUE),
fDoEventSelection(kFALSE), fDoV0ANDEventSelection(kFALSE), fUseEventsWithPrimaryVertex(kFALSE),
-fTriggerAnalysis (0x0),
+fTriggerAnalysis (0x0), fTimeStampEventSelect(0),
+fTimeStampEventFracMin(0), fTimeStampEventFracMax(0),
+fTimeStampRunMin(0), fTimeStampRunMax(0),
fNPileUpClusters(-1), fNNonPileUpClusters(-1), fNPileUpClustersCut(3),
fCentralityClass(""), fCentralityOpt(0),
fEventPlaneMethod(""), fImportGeometryFromFile(kFALSE), fImportGeometryFilePath("")
//Reject events with Z vertex too large, only for SE analysis, if not, cut on the analysis code
if(!GetMixedEvent() && TMath::Abs(fVertex[0][2]) > fZvtxCut) return kFALSE;
+ //------------------------------------------------------
+ //Event rejection depending on vertex, pileup, v0and
+ //------------------------------------------------------
+ if(fDataType==kESD && fTimeStampEventSelect)
+ {
+ AliESDEvent* esd = dynamic_cast<AliESDEvent*> (fInputEvent);
+ Int_t timeStamp = esd->GetTimeStamp();
+ Float_t timeStampFrac = 1.*(timeStamp-fTimeStampRunMin) / (fTimeStampRunMax-fTimeStampRunMin);
+
+ //printf("stamp0 %d, max0 %d, frac %f\n", timeStamp-fTimeStampRunMin,fTimeStampRunMax-fTimeStampRunMin, //timeStampFrac);
+
+ if(timeStampFrac < fTimeStampEventFracMin || timeStampFrac > fTimeStampEventFracMax) return kFALSE;
+
+ //printf("\t accept time stamp\n");
+ }
+
+
//------------------------------------------------------
//Event rejection depending on vertex, pileup, v0and
//------------------------------------------------------
void SwitchOffPrimaryVertexSelection() { fUseEventsWithPrimaryVertex = kFALSE ; }
Bool_t IsPrimaryVertexSelectionDone() const { return fUseEventsWithPrimaryVertex ; }
+
+ //Time Stamp
+
+ Int_t GetRunTimeStampMin() const { return fTimeStampRunMin ; }
+ Int_t GetRunTimeStampMax() const { return fTimeStampRunMax ; }
+
+ void SetRunTimeStamp(Int_t a, Int_t b) { fTimeStampRunMin = a ;
+ fTimeStampRunMax = b ; } // seconds
+
+ Float_t GetEventTimeStampFractionMin() const { return fTimeStampEventFracMin ; }
+ Float_t GetEventTimeStampFractionMax() const { return fTimeStampEventFracMax ; }
+
+ void SetEventTimeStampFraction(Float_t a, Float_t b) { fTimeStampEventFracMin = a ;
+ fTimeStampEventFracMax = b ; }
+
+ void SwitchOnSelectEventTimeStamp() { fTimeStampEventSelect = kTRUE ; }
+ void SwitchOffSelectEventTimeStamp() { fTimeStampEventSelect = kFALSE ; }
+
+
Bool_t IsPileUpFromSPD() const ;
Bool_t IsPileUpFromEMCal() const ;
Bool_t IsPileUpFromSPDAndEMCal() const ;
Bool_t fDoV0ANDEventSelection; // Select events depending on V0, fDoEventSelection should be on
Bool_t fUseEventsWithPrimaryVertex ; // Select events with primary vertex
AliTriggerAnalysis* fTriggerAnalysis; // Access to trigger selection algorithm for V0AND calculation
+
+ Bool_t fTimeStampEventSelect; // Select events within a fraction of data taking time
+ Float_t fTimeStampEventFracMin; // Minimum value of time stamp fraction event
+ Float_t fTimeStampEventFracMax; // Maximum value of time stamp fraction event
+ Int_t fTimeStampRunMin; // Minimum value of time stamp in run
+ Int_t fTimeStampRunMax; // Maximum value of time stamp in run
+
Double_t fPileUpParamSPD[5]; // Parameters to pass to method IsPileupFromSPD: Int_t minContributors,
// Double_t minZdist,
// Double_t nSigmaZdist,
// Double_t nSigmaDiamXY,
// Double_t nSigmaDiamZ)
+
// Pile-up in EMCal
Int_t fNPileUpClusters; // Number of clusters with time avobe 20 ns
Int_t fNNonPileUpClusters; // Number of clusters with time below 20 ns
AliCaloTrackReader( const AliCaloTrackReader & r) ; // cpy ctor
AliCaloTrackReader & operator = (const AliCaloTrackReader & r) ; // cpy assignment
- ClassDef(AliCaloTrackReader,47)
+ ClassDef(AliCaloTrackReader,48)
} ;