]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG/CaloTrackCorrBase/AliCaloTrackReader.h
Updates from Chiara for flavor tagging on reco and MC truth level (Chiara)
[u/mrichter/AliRoot.git] / PWG / CaloTrackCorrBase / AliCaloTrackReader.h
index 95f93985073bd310881b1ecab782d2b0417f6cf4..ccb09bfa55e4a6d5b0134deba145097d2a6465fb 100755 (executable)
@@ -208,7 +208,10 @@ public:
   Bool_t           AreClustersRecalculated()         const { return fRecalculateClusters   ; }
   void             SwitchOnClusterRecalculation()          { fRecalculateClusters = kTRUE  ; }
   void             SwitchOffClusterRecalculation()         { fRecalculateClusters = kFALSE ; }  
-  
+
+  void             SwitchOnClusterELinearityCorrection()   { fCorrectELinearity = kTRUE    ; }
+  void             SwitchOffClusterELinearityCorrection()  { fCorrectELinearity = kFALSE   ; }
+
   Bool_t           IsEmbeddedClusterSelectionOn()    const { return fSelectEmbeddedClusters   ; }
   void             SwitchOnEmbeddedClustersSelection()     { fSelectEmbeddedClusters = kTRUE  ; }
   void             SwitchOffEmbeddedClustersSelection()    { fSelectEmbeddedClusters = kFALSE ; }
@@ -237,7 +240,7 @@ public:
   virtual TObjArray*     GetPHOSClusters()           const { return fPHOSClusters           ; }
   virtual AliVCaloCells* GetEMCALCells()             const { return fEMCALCells             ; }
   virtual AliVCaloCells* GetPHOSCells()              const { return fPHOSCells              ; }
-   
+  
   //-------------------------------------
   // Event/track selection methods
   //-------------------------------------
@@ -246,6 +249,16 @@ public:
   void             RejectFastClusterEvents()               { fAcceptFastCluster     = kFALSE ; }  
   Bool_t           IsFastClusterAccepted()           const { return fAcceptFastCluster       ; }   
   
+  Bool_t           AcceptEventWithTriggerBit();
+  Bool_t           RejectEventWithTriggerBit();
+  void             SetAcceptEventsWithBit(UInt_t bit)      { Int_t n = fAcceptEventsWithBit.GetSize();
+                                                             fAcceptEventsWithBit.Set(n+1);
+                                                             fAcceptEventsWithBit.AddAt(bit,n) ; }
+  
+  void             SetRejectEventsWithBit(UInt_t bit)      { Int_t n = fRejectEventsWithBit.GetSize();
+                                                             fRejectEventsWithBit.Set(n+1);
+                                                             fRejectEventsWithBit.AddAt(bit,n) ; }
+
   void             SwitchOnLEDEventsRemoval()              { fRemoveLEDEvents       = kTRUE  ; }
   void             SwitchOffLEDEventsRemoval()             { fRemoveLEDEvents       = kFALSE ; }
   Bool_t           IsLEDEventRemoved()               const { return fRemoveLEDEvents         ; }   
@@ -253,7 +266,7 @@ public:
   
   void             SetFiredTriggerClassName(TString name ) { fFiredTriggerClassName = name   ; }
   TString          GetFiredTriggerClassName()        const { return fFiredTriggerClassName   ; }
-  TString          GetFiredTriggerClasses() ;               
+  TString          GetFiredTriggerClasses()          const { return GetInputEvent()->GetFiredTriggerClasses() ; }
   
   UInt_t           GetEventTriggerMask()             const { return fEventTriggerMask        ; }
   void             SetEventTriggerMask(UInt_t evtTrig = AliVEvent::kAny) 
@@ -285,9 +298,15 @@ public:
   void             SwitchOffBadTriggerEventsRemoval()      { fRemoveBadTriggerEvents   = kFALSE ; }
   void             SwitchOnBadTriggerEventsRemoval()       { fRemoveBadTriggerEvents   = kTRUE  ; }
 
