]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/FORWARD/analysis2/AliFMDEventInspector.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliFMDEventInspector.h
index f4e82892380b64a3f860d830b37d761b7619c50a..9d89019eb73e7e9fae57569ddf6840161812d076 100644 (file)
@@ -153,24 +153,10 @@ public:
    * @param name Name of object
    */
   AliFMDEventInspector(const char* name);
-  /** 
-   * Copy constructor 
-   * 
-   * @param o Object to copy from 
-   */
-  AliFMDEventInspector(const AliFMDEventInspector& o);
   /** 
    * Destructor 
    */
   virtual ~AliFMDEventInspector();
-  /** 
-   * Assignement operator
-   * 
-   * @param o Object to assign from 
-   * 
-   * @return Reference to this object
-   */
-  AliFMDEventInspector& operator=(const AliFMDEventInspector&);
 
   /** 
    * Initialize the object 
@@ -282,7 +268,7 @@ public:
    *
    * @deprecated We should accept all events in the AOD pass
    * 
-   * @param mincent Upper cut on centrality
+   * @param maxcent Upper cut on centrality
    */
   void SetMaxCentrality(Double_t maxcent=-1.0);
   /** 
@@ -318,6 +304,15 @@ public:
    * @param dbg Debug level 
    */
   void SetDebug(Int_t dbg=1) { fDebug = dbg; }
+  /** 
+   * Set whether this is MC or not.  Needed by energy loss fitter task
+   * that never instantices AliFMDMCEventInspector.  In particular, we
+   * need this to make sure we ignore the FAST partition flag in MC
+   * for 2.76TeV pp.
+   * 
+   * @param isMC If true, assume MC input 
+   */
+  void SetMC(Bool_t isMC=true) { fMC = isMC; }
   /** 
    * Fetch our histograms from the passed list 
    * 
@@ -367,6 +362,39 @@ public:
    * @return The current run number 
    */
   ULong_t GetRunNumber() const { return fRunNumber; }
+  /** 
+   * Get the production year.
+   * 
+   * - For real data, this is the year of the data taking 
+   * - For MC this is the year the production is anchored to.
+   * 
+   * @return A two-digit year (post millennium), or -1
+   */
+  Short_t GetProductionYear() const { return fProdYear; }
+  /** 
+   * Get the production period. 
+   * 
+   * - For real data, this is the period identifier of the data taking 
+   * - For MC data, this is the period identifier the production was
+   *   anchored to
+   * 
+   * @return Period identifier or null
+   */
+  Char_t  GetProductionPeriod() const { return fProdLetter; } 
+  /** 
+   * Get the AliROOT revision used for this production
+   * 
+   * @return SVN revision number or -1
+   */
+  Short_t GetProductionRevision() const { return fProdSVN; } 
+  /** 
+   * Check if the production was an MC production anchored in some
+   * real data.
+   * 
+   * @return true if this (MC) production was anchored 
+   */
+  Bool_t  IsProductionMC() const { return fProdMC; }
+  
   /** 
    * Print information
    * 
@@ -391,6 +419,11 @@ public:
    * 
    */
   virtual void StoreInformation();
+  /** 
+   * Store - if possible - production information in a sub-list 
+   * 
+   */
+  virtual void StoreProduction();
   /** 
    * Return a string representing the return code 
    * 
@@ -400,6 +433,20 @@ public:
    */
   static const char* CodeString(UInt_t mask);
 protected:
+  /** 
+   * Copy constructor - not implemented
+   * 
+   * @param o Object to copy from 
+   */
+  AliFMDEventInspector(const AliFMDEventInspector& o);
+  /** 
+   * Assignement operator - not implemented
+   * 
+   * @param o Object to assign from 
+   * 
+   * @return Reference to this object
+   */
+  AliFMDEventInspector& operator=(const AliFMDEventInspector& o);
   /** 
    * Cache the configure trigger classes from the physis selection.  
    * 
@@ -468,6 +515,16 @@ protected:
    * @return true if this is a pile-up event
    */
   virtual Bool_t CheckPileup(const AliESDEvent& esd, UInt_t& triggers) const;
