AliPhysics  master (3d17d9d)
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 class AliCaloTrackReader : public TObject {
59 
60 public:
61 
62  AliCaloTrackReader() ; // ctor
63  virtual ~AliCaloTrackReader() ; // virtual dtor
64  void DeletePointers();
65 
66  //--------------------------------
67  // General methods
68  //--------------------------------
69 
70  virtual void Init();
71 
72  virtual void InitParameters();
73 
74  virtual void Print(const Option_t * opt) const;
75 
76  virtual void ResetLists();
77 
78  virtual Int_t GetDebug() const { return fDebug ; }
79  virtual void SetDebug(Int_t d) { fDebug = d ; }
80 
82  virtual Int_t GetDataType() const { return fDataType ; }
83  virtual void SetDataType(Int_t data ) { fDataType = data ; }
84 
85  virtual Int_t GetEventNumber() const { return fEventNumber ; }
86 
87  virtual TObjString * GetListOfParameters() ;
88 
89  TString GetTaskName() const { return fTaskName ; }
90  void SetTaskName(TString name) { fTaskName = name ; }
91 
92  //---------------------------------------
93  // Input/output event setters and getters
94  //---------------------------------------
95 
96  virtual void SetInputEvent(AliVEvent* input) ;
97  virtual void SetOutputEvent(AliAODEvent* aod) { fOutputEvent = aod ; }
98  virtual void SetMC(AliMCEvent* const mc) { fMC = mc ; }
99  virtual void SetInputOutputMCEvent(AliVEvent* /*esd*/, AliAODEvent* /*aod*/, AliMCEvent* /*mc*/) { ; }
100 
101  // Delta AODs
102 
103  virtual TList * GetAODBranchList() const { return fAODBranchList ; }
109 
110  virtual TList * GetCreateControlHistograms() ;
112  { fEnergyHistogramNbins = nBins ; fEnergyHistogramLimit[0] = emin; fEnergyHistogramLimit[1] = emax ; }
113 
114  //------------------------------------------------------------
115  // Clusters/Tracks arrays filtering/filling methods and switchs
116  //------------------------------------------------------------
117 
118  // detector identificator enum, used here and in AliAnaCaloTrackBaseClass and derived classes
122 
125 
126  // Minimum pt setters and getters
127 
128  Float_t GetEMCALPtMin() const { return fEMCALPtMin ; }
129  Float_t GetPHOSPtMin() const { return fPHOSPtMin ; }
130  Float_t GetCTSPtMin() const { return fCTSPtMin ; }
131  Float_t GetEMCALPtMax() const { return fEMCALPtMax ; }
132  Float_t GetPHOSPtMax() const { return fPHOSPtMax ; }
133  Float_t GetCTSPtMax() const { return fCTSPtMax ; }
134 
135  void SetEMCALPtMin(Float_t pt) { fEMCALPtMin = pt ; }
136  void SetPHOSPtMin (Float_t pt) { fPHOSPtMin = pt ; }
137  void SetCTSPtMin (Float_t pt) { fCTSPtMin = pt ; }
138  void SetEMCALPtMax(Float_t pt) { fEMCALPtMax = pt ; }
139  void SetPHOSPtMax (Float_t pt) { fPHOSPtMax = pt ; }
140  void SetCTSPtMax (Float_t pt) { fCTSPtMax = pt ; }
141 
142  Float_t GetEMCALEMin() const { return GetEMCALPtMin() ; }
143  Float_t GetPHOSEMin() const { return GetPHOSPtMin() ; }
144  Float_t GetEMCALEMax() const { return GetEMCALPtMax() ; }
145  Float_t GetPHOSEMax() const { return GetPHOSPtMax() ; }
146 
147  void SetEMCALEMin (Float_t en) { SetEMCALPtMin(en) ; }
148  void SetPHOSEMin (Float_t en) { SetPHOSPtMin (en) ; }
149  void SetEMCALEMax (Float_t en) { SetEMCALPtMax(en) ; }
150  void SetPHOSEMax (Float_t en) { SetPHOSPtMax (en) ; }
151 
152  virtual Int_t GetTrackID(AliVTrack* track) ;
153 
154  // Distance to bad channels cut
155 
158 
161 
162  // Number of cells in cluster cut
163 
165  Int_t GetPHOSNCellsCut() const { return fPHOSNCellsCut ; }
166 
168  void SetPHOSNCellsCut (Int_t nc) { fPHOSNCellsCut = nc ; }
169 
170  // Track DCA cut
171 
172  Bool_t AcceptDCA(Float_t pt, Float_t dca);
173  Double_t GetTrackDCACut(Int_t i) const { if(i >= 0 && i < 3 ) return fTrackDCACut[i] ;
174  else return -999 ; }
175 
176  void SetTrackDCACut(Int_t i, Float_t cut) { if(i >= 0 && i < 3 )
177  fTrackDCACut[i] = cut ; }
178 
181  Bool_t IsDCACutOn() const { return fUseTrackDCACut ; }
182 
183  // Time cut
184 
187 
189  fTrackTimeCutMax = b ; } // ns
190 
193 
197 
198 
201 
203 
205  fEMCALTimeCutMax = b ; } // ns
206 
209 
212 
215 
218 
221 
222  // Fidutial cuts
223 
226  return fFiducialCut ; }
227  virtual void SetFiducialCut(AliFiducialCut * fc) { fFiducialCut = fc ; }
228  virtual Bool_t IsFiducialCutOn() const { return fCheckFidCut ; }
229  virtual void SwitchOnFiducialCut() { fCheckFidCut = kTRUE ;
230  fFiducialCut = new AliFiducialCut() ; }
231  virtual void SwitchOffFiducialCut() { fCheckFidCut = kFALSE ; }
232 
233  // Cluster/track/cells switchs
234 
235  Bool_t IsCTSSwitchedOn() const { return fFillCTS ; }
236  void SwitchOnCTS() { fFillCTS = kTRUE ; }
237  void SwitchOffCTS() { fFillCTS = kFALSE ; }
238 
239  Bool_t IsEMCALSwitchedOn() const { return fFillEMCAL ; }
240  void SwitchOnEMCAL() { fFillEMCAL = kTRUE ; }
241  void SwitchOffEMCAL() { fFillEMCAL = kFALSE ; }
242 
243  Bool_t IsDCALSwitchedOn() const { return fFillDCAL ; }
244  void SwitchOnDCAL() { fFillDCAL = kTRUE ; }
245  void SwitchOffDCAL() { fFillDCAL = kFALSE ; }
246 
247  Bool_t IsPHOSSwitchedOn() const { return fFillPHOS ; }
248  void SwitchOnPHOS() { fFillPHOS = kTRUE ; }
249  void SwitchOffPHOS() { fFillPHOS = kFALSE ; }
250 
252  void SwitchOnEMCALCells() { fFillEMCALCells = kTRUE ; }
253  void SwitchOffEMCALCells() { fFillEMCALCells = kFALSE ; }
254 
256  void SwitchOnPHOSCells() { fFillPHOSCells = kTRUE ; }
257  void SwitchOffPHOSCells() { fFillPHOSCells = kFALSE ; }
258 
262 
265 
268  void SetScaleFactorPerSM(Int_t ism, Float_t factor)
269  { if ( ism < 22 && ism >= 0 ) fScaleFactorPerSM[ism] = factor ; }
270 
274 
275  // Shower shape smearing function
276 
279 
283 
285 
286  void SetSmearingNLMRange(Int_t mi, Int_t ma) { fSmearNLMMin = mi ; fSmearNLMMax = ma ; }
287 
288  // Filling/ filtering / detector information access methods
289 
290  virtual Bool_t FillInputEvent(Int_t iEntry, const char *currentFileName) ;
291  virtual void FillInputCTS() ;
292  virtual void FillInputEMCAL() ;
293  virtual void FillInputEMCALAlgorithm(AliVCluster * clus, Int_t iclus) ;
294  virtual void FillInputPHOS() ;
295  virtual void FillInputEMCALCells() ;
296  virtual void FillInputPHOSCells() ;
297  virtual void FillInputVZERO() ;
298 
299  Int_t GetV0Signal(Int_t i) const { return fV0ADC[i] ; }
300  Int_t GetV0Multiplicity(Int_t i) const { return fV0Mul[i] ; }
301 
304 
307 
308  // Arrays with clusters/track/cells access method
309 
310  virtual TObjArray* GetCTSTracks() const { return fCTSTracks ; }
311  virtual TObjArray* GetEMCALClusters() const { return fEMCALClusters ; }
312  virtual TObjArray* GetDCALClusters() const { return fDCALClusters ; }
313  virtual TObjArray* GetPHOSClusters() const { return fPHOSClusters ; }
314  virtual AliVCaloCells* GetEMCALCells() const { return fEMCALCells ; }
315  virtual AliVCaloCells* GetPHOSCells() const { return fPHOSCells ; }
316 
317  //-------------------------------------
318  // Event/track selection methods
319  //-------------------------------------
320 
324 
328  fAcceptEventsWithBit.Set(n+1);
329  fAcceptEventsWithBit.AddAt(bit,n) ; }
330 
332  fRejectEventsWithBit.Set(n+1);
333  fRejectEventsWithBit.AddAt(bit,n) ; }
338 
341 
348 
351 
353  { fLEDHighEnergyCutStrip[0] = eFull ; fLEDHighEnergyCutStrip[1] = eThird ; }
355  { fLEDHighNCellsCutStrip[0] = nFull ; fLEDHighNCellsCutStrip[0] = nThird ; }
359 
362  TString GetFiredTriggerClasses() const { return GetInputEvent()->GetFiredTriggerClasses() ; }
363 
364 
365  // Event selection when mixed event is used
366 
368  void SetEventTriggerMask(UInt_t evtTrig = AliVEvent::kAny)
369  { fEventTriggerMask = evtTrig ; }
371  void SetMixEventTriggerMask(UInt_t evtTrig = AliVEvent::kAnyINT)
372  { fMixEventTriggerMask = evtTrig ; }
376 
377  // EMCal Triggered events selection, studies
378 
379  TArrayI GetTriggerPatches(Int_t tmin, Int_t tmax);
380  void MatchTriggerCluster(TArrayI patches);
382 
384 
385  Bool_t IsExoticEvent() const { return fIsExoticEvent ; }
390 
394 
399 
400  void SetEventTriggerL1Bit(Int_t ega, Int_t eje) { fBitEGA = ega ; fBitEJE = eje; }
401 
403  fTriggerPatchTimeWindow[1] = max ; }
404 
408 
412 
416 
420 
421  void SetEventTriggerBit();
433 
436 
437  // Other event rejections criteria
438 
442 
446 
450 
454 
458 
459  // Time Stamp
460 
463 
465  fTimeStampRunMax = b ; } // seconds
466 
469 
471  fTimeStampEventFracMax = b ; }
472 
475 
477 
478  // Time Stamp CTP corrected
479 
482 
485  fTimeStampEventCTPBCCorrMax = b ; } // seconds
486 
489 
491 
492 
493  // Event tagging as pile-up
494 
495  Bool_t IsPileUpFromSPD() const ;
496  Bool_t IsPileUpFromEMCal() const ;
502 
504  { fPileUpParamSPD[i] = param ; }
506 
509 
510  Int_t GetEMCalEventBC(Int_t bc) const { if(bc >=0 && bc < 19) return fEMCalBCEvent [bc] ; else return 0 ; }
511  Int_t GetTrackEventBC(Int_t bc) const { if(bc >=0 && bc < 19) return fTrackBCEvent [bc] ; else return 0 ; }
512  Int_t GetEMCalEventBCcut(Int_t bc) const { if(bc >=0 && bc < 19) return fEMCalBCEventCut[bc] ; else return 0 ; }
513  Int_t GetTrackEventBCcut(Int_t bc) const { if(bc >=0 && bc < 19) return fTrackBCEventCut[bc] ; else return 0 ; }
514 
515  void SetEMCalEventBC(Int_t bc) { if(bc >=0 && bc < 19) fEMCalBCEvent [bc] = 1 ; }
516  void SetTrackEventBC(Int_t bc) { if(bc >=0 && bc < 19) fTrackBCEvent [bc] = 1 ; }
517  void SetEMCalEventBCcut(Int_t bc) { if(bc >=0 && bc < 19) fEMCalBCEventCut[bc] = 1 ; }
518  void SetTrackEventBCcut(Int_t bc) { if(bc >=0 && bc < 19) fTrackBCEventCut[bc] = 1 ; }
519 
520  Int_t GetVertexBC(const AliVVertex * vtx);
521  Int_t GetVertexBC() const { return fVertexBC ; }
524 
525  // Track selection
526 
527  ULong_t GetTrackStatus() const { return fTrackStatus ; }
528  void SetTrackStatus(ULong_t bit) { fTrackStatus = bit ; }
529 
530  virtual Bool_t SelectTrack(AliVTrack* , Double_t*) { return kFALSE ; } // See AOD/ESD reader
531 
534 
536  { if(cut < 10) return fTrackMult [cut] ; else return 0 ; }
538  { if(cut < 10) return fTrackSumPt[cut] ; else return 0 ; }
539 
542 
543  void SetTrackMultiplicityPtCut(Int_t cut, Float_t pt) { if(cut < 10) fTrackMultPtCut[cut] = pt; }
545  { if(cut < 10) return fTrackMultPtCut[cut] ; else return 0 ; }
546 
549 
550  // Virtual for AliCaloTrackAODReader
551 
552  virtual ULong_t GetTrackFilterMask() const { return 0 ; }
553  virtual void SetTrackFilterMask(ULong_t) { ; }
554 
555  virtual ULong_t GetTrackFilterMaskComplementary() const { return 0 ; }
557 
558  virtual void SwitchOnAODHybridTrackSelection() { ; }
559  virtual void SwitchOffAODHybridTrackSelection() { ; }
560 
561  virtual void SwitchOnAODPrimaryTrackSelection() { ; }
563 
566 
568  virtual Float_t GetTPCSharedClusterFraction() const { return 0 ; }
569 
570  // Virtual for AliCaloTrackESDReader
571 
572  virtual AliESDtrackCuts* GetTrackCuts() const { return 0 ; }
573  virtual AliESDtrackCuts* GetTrackComplementaryCuts() const { return 0 ; }
574 
575  virtual void SetTrackCuts(AliESDtrackCuts *) { ; }
576  virtual void SetTrackComplementaryCuts(AliESDtrackCuts *) { ; }
577 
578  virtual void SwitchOnConstrainTrackToVertex() { ; }
579  virtual void SwitchOffConstrainTrackToVertex() { ; }
580 
581  // Events species selection
582 
585  void AnalyzeOnlyEventsOfType(Int_t specie) { fEventType = specie ; }
586 
587  //-------------------------------
588  // Vertex methods
589  //-------------------------------
590 
591  virtual void GetVertex(Double_t v[3]) const ;
592  virtual Double_t* GetVertex(Int_t evtIndex) const { return fVertex[evtIndex] ; }
593  virtual void GetVertex(Double_t vertex[3], const Int_t evtIndex) const ;
594  virtual void FillVertexArray();
595  virtual Bool_t CheckForPrimaryVertex() const { return kTRUE ; } // algorithm in ESD/AOD Readers
596  virtual Float_t GetZvertexCut() const { return fZvtxCut ; } // cut on vertex position
597  virtual void SetZvertexCut(Float_t zcut=10.) { fZvtxCut=zcut ; } // cut on vertex position
598 
599  //--------------------------
600  // Centrality / Event Plane
601  //--------------------------
602 
603  virtual AliCentrality* GetCentrality() const {
604  if(fDataType!=kMC) return fInputEvent->GetCentrality() ;
605  else return 0x0 ; }
606 
607  virtual AliMultSelection* GetMultSelCen() const {
608  if(fDataType!=kMC) return (AliMultSelection * ) fInputEvent->FindListObject("MultSelection") ;
609  else return 0x0 ; }
610 
612 
613  virtual void SwitchOnAliCentrality () { fUseAliCentrality = kTRUE ; }
614  virtual void SwitchOffAliCentrality() { fUseAliCentrality = kFALSE ; }
615 
616  virtual void SetCentralityClass(TString name) { fCentralityClass = name ; }
617  virtual void SetCentralityOpt(Int_t opt) { fCentralityOpt = opt ; }
618  virtual TString GetCentralityClass() const { return fCentralityClass ; }
619  virtual Int_t GetCentralityOpt() const { return fCentralityOpt ; }
620  virtual Int_t GetEventCentrality() const ;
621  virtual void SetCentralityBin(Int_t min, Int_t max) //Set the centrality bin to select the event. If used, then need to get percentile
622  { fCentralityBin[0]=min; fCentralityBin[1]=max;
623  if(min>=0 && max > 0) fCentralityOpt = 100 ; }
624  virtual Float_t GetCentralityBin(Int_t i) const { if(i < 0 || i > 1) return 0 ;
625  else return fCentralityBin[i] ; }
626 
627  virtual AliEventplane* GetEventPlane() const { if(fDataType!=kMC) return fInputEvent->GetEventplane() ;
628  else return 0x0 ; }
629  virtual Double_t GetEventPlaneAngle() const ;
631  virtual TString GetEventPlaneMethod() const { return fEventPlaneMethod ; }
632 
633  //--------------------
634  // Mixing
635  //--------------------
636 
639 
640  TList * GetListWithMixedEventsForCalo (Int_t bi) const { if(fListMixedCaloEvents) return fListMixedCaloEvents [bi] ; else return 0 ; }
642 
644  else return kFALSE ; }
645 
647  else return kFALSE ; }
648 
651 
653  if(fListMixedCaloEvents) printf("AliCaloTrackReader::SetListWithMixedEventsForCalo() - Track Mixing event list already set, nothing done\n");
654  else fListMixedCaloEvents = l ; }
655 
657  if(fListMixedTracksEvents) printf("AliCaloTrackReader::SetListWithMixedEventsForTracks() - Calorimeter Mixing event list already set, nothing done\n");
658  else fListMixedTracksEvents = l ; }
659 
660  //-------------------------------------
661  // Other methods
662  //-------------------------------------
663 
666  { fCaloUtils = caloutils ; }
667 
668  Double_t GetEventWeight() const { return fEventWeight ; }
670  return fWeightUtils ; }
671 
672  virtual Double_t GetBField() const { return fInputEvent->GetMagneticField() ; }
673 
675  Float_t GetPhi (Float_t phi) const { if ( phi < 0 ) phi += TMath::TwoPi() ; return phi ; }
676 
677  Float_t DegToRad(Float_t deg) const { deg *= TMath::DegToRad(); return deg ; }
678 
679  Float_t RadToDeg(Float_t rad) const { rad *= TMath::RadToDeg(); return rad ; }
680 
682  virtual void SetMCAnalysisUtils(AliMCAnalysisUtils * mcutils) {
683  if ( fMCUtils ) delete fMCUtils;
684  fMCUtils = mcutils ; }
685 
686  //------------------------------------------------
687  // MC analysis specific methods
688  //-------------------------------------------------
689 
690  // Kinematics and galice.root available
691 
692  virtual AliHeader* GetHeader() const ;
693  virtual AliGenEventHeader* GetGenEventHeader() const { return fGenEventHeader ; }
694  virtual AliGenPythiaEventHeader* GetGenPythiaEventHeader()
695  const { return fGenPythiaEventHeader ; }
696  // See implementation in AOD and ESD readers
697 
698  // Filtered kinematics in AOD
699 
700  virtual TClonesArray* GetAODMCParticles() const ;
701  virtual AliAODMCHeader* GetAODMCHeader () const ;
702 
703  virtual AliVEvent* GetInputEvent() const { return fInputEvent ; }
704  virtual AliVEvent* GetOriginalInputEvent() const { return 0x0 ; }
705  virtual AliAODEvent* GetOutputEvent() const { return fOutputEvent ; }
706  virtual AliMCEvent* GetMC() const { return fMC ; }
707  virtual AliMixedEvent* GetMixedEvent() const { return fMixedEvent ; }
708  virtual Int_t GetNMixedEvent() const { return fNMixedEvent ; }
709 
710  void SwitchOnStack() { AliError("Obsolete, remove this setting in AddTask") ; }
711  void SwitchOffStack() { AliError("Obsolete, remove this setting in AddTask") ; }
712  void SwitchOnAODMCParticles() { AliError("Obsolete, remove this setting in AddTask") ; }
713  void SwitchOffAODMCParticles() { AliError("Obsolete, remove this setting in AddTask") ; }
714 
715  void RemapMCLabelForAODs(Int_t &label);
716 
717  // Select generated events, depending on comparison of pT hard and jets
718 
719  virtual Bool_t ComparePtHardAndJetPt(Int_t process, TString processName) ;
721  virtual void SetPtHardAndJetPtComparison(Bool_t compare) { fComparePtHardAndJetPt = compare ; }
723  virtual void SetPtHardAndJetPtFactor(Float_t factor) { fPtHardAndJetPtFactor = factor ; }
724 
725  virtual Bool_t ComparePtHardAndClusterPt(Int_t process, TString processName) ;
729  virtual void SetPtHardAndClusterPtFactor(Float_t factor) { fPtHardAndClusterPtFactor = factor ; }
730 
731  // Select particles or clusters depending on generator
733  { fNMCGenerToAccept = nGen ;
734  if ( nGen > 5 ) fNMCGenerToAccept = 5 ;
735  else if ( nGen < 0 ) fNMCGenerToAccept = 0 ; }
737 
739  { if ( ig < 5 && ig >= 0 ) fMCGenerToAccept[ig] = name ; }
740  virtual void SetIndexOfMCGeneratorsToAccept(Int_t ig, Int_t index)
741  { if ( ig < 5 && ig >= 0 ) fMCGenerIndexToAccept[ig] = index ; }
742  virtual TString GetNameOfMCGeneratorsToAccept(Int_t ig) const { return fMCGenerToAccept[ig] ; }
744 
745  Bool_t AcceptParticleMCLabel(Int_t mcLabel) const ;
746  Int_t GetCocktailGeneratorAndIndex(Int_t index, TString & nameGen) const ;
747  TString GetGeneratorNameAndIndex(Int_t index, Int_t & genIndex) const ;
748 
751 
752 
753 
754  // MC reader methods, declared there to allow compilation, they are only used in the MC reader
755 
756  virtual void AddNeutralParticlesArray(TArrayI & /*array*/) { ; }
757  virtual void AddChargedParticlesArray(TArrayI & /*array*/) { ; }
758  virtual void AddStatusArray(TArrayI & /*array*/) { ; }
759 
760  virtual void SwitchOnPi0Decay() { ; }
761  virtual void SwitchOffPi0Decay() { ; }
762  virtual void SwitchOnStatusSelection() { ; }
763  virtual void SwitchOffStatusSelection() { ; }
764  virtual void SwitchOnOverlapCheck() { ; }
765  virtual void SwitchOffOverlapCheck() { ; }
766  virtual void SwitchOnOnlyGeneratorParticles() { ; }
767  virtual void SwitchOffOnlyGeneratorParticles() { ; }
768 
769  virtual void SetEMCALOverlapAngle(Float_t /*angle*/) { ; }
770  virtual void SetPHOSOverlapAngle(Float_t /*angle*/) { ; }
771 
772  //-------------
773  // Jets
774  //-------------
775 
779 
783 
784  virtual void FillInputNonStandardJets() ;
785  virtual TClonesArray* GetNonStandardJets() const { return fNonStandardJets ; }
788 
789  virtual void FillInputBackgroundJets() ;
790  // virtual AliAODJetEventBackground* GetBackgroundJets() const { return fBackgroundJets ; }
791  virtual TClonesArray* GetBackgroundJets() const { return fBackgroundJets ; }
794 
795  //------------------
796  // PAR runs
797  //------------------
798  Bool_t IsParRun() const { return fParRun ; }
799  void SwitchOnParRun() { fParRun = kTRUE ; }
800  void SwitchOffParRun() { fParRun = kFALSE ; }
801 
802  protected:
803 
809 
812 
815 
822 
825 
828 
831 
842 
845 
848 
851 
854 
857 
860 
861  AliVCaloCells * fEMCALCells ;
862  AliVCaloCells * fPHOSCells ;
863 
864  AliVEvent * fInputEvent;
866  AliMCEvent * fMC;
867 
877 
880 
883  TRandom3 fRandom ;
887 
888  // Track selection and counting
891 
897 
900 
901  // Trigger bit
905 
914 
917 
919 
921 
924 
927 
928  AliMixedEvent * fMixedEvent ;
931 
936 
938 
939  Int_t fV0ADC[2] ;
940  Int_t fV0Mul[2] ;
941 
944 
945  // Event selection
946 
949 
950  // LED events
958 
965 
966  // Triggered event selection
970 
974 
985 
986 
992 //AliTriggerAnalysis* fTriggerAnalysis; ///< Access to trigger selection algorithm for V0AND calculation.
993 
999 
1003 
1007 
1008  // Pile-up in EMCal
1009 
1019 
1020  // Centrality/Event plane
1027 
1028  // Jets
1030  TClonesArray * fNonStandardJets;
1033  // AliAODJetEventBackground * fBackgroundJets; //!<! Background jets.
1034  TClonesArray * fBackgroundJets;
1036 
1039 
1041 
1042  TLorentzVector fMomentum;
1043 
1044  //handle runs affected by PAR
1047 
1048  // cut control histograms
1049 
1055  TH1F * fhPHOSClusterCutsE [7];
1056  TH1F * fhCTSTrackCutsPt [6];
1057 
1063 
1066 
1068 
1069  // MC labels to accept
1073 
1075 
1076 
1077  AliGenEventHeader * fGenEventHeader;
1078  AliGenPythiaEventHeader * fGenPythiaEventHeader;
1079 
1081  AliCaloTrackReader( const AliCaloTrackReader & r) ;
1082 
1085 
1087  ClassDef(AliCaloTrackReader,85) ;
1089 
1090 } ;
1091 
1092 #endif //ALICALOTRACKREADER_H
1093 
1094 
1095 
Bool_t IsPileUpFromSPD() const
TH2F * fhEMCALNSumEnCellsPerStrip
! Control histogram of LED events on strips rejection, after LED SM rejection
virtual Int_t GetDebug() const
Float_t fLEDHighEnergyCutStrip[2]
SM strip is too active if energy above this value, likely LED event. [0] Full SM, [1] 1/3 SM...
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 SetLEDStripHighEnergyCutSM(Float_t eFull, Float_t eThird)
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
void SetEMCALMinCellEnNdiffCut(Float_t en)
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
Int_t fLEDEventMaxNumberOfStrips
Cut on events with a number of too active strips.
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
void SetEMCALHighEnergyNdiffCut(Float_t en)
Float_t fEMCALHighEnergyNdiffCut
Minimum energy for which the cut on n diff T-Card = 0 is applied.
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:45
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.
Float_t fLEDMinCellEnergy
Count or sum cells energy above this value to determine if event had LEDs.
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
Float_t fEMCALMinCellEnNdiffCut
Minimum energy of cells used counting n diff in T-Card.
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)
Float_t GetEMCALMinCellEnNdiffCut() const
void SetLEDStripLowNCellsCutSM3(Int_t n)
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.
void SetLEDHighNCellsCutSM(Int_t n)
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
Float_t fLEDLowEnergyCutSM3Strip
SM3 strip low activity if energy below this value, check activity on other SM for LED event (Run2) ...
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
void SetLEDStripHighNCellsCutSM(Int_t nFull, Int_t nThird)
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
Int_t fLEDHighNCellsCutSM
SM is too active if n cells above this value, likely LED event.
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
TH2F * fhEMCALNSumEnCellsPerStripAfter
! Control histogram of LED events on strips rejection, after strip LED and SM rejection ...
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
TClonesArray * fBackgroundJets
! Background jets.
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
TH2F * fhEMCALNSumEnCellsPerSMAfter
! Control histogram of LED events rejection, after cut
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 SetLEDMinCellEnergy(Float_t e)
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
Float_t fLEDLowEnergyCutSM3
SM3 low activity if energy below this value, check activity on other SM for LED event (Run2) ...
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.
Short_t fCurrentParIndex
! temporal PAR number based on event global to get L1 phase correction in PAR runs ...
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
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 SetLEDLowNCellsCutSM3(Int_t n)
void MatchTriggerCluster(TArrayI patches)
void SetTrackMultiplicityPtCut(Int_t cut, Float_t pt)
Bool_t fTimeStampEventSelect
Select events within a fraction of data taking time.
TH2F * fhEMCALNSumEnCellsPerSM
! Control histogram of LED events rejection
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()
Float_t GetEMCALHighEnergyNdiffCut() const
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.)
Int_t fLEDHighNCellsCutStrip[2]
SM strip is too active if n cells above this value, likely LED event. [0] Full SM, [1] 1/3 SM.
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.
short Short_t
Definition: External.C:23
Double_t GetEMCALTimeCutMin() const
TH2F * fhEMCALNSumEnCellsPerSMAfterStripCut
! Control histogram of LED events rejection, after LED strip rejection
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...
void SetLEDMaxCellEnergy(Float_t e)
Float_t fLEDMaxCellEnergy
Count or sum cells energy below this value to determine if event had LEDs.
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
virtual TClonesArray * GetBackgroundJets() const
Float_t fCTSPtMin
pT Threshold on charged particles.
Bool_t IsCTSSwitchedOn() const
Bool_t fMultWithEventSel
Embedded event selection in multiplicity task activated.
Int_t fLEDLowNCellsCutSM3Strip
SM3 strip low activity if n cells below this value, check activity on other SM LED event (Run2) ...
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.
Int_t fRemoveLEDStripEvents
Remove events where an LED strip or more was wrongly firing - only EMCAL.
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()
Float_t fLEDHighEnergyCutSM
SM is too active if energy above this value, likely LED event.
void SetMultiplicityWithPhysSel(Bool_t ps)
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.
void SetLEDEventMaxNumberOfStrips(Int_t n)
Bool_t IsEventEMCALL1Jet2() const
void SetLEDHighEnergyCutSM(Float_t e)
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
Int_t fLEDLowNCellsCutSM3
SM3 low activity if n cells below this value, check activity on other SM LED event (Run2) ...
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
TH1F * fhEMCALClusterCutsE[9]
! Control histogram on the different EMCal cluster selection cuts, E
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.
Bool_t IsParRun() const
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.
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 SetLEDStripLowEnergyCutSM3(Float_t e)
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.
Bool_t fParRun
Flag set true when run affected by PAR.
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
void SetLEDLowEnergyCutSM3(Float_t e)
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