AliPhysics  vAN-20150425 (2dcf1b0)
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
AliCaloTrackReader.h
Go to the documentation of this file.
1 #ifndef ALICALOTRACKREADER_H
2 #define ALICALOTRACKREADER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 //_________________________________________________________________________
23 //_________________________________________________________________________
24 
25 // --- ROOT system ---
26 #include <TObject.h>
27 #include <TString.h>
28 class TObjArray ;
29 class TTree ;
30 class TArrayI ;
31 #include <TRandom3.h>
32 
33 //--- ANALYSIS system ---
34 #include "AliVEvent.h"
35 class AliVCaloCells;
36 class AliStack;
37 class AliHeader;
38 class AliGenEventHeader;
39 class AliAODEvent;
40 class AliMCEvent;
41 class AliMixedEvent;
42 class AliAODMCHeader;
43 class AliCentrality;
44 class AliESDtrackCuts;
45 //class AliTriggerAnalysis;
46 class AliEventplane;
47 class AliVCluster;
48 
49 // --- CaloTrackCorr / EMCAL ---
50 #include "AliFiducialCut.h"
52 #include "AliAnaWeights.h"
53 
54 // Jets
55 class AliAODJetEventBackground;
56 
57 class AliCaloTrackReader : public TObject {
58 
59 public:
60 
61  AliCaloTrackReader() ; // ctor
62  virtual ~AliCaloTrackReader() ; // virtual dtor
63  void DeletePointers();
64 
65  //--------------------------------
66  // General methods
67  //--------------------------------
68 
69  virtual void Init();
70 
71  virtual void InitParameters();
72 
73  virtual void Print(const Option_t * opt) const;
74 
75  virtual void ResetLists();
76 
77  virtual Int_t GetDebug() const { return fDebug ; }
78  virtual void SetDebug(Int_t d) { fDebug = d ; }
79 
81  virtual Int_t GetDataType() const { return fDataType ; }
82  virtual void SetDataType(Int_t data ) { fDataType = data ; }
83 
84  virtual Int_t GetEventNumber() const { return fEventNumber ; }
85 
86  TString GetTaskName() const { return fTaskName ; }
87  void SetTaskName(TString name) { fTaskName = name ; }
88 
89  //---------------------------------------
90  // Input/output event setters and getters
91  //---------------------------------------
92 
93  virtual void SetInputEvent(AliVEvent* input) ;
94  virtual void SetOutputEvent(AliAODEvent* aod) { fOutputEvent = aod ; }
95  virtual void SetMC(AliMCEvent* const mc) { fMC = mc ; }
96  virtual void SetInputOutputMCEvent(AliVEvent* /*esd*/, AliAODEvent* /*aod*/, AliMCEvent* /*mc*/) { ; }
97 
98  // Delta AODs
99 
100  virtual TList * GetAODBranchList() const { return fAODBranchList ; }
101  void SetDeltaAODFileName(TString name ) { fDeltaAODFileName = name ; }
102  TString GetDeltaAODFileName() const { return fDeltaAODFileName ; }
105  Bool_t WriteDeltaAODToFile() const { return fWriteOutputDeltaAOD ; }
106 
107  //------------------------------------------------------------
108  // Clusters/Tracks arrays filtering/filling methods and switchs
109  //------------------------------------------------------------
110 
111  // detector identificator enum, used here and in AliAnaCaloTrackBaseClass and derived classes
115 
116  // Minimum pt setters and getters
117 
118  Float_t GetEMCALPtMin() const { return fEMCALPtMin ; }
119  Float_t GetPHOSPtMin() const { return fPHOSPtMin ; }
120  Float_t GetCTSPtMin() const { return fCTSPtMin ; }
121  Float_t GetEMCALPtMax() const { return fEMCALPtMax ; }
122  Float_t GetPHOSPtMax() const { return fPHOSPtMax ; }
123  Float_t GetCTSPtMax() const { return fCTSPtMax ; }
124 
125  void SetEMCALPtMin(Float_t pt) { fEMCALPtMin = pt ; }
126  void SetPHOSPtMin (Float_t pt) { fPHOSPtMin = pt ; }
127  void SetCTSPtMin (Float_t pt) { fCTSPtMin = pt ; }
128 
129  void SetEMCALPtMax(Float_t pt) { fEMCALPtMax = pt ; }
130  void SetPHOSPtMax (Float_t pt) { fPHOSPtMax = pt ; }
131  void SetCTSPtMax (Float_t pt) { fCTSPtMax = pt ; }
132 
133  Float_t GetEMCALEMin() const { return GetEMCALPtMin() ; }
134  Float_t GetPHOSEMin() const { return GetPHOSPtMin() ; }
135  Float_t GetEMCALEMax() const { return GetEMCALPtMax() ; }
136  Float_t GetPHOSEMax() const { return GetPHOSPtMax() ; }
137 
138  void SetEMCALEMin (Float_t e) { SetEMCALPtMin(e) ; }
139  void SetPHOSEMin (Float_t e) { SetPHOSPtMin (e) ; }
140  void SetEMCALEMax (Float_t e) { SetEMCALPtMax(e) ; }
141  void SetPHOSEMax (Float_t e) { SetPHOSPtMax (e) ; }
142 
143  // Track DCA cut
144 
145  Bool_t AcceptDCA(Float_t pt, Float_t dca);
146  Double_t GetTrackDCACut(Int_t i) const { if(i >= 0 && i < 3 ) return fTrackDCACut[i] ;
147  else return -999 ; }
148 
149  void SetTrackDCACut(Int_t i, Float_t cut) { if(i >= 0 && i < 3 )
150  fTrackDCACut[i] = cut ; }
151 
154  Bool_t IsDCACutOn() const { return fUseTrackDCACut ; }
155 
156  // Time cut
157 
158  Double_t GetTrackTimeCutMin() const { return fTrackTimeCutMin ; }
159  Double_t GetTrackTimeCutMax() const { return fTrackTimeCutMax ; }
160 
161  void SetTrackTimeCut(Double_t a, Double_t b) { fTrackTimeCutMin = a ;
162  fTrackTimeCutMax = b ; } // ns
163 
166 
169  Bool_t IsAccessToTrackTimeOn() const { return fAccessTrackTOF ; }
170 
171 
172  Double_t GetEMCALTimeCutMin() const { return fEMCALTimeCutMin ; }
173  Double_t GetEMCALTimeCutMax() const { return fEMCALTimeCutMax ; }
174 
175  Bool_t IsInTimeWindow(Double_t tof, Float_t energy) const ;
176 
177  void SetEMCALTimeCut(Double_t a, Double_t b) { fEMCALTimeCutMin = a ;
178  fEMCALTimeCutMax = b ; } // ns
179 
180  void SetEMCALParametrizedMinTimeCut(Int_t i, Float_t par) { fEMCALParamTimeCutMin[i] = par ; }
181  void SetEMCALParametrizedMaxTimeCut(Int_t i, Float_t par) { fEMCALParamTimeCutMax[i] = par ; }
182 
185 
188 
189  // Fidutial cuts
190 
193  return fFiducialCut ; }
194  virtual void SetFiducialCut(AliFiducialCut * fc) { fFiducialCut = fc ; }
195  virtual Bool_t IsFiducialCutOn() const { return fCheckFidCut ; }
196  virtual void SwitchOnFiducialCut() { fCheckFidCut = kTRUE ;
197  fFiducialCut = new AliFiducialCut() ; }
198  virtual void SwitchOffFiducialCut() { fCheckFidCut = kFALSE ; }
199 
200  // Cluster/track/cells switchs
201 
202  Bool_t IsCTSSwitchedOn() const { return fFillCTS ; }
203  void SwitchOnCTS() { fFillCTS = kTRUE ; }
204  void SwitchOffCTS() { fFillCTS = kFALSE ; }
205 
206  Bool_t IsEMCALSwitchedOn() const { return fFillEMCAL ; }
207  void SwitchOnEMCAL() { fFillEMCAL = kTRUE ; }
208  void SwitchOffEMCAL() { fFillEMCAL = kFALSE ; }
209 
210  Bool_t IsDCALSwitchedOn() const { return fFillDCAL ; }
211  void SwitchOnDCAL() { fFillDCAL = kTRUE ; }
212  void SwitchOffDCAL() { fFillDCAL = kFALSE ; }
213 
214  Bool_t IsPHOSSwitchedOn() const { return fFillPHOS ; }
215  void SwitchOnPHOS() { fFillPHOS = kTRUE ; }
216  void SwitchOffPHOS() { fFillPHOS = kFALSE ; }
217 
218  Bool_t IsEMCALCellsSwitchedOn() const { return fFillEMCALCells ; }
219  void SwitchOnEMCALCells() { fFillEMCALCells = kTRUE ; }
220  void SwitchOffEMCALCells() { fFillEMCALCells = kFALSE ; }
221 
222  Bool_t IsPHOSCellsSwitchedOn() const { return fFillPHOSCells ; }
223  void SwitchOnPHOSCells() { fFillPHOSCells = kTRUE ; }
224  void SwitchOffPHOSCells() { fFillPHOSCells = kFALSE ; }
225 
226  Bool_t AreClustersRecalculated() const { return fRecalculateClusters ; }
229 
232 
233  Bool_t IsShowerShapeSmeared() const { return fSmearShowerShape ; }
236 
238 
242 
243  // Filling/ filtering / detector information access methods
244 
245  virtual Bool_t FillInputEvent(Int_t iEntry, const char *currentFileName) ;
246  virtual void FillInputCTS() ;
247  virtual void FillInputEMCAL() ;
248  virtual void FillInputEMCALAlgorithm(AliVCluster * clus, Int_t iclus) ;
249  virtual void FillInputPHOS() ;
250  virtual void FillInputEMCALCells() ;
251  virtual void FillInputPHOSCells() ;
252  virtual void FillInputVZERO() ;
253 
254  Int_t GetV0Signal(Int_t i) const { return fV0ADC[i] ; }
255  Int_t GetV0Multiplicity(Int_t i) const { return fV0Mul[i] ; }
256 
257  void SetEMCALClusterListName(TString &name) { fEMCALClustersListName = name ; }
258  TString GetEMCALClusterListName() const { return fEMCALClustersListName ; }
259 
260  // Arrays with clusters/track/cells access method
261 
262  virtual TObjArray* GetCTSTracks() const { return fCTSTracks ; }
263  virtual TObjArray* GetEMCALClusters() const { return fEMCALClusters ; }
264  virtual TObjArray* GetDCALClusters() const { return fDCALClusters ; }
265  virtual TObjArray* GetPHOSClusters() const { return fPHOSClusters ; }
266  virtual AliVCaloCells* GetEMCALCells() const { return fEMCALCells ; }
267  virtual AliVCaloCells* GetPHOSCells() const { return fPHOSCells ; }
268 
269  //-------------------------------------
270  // Event/track selection methods
271  //-------------------------------------
272 
275  Bool_t IsFastClusterAccepted() const { return fAcceptFastCluster ; }
276 
277  Bool_t AcceptEventWithTriggerBit();
278  Bool_t RejectEventWithTriggerBit();
279  void SetAcceptEventsWithBit(UInt_t bit) { Int_t n = fAcceptEventsWithBit.GetSize();
280  fAcceptEventsWithBit.Set(n+1);
281  fAcceptEventsWithBit.AddAt(bit,n) ; }
282 
283  void SetRejectEventsWithBit(UInt_t bit) { Int_t n = fRejectEventsWithBit.GetSize();
284  fRejectEventsWithBit.Set(n+1);
285  fRejectEventsWithBit.AddAt(bit,n) ; }
286 
289  Bool_t IsLEDEventRemoved() const { return fRemoveLEDEvents ; }
290  Bool_t RejectLEDEvents();
291 
292  void SetFiredTriggerClassName(TString name ) { fFiredTriggerClassName = name ; }
294  TString GetFiredTriggerClasses() const { return GetInputEvent()->GetFiredTriggerClasses() ; }
295 
296 
297  // Event selection when mixed event is used
298 
299  UInt_t GetEventTriggerMask() const { return fEventTriggerMask ; }
300  void SetEventTriggerMask(UInt_t evtTrig = AliVEvent::kAny)
301  { fEventTriggerMask = evtTrig ; }
302  UInt_t GetMixEventTriggerMask() const { return fMixEventTriggerMask ; }
303  void SetMixEventTriggerMask(UInt_t evtTrig = AliVEvent::kAnyINT)
304  { fMixEventTriggerMask = evtTrig ; }
305  Bool_t IsEventTriggerAtSEOn() const { return fEventTriggerAtSE ; }
308 
309  // EMCal Triggered events selection, studies
310 
311  TArrayI GetTriggerPatches(Int_t tmin, Int_t tmax);
312  void MatchTriggerCluster(TArrayI patches);
314 
315  Bool_t CheckEventTriggers();
316 
317  Bool_t IsExoticEvent() const { return fIsExoticEvent ; }
318  Bool_t IsBadCellTriggerEvent() const { return fIsBadCellEvent ; }
319  Bool_t IsBadMaxCellTriggerEvent() const { return fIsBadMaxCellEvent ; }
320  Bool_t IsTriggerMatched() const { return fIsTriggerMatch ; }
321  Bool_t IsTriggerMatchedOpenCuts(Int_t i) const { return fIsTriggerMatchOpenCut[i]; }
322 
323  Int_t GetTriggerClusterBC() const { return fTriggerClusterBC ; }
324  Int_t GetTriggerClusterIndex() const { return fTriggerClusterIndex ; }
325  Int_t GetTriggerClusterId() const { return fTriggerClusterId ; }
326 
331 
332  void SetEventTriggerL1Bit(Int_t ega, Int_t eje) { fBitEGA = ega ; fBitEJE = eje; }
333 
334  void SetTriggerPatchTimeWindow(Int_t min, Int_t max) { fTriggerPatchTimeWindow[0] = min ;
335  fTriggerPatchTimeWindow[1] = max ; }
336 
340 
344 
348 
352 
353  void SetEventTriggerBit();
354  Bool_t IsEventMinimumBias() const { return fEventTrigMinBias ; }
355  Bool_t IsEventCentral() const { return fEventTrigCentral ; }
356  Bool_t IsEventSemiCentral() const { return fEventTrigSemiCentral ; }
357  Bool_t IsEventEMCALL0() const { return fEventTrigEMCALL0 ; }
358  Bool_t IsEventEMCALL1Gamma1() const { return fEventTrigEMCALL1Gamma1 ; }
359  Bool_t IsEventEMCALL1Gamma2() const { return fEventTrigEMCALL1Gamma2 ; }
360  Bool_t IsEventEMCALL1Jet1() const { return fEventTrigEMCALL1Jet1 ; }
361  Bool_t IsEventEMCALL1Jet2() const { return fEventTrigEMCALL1Jet2 ; }
364  Bool_t IsEventEMCALL1() const { return (IsEventEMCALL1Gamma() || IsEventEMCALL1Jet() ) ; }
365 
368 
369  // Other event rejections criteria
370 
374 
378 
382 
386 
390 
391  // Time Stamp
392 
393  Double_t GetRunTimeStampMin() const { return fTimeStampRunMin ; }
394  Double_t GetRunTimeStampMax() const { return fTimeStampRunMax ; }
395 
396  void SetRunTimeStamp(Double_t a, Double_t b) { fTimeStampRunMin = a ;
397  fTimeStampRunMax = b ; } // seconds
398 
401 
402  void SetEventTimeStampFraction(Float_t a, Float_t b) { fTimeStampEventFracMin = a ;
403  fTimeStampEventFracMax = b ; }
404 
407 
409 
410  // Event tagging as pile-up
411 
412  Bool_t IsPileUpFromSPD() const ;
413  Bool_t IsPileUpFromEMCal() const ;
414  Bool_t IsPileUpFromSPDAndEMCal() const ;
415  Bool_t IsPileUpFromSPDOrEMCal() const ;
416  Bool_t IsPileUpFromSPDAndNotEMCal() const ;
417  Bool_t IsPileUpFromEMCalAndNotSPD() const ;
418  Bool_t IsPileUpFromNotSPDAndNotEMCal() const ;
419 
420  void SetPileUpParamForSPD (Int_t i, Double_t param)
421  { fPileUpParamSPD[i] = param ; }
422  void SetPileUpParamForEMCal(Int_t param) { fNPileUpClustersCut = param ; }
423 
426 
427  Int_t GetEMCalEventBC(Int_t bc) const { if(bc >=0 && bc < 19) return fEMCalBCEvent [bc] ; else return 0 ; }
428  Int_t GetTrackEventBC(Int_t bc) const { if(bc >=0 && bc < 19) return fTrackBCEvent [bc] ; else return 0 ; }
429  Int_t GetEMCalEventBCcut(Int_t bc) const { if(bc >=0 && bc < 19) return fEMCalBCEventCut[bc] ; else return 0 ; }
430  Int_t GetTrackEventBCcut(Int_t bc) const { if(bc >=0 && bc < 19) return fTrackBCEventCut[bc] ; else return 0 ; }
431 
432  void SetEMCalEventBC(Int_t bc) { if(bc >=0 && bc < 19) fEMCalBCEvent [bc] = 1 ; }
433  void SetTrackEventBC(Int_t bc) { if(bc >=0 && bc < 19) fTrackBCEvent [bc] = 1 ; }
434  void SetEMCalEventBCcut(Int_t bc) { if(bc >=0 && bc < 19) fEMCalBCEventCut[bc] = 1 ; }
435  void SetTrackEventBCcut(Int_t bc) { if(bc >=0 && bc < 19) fTrackBCEventCut[bc] = 1 ; }
436 
437  Int_t GetVertexBC(const AliVVertex * vtx);
438  Int_t GetVertexBC() const { return fVertexBC ; }
441 
442  // Track selection
443 
444  ULong_t GetTrackStatus() const { return fTrackStatus ; }
445  void SetTrackStatus(ULong_t bit) { fTrackStatus = bit ; }
446 
447  virtual Bool_t SelectTrack(AliVTrack* , Double_t*) { return kFALSE ; } // See AOD/ESD reader
448 
451 
452  Int_t GetTrackMultiplicity() const { return fTrackMult ; }
453  Float_t GetTrackMultiplicityEtaCut() const { return fTrackMultEtaCut ; }
454  void SetTrackMultiplicityEtaCut(Float_t eta) { fTrackMultEtaCut = eta ; }
455 
456  // Virtual for AODReader
457 
458  virtual ULong_t GetTrackFilterMask() const { return 0 ; }
459  virtual void SetTrackFilterMask(ULong_t) { ; }
460 
461  virtual ULong_t GetTrackFilterMaskComplementary() const { return 0 ; }
462  virtual void SetTrackFilterMaskComplementary(ULong_t) { ; }
463 
464  virtual void SwitchOnAODHybridTrackSelection() { ; }
465  virtual void SwitchOffAODHybridTrackSelection() { ; }
466 
467  virtual void SwitchOnAODPrimaryTrackSelection() { ; }
469 
472 
473  virtual void SetTPCSharedClusterFraction(Float_t) { ; }
474  virtual Float_t GetTPCSharedClusterFraction() const { return 0 ; }
475 
476  // virtual for ESDReader
477 
478  virtual AliESDtrackCuts* GetTrackCuts() const { return 0 ; }
479  virtual AliESDtrackCuts* GetTrackComplementaryCuts() const { return 0 ; }
480 
481  virtual void SetTrackCuts(AliESDtrackCuts *) { ; }
482  virtual void SetTrackComplementaryCuts(AliESDtrackCuts *) { ; }
483 
484  virtual void SwitchOnConstrainTrackToVertex() { ; }
485  virtual void SwitchOffConstrainTrackToVertex() { ; }
486 
487  // Calorimeter pure LED events selection
488  void AnalyzeOnlyLED() { fAnaLED = kTRUE ; }
489  void AnalyzeOnlyPhysics() { fAnaLED = kFALSE ; }
490 
491  //-------------------------------
492  // Vertex methods
493  //-------------------------------
494 
495  virtual void GetVertex(Double_t v[3]) const ;
496  virtual Double_t* GetVertex(Int_t evtIndex) const { return fVertex[evtIndex] ; }
497  virtual void GetVertex(Double_t vertex[3], const Int_t evtIndex) const ;
498  virtual void FillVertexArray();
499  virtual Bool_t CheckForPrimaryVertex() const { return kTRUE ; } // algorithm in ESD/AOD Readers
500  virtual Float_t GetZvertexCut() const { return fZvtxCut ; } // cut on vertex position
501  virtual void SetZvertexCut(Float_t zcut=10.) { fZvtxCut=zcut ; } // cut on vertex position
502 
503  //--------------------------
504  // Centrality / Event Plane
505  //--------------------------
506 
507  virtual AliCentrality* GetCentrality() const { if(fDataType!=kMC) return fInputEvent->GetCentrality() ;
508  else return 0x0 ; }
509  virtual void SetCentralityClass(TString name) { fCentralityClass = name ; }
510  virtual void SetCentralityOpt(Int_t opt) { fCentralityOpt = opt ; }
511  virtual TString GetCentralityClass() const { return fCentralityClass ; }
512  virtual Int_t GetCentralityOpt() const { return fCentralityOpt ; }
513  virtual Int_t GetEventCentrality() const ;
514  virtual void SetCentralityBin(Int_t min, Int_t max) //Set the centrality bin to select the event. If used, then need to get percentile
515  { fCentralityBin[0]=min; fCentralityBin[1]=max;
516  if(min>=0 && max > 0) fCentralityOpt = 100 ; }
517  virtual Float_t GetCentralityBin(Int_t i) const { if(i < 0 || i > 1) return 0 ;
518  else return fCentralityBin[i] ; }
519 
520  virtual AliEventplane* GetEventPlane() const { if(fDataType!=kMC) return fInputEvent->GetEventplane() ;
521  else return 0x0 ; }
522  virtual Double_t GetEventPlaneAngle() const ;
523  virtual void SetEventPlaneMethod(TString m) { fEventPlaneMethod = m ; }
524  virtual TString GetEventPlaneMethod() const { return fEventPlaneMethod ; }
525 
526  //--------------------
527  // Mixing
528  //--------------------
529 
530  Int_t GetLastCaloMixedEvent() const { return fLastMixedCaloEvent ; }
531  Int_t GetLastTracksMixedEvent () const { return fLastMixedTracksEvent ; }
532 
533  TList * GetListWithMixedEventsForCalo (Int_t bi) const { if(fListMixedCaloEvents) return fListMixedCaloEvents [bi] ; else return 0 ; }
534  TList * GetListWithMixedEventsForTracks(Int_t bi) const { if(fListMixedTracksEvents) return fListMixedTracksEvents[bi] ; else return 0 ; }
535 
536  Bool_t ListWithMixedEventsForCaloExists() const { if(fListMixedCaloEvents) return kTRUE ;
537  else return kFALSE ; }
538 
539  Bool_t ListWithMixedEventsForTracksExists() const { if(fListMixedTracksEvents) return kTRUE ;
540  else return kFALSE ; }
541 
544 
545  void SetListWithMixedEventsForCalo (TList ** l) {
546  if(fListMixedCaloEvents) printf("AliCaloTrackReader::SetListWithMixedEventsForCalo() - Track Mixing event list already set, nothing done\n");
547  else fListMixedCaloEvents = l ; }
548 
550  if(fListMixedTracksEvents) printf("AliCaloTrackReader::SetListWithMixedEventsForTracks() - Calorimeter Mixing event list already set, nothing done\n");
551  else fListMixedTracksEvents = l ; }
552 
553  //-------------------------------------
554  // Other methods
555  //-------------------------------------
556 
559  { fCaloUtils = caloutils ; }
560 
561  Double_t GetEventWeight() const { return fEventWeight ; }
563  return fWeightUtils ; }
564 
565  virtual Double_t GetBField() const { return fInputEvent->GetMagneticField() ; }
566 
567  //------------------------------------------------
568  // MC analysis specific methods
569  //-------------------------------------------------
570 
571  // Kinematics and galice.root available
572 
573  virtual AliStack* GetStack() const ;
574  virtual AliHeader* GetHeader() const ;
575  virtual AliGenEventHeader* GetGenEventHeader() const ;
576 
577  // Filtered kinematics in AOD
578 
579  virtual TClonesArray* GetAODMCParticles() const ;
580  virtual AliAODMCHeader* GetAODMCHeader () const ;
581 
582  virtual AliVEvent* GetInputEvent() const { return fInputEvent ; }
583  virtual AliVEvent* GetOriginalInputEvent() const { return 0x0 ; }
584  virtual AliAODEvent* GetOutputEvent() const { return fOutputEvent ; }
585  virtual AliMCEvent* GetMC() const { return fMC ; }
586  virtual AliMixedEvent* GetMixedEvent() const { return fMixedEvent ; }
587  virtual Int_t GetNMixedEvent() const { return fNMixedEvent ; }
588 
589  void SwitchOnStack() { fReadStack = kTRUE ; }
590  void SwitchOffStack() { fReadStack = kFALSE ; }
593  Bool_t ReadStack() const { return fReadStack ; }
594  Bool_t ReadAODMCParticles() const { return fReadAODMCParticles ; }
595 
596  void RemapMCLabelForAODs(Int_t &label);
597 
598  // Select generated events, depending on comparison of pT hard and jets
599 
600  virtual Bool_t ComparePtHardAndJetPt() ;
601  virtual Bool_t IsPtHardAndJetPtComparisonSet() const { return fComparePtHardAndJetPt ; }
602  virtual void SetPtHardAndJetPtComparison(Bool_t compare) { fComparePtHardAndJetPt = compare ; }
603  virtual Float_t GetPtHardAndJetFactor() const { return fPtHardAndJetPtFactor ; }
604  virtual void SetPtHardAndJetPtFactor(Float_t factor) { fPtHardAndJetPtFactor = factor ; }
605 
606  virtual Bool_t ComparePtHardAndClusterPt() ;
608  virtual void SetPtHardAndClusterPtComparison(Bool_t compare) { fComparePtHardAndClusterPt = compare ; }
609  virtual Float_t GetPtHardAndClusterFactor() const { return fPtHardAndClusterPtFactor ; }
610  virtual void SetPtHardAndClusterPtFactor(Float_t factor) { fPtHardAndClusterPtFactor = factor ; }
611 
612  virtual Bool_t IsHIJINGLabel(Int_t label);
617 
618  // MC reader methods, declared there to allow compilation, they are only used in the MC reader
619 
620  virtual void AddNeutralParticlesArray(TArrayI & /*array*/) { ; }
621  virtual void AddChargedParticlesArray(TArrayI & /*array*/) { ; }
622  virtual void AddStatusArray(TArrayI & /*array*/) { ; }
623 
624  virtual void SwitchOnPi0Decay() { ; }
625  virtual void SwitchOffPi0Decay() { ; }
626  virtual void SwitchOnStatusSelection() { ; }
627  virtual void SwitchOffStatusSelection() { ; }
628  virtual void SwitchOnOverlapCheck() { ; }
629  virtual void SwitchOffOverlapCheck() { ; }
630  virtual void SwitchOnOnlyGeneratorParticles() { ; }
631  virtual void SwitchOffOnlyGeneratorParticles() { ; }
632 
633  virtual void SetEMCALOverlapAngle(Float_t /*angle*/) { ; }
634  virtual void SetPHOSOverlapAngle(Float_t /*angle*/) { ; }
635 
636  //-------------
637  // Jets
638  //-------------
639 
643 
647 
648  virtual void FillInputNonStandardJets() ;
649  virtual TClonesArray* GetNonStandardJets() const { return fNonStandardJets ; }
650  virtual void SetInputNonStandardJetBranchName(TString name) { fInputNonStandardJetBranchName = name ; }
652 
653  virtual void FillInputBackgroundJets() ;
654  virtual AliAODJetEventBackground* GetBackgroundJets() const { return fBackgroundJets ; }
655  virtual void SetInputBackgroundJetBranchName(TString name) { fInputBackgroundJetBranchName = name ; }
657 
658  protected:
659 
660  Int_t fEventNumber;
661  Int_t fDataType ;
662  Int_t fDebug;
664  Bool_t fCheckFidCut ;
665 
668 
671 
672  Float_t fCTSPtMin;
673  Float_t fEMCALPtMin;
674  Float_t fPHOSPtMin;
675  Float_t fCTSPtMax;
676  Float_t fEMCALPtMax;
677  Float_t fPHOSPtMax;
682  Double_t fEMCALTimeCutMin;
683  Double_t fEMCALTimeCutMax;
685  Double_t fEMCALParamTimeCutMax[4];
686  Double_t fTrackTimeCutMin;
687  Double_t fTrackTimeCutMax;
689  Double_t fTrackDCACut[3];
690 
692  TList * fAODBranchList ; //->
693 
695  TObjArray * fCTSTracks ; //->
696 
698  TObjArray * fEMCALClusters ; //->
699 
701  TObjArray * fDCALClusters ; //->
702 
704  TObjArray * fPHOSClusters ; //->
705 
706  AliVCaloCells * fEMCALCells ;
707  AliVCaloCells * fPHOSCells ;
708 
709  AliVEvent * fInputEvent;
710  AliAODEvent * fOutputEvent;
711  AliMCEvent * fMC;
712 
713  Bool_t fFillCTS;
714  Bool_t fFillEMCAL;
715  Bool_t fFillDCAL;
716  Bool_t fFillPHOS;
718  Bool_t fFillPHOSCells;
722 
725  TRandom3 fRandom ;
726 
727  ULong_t fTrackStatus ;
729  Int_t fTrackMult ;
730  Float_t fTrackMultEtaCut ;
731 
732  Bool_t fReadStack ;
734 
735  TString fDeltaAODFileName ;
737 
738  // Trigger bit
742 
751 
752  Int_t fBitEGA;
753  Int_t fBitEJE;
754 
755  Bool_t fAnaLED;
756 
757  TString fTaskName;
758 
760 
762  Double_t fEventWeight ;
763 
764  AliMixedEvent * fMixedEvent ;
765  Int_t fNMixedEvent ;
766  Double_t ** fVertex ;
767 
772 
774 
775  Int_t fV0ADC[2] ;
776  Int_t fV0Mul[2] ;
777 
779 
780  // Event selection
781 
782  Float_t fZvtxCut ;
785 
789 
793 
797  Bool_t fIsExoticEvent;
804 
805 
811 //AliTriggerAnalysis* fTriggerAnalysis; ///< Access to trigger selection algorithm for V0AND calculation.
812 
816  Double_t fTimeStampRunMin;
817  Double_t fTimeStampRunMax;
818 
821  Double_t fPileUpParamSPD[5];
822 
823  // Pile-up in EMCal
824 
828  Int_t fEMCalBCEvent[19];
829  Int_t fEMCalBCEventCut[19];
830  Int_t fTrackBCEvent[19];
831  Int_t fTrackBCEventCut[19];
832  Int_t fVertexBC;
834 
835  // Centrality/Event plane
836 
839  Int_t fCentralityBin[2];
841 
845 
846  // Jets
848  TClonesArray * fNonStandardJets;
851  AliAODJetEventBackground * fBackgroundJets;
853 
856 
858 
859  TLorentzVector fMomentum;
860 
863 
866 
868  ClassDef(AliCaloTrackReader,70) ;
870 
871 } ;
872 
873 #endif //ALICALOTRACKREADER_H
874 
875 
876 
Bool_t IsPileUpFromSPD() const
virtual Int_t GetDebug() const
virtual Float_t GetZvertexCut() const
Bool_t IsBadMaxCellTriggerEvent() const
Double_t fEventWeight
Weight assigned to the event when filling histograms.
Bool_t fUseTrackDCACut
Do DCA selection.
virtual void SwitchOnAODTrackSharedClusterSelection()
virtual void SetDebug(Int_t d)
TString GetTaskName() const
virtual void SwitchOffConstrainTrackToVertex()
void SetLastCaloMixedEvent(Int_t e)
TArrayI GetTriggerPatches(Int_t tmin, Int_t tmax)
Recover the patches that triggered, either L0 or L1.
virtual void FillInputVZERO()
virtual AliMCEvent * GetMC() const
Int_t fV0ADC[2]
Integrated V0 signal.
Bool_t fComparePtHardAndClusterPt
In MonteCarlo, jet events, reject events with too large cluster energy.
AliAnaWeights * fWeightUtils
Pointer to AliAnaWeights.
void SetShowerShapeSmearWidth(Float_t w)
AliCalorimeterUtils * GetCaloUtils() const
Float_t fTimeStampEventFracMin
Minimum value of time stamp fraction event.
Bool_t fReadAODMCParticles
Access kine information from filtered AOD MC particles.
virtual void FillInputNonStandardJets()
Double_t fEMCALTimeCutMax
Remove clusters/cells with time larger than this value, in ns.
virtual void SetInputBackgroundJetBranchName(TString name)
void SetEMCALPtMax(Float_t pt)
Int_t fBitEJE
Trigger bit on VCaloTrigger for EJE.
void SwitchOffUnMatchedTriggerEventsRemoval()
TList * GetListWithMixedEventsForTracks(Int_t bi) const
TLorentzVector fMomentum
! Temporal TLorentzVector container, avoid declaration of TLorentzVectors per event.
Double_t fTimeStampRunMin
Minimum value of time stamp in run.
Bool_t fDoPileUpEventRejection
Select pile-up events by SPD.
virtual TClonesArray * GetNonStandardJets() const
Bool_t fAcceptOnlyHIJINGLabels
Select clusters or tracks that where generated by HIJING, reject other generators in case of cocktail...
TObjArray * fPHOSClusters
Temporal array with PHOS CaloClusters.
Double_t fTrackDCACut[3]
Remove tracks with DCA larger than cut, parameters of function stored here.
virtual void SwitchOnStatusSelection()
Bool_t fUseEventsWithPrimaryVertex
Select events with primary vertex.
virtual void SwitchOnFiducialCut()
virtual AliVCaloCells * GetPHOSCells() const
Bool_t fIsBadCellEvent
Bad cell triggered event flag, any cell in cluster is bad.
Bool_t fEventTrigEMCALL1Gamma1
Event is L1-Gamma, threshold 1 on its name, it should correspond kEMCEGA.
virtual void AddStatusArray(TArrayI &)
virtual AliHeader * GetHeader() const
virtual void SwitchOffPi0Decay()
Bool_t IsEventEMCALL1Jet1() const
void SetTriggerPatchTimeWindow(Int_t min, Int_t max)
void SetPHOSPtMax(Float_t pt)
Bool_t IsEventEMCALL1Gamma1() const
virtual void SwitchOnAODHybridTrackSelection()
void SwitchOnEMCALEventRejectionWith2Thresholds()
virtual void SetCentralityBin(Int_t min, Int_t max)
void SetPHOSPtMin(Float_t pt)
Bool_t AreBadTriggerEventsRemoved() const
Float_t GetEventTimeStampFractionMax() const
Bool_t ReadAODMCParticles() const
void SetEMCALParametrizedMinTimeCut(Int_t i, Float_t par)
virtual Double_t GetBField() const
virtual void SetMC(AliMCEvent *const mc)
virtual void SetPHOSOverlapAngle(Float_t)
TString fEventPlaneMethod
Name of event plane method, by default "Q".
Int_t fTrackBCEventCut[19]
Fill one entry per event if there is a track in a given BC, depend on track pT, acceptance cut...
void SwitchOffClusterELinearityCorrection()
virtual TObjArray * GetEMCALClusters() const
void SetCTSPtMax(Float_t pt)
Bool_t fDoVertexBCEventSelection
Select events with vertex on BC=0 or -100.
Float_t GetCTSPtMax() const
virtual void SetInputOutputMCEvent(AliVEvent *, AliAODEvent *, AliMCEvent *)
Bool_t WriteDeltaAODToFile() const
void SetListWithMixedEventsForTracks(TList **l)
TList * GetListWithMixedEventsForCalo(Int_t bi) const
AliMixedEvent * fMixedEvent
! Mixed event object. This class is not the owner.
virtual AliVEvent * GetInputEvent() const
virtual void SwitchOnOnlyGeneratorParticles()
Bool_t IsPileUpFromSPDAndNotEMCal() const
Check if event is from pile-up determined by SPD and not by EMCal.
Bool_t IsEventEMCALL1() const
Bool_t IsTriggerPatchMatchedToCluster() const
Float_t fPtHardAndClusterPtFactor
Factor between ptHard and cluster pT to reject/accept event.
Bool_t fAcceptFastCluster
Accept events from fast cluster, exclude these events for LHC11a.
virtual void SetTrackComplementaryCuts(AliESDtrackCuts *)
Double_t fTrackTimeCutMin
Remove tracks with time smaller than this value, in ns.
Bool_t IsPrimaryVertexSelectionDone() const
Int_t GetV0Signal(Int_t i) const
Bool_t fSmearShowerShape
Smear shower shape (use in MC).
void SetTrackDCACut(Int_t i, Float_t cut)
AliVEvent * fInputEvent
! pointer to esd or aod input.
Bool_t IsEventSemiCentral() const
Calculate the weight to the event to be applied when filling histograms.
Definition: AliAnaWeights.h:31
virtual void SetInputEvent(AliVEvent *input)
void SetPileUpParamForEMCal(Int_t param)
Double_t fTrackTimeCutMax
Remove tracks with time larger than this value, in ns.
virtual void AddNeutralParticlesArray(TArrayI &)
Int_t fTriggerClusterBC
Event triggered by a cluster in BC -5 0 to 5.
TString fEMCALClustersListName
Alternative list of clusters produced elsewhere and not from InputEvent.
ULong_t GetTrackStatus() const
Double_t GetRunTimeStampMin() const
Bool_t fWriteOutputDeltaAOD
Write the created delta AOD objects into file.
TString GetFiredTriggerClassName() const
Int_t fV0Mul[2]
Integrated V0 Multiplicity.
Float_t fEMCALPtMin
pT Threshold on emcal clusters.
Bool_t fTriggerClusterTimeRecal
In case cluster already calibrated, do not try to recalibrate even if recalib on in AliEMCALRecoUtils...
Double_t ** fVertex
! Vertex array 3 dim for each mixed event buffer.
Bool_t IsEventWithNoTrackRejectionDone() const
void SetPHOSEMax(Float_t e)
UInt_t fEventTriggerMask
Select this triggerered event.
void SetEMCALEMin(Float_t e)
virtual Int_t GetEventCentrality() const
Double_t GetEMCALTimeCutMax() const
virtual Bool_t IsHIJINGLabel(Int_t label)
virtual AliGenEventHeader * GetGenEventHeader() const
virtual void SetTPCSharedClusterFraction(Float_t)
virtual AliCentrality * GetCentrality() const
AliVCaloCells * fPHOSCells
! Temporal array with PHOS AliVCaloCells.
Bool_t IsEventEMCALL1Gamma2() const
virtual AliMixedEvent * GetMixedEvent() const
Bool_t fFillInputBackgroundJetBranch
Flag to use data from background jets.
void SetTrackEventBC(Int_t bc)
virtual Bool_t ComparePtHardAndClusterPt()
TList * fAODBranchList
List with AOD branches created and needed in analysis.
virtual void SwitchOffStatusSelection()
Bool_t IsTriggerMatchedOpenCuts(Int_t i) const
void RemapMCLabelForAODs(Int_t &label)
Float_t GetEMCALEMin() const
Bool_t fEventTrigSemiCentral
Event is AliVEvent::kSemiCentral on its name, it should correspond to PbPb.
TRandom3 fRandom
! Random generator.
Bool_t AcceptDCA(Float_t pt, Float_t dca)
Bool_t IsPileUpFromNotSPDAndNotEMCal() const
Check if event not from pile-up determined neither by SPD nor by EMCal.
virtual Float_t GetPtHardAndJetFactor() const
Bool_t fFillCTS
Use data from CTS.
virtual void SetTrackFilterMaskComplementary(ULong_t)
virtual void InitParameters()
Initialize the parameters with default.
Float_t GetEMCALEMax() const
virtual void GetVertex(Double_t v[3]) const
virtual void SetPtHardAndJetPtComparison(Bool_t compare)
void SwitchOnEmbeddedClustersSelection()
Bool_t IsTriggerClusterTimeRecal() const
virtual void SwitchOffOverlapCheck()
virtual Bool_t FillInputEvent(Int_t iEntry, const char *currentFileName)
Bool_t IsBackgroundJetsSwitchedOn() const
Float_t fPHOSPtMin
pT Threshold on phos clusters.
Bool_t fSelectEmbeddedClusters
Use only simulated clusters that come from embedding.
Bool_t fEventTrigMinBias
Event is min bias on its name, it should correspond to AliVEvent::kMB, AliVEvent::kAnyInt.
Float_t fEMCALParamTimeCutMin[4]
Remove clusters/cells with time smaller than parametrized value, in ns.
Int_t fEventNumber
Event number.
TString fTaskName
Name of task that executes the analysis.
void SetCTSPtMin(Float_t pt)
Bool_t fRemoveBadTriggerEvents
Remove triggered events because trigger was exotic, bad, or out of BC.
Bool_t IsPileUpFromSPDOrEMCal() const
Check if event is from pile-up determined by SPD or EMCal.
Bool_t IsPileUpFromEMCalAndNotSPD() const
Check if event is from pile-up determined by EMCal, not by SPD.
Bool_t fEventTrigEMCALL1Gamma2
Event is L1-Gamma, threshold 2 on its name, it should correspond kEMCEGA.
virtual Float_t GetCentralityBin(Int_t i) const
void SetEventTriggerMask(UInt_t evtTrig=AliVEvent::kAny)
Double_t GetRunTimeStampMax() const
Bool_t fEventTrigEMCALL1Jet1
Event is L1-Gamma, threshold 1 on its name, it should correspond kEMCEGA.
void SetEMCALParametrizedMaxTimeCut(Int_t i, Float_t par)
virtual Int_t GetEventNumber() const
Bool_t fFillEMCALCells
Use data from EMCAL.
void SwitchOffVertexBCEventSelection()
virtual void SetPtHardAndClusterPtFactor(Float_t factor)
Int_t fTriggerClusterId
Id of trigger cluster (cluster->GetID()).
Float_t fCTSPtMax
pT Threshold on charged particles.
void SetTaskName(TString name)
Double_t fEMCALParamTimeCutMax[4]
Remove clusters/cells with time larger than parametrized value, in ns.
virtual void FillInputEMCALCells()
Connects the array with EMCAL cells and the pointer.
Bool_t fFillPHOSCells
Use data from PHOS.
virtual AliVCaloCells * GetEMCALCells() const
Bool_t fRemoveLEDEvents
Remove events where LED was wrongly firing - EMCAL LHC11a.
virtual Float_t GetPtHardAndClusterFactor() const
virtual ULong_t GetTrackFilterMaskComplementary() const
Bool_t IsDCACutOn() const
void SetListWithMixedEventsForCalo(TList **l)
virtual AliFiducialCut * GetFiducialCut()
virtual void SetCentralityOpt(Int_t opt)
Bool_t fIsBadMaxCellEvent
Bad cell triggered event flag, only max energy cell is bad.
Bool_t fSelectSPDHitTracks
Ensure that track hits SPD layers.
Float_t GetEventTriggerL0Threshold() const
TString fFiredTriggerClassName
Name of trigger event type used to do the analysis.
Float_t GetPHOSEMin() const
virtual TClonesArray * GetAODMCParticles() const
TString GetFiredTriggerClasses() const
Bool_t ReadStack() const
virtual void SwitchOffAODPrimaryTrackSelection()
TObjArray * fEMCALClusters
Temporal array with EMCAL CaloClusters.
Bool_t IsEventEMCALL1Jet() const
Float_t GetPHOSEMax() const
Float_t fPHOSPtMax
pT Threshold on phos clusters.
virtual TList * GetAODBranchList() const
Bool_t fAccessTrackTOF
Access the track TOF, in case of problems when accessing GetTOFBunchCrossing.
virtual TString GetInputNonStandardJetBranchName()
void SetTrackStatus(ULong_t bit)
Bool_t IsTriggerMatched() const
Bool_t IsPileUpEventRejectionDone() const
virtual Bool_t CheckForPrimaryVertex() const
Int_t fEMCalBCEvent[19]
Fill one entry per event if there is a cluster in a given BC.
virtual void SetOutputEvent(AliAODEvent *aod)
TString fInputBackgroundJetBranchName
Name of background jet branch.
void SetLastTracksMixedEvent(Int_t e)
virtual AliEventplane * GetEventPlane() const
Bool_t fEventTriggerAtSE
Select triggered event at SE base task or here.
Bool_t IsLEDEventRemoved() const
Float_t fEMCALPtMax
pT Threshold on emcal clusters.
virtual Bool_t ComparePtHardAndJetPt()
Bool_t IsEventCentral() const
virtual Int_t GetCentralityOpt() const
virtual AliAODEvent * GetOutputEvent() const
Bool_t fEventTrigCentral
Event is AliVEvent::kCentral on its name, it should correspond to PbPb.
void SwitchOnTriggerClusterTimeRecal()
Bool_t IsPHOSSwitchedOn() const
Float_t fTrackMultEtaCut
Track multiplicity eta cut.
void SwitchOnUnMatchedTriggerEventsRemoval()
virtual void SetPtHardAndClusterPtComparison(Bool_t compare)
Bool_t IsFastClusterAccepted() const
AliCalorimeterUtils * fCaloUtils
Pointer to AliCalorimeterUtils.
Int_t fCentralityBin[2]
Minimum and maximum value of the centrality for the analysis.
void SwitchOffTriggerClusterTimeRecal()
virtual void FillInputPHOSCells()
Connects the array with PHOS cells and the pointer.
void SetAcceptEventsWithBit(UInt_t bit)
Base class for event, clusters and tracks filtering and preparation for the analysis.
void SwitchOffBadTriggerEventsRemoval()
TObjArray * fDCALClusters
Temporal array with DCAL CaloClusters, not needed in the normal case, use just EMCal array with DCal ...
void SetEMCALClusterListName(TString &name)
Int_t GetTriggerClusterBC() const
Bool_t fUseTrackTimeCut
Do time cut selection.
AliCaloTrackReader & operator=(const AliCaloTrackReader &r)
Assignment operator not implemented.
virtual TString GetEventPlaneMethod() const
Double_t GetEventWeight() const
void SetEventTriggerL1Threshold(Float_t tr)
UInt_t GetEventTriggerMask() const
TArrayI fAcceptEventsWithBit
Accept events if trigger bit is on.
virtual void SwitchOffAODTrackSharedClusterSelection()
void SetEventTriggerL1Bit(Int_t ega, Int_t eje)
void SetTrackMultiplicityEtaCut(Float_t eta)
Int_t fLastMixedTracksEvent
Temporary container with the last event added to the mixing list for tracks.
virtual Float_t GetTPCSharedClusterFraction() const
Int_t GetLastTracksMixedEvent() const
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void MatchTriggerCluster(TArrayI patches)
Bool_t fTimeStampEventSelect
Select events within a fraction of data taking time.
Double_t fTimeStampRunMax
Maximum value of time stamp in run.
TList ** fListMixedTracksEvents
! Container for tracks stored for different events, used in case of own mixing, set in analysis class...
Double_t fEMCALTimeCutMin
Remove clusters/cells with time smaller than this value, in ns.
virtual void SetTrackFilterMask(ULong_t)
Bool_t fEventTrigEMCALL1Jet2
Event is L1-Gamma, threshold 2 on its name, it should correspond kEMCEGA.
void SetEMCalEventBCcut(Int_t bc)
virtual TString GetInputBackgroundJetBranchName()
Int_t fNPileUpClustersCut
Cut to select event as pile-up.
virtual Bool_t IsPtHardAndClusterPtComparisonSet() const
Int_t fDebug
Debugging level.
Bool_t IsEMCALSwitchedOn() const
Bool_t fCheckFidCut
Do analysis for clusters in defined region.
virtual ~AliCaloTrackReader()
Destructor.
Double_t GetTrackTimeCutMin() const
Bool_t fEventTrigEMCALL0
Event is EMCal L0 on its name, it should correspond to AliVEvent::kEMC7, AliVEvent::kEMC1.
virtual void SwitchOnPi0Decay()
Int_t GetV0Multiplicity(Int_t i) const
void SwitchOffAcceptOnlyHIJINGLabels()
Int_t fTrackBCEvent[19]
Fill one entry per event if there is a track in a given BC.
Bool_t AreUnMatchedTriggerEventsRemoved() const
virtual void SetZvertexCut(Float_t zcut=10.)
virtual TObjArray * GetPHOSClusters() const
Int_t GetEMCalEventBC(Int_t bc) const
virtual void FillInputEMCALAlgorithm(AliVCluster *clus, Int_t iclus)
Bool_t fComparePtHardAndJetPt
In MonteCarlo, jet events, reject fake events with wrong jet energy.
void SetRunTimeStamp(Double_t a, Double_t b)
Int_t fNNonPileUpClusters
Number of clusters with time below 20 ns.
virtual Double_t * GetVertex(Int_t evtIndex) const
Int_t fNMixedEvent
Number of events in mixed event buffer.
Int_t GetTriggerClusterIndex() const
Bool_t IsPHOSCellsSwitchedOn() const
Int_t fCentralityOpt
Option for the returned value of the centrality, possible options 5, 10, 100.
Float_t fZvtxCut
Cut on vertex position.
Double_t GetEMCALTimeCutMin() const
AliCaloTrackReader()
Constructor. Initialize parameters.
Bool_t fTriggerPatchClusterMatch
Search for the trigger patch and check if associated cluster was the trigger.
virtual void SetEMCALOverlapAngle(Float_t)
TList ** fListMixedCaloEvents
! Container for photon stored for different events, used in case of own mixing, set in analysis class...
Bool_t fUseParamTimeCut
Use simple or parametrized time cut.
virtual void SetPtHardAndJetPtFactor(Float_t factor)
AliFiducialCut * fFiducialCut
Acceptance cuts.
Bool_t fRejectEMCalTriggerEventsWith2Tresholds
Reject events EG2 also triggered by EG1 or EJ2 also triggered by EJ1.
void SetCaloUtils(AliCalorimeterUtils *caloutils)
virtual void SetEventPlaneMethod(TString m)
Bool_t IsAccessToTrackTimeOn() const
virtual AliESDtrackCuts * GetTrackComplementaryCuts() const
virtual TString GetCentralityClass() const
Bool_t AreClustersRecalculated() const
virtual void FillInputEMCAL()
Bool_t fFillEMCAL
Use data from EMCAL.
Bool_t fFillPHOS
Use data from PHOS.
AliVCaloCells * fEMCALCells
! Temporal array with EMCAL AliVCaloCells.
Bool_t IsEmbeddedClusterSelectionOn() const
virtual AliAODMCHeader * GetAODMCHeader() const
virtual void SetTrackCuts(AliESDtrackCuts *)
Float_t GetPHOSPtMin() const
Int_t GetLastCaloMixedEvent() const
Float_t fCTSPtMin
pT Threshold on charged particles.
Bool_t IsCTSSwitchedOn() const
virtual AliStack * GetStack() const
UInt_t GetMixEventTriggerMask() const
Float_t GetEMCALPtMin() const
void SetPileUpParamForSPD(Int_t i, Double_t param)
virtual AliESDtrackCuts * GetTrackCuts() const
Float_t GetEventTriggerL1Threshold() const
virtual void SwitchOffFiducialCut()
virtual AliAODJetEventBackground * GetBackgroundJets() const
Bool_t IsVertexBCEventSelectionDone() const
virtual void SetCentralityClass(TString name)
Float_t fTriggerL0EventThreshold
L0 Threshold to look for triggered events, set outside.
Float_t fTimeStampEventFracMax
Maximum value of time stamp fraction event.
void SetEMCALPtMin(Float_t pt)
virtual void ResetLists()
Reset lists, called in AliAnaCaloTrackCorrMaker.
Int_t fNPileUpClusters
Number of clusters with time avobe 20 ns.
void SwitchOnBadTriggerEventsRemoval()
Bool_t IsNonStandardJetsSwitchedOn() const
Int_t fTrackMult
Track multiplicity.
AliAODEvent * fOutputEvent
! pointer to aod output.
void SwitchOnClusterELinearityCorrection()
Bool_t IsExoticEvent() const
virtual ULong_t GetTrackFilterMask() const
Float_t GetEMCALPtMax() const
virtual void AddChargedParticlesArray(TArrayI &)
void SetTrackTimeCut(Double_t a, Double_t b)
Bool_t fRecalculateClusters
Correct clusters, recalculate them if recalibration parameters is given.
void SetEMCALTimeCut(Double_t a, Double_t b)
Bool_t IsEventMinimumBias() const
Bool_t fDoRejectNoTrackEvents
Reject events with no selected tracks in event.
Bool_t IsEventEMCALL1Jet2() const
Bool_t fReadStack
Access kine information from stack.
Bool_t fIsTriggerMatchOpenCut[3]
Could not match the event to a trigger patch?, retry opening cuts.
Bool_t ListWithMixedEventsForCaloExists() const
UInt_t fMixEventTriggerMask
Select this triggerered event for mixing, tipically kMB or kAnyINT.
Bool_t fAnaLED
Analyze LED data only.
Bool_t IsEventTriggerAtSEOn() const
Bool_t ListWithMixedEventsForTracksExists() const
virtual void FillVertexArray()
Bool_t IsInTimeWindow(Double_t tof, Float_t energy) const
Bool_t fRemoveUnMatchedTriggers
Analyze events where trigger patch and cluster where found or not.
Float_t GetTrackMultiplicityEtaCut() const
Bool_t IsV0ANDEventSelectionDone() const
virtual Double_t GetEventPlaneAngle() const
void SwitchOffEmbeddedClustersSelection()
void SetRejectEventsWithBit(UInt_t bit)
TObjArray * fCTSTracks
Temporal array with tracks.
Int_t fTriggerPatchTimeWindow[2]
Trigger patch selection window.
virtual AliVEvent * GetOriginalInputEvent() const
Float_t GetEventTimeStampFractionMin() const
AliMCEvent * fMC
! Monte Carlo Event Handler.
virtual void SwitchOnOverlapCheck()
Float_t fPtHardAndJetPtFactor
Factor between ptHard and jet pT to reject/accept event.
virtual void SwitchOnAODPrimaryTrackSelection()
void SetEventTriggerL0Threshold(Float_t tr)
virtual Bool_t IsPtHardAndJetPtComparisonSet() const
Int_t GetTrackEventBC(Int_t bc) const
TString fDeltaAODFileName
Delta AOD file name.
virtual Int_t GetDataType() const
void SwitchOffEMCALEventRejectionWith2Thresholds()
TString GetEMCALClusterListName() const
Int_t GetVertexBC() const
TString GetDeltaAODFileName() const
Bool_t IsPileUpFromEMCal() const
Check if event is from pile-up determined by EMCal.
Bool_t fFillInputNonStandardJetBranch
Flag to use data from non standard jets.
TClonesArray * fNonStandardJets
! Temporal array with jets.
void SetPHOSEMin(Float_t e)
void SetFiredTriggerClassName(TString name)
Int_t fEMCalBCEventCut[19]
Fill one entry per event if there is a cluster in a given BC, depend on cluster E, acceptance cut.
Int_t fTriggerClusterIndex
Index in clusters array of trigger cluster.
Bool_t IsDCALSwitchedOn() const
Bool_t fTriggerL1EventThresholdFix
L1 Threshold is fix and set outside.
Float_t fSmearShowerShapeWidth
Smear shower shape landau function "width" (use in MC).
Class with utils specific to calorimeter clusters/cells.
Int_t fBitEGA
Trigger bit on VCaloTrigger for EGA.
Bool_t IsEventEMCALL1Gamma() const
Bool_t AcceptOnlyHIJINGLabels() const
Double_t GetTrackTimeCutMax() const
Double_t GetTrackDCACut(Int_t i) const
virtual void FillInputBackgroundJets()
Bool_t fDoV0ANDEventSelection
Select events depending on V0AND.
Int_t GetTrackMultiplicity() const
virtual Int_t GetNMixedEvent() const
virtual void SwitchOnConstrainTrackToVertex()
AliAODJetEventBackground * fBackgroundJets
! Background jets.
Bool_t fCorrectELinearity
Correct cluster linearity, always on.
void SetMixEventTriggerMask(UInt_t evtTrig=AliVEvent::kAnyINT)
Int_t fVertexBC
Vertex BC.
virtual Bool_t IsFiducialCutOn() const
void SwitchOffPrimaryVertexSelection()
virtual void SwitchOffOnlyGeneratorParticles()
virtual TObjArray * GetDCALClusters() const
AliAnaWeights * GetWeightUtils()
virtual void SetInputNonStandardJetBranchName(TString name)
void SetEventTimeStampFraction(Float_t a, Float_t b)
Bool_t fIsExoticEvent
Exotic trigger event flag.
TString fInputNonStandardJetBranchName
Name of non standard jet branch.
Int_t GetEMCalEventBCcut(Int_t bc) const
TArrayI fRejectEventsWithBit
Reject events if trigger bit is on.
Bool_t fUseEMCALTimeCut
Do time cut selection.
Bool_t IsBadCellTriggerEvent() const
Int_t fNMCProducedMax
In case of cocktail, select particles in the list with label up to this value.
Store the acceptance cuts for clusters and tracks or particle objects.
void SetEMCALEMax(Float_t e)
Int_t fDataType
Select MC: Kinematics, Data: ESD/AOD, MCData: Both.
virtual Bool_t SelectTrack(AliVTrack *, Double_t *)
virtual void SetFiducialCut(AliFiducialCut *fc)
Bool_t fFillDCAL
Use data from DCAL, not needed in the normal case, use just EMCal array with DCal limits...
Bool_t IsEMCALCellsSwitchedOn() const
void SetTrackEventBCcut(Int_t bc)
void SwitchOffUseParametrizedTimeCut()
Bool_t IsShowerShapeSmeared() const
virtual void SetDataType(Int_t data)
Float_t GetPHOSPtMax() const
Bool_t fIsTriggerMatch
Could match the event to a trigger patch?
Float_t fTriggerL1EventThreshold
L1 Threshold to look for triggered events, set in data.
TString fCentralityClass
Name of selected centrality class.
Int_t GetTrackEventBCcut(Int_t bc) const
ULong_t fTrackStatus
Track selection bit, select tracks refitted in TPC, ITS ...
Bool_t IsPileUpFromSPDAndEMCal() const
Check if event is from pile-up determined by SPD and EMCal.
virtual void FillInputPHOS()
Fill the array with PHOS filtered clusters.
Int_t fNMCProducedMin
In case of cocktail, select particles in the list with label from this value.
Int_t fLastMixedCaloEvent
Temporary container with the last event added to the mixing list for photons.
virtual TObjArray * GetCTSTracks() const
Bool_t fRecalculateVertexBC
Recalculate vertex BC from tracks pointing to vertex.
void SetEMCalEventBC(Int_t bc)
Int_t GetTriggerClusterId() const
virtual void SwitchOffAODHybridTrackSelection()
void SetDeltaAODFileName(TString name)
Bool_t IsEventEMCALL0() const
Float_t GetCTSPtMin() const