+  void             SwitchOffUnMatchedTriggerEventsRemoval(){ fRemoveUnMatchedTriggers  = kFALSE ; }
+  void             SwitchOnUnMatchedTriggerEventsRemoval() { fRemoveUnMatchedTriggers  = kTRUE  ; }
+  
   void             SwitchOffTriggerPatchMatching()         { fTriggerPatchClusterMatch = kFALSE ; }
   void             SwitchOnTriggerPatchMatching()          { fTriggerPatchClusterMatch = kTRUE  ; }
 
+  void             SwitchOnTriggerClusterTimeRecal ()      { fTriggerClusterTimeRecal  = kTRUE  ; }
+  void             SwitchOffTriggerClusterTimeRecal()      { fTriggerClusterTimeRecal  = kFALSE ; }
+  
   UInt_t           GetMixEventTriggerMask()             const { return fMixEventTriggerMask  ; }
   void             SetMixEventTriggerMask(UInt_t evtTrig = AliVEvent::kAnyINT) 
                                                            { fMixEventTriggerMask = evtTrig  ; }
@@ -407,13 +426,6 @@ public:
   void             AnalyzeOnlyLED()                        { fAnaLED             = kTRUE  ; }
   void             AnalyzeOnlyPhysics()                    { fAnaLED             = kFALSE ; }
   
-  void             SwitchOnCaloFilterPatch()               { fCaloFilterPatch    = kTRUE  ; 
-                                                             fFillCTS            = kFALSE ; }
-  void             SwitchOffCaloFilterPatch()              { fCaloFilterPatch    = kFALSE ; }
-  Bool_t           IsCaloFilterPatchOn()             const { 
-                    if(fDataType == kAOD) { return fCaloFilterPatch ; } 
-                    else                  { return kFALSE           ; }                     }
-       
   //-------------------------------
   // Vertex methods
   //-------------------------------
@@ -485,11 +497,6 @@ public:
   
   virtual Double_t GetBField()                       const { return fInputEvent->GetMagneticField()  ; } 
   
-  void    SetImportGeometryFromFile(Bool_t import, 
-                                    TString path = "")     { 
-                                                             fImportGeometryFromFile = import    ; 
-                                                             fImportGeometryFilePath = path      ; }
-  
   //------------------------------------------------
   // MC analysis specific methods
   //-------------------------------------------------
@@ -522,7 +529,7 @@ public:
   void             RemapMCLabelForAODs(Int_t &label);
   
   // Select generated events, depending on comparison of pT hard and jets
-  
+    
   virtual Bool_t   ComparePtHardAndJetPt() ;
   virtual Bool_t   IsPtHardAndJetPtComparisonSet()       const { return  fComparePtHardAndJetPt   ; }
   virtual void     SetPtHardAndJetPtComparison(Bool_t compare) { fComparePtHardAndJetPt = compare ; }  
@@ -535,6 +542,11 @@ public:
   virtual Float_t  GetPtHardAndClusterFactor()               const { return  fPtHardAndClusterPtFactor    ; }
   virtual void     SetPtHardAndClusterPtFactor(Float_t factor)     { fPtHardAndClusterPtFactor = factor   ; }          
   
+  virtual Bool_t   IsHIJINGLabel(const Int_t label);
+  void             SetGeneratorMinMaxParticles();
+  void             SwitchOnAcceptOnlyHIJINGLabels()          { fAcceptOnlyHIJINGLabels = kTRUE  ; }
+  void             SwitchOffAcceptOnlyHIJINGLabels()         { fAcceptOnlyHIJINGLabels = kFALSE ; }
+  Bool_t           AcceptOnlyHIJINGLabels()            const { return fAcceptOnlyHIJINGLabels   ; }
   
   // MC reader methods, declared there to allow compilation, they are only used in the MC reader
   
@@ -554,6 +566,17 @@ public:
   virtual void SetEMCALOverlapAngle(Float_t /*angle*/)       { ; }
   virtual void SetPHOSOverlapAngle(Float_t /*angle*/)        { ; }
 
