AliPhysics  67e0feb (67e0feb)
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 //_________________________________________________________________________
24 //_________________________________________________________________________
25 
26 // --- ROOT system ---
27 #include <TObject.h>
28 #include <TString.h>
29 class TObjArray ;
30 class TTree ;
31 class TArrayI ;
32 #include <TRandom3.h>
33 
34 //--- ANALYSIS system ---
35 #include "AliVEvent.h"
36 class AliVCaloCells;
37 class AliHeader;
38 class AliGenEventHeader;
39 class AliGenPythiaEventHeader;
40 class AliAODEvent;
41 class AliMCEvent;
42 class AliMixedEvent;
43 class AliAODMCHeader;
44 class AliCentrality;
45 class AliMultSelection;
46 class AliESDtrackCuts;
47 //class AliTriggerAnalysis;
48 class AliEventplane;
49 class AliVCluster;
50 #include "AliLog.h"
51 
52 // --- CaloTrackCorr / EMCAL ---
53 #include "AliFiducialCut.h"
55 #include "AliAnaWeights.h"
56 #include "AliMCAnalysisUtils.h"
57 
58 // Jets
59 class AliAODJetEventBackground;
60 
61 class AliCaloTrackReader : public TObject {
62 
63 public:
64 
65  AliCaloTrackReader() ; // ctor
66  virtual ~AliCaloTrackReader() ; // virtual dtor
67  void DeletePointers();
68 
69  //--------------------------------
70  // General methods
71  //--------------------------------
72 
73  virtual void Init();
74 
75  virtual void InitParameters();
76 
77  virtual void Print(const Option_t * opt) const;
78 
79  virtual void ResetLists();
80 
81  virtual Int_t GetDebug() const { return fDebug ; }
82  virtual void SetDebug(Int_t d) { fDebug = d ; }
83 
85  virtual Int_t GetDataType() const { return fDataType ; }
86  virtual void SetDataType(Int_t data ) { fDataType = data ; }
87 
88  virtual Int_t GetEventNumber() const { return fEventNumber ; }
89 
90  virtual TObjString * GetListOfParameters() ;
91 
92  TString GetTaskName() const { return fTaskName ; }
93  void SetTaskName(TString name) { fTaskName = name ; }
94 
95  //---------------------------------------
96  // Input/output event setters and getters
97  //---------------------------------------
98 
99  virtual void SetInputEvent(AliVEvent* input) ;
100  virtual void SetOutputEvent(AliAODEvent* aod) { fOutputEvent = aod ; }
101  virtual void SetMC(AliMCEvent* const mc) { fMC = mc ; }
102  virtual void SetInputOutputMCEvent(AliVEvent* /*esd*/, AliAODEvent* /*aod*/, AliMCEvent* /*mc*/) { ; }
103 
104  // Delta AODs
105 
106  virtual TList * GetAODBranchList() const { return fAODBranchList ; }
112 
113  virtual TList * GetCreateControlHistograms() ;
115  { fEnergyHistogramNbins = nBins ; fEnergyHistogramLimit[0] = emin; fEnergyHistogramLimit[1] = emax ; }
116 
117  //------------------------------------------------------------
118  // Clusters/Tracks arrays filtering/filling methods and switchs
119  //------------------------------------------------------------
120 
121  // detector identificator enum, used here and in AliAnaCaloTrackBaseClass and derived classes
125 
128 
129  // Minimum pt setters and getters
130 
131  Float_t GetEMCALPtMin() const { return fEMCALPtMin ; }
132  Float_t GetPHOSPtMin() const { return fPHOSPtMin ; }
133  Float_t GetCTSPtMin() const { return fCTSPtMin ; }
134  Float_t GetEMCALPtMax() const { return fEMCALPtMax ; }
135  Float_t GetPHOSPtMax() const { return fPHOSPtMax ; }
136  Float_t GetCTSPtMax() const { return fCTSPtMax ; }
137 
138  void SetEMCALPtMin(Float_t pt) { fEMCALPtMin = pt ; }
139  void SetPHOSPtMin (Float_t pt) { fPHOSPtMin = pt ; }
140  void SetCTSPtMin (Float_t pt) { fCTSPtMin = pt ; }
141  void SetEMCALPtMax(Float_t pt) { fEMCALPtMax = pt ; }
142  void SetPHOSPtMax (Float_t pt) { fPHOSPtMax = pt ; }
143  void SetCTSPtMax (Float_t pt) { fCTSPtMax = pt ; }
144 
145  Float_t GetEMCALEMin() const { return GetEMCALPtMin() ; }
146  Float_t GetPHOSEMin() const { return GetPHOSPtMin() ; }
147  Float_t GetEMCALEMax() const { return GetEMCALPtMax() ; }
148  Float_t GetPHOSEMax() const { return GetPHOSPtMax() ; }
149 
150  void SetEMCALEMin (Float_t en) { SetEMCALPtMin(en) ; }
151  void SetPHOSEMin (Float_t en) { SetPHOSPtMin (en) ; }
152  void SetEMCALEMax (Float_t en) { SetEMCALPtMax(en) ; }
153  void SetPHOSEMax (Float_t en) { SetPHOSPtMax (en) ; }
154 
155  virtual Int_t GetTrackID(AliVTrack* track) ;
156 
157  // Distance to bad channels cut
158 
161 
164 
165  // Number of cells in cluster cut
166 
168  Int_t GetPHOSNCellsCut() const { return fPHOSNCellsCut ; }
169 
171  void SetPHOSNCellsCut (Int_t nc) { fPHOSNCellsCut = nc ; }
172 
173  // Track DCA cut
174 
175  Bool_t AcceptDCA(Float_t pt, Float_t dca);
176  Double_t GetTrackDCACut(Int_t i) const { if(i >= 0 && i < 3 ) return fTrackDCACut[i] ;
177  else return -999 ; }
178 
179  void SetTrackDCACut(Int_t i, Float_t cut) { if(i >= 0 && i < 3 )
180  fTrackDCACut[i] = cut ; }
181 
184  Bool_t IsDCACutOn() const { return fUseTrackDCACut ; }
185 
186  // Time cut
187 
190 
192  fTrackTimeCutMax = b ; } // ns
193 
196 
200 
201 
204 
206 
208  fEMCALTimeCutMax = b ; } // ns
209 
212 
215 
218 
219  // Fidutial cuts
220 
223  return fFiducialCut ; }
224  virtual void SetFiducialCut(AliFiducialCut * fc) { fFiducialCut = fc ; }
225  virtual Bool_t IsFiducialCutOn() const { return fCheckFidCut ; }
226  virtual void SwitchOnFiducialCut() { fCheckFidCut = kTRUE ;
227  fFiducialCut = new AliFiducialCut() ; }
228  virtual void SwitchOffFiducialCut() { fCheckFidCut = kFALSE ; }
229 
230  // Cluster/track/cells switchs
231 
232  Bool_t IsCTSSwitchedOn() const { return fFillCTS ; }
233  void SwitchOnCTS() { fFillCTS = kTRUE ; }
234  void SwitchOffCTS() { fFillCTS = kFALSE ; }
235 
236  Bool_t IsEMCALSwitchedOn() const { return fFillEMCAL ; }
237  void SwitchOnEMCAL() { fFillEMCAL = kTRUE ; }
238  void SwitchOffEMCAL() { fFillEMCAL = kFALSE ; }
239 
240  Bool_t IsDCALSwitchedOn() const { return fFillDCAL ; }
241  void SwitchOnDCAL() { fFillDCAL = kTRUE ; }
242  void SwitchOffDCAL() { fFillDCAL = kFALSE ; }
243 
244  Bool_t IsPHOSSwitchedOn() const { return fFillPHOS ; }
245  void SwitchOnPHOS() { fFillPHOS = kTRUE ; }
246  void SwitchOffPHOS() { fFillPHOS = kFALSE ; }
247 
249  void SwitchOnEMCALCells() { fFillEMCALCells = kTRUE ; }
250  void SwitchOffEMCALCells() { fFillEMCALCells = kFALSE ; }
251 
253  void SwitchOnPHOSCells() { fFillPHOSCells = kTRUE ; }
254  void SwitchOffPHOSCells() { fFillPHOSCells = kFALSE ; }
255 
259 
262 
265  void SetScaleFactorPerSM(Int_t ism, Float_t factor)
266  { if ( ism < 22 && ism >= 0 ) fScaleFactorPerSM[ism] = factor ; }
267 
271 
272  // Shower shape smearing function
273 
276 
280 
282 
283  void SetSmearingNLMRange(Int_t mi, Int_t ma) { fSmearNLMMin = mi ; fSmearNLMMax = ma ; }
284 
285  // Filling/ filtering / detector information access methods
286 
287  virtual Bool_t FillInputEvent(Int_t iEntry, const char *currentFileName) ;
288  virtual void FillInputCTS() ;
289  virtual void FillInputEMCAL() ;
290  virtual void FillInputEMCALAlgorithm(AliVCluster * clus, Int_t iclus) ;
291  virtual void FillInputPHOS() ;
292  virtual void FillInputEMCALCells() ;
293  virtual void FillInputPHOSCells() ;
294  virtual void FillInputVZERO() ;
295 
296  Int_t GetV0Signal(Int_t i) const { return fV0ADC[i] ; }
297  Int_t GetV0Multiplicity(Int_t i) const { return fV0Mul[i] ; }
298 
301 
304 
305  // Arrays with clusters/track/cells access method
306 
307  virtual TObjArray* GetCTSTracks() const { return fCTSTracks ; }
308  virtual TObjArray* GetEMCALClusters() const { return fEMCALClusters ; }
309  virtual TObjArray* GetDCALClusters() const { return fDCALClusters ; }
310  virtual TObjArray* GetPHOSClusters() const { return fPHOSClusters ; }
311  virtual AliVCaloCells* GetEMCALCells() const { return fEMCALCells ; }
312  virtual AliVCaloCells* GetPHOSCells() const { return fPHOSCells ; }
313 
314  //-------------------------------------
315  // Event/track selection methods
316  //-------------------------------------
317 
321 
325  fAcceptEventsWithBit.Set(n+1);
326  fAcceptEventsWithBit.AddAt(bit,n) ; }
327 
329  fRejectEventsWithBit.Set(n+1);
330  fRejectEventsWithBit.AddAt(bit,n) ; }
337 
340  TString GetFiredTriggerClasses() const { return GetInputEvent()->GetFiredTriggerClasses() ; }
341 
342 
343  // Event selection when mixed event is used
344 
346  void SetEventTriggerMask(UInt_t evtTrig = AliVEvent::kAny)
347  { fEventTriggerMask = evtTrig ; }
349  void SetMixEventTriggerMask(UInt_t evtTrig = AliVEvent::kAnyINT)
350  { fMixEventTriggerMask = evtTrig ; }
354 
355  // EMCal Triggered events selection, studies
356 
357  TArrayI GetTriggerPatches(Int_t tmin, Int_t tmax);
358  void MatchTriggerCluster(TArrayI patches);
360 
362 
363  Bool_t IsExoticEvent() const { return fIsExoticEvent ; }
368 
372 
377 
378  void SetEventTriggerL1Bit(Int_t ega, Int_t eje) { fBitEGA = ega ; fBitEJE = eje; }
379 
381  fTriggerPatchTimeWindow[1] = max ; }
382 
386 
390 
394 
398 
399  void SetEventTriggerBit();
411 
414 
415  // Other event rejections criteria
416 
420 
424 
428 
432 
436 
437  // Time Stamp
438 
441 
443  fTimeStampRunMax = b ; } // seconds
444 
447 
449  fTimeStampEventFracMax = b ; }
450 
453 
455 
456  // Time Stamp CTP corrected
457 
460 
463  fTimeStampEventCTPBCCorrMax = b ; } // seconds
464 
467 
469 
470 
471  // Event tagging as pile-up
472 
473  Bool_t IsPileUpFromSPD() const ;
474  Bool_t IsPileUpFromEMCal() const ;
480 
482  { fPileUpParamSPD[i] = param ; }
484 
487 
488  Int_t GetEMCalEventBC(Int_t bc) const { if(bc >=0 && bc < 19) return fEMCalBCEvent [bc] ; else return 0 ; }
489  Int_t GetTrackEventBC(Int_t bc) const { if(bc >=0 && bc < 19) return fTrackBCEvent [bc] ; else return 0 ; }
490  Int_t GetEMCalEventBCcut(Int_t bc) const { if(bc >=0 && bc < 19) return fEMCalBCEventCut[bc] ; else return 0 ; }
491  Int_t GetTrackEventBCcut(Int_t bc) const { if(bc >=0 && bc < 19) return fTrackBCEventCut[bc] ; else return 0 ; }
492 
493  void SetEMCalEventBC(Int_t bc) { if(bc >=0 && bc < 19) fEMCalBCEvent [bc] = 1 ; }
494  void SetTrackEventBC(Int_t bc) { if(bc >=0 && bc < 19) fTrackBCEvent [bc] = 1 ; }
495  void SetEMCalEventBCcut(Int_t bc) { if(bc >=0 && bc < 19) fEMCalBCEventCut[bc] = 1 ; }
496  void SetTrackEventBCcut(Int_t bc) { if(bc >=0 && bc < 19) fTrackBCEventCut[bc] = 1 ; }
497 
498  Int_t GetVertexBC(const AliVVertex * vtx);
499  Int_t GetVertexBC() const { return fVertexBC ; }
502 
503  // Track selection
504 
505  ULong_t GetTrackStatus() const { return fTrackStatus ; }
506  void SetTrackStatus(ULong_t bit) { fTrackStatus = bit ; }
507 
508  virtual Bool_t SelectTrack(AliVTrack* , Double_t*) { return kFALSE ; } // See AOD/ESD reader
509 
512 
514  { if(cut < 10) return fTrackMult [cut] ; else return 0 ; }
516  { if(cut < 10) return fTrackSumPt[cut] ; else return 0 ; }
517 
520 
521  void SetTrackMultiplicityPtCut(Int_t cut, Float_t pt) { if(cut < 10) fTrackMultPtCut[cut] = pt; }
523  { if(cut < 10) return fTrackMultPtCut[cut] ; else return 0 ; }
524 
527 
528  // Virtual for AliCaloTrackAODReader
529 
530  virtual ULong_t GetTrackFilterMask() const { return 0 ; }
531  virtual void SetTrackFilterMask(ULong_t) { ; }
532 
533  virtual ULong_t GetTrackFilterMaskComplementary() const { return 0 ; }
535 
536  virtual void SwitchOnAODHybridTrackSelection() { ; }
537  virtual void SwitchOffAODHybridTrackSelection() { ; }
538 
539  virtual void SwitchOnAODPrimaryTrackSelection() { ; }
541 
544 
546  virtual Float_t GetTPCSharedClusterFraction() const { return 0 ; }
547 
548  // Virtual for AliCaloTrackESDReader
549 
550  virtual AliESDtrackCuts* GetTrackCuts() const { return 0 ; }
551  virtual AliESDtrackCuts* GetTrackComplementaryCuts() const { return 0 ; }
552 
553  virtual void SetTrackCuts(AliESDtrackCuts *) { ; }
554  virtual void SetTrackComplementaryCuts(AliESDtrackCuts *) { ; }
555 
556  virtual void SwitchOnConstrainTrackToVertex() { ; }
557  virtual void SwitchOffConstrainTrackToVertex() { ; }
558 
559  // Events species selection
560 
563  void AnalyzeOnlyEventsOfType(Int_t specie) { fEventType = specie ; }
564 
565  //-------------------------------
566  // Vertex methods
567  //-------------------------------
568 
569  virtual void GetVertex(Double_t v[3]) const ;
570  virtual Double_t* GetVertex(Int_t evtIndex) const { return fVertex[evtIndex] ; }
571  virtual void GetVertex(Double_t vertex[3], const Int_t evtIndex) const ;
572  virtual void FillVertexArray();
573  virtual Bool_t CheckForPrimaryVertex() const { return kTRUE ; } // algorithm in ESD/AOD Readers
574  virtual Float_t GetZvertexCut() const { return fZvtxCut ; } // cut on vertex position
575  virtual void SetZvertexCut(Float_t zcut=10.) { fZvtxCut=zcut ; } // cut on vertex position
576 
577  //--------------------------
578  // Centrality / Event Plane
579  //--------------------------
580 
581  virtual AliCentrality* GetCentrality() const {
582  if(fDataType!=kMC) return fInputEvent->GetCentrality() ;
583  else return 0x0 ; }
584 
585  virtual AliMultSelection* GetMultSelCen() const {
586  if(fDataType!=kMC) return (AliMultSelection * ) fInputEvent->FindListObject("MultSelection") ;
587  else return 0x0 ; }
588 
589  virtual void SwitchOnAliCentrality () { fUseAliCentrality = kTRUE ; }
590  virtual void SwitchOffAliCentrality() { fUseAliCentrality = kFALSE ; }
591 
592  virtual void SetCentralityClass(TString name) { fCentralityClass = name ; }
593  virtual void SetCentralityOpt(Int_t opt) { fCentralityOpt = opt ; }
594  virtual TString GetCentralityClass() const { return fCentralityClass ; }
595  virtual Int_t GetCentralityOpt() const { return fCentralityOpt ; }
596  virtual Int_t GetEventCentrality() const ;
597  virtual void SetCentralityBin(Int_t min, Int_t max) //Set the centrality bin to select the event. If used, then need to get percentile
598  { fCentralityBin[0]=min; fCentralityBin[1]=max;
599  if(min>=0 && max > 0) fCentralityOpt = 100 ; }
600  virtual Float_t GetCentralityBin(Int_t i) const { if(i < 0 || i > 1) return 0 ;
601  else return fCentralityBin[i] ; }
602 
603  virtual AliEventplane* GetEventPlane() const { if(fDataType!=kMC) return fInputEvent->GetEventplane() ;
604  else return 0x0 ; }
605  virtual Double_t GetEventPlaneAngle() const ;
607  virtual TString GetEventPlaneMethod() const { return fEventPlaneMethod ; }
608 
609  //--------------------
610  // Mixing
611  //--------------------
612 
615 
616  TList * GetListWithMixedEventsForCalo (Int_t bi) const { if(fListMixedCaloEvents) return fListMixedCaloEvents [bi] ; else return 0 ; }
618 
620  else return kFALSE ; }
621 
623  else return kFALSE ; }
624 
627 
629  if(fListMixedCaloEvents) printf("AliCaloTrackReader::SetListWithMixedEventsForCalo() - Track Mixing event list already set, nothing done\n");
630  else fListMixedCaloEvents = l ; }
631 
633  if(fListMixedTracksEvents) printf("AliCaloTrackReader::SetListWithMixedEventsForTracks() - Calorimeter Mixing event list already set, nothing done\n");
634  else fListMixedTracksEvents = l ; }
635 
636  //-------------------------------------
637  // Other methods
638  //-------------------------------------
639 
642  { fCaloUtils = caloutils ; }
643 
644  Double_t GetEventWeight() const { return fEventWeight ; }
646  return fWeightUtils ; }
647 
648  virtual Double_t GetBField() const { return fInputEvent->GetMagneticField() ; }
649 
651  Float_t GetPhi (Float_t phi) const { if ( phi < 0 ) phi += TMath::TwoPi() ; return phi ; }
652 
653  Float_t DegToRad(Float_t deg) const { deg *= TMath::DegToRad(); return deg ; }
654 
655  Float_t RadToDeg(Float_t rad) const { rad *= TMath::RadToDeg(); return rad ; }
656 
658  virtual void SetMCAnalysisUtils(AliMCAnalysisUtils * mcutils) {
659  if ( fMCUtils ) delete fMCUtils;
660  fMCUtils = mcutils ; }
661 
662  //------------------------------------------------
663  // MC analysis specific methods
664  //-------------------------------------------------
665 
666  // Kinematics and galice.root available
667 
668  virtual AliHeader* GetHeader() const ;
669  virtual AliGenEventHeader* GetGenEventHeader() const { return fGenEventHeader ; }
670  virtual AliGenPythiaEventHeader* GetGenPythiaEventHeader()
671  const { return fGenPythiaEventHeader ; }
672  // See implementation in AOD and ESD readers
673 
674  // Filtered kinematics in AOD
675 
676  virtual TClonesArray* GetAODMCParticles() const ;
677  virtual AliAODMCHeader* GetAODMCHeader () const ;
678 
679  virtual AliVEvent* GetInputEvent() const { return fInputEvent ; }
680  virtual AliVEvent* GetOriginalInputEvent() const { return 0x0 ; }
681  virtual AliAODEvent* GetOutputEvent() const { return fOutputEvent ; }
682  virtual AliMCEvent* GetMC() const { return fMC ; }
683  virtual AliMixedEvent* GetMixedEvent() const { return fMixedEvent ; }
684  virtual Int_t GetNMixedEvent() const { return fNMixedEvent ; }
685 
686  void SwitchOnStack() { AliError("Obsolete, remove this setting in AddTask") ; }
687  void SwitchOffStack() { AliError("Obsolete, remove this setting in AddTask") ; }
688  void SwitchOnAODMCParticles() { AliError("Obsolete, remove this setting in AddTask") ; }
689  void SwitchOffAODMCParticles() { AliError("Obsolete, remove this setting in AddTask") ; }
690 
691  void RemapMCLabelForAODs(Int_t &label);
692 
693  // Select generated events, depending on comparison of pT hard and jets
694 
695  virtual Bool_t ComparePtHardAndJetPt(Int_t process, TString processName) ;
697  virtual void SetPtHardAndJetPtComparison(Bool_t compare) { fComparePtHardAndJetPt = compare ; }
699  virtual void SetPtHardAndJetPtFactor(Float_t factor) { fPtHardAndJetPtFactor = factor ; }
700 
701  virtual Bool_t ComparePtHardAndClusterPt(Int_t process, TString processName) ;
705  virtual void SetPtHardAndClusterPtFactor(Float_t factor) { fPtHardAndClusterPtFactor = factor ; }
706 
707  // Select particles or clusters depending on generator
709  { fNMCGenerToAccept = nGen ;
710  if ( nGen > 5 ) fNMCGenerToAccept = 5 ;
711  else if ( nGen < 0 ) fNMCGenerToAccept = 0 ; }
713 
715  { if ( ig < 5 && ig >= 0 ) fMCGenerToAccept[ig] = name ; }
716  virtual void SetIndexOfMCGeneratorsToAccept(Int_t ig, Int_t index)
717  { if ( ig < 5 && ig >= 0 ) fMCGenerIndexToAccept[ig] = index ; }
718  virtual TString GetNameOfMCGeneratorsToAccept(Int_t ig) const { return fMCGenerToAccept[ig] ; }
720 
721  Bool_t AcceptParticleMCLabel(Int_t mcLabel) const ;
722  Int_t GetCocktailGeneratorAndIndex(Int_t index, TString & nameGen) const ;
723  TString GetGeneratorNameAndIndex(Int_t index, Int_t & genIndex) const ;
724 
727 
728 
729 
730  // MC reader methods, declared there to allow compilation, they are only used in the MC reader
731 
732  virtual void AddNeutralParticlesArray(TArrayI & /*array*/) { ; }
733  virtual void AddChargedParticlesArray(TArrayI & /*array*/) { ; }
734  virtual void AddStatusArray(TArrayI & /*array*/) { ; }
735 
736  virtual void SwitchOnPi0Decay() { ; }
737  virtual void SwitchOffPi0Decay() { ; }
738  virtual void SwitchOnStatusSelection() { ; }
739  virtual void SwitchOffStatusSelection() { ; }
740  virtual void SwitchOnOverlapCheck() { ; }
741  virtual void SwitchOffOverlapCheck() { ; }
742  virtual void SwitchOnOnlyGeneratorParticles() { ; }
743  virtual void SwitchOffOnlyGeneratorParticles() { ; }
744 
745  virtual void SetEMCALOverlapAngle(Float_t /*angle*/) { ; }
746  virtual void SetPHOSOverlapAngle(Float_t /*angle*/) { ; }
747 
748  //-------------
749  // Jets
750  //-------------
751 
755 
759 
760  virtual void FillInputNonStandardJets() ;
761  virtual TClonesArray* GetNonStandardJets() const { return fNonStandardJets ; }
764 
765  virtual void FillInputBackgroundJets() ;
766  virtual AliAODJetEventBackground* GetBackgroundJets() const { return fBackgroundJets ; }
769 
770  protected:
771 
777 
780 
783 
790 
793 
796 
807 
810 
813 
816 
819 
822 
825 
826  AliVCaloCells * fEMCALCells ;
827  AliVCaloCells * fPHOSCells ;
828 
829  AliVEvent * fInputEvent;
831  AliMCEvent * fMC;
832 
842 
845 
848  TRandom3 fRandom ;
852 
853  // Track selection and counting
856 
862 
865 
866  // Trigger bit
870 
879 
882 
884 
886 
889 
892 
893  AliMixedEvent * fMixedEvent ;
896 
901 
903 
904  Int_t fV0ADC[2] ;
905  Int_t fV0Mul[2] ;
906 
909 
910  // Event selection
911 
915 
919 
923 
934 
935 
941 //AliTriggerAnalysis* fTriggerAnalysis; ///< Access to trigger selection algorithm for V0AND calculation.
942 
948 
952 
956 
957  // Pile-up in EMCal
958 
968 
969  // Centrality/Event plane
975 
976  // Jets
978  TClonesArray * fNonStandardJets;
981  AliAODJetEventBackground * fBackgroundJets;
983 
986 
988 
989  TLorentzVector fMomentum;
990 
991  // cut control histograms
992 
998  TH1F * fhPHOSClusterCutsE [7];
999  TH1F * fhCTSTrackCutsPt [6];
1000 
1003 
1005 
1006  // MC labels to accept
1010 
1012 
1013 
1014  AliGenEventHeader * fGenEventHeader;
1015  AliGenPythiaEventHeader * fGenPythiaEventHeader;
1016 
1018  AliCaloTrackReader( const AliCaloTrackReader & r) ;
1019 
1022 
1024  ClassDef(AliCaloTrackReader,81) ;
1026 
1027 } ;
1028 
1029 #endif //ALICALOTRACKREADER_H
1030 
1031 
1032 
Bool_t IsPileUpFromSPD() const
virtual Int_t GetDebug() const
virtual Float_t GetZvertexCut() const
Bool_t IsBadMaxCellTriggerEvent() const
void SwitchOnLEDEventsRemoval(Int_t opt=1)
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)
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)
Double_t fTimeStampEventCTPBCCorrMax
Maximum value of time stamp corrected by CTP in run.
AliCalorimeterUtils * GetCaloUtils() const
TH2F * fhEMCALClusterEtaPhiFidCut
! Control histogram on EMCAL clusters acceptance, after fiducial cuts
Float_t fTimeStampEventFracMin
Minimum value of time stamp fraction event.
void AnalyzeOnlyEventsOfType(Int_t specie)
double Double_t
Definition: External.C:58
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
TString GetEMCALCellsListName() const
TObjArray * fPHOSClusters
Temporal array with PHOS CaloClusters.
TString GetGeneratorNameAndIndex(Int_t index, Int_t &genIndex) const
Double_t fTrackDCACut[3]
Remove tracks with DCA larger than cut, parameters of function stored here.
Definition: External.C:236
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()
virtual Int_t GetNumberOfMCGeneratorsToAccept() const
void SwitchOnEMCALEventRejectionWith2Thresholds()
Int_t fRemoveLEDEvents
Remove events where LED was wrongly firing - only EMCAL LHC11a for this equal to 1, generalized to any SM for larger.
virtual void SetCentralityBin(Int_t min, Int_t max)
void SetPHOSPtMin(Float_t pt)
Bool_t AreBadTriggerEventsRemoved() const
Float_t GetEventTimeStampFractionMax() const
Int_t fSmearNLMMin
Do smearing for clusters with at least this value.
void SwitchOffExcludeEventTimeCTPBCCorrStamp()
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".
virtual TString GetNameOfMCEventHederGeneratorToAccept() const
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)
void SetEMCALCellsListName(TString name)
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)
TH2F * fhEMCALClusterTimeE
! Control histogram on EMCAL timing
TList * GetListWithMixedEventsForCalo(Int_t bi) const
AliMixedEvent * fMixedEvent
! Mixed event object. This class is not the owner.
virtual AliVEvent * GetInputEvent() const
virtual void SwitchOnOnlyGeneratorParticles()
void SetSmearingFunction(Int_t smfu)
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
virtual Int_t GetIndexOfMCGeneratorsToAccept(Int_t ig) 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.
energy
Definition: HFPtSpectrum.C:44
Bool_t IsPrimaryVertexSelectionDone() const
void SetEMCALEMin(Float_t en)
Float_t GetEMCALBadChannelMinDist() const
virtual AliGenPythiaEventHeader * GetGenPythiaEventHeader() 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:34
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.
virtual AliMultSelection * GetMultSelCen() const
TString fEMCALClustersListName
Alternative list of clusters produced elsewhere and not from InputEvent.
ULong_t GetTrackStatus() const
Float_t fPHOSBadChMinDist
Minimal distance to bad channel to accept cluster in PHOS, cm.
Double_t GetRunTimeStampMin() const
Bool_t fWriteOutputDeltaAOD
Write the created delta AOD objects into file.
virtual void SetNameOfMCEventHederGeneratorToAccept(TString name)
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...
void SwitchOnClusterEScalePerSMCorrection()
Double_t ** fVertex
! Vertex array 3 dim for each mixed event buffer.
TH1F * fhCTSTrackCutsPt[6]
! Control histogram on the different CTS tracks selection cuts, pT
Bool_t IsEventWithNoTrackRejectionDone() const
UInt_t fEventTriggerMask
Select this triggerered event.
virtual Int_t GetEventCentrality() const
Double_t GetEMCALTimeCutMax() const
Int_t GetSmearingFunction() const
virtual void SetTPCSharedClusterFraction(Float_t)
virtual AliCentrality * GetCentrality() const
AliVCaloCells * fPHOSCells
! Temporal array with PHOS AliVCaloCells.
TList * fOutputContainer
! Output container with cut control histograms.
Bool_t IsEventEMCALL1Gamma2() const
virtual AliMixedEvent * GetMixedEvent() const
Int_t fEnergyHistogramNbins
Binning of the control histograms, min and max window.
Bool_t fFillInputBackgroundJetBranch
Flag to use data from background jets.
void SetTrackEventBC(Int_t bc)
TList * fAODBranchList
List with AOD branches created and needed in analysis.
virtual void SwitchOffStatusSelection()
Bool_t IsTriggerMatchedOpenCuts(Int_t i) const
Float_t GetTrackMultiplicityPtCut(Int_t cut=0) 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 AliGenEventHeader * GetGenEventHeader() const
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()
Int_t fTrackMult[10]
Track multiplicity, count for different pT cuts.
Bool_t IsTriggerClusterTimeRecal() const
virtual void SwitchOffOverlapCheck()
virtual Bool_t FillInputEvent(Int_t iEntry, const char *currentFileName)
Float_t fScaleFactorPerSM[22]
Scale factor depending on SM number to be applied to cluster energy.
void SetSmearingNLMRange(Int_t mi, Int_t ma)
virtual void SetMCAnalysisUtils(AliMCAnalysisUtils *mcutils)
Bool_t IsBackgroundJetsSwitchedOn() const
void SetTrackMultiplicityNPtCut(Float_t ncut)
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.
Float_t fTrackMultPtCut[10]
Track multiplicity and sum pt cuts list.
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
Double_t fTimeStampEventCTPBCCorrMin
Minimum value of time stamp corrected by CTP in run.
Bool_t fFillEMCALCells
Use data from EMCAL.
AliGenPythiaEventHeader * fGenPythiaEventHeader
! Event header casted to pythia
void SwitchOffVertexBCEventSelection()
virtual void SetPtHardAndClusterPtFactor(Float_t factor)
Float_t fEnergyHistogramLimit[2]
Binning of the control histograms, number of bins.
Int_t fTriggerClusterId
Id of trigger cluster (cluster->GetID()).
Int_t fPHOSNCellsCut
Accept for the analysis PHOS clusters with more than fNCellsCut cells.
Float_t fCTSPtMax
pT Threshold on charged particles.
void SetTaskName(TString name)
Int_t GetCocktailGeneratorAndIndex(Int_t index, TString &nameGen) const
Double_t fEMCALParamTimeCutMax[4]
Remove clusters/cells with time larger than parametrized value, in ns.
Double_t GetTimeStampEventCTPBCCorrMin() const
virtual void FillInputEMCALCells()
Connects the array with EMCAL cells and the pointer.
Bool_t fFillPHOSCells
Use data from PHOS.
virtual AliVCaloCells * GetEMCALCells() const
TH2F * fhEMCALClusterEtaPhi
! Control histogram on EMCAL clusters acceptance, before fiducial cuts
void SetScaleFactorPerSM(Int_t ism, Float_t factor)
Int_t GetPHOSNCellsCut() const
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.
int Int_t
Definition: External.C:63
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
Definition: External.C:204
Int_t GetTrackMultiplicity(Int_t cut=0) const
TString GetFiredTriggerClasses() const
virtual void SwitchOffAODPrimaryTrackSelection()
unsigned int UInt_t
Definition: External.C:33
TObjArray * fEMCALClusters
Temporal array with EMCAL CaloClusters.
Float_t GetPHOSBadChannelMinDist() const
Bool_t IsEventEMCALL1Jet() const
Float_t GetPHOSEMax() const
AliGenEventHeader * fGenEventHeader
! Event header
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.
float Float_t
Definition: External.C:68
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
Int_t fNMCGenerToAccept
Number of MC generators that should not be included in analysis.
void SetControlHistogramEnergyBinning(Int_t nBins, Float_t emin, Float_t emax)
Float_t fEMCALPtMax
pT Threshold on emcal clusters.
virtual void SetNumberOfMCGeneratorsToAccept(Int_t nGen)
Int_t fEventType
Set the event species: 7 physics, 0 MC, 8 LED (not useful now)
Bool_t IsEventCentral() const
void SetEMCALBadChannelMinDist(Float_t di)
virtual Int_t GetCentralityOpt() const
virtual AliAODEvent * GetOutputEvent() const
virtual Bool_t ComparePtHardAndClusterPt(Int_t process, TString processName)
Bool_t fEventTrigCentral
Event is AliVEvent::kCentral on its name, it should correspond to PbPb.
void SwitchOnTriggerClusterTimeRecal()
Bool_t IsPHOSSwitchedOn() const
virtual TObjString * GetListOfParameters()
Save parameters used for analysis in a string.
Float_t fTrackMultEtaCut
Track multiplicity eta cut.
void SetEMCALNCellsCut(Int_t nc)
void SwitchOnUnMatchedTriggerEventsRemoval()
Bool_t IsExcludeEventTimeStampCTPBCCorrOn()
TString fMCGenerToAccept[5]
List with name of generators that should not be included.
virtual void SetPtHardAndClusterPtComparison(Bool_t compare)
Bool_t IsFastClusterAccepted() const
void SetPHOSNCellsCut(Int_t nc)
AliCalorimeterUtils * fCaloUtils
Pointer to AliCalorimeterUtils.
Int_t fCentralityBin[2]
Minimum and maximum value of the centrality for the analysis.
void SetEMCALClusterListName(TString name)
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.
Int_t GetEMCALNCellsCut() const
void SwitchOffBadTriggerEventsRemoval()
TObjArray * fDCALClusters
Temporal array with DCAL CaloClusters, not needed in the normal case, use just EMCal array with DCal ...
Int_t GetTriggerClusterBC() const
Bool_t fUseTrackTimeCut
Do time cut selection.
AliCaloTrackReader & operator=(const AliCaloTrackReader &r)
Assignment operator not implemented.
virtual TString GetEventPlaneMethod() const
virtual Int_t GetTrackID(AliVTrack *track)
Double_t GetEventWeight() const
void SetEventTriggerL1Threshold(Float_t tr)
Bool_t fScaleEPerSM
Scale cluster energy by a constant factor, depending on SM.
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.
unsigned long ULong_t
Definition: External.C:38
TH1F * fhEMCALClusterCutsE[8]
! Control histogram on the different EMCal cluster selection cuts, E
virtual Float_t GetTPCSharedClusterFraction() const
Int_t GetLastTracksMixedEvent() const
virtual Bool_t ComparePtHardAndJetPt(Int_t process, TString processName)
virtual void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void MatchTriggerCluster(TArrayI patches)
void SetTrackMultiplicityPtCut(Int_t cut, Float_t pt)
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
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.
void SwitchOffClusterEScalePerSMCorrection()
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.
virtual void SwitchOnAliCentrality()
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)
void SetTimeStampEventCTPBCCorrRange(Double_t a, Double_t b)
TH1F * fhPHOSClusterCutsE[7]
! Control histogram on the different PHOS cluster selection cuts, E
virtual void SetEventPlaneMethod(TString m)
virtual AliMCAnalysisUtils * GetMCAnalysisUtils()
Double_t GetTimeStampEventCTPBCCorrMax() const
void SetPHOSEMin(Float_t en)
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
Int_t fEMCALNCellsCut
Accept for the analysis EMCAL clusters with more than fNCellsCut cells.
virtual void SetTrackCuts(AliESDtrackCuts *)
Float_t GetPHOSPtMin() const
Int_t GetLastCaloMixedEvent() const
Float_t fCTSPtMin
pT Threshold on charged particles.
Bool_t IsCTSSwitchedOn() 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()
Int_t fSmearNLMMax
Do smearing for clusters with at maximum this value.
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 DegToRad(Float_t deg) const
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
AliAODEvent * fOutputEvent
! pointer to aod output.
void SetPHOSBadChannelMinDist(Float_t di)
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
smearingFunction
Smearing function enum.
Float_t fEMCALBadChMinDist
Minimal distance to bad channel to accept cluster in EMCal, cell units.
Bool_t fTimeStampEventCTPBCCorrExclude
Activate event selection within a range of data taking time CTP corrected. ESD only.
Bool_t fIsTriggerMatchOpenCut[3]
Could not match the event to a trigger patch?, retry opening cuts.
TString fEMCALCellsListName
Alternative list of cells produced elsewhere and not from InputEvent.
Bool_t ListWithMixedEventsForCaloExists() const
UInt_t fMixEventTriggerMask
Select this triggerered event for mixing, tipically kMB or kAnyINT.
Float_t RadToDeg(Float_t rad) const
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
Bool_t AcceptParticleMCLabel(Int_t mcLabel) const
AliMCEvent * fMC
! Monte Carlo Event Handler.
virtual void SwitchOnOverlapCheck()
TH1I * fhNEventsAfterCut
! Each bin represents number of events resulting after a given selection cut: vertex, trigger, ...
Float_t fPtHardAndJetPtFactor
Factor between ptHard and jet pT to reject/accept event.
void SetEMCALEMax(Float_t en)
TString fMCGenerEventHeaderToAccept
Accept events that contain at least this event header name.
virtual void SwitchOnAODPrimaryTrackSelection()
void SetEventTriggerL0Threshold(Float_t tr)
const char Option_t
Definition: External.C:48
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
Float_t fTrackSumPt[10]
Track sum pT, count for different pT cuts.
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 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.
bool Bool_t
Definition: External.C:53
Float_t fSmearShowerShapeWidth
Smear shower shape landau function "width" (use in MC).
void SetPHOSEMax(Float_t en)
Class with utils specific to calorimeter clusters/cells.
Int_t fBitEGA
Trigger bit on VCaloTrigger for EGA.
Int_t fTrackMultNPtCut
Track multiplicty, number of pt cuts.
AliMCAnalysisUtils * fMCUtils
MonteCarlo Analysis utils. Initialized in SetMC()
Bool_t IsEventEMCALL1Gamma() const
Double_t GetTrackTimeCutMax() const
Double_t GetTrackDCACut(Int_t i) const
virtual void FillInputBackgroundJets()
virtual TString GetNameOfMCGeneratorsToAccept(Int_t ig) const
virtual void SetIndexOfMCGeneratorsToAccept(Int_t ig, Int_t index)
Bool_t fDoV0ANDEventSelection
Select events depending on V0AND.
virtual Int_t GetNMixedEvent() const
virtual void SwitchOnConstrainTrackToVertex()
virtual void SwitchOffAliCentrality()
virtual void SetNameOfMCGeneratorsToAccept(Int_t ig, TString name)
Class with analysis utils for simulations.
AliAODJetEventBackground * fBackgroundJets
! Background jets.
Bool_t fCorrectELinearity
Correct cluster linearity, always on.
void SetMixEventTriggerMask(UInt_t evtTrig=AliVEvent::kAnyINT)
virtual TList * GetCreateControlHistograms()
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
Float_t GetPhi(Float_t phi) const
Shift phi angle in case of negative value 360 degrees. Example TLorenzVector::Phi defined in -pi to p...
Store the acceptance cuts for clusters and tracks or particle objects.
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)
Int_t GetTrackMultiplicityNPtCut() const
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 fMCGenerIndexToAccept[5]
List with index of generators that should not be included.
Int_t GetTrackEventBCcut(Int_t bc) const
void SwitchOnExcludeEventTimeCTPBCCorrStamp()
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.
Float_t GetTrackSumPt(Int_t cut=0) const
virtual void FillInputPHOS()
Fill the array with PHOS filtered clusters.
Int_t fLastMixedCaloEvent
Temporary container with the last event added to the mixing list for photons.
Bool_t fUseAliCentrality
Select as centrality estimator AliCentrality (Run1) or AliMultSelection (Run1 and Run2) ...
virtual TObjArray * GetCTSTracks() const
Int_t fSmearingFunction
Choice of smearing function. 0 no smearing. 1 smearing from Gustavo (Landau center at 0)...
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