+  /** 
+   * Check for multi-vertex pile-up 
+   * 
+   * @param esd ESD event 
+   * @param checkOtherBC Also check other BC's 
+   * 
+   * @return true if multiple vertices found 
+   */
+  virtual Bool_t CheckMultiVertex(const AliESDEvent& esd, 
+                                 Bool_t checkOtherBC=false) const;
   /** 
    * Check if we have a cosmic trigger.  These should be filtered out. 
    * 
@@ -558,45 +615,49 @@ protected:
   virtual Bool_t ReadCentrality(const AliESDEvent& esd, Double_t& cent,
                                UShort_t& qual) const;
 
-  TH1I*    fHEventsTr;    //! Histogram of events w/trigger
-  TH1I*    fHEventsTrVtx; //! Events w/trigger and vertex 
-  TH1I*    fHEventsAccepted; //! Events w/trigger and vertex in range 
-  TH2D*    fHEventsAcceptedXY; //! XY vtx with trigger and Z vertex in range 
-  TH1I*    fHTriggers;    //! Triggers
-  TH2I*    fHTriggerCorr; //! Correlation of triggers
-  TH1I*    fHType;        //! Type (low/high flux) of event
-  TH1I*    fHWords;       //! Trigger words 
-  TH1F*    fHCent;        //! Centrality 
-  TH2F*    fHCentVsQual;  //! Centrality vs quality 
-  TH1I*    fHStatus;      //! Event processing status 
-  TH1I*    fHVtxStatus;   //! Vertex processing status 
-  TH1I*    fHTrgStatus;   //! Trigger processing status 
-  Int_t    fLowFluxCut;   //  Low flux cut
-  Double_t fMaxVzErr;     //  Maximum error on v_z
-  TList*   fList;         //! Histogram container 
-  UShort_t fEnergy;       // CMS energy (per nucleon pair) [GeV]
-  Short_t  fField;        // L3 magnetic field [kG]
-  UShort_t fCollisionSystem; //  Collision system
-  Int_t    fDebug;        //  Debug level 
-  TAxis*   fCentAxis;     // Centrality axis used in histograms
-  TAxis    fVtxAxis;      //Vtx Axis 
-  Bool_t   fUseFirstPhysicsVertex; //Use the vtx code from p+p first physics
-  Bool_t   fUseV0AND;     //Use the vtx code from p+p first physics
-  UShort_t fMinPileupContrib; // Minimum number of contributors to 2nd
-                             // pile-up vertex
-  Double_t fMinPileupDistance; // Minimum distance of 2nd pile-up
-                              // vertex 
-  Bool_t   fUseDisplacedVertices; //Analyze displaced vertices?
+  TH1I*    fHEventsTr;            //! Histogram of events w/trigger
+  TH1I*    fHEventsTrVtx;         //! Events w/trigger and vertex 
+  TH1I*    fHEventsAccepted;      //! Events w/trigger and vertex in range 
+  TH2D*    fHEventsAcceptedXY;    //! XY vtx with trigger and Z vertex in range 
+  TH1I*    fHTriggers;            //! Triggers
+  TH2I*    fHTriggerCorr;         //! Correlation of triggers
+  TH1I*    fHType;                //! Type (low/high flux) of event
+  TH1I*    fHWords;               //! Trigger words 
+  TH1F*    fHCent;                //! Centrality 
+  TH2F*    fHCentVsQual;          //! Centrality vs quality 
+  TH1I*    fHStatus;              //! Event processing status 
+  TH1I*    fHVtxStatus;           //! Vertex processing status 
+  TH1I*    fHTrgStatus;           //! Trigger processing status 
+  Int_t    fLowFluxCut;           //  Low flux cut
+  Double_t fMaxVzErr;             //  Maximum error on v_z
+  TList*   fList;                 //! Histogram container 
+  UShort_t fEnergy;               // CMS energy (per nucleon pair) [GeV]
+  Short_t  fField;                // L3 magnetic field [kG]
+  UShort_t fCollisionSystem;      //  Collision system
+  Int_t    fDebug;                //  Debug level 
+  TAxis*   fCentAxis;             // Centrality axis used in histograms
+  TAxis    fVtxAxis;              // IP_z Axis 
+  Bool_t   fUseFirstPhysicsVertex;//Use the vtx code from p+p first physics
+  Bool_t   fUseV0AND;             // Use the vtx code from p+p first physics
+  UShort_t fMinPileupContrib;     // Min contributors to 2nd pile-up IP
+  Double_t fMinPileupDistance;    // Min distance of 2nd pile-up IP
+  Bool_t   fUseDisplacedVertices; // Analyze displaced vertices?
   AliDisplacedVertexSelection fDisplacedVertex; //Displaced vertex selector
-  TList    fCollWords;     //! Configured collision words 
-  TList    fBgWords;       //! Configured background words 
-  TString  fCentMethod;
-  Double_t fMinCent;  //min centrality
-  Double_t fMaxCent;  //max centrailty
-  Bool_t   fUsepA2012Vertex;// flag to use pA2012 Veretx selection
-  ULong_t  fRunNumber; // Current run number 
+  TList    fCollWords;            //! Configured collision words 
+  TList    fBgWords;              //! Configured background words 
+  TString  fCentMethod;           // Centrality method
+  Double_t fMinCent;              // min centrality
+  Double_t fMaxCent;              // max centrailty
+  Bool_t   fUsepA2012Vertex;      // flag to use pA2012 Veretx selection
+  ULong_t  fRunNumber;            // Current run number 
+  Bool_t   fMC;                   // Is this MC input
+  Short_t  fProdYear;             // Production year 
+  Char_t   fProdLetter;           // Production letter 
+  Short_t  fProdPass;             // Pass number 
+  Int_t    fProdSVN;              // AliROOT revision used in production
+  Bool_t   fProdMC;               // True if anchor production
 
-  ClassDef(AliFMDEventInspector,9); // Inspect the event 
+  ClassDef(AliFMDEventInspector,12); // Inspect the event 
 };
 
 #endif