+  //-------------
+  // Jets
+  //-------------
+  Bool_t       IsNonStandardJetsSwitchedOn()           const { return fFillInputNonStandardJetBranch   ; }
+  void         SwitchOnNonStandardJets()                     { fFillInputNonStandardJetBranch = kTRUE  ; }
+  void         SwitchOffNonStandardJets()                    { fFillInputNonStandardJetBranch = kFALSE ; }
+  
+  virtual void FillInputNonStandardJets() ;
+  virtual TClonesArray* GetNonStandardJets()            const { return fNonStandardJets                 ; }
+  virtual void SetInputNonStandardJetBranchName(TString name) { fInputNonStandardJetBranchName   = name ; }
+  virtual TString GetInputNonStandardJetBranchName()          { return fInputNonStandardJetBranchName   ; }
   
  protected:
   Int_t                   fEventNumber;               // Event number
@@ -603,6 +626,7 @@ public:
   Bool_t           fFillEMCALCells;            // use data from EMCAL
   Bool_t           fFillPHOSCells;             // use data from PHOS
   Bool_t           fRecalculateClusters;       // Correct clusters, recalculate them if recalibration parameters is given
+  Bool_t           fCorrectELinearity;         // Correct cluster linearity, always on
   Bool_t           fSelectEmbeddedClusters;    // Use only simulated clusters that come from embedding.
   
   ULong_t          fTrackStatus        ;       // Track selection bit, select tracks refitted in TPC, ITS ...
@@ -658,7 +682,6 @@ public:
   Int_t            fV0ADC[2]    ;              // Integrated V0 signal
   Int_t            fV0Mul[2]    ;              // Integrated V0 Multiplicity
 
-  Bool_t           fCaloFilterPatch;           // CaloFilter patch
   TString          fEMCALClustersListName;     // Alternative list of clusters produced elsewhere and not from InputEvent
   
   // Event selection
@@ -678,7 +701,9 @@ public:
   Bool_t           fIsBadMaxCellEvent;           // Bad cell triggered event flag, only max energy cell is bad
   Bool_t           fIsTriggerMatch;              // Could match the event to a trigger patch?
   Bool_t           fIsTriggerMatchOpenCut[3];    // Could not match the event to a trigger patch?, retry opening cuts
-
+  Bool_t           fTriggerClusterTimeRecal;     // In case cluster already calibrated, do not try to recalibrate even if recalib on in RecoUtils.
+  Bool_t           fRemoveUnMatchedTriggers;     // Analyze events where trigger patch and cluster where found or not
+  
   
   Bool_t           fDoEventSelection;            // Select events depending on V0, pileup, vertex well reconstructed, at least 1 track ...
   Bool_t           fDoV0ANDEventSelection;       // Select events depending on V0, fDoEventSelection should be on
@@ -715,15 +740,23 @@ public:
   Int_t            fCentralityOpt;              // Option for the returned value of the centrality, possible options 5, 10, 100
   Int_t            fCentralityBin[2];           // Minimum and maximum value of the centrality for the analysis
   TString          fEventPlaneMethod;           // Name of event plane method, by default "Q"
+
+  Bool_t           fAcceptOnlyHIJINGLabels;     // Select clusters or tracks that where generated by HIJING, reject other generators in case of cocktail
+  Int_t            fNMCProducedMin;             // In case of cocktail, select particles in the list with label from this value
+  Int_t            fNMCProducedMax;             // In case of cocktail, select particles in the list with label up to this value
   
-  Bool_t           fImportGeometryFromFile;     // Import geometry settings in geometry.root file
-  TString          fImportGeometryFilePath;     // path fo geometry.root file
+  // jets
+  Bool_t           fFillInputNonStandardJetBranch;  // Flag to use data from non standard jets
+  TClonesArray *   fNonStandardJets;                //! temporal array with jets
+  TString          fInputNonStandardJetBranchName;  // Name of non standard jet branch
+  
+  TArrayI          fAcceptEventsWithBit;           // Accept events if trigger bit is on
+  TArrayI          fRejectEventsWithBit;           // Reject events if trigger bit is on
 
-       
   AliCaloTrackReader(              const AliCaloTrackReader & r) ; // cpy ctor
   AliCaloTrackReader & operator = (const AliCaloTrackReader & r) ; // cpy assignment
   
-  ClassDef(AliCaloTrackReader,57)
+  ClassDef(AliCaloTrackReader,62)
   
 } ;