#ifndef HPIDEVTINFO_H
#define HPIDEVTINFO_H

//-----------------------------------------------------------------------------
//                                                                      
// HPidEvtInfo                                                          
//                                                                     
// A container keeping characteristic information about event         
// (detector hit multiplicity, particle track multiplicity ...)      
//                                                                  
// Author : Jacek Otwinowski 18/06/2007
// Revised by Simon Lang, 22/06/2007
//
// $Id: hpidevtinfo.h,v 1.5 2008-12-11 12:44:58 jurkovic Exp $
//
//-----------------------------------------------------------------------------

#include "TObject.h"
#include "piddef.h"

// ----------------------------------------------------------------------------
class HPidEvtInfo : public TObject
{
   private:
    
      // hit multiplicity per detector (sector wise)
      Int_t aRichMult[MAX_SECTOR];                      // RICH rings
      Int_t aRichCorrMult[MAX_SECTOR];                  // correlated RICH rings with a RK track
      Int_t aRichClusMult[MAX_SECTOR];                  // RICH charged particle clusters
      Int_t aMdcClusMult[MAX_SECTOR][MAX_IOSEG];        // MDC cluster (segment wise)
      Int_t aMdcSegFittedMult[MAX_SECTOR][MAX_IOSEG];   // fitted MDC segments
      Int_t aMdcSegUnfittedMult[MAX_SECTOR][MAX_IOSEG]; // unfitted MDc segments
      Int_t aTofMult[MAX_SECTOR];    	                // TOF hit multiplicity
      Int_t aShowerMult[MAX_SECTOR];	                // Shower/TOFino hit multiplicity
      Int_t aPidTrackCandMult[MAX_SECTOR];              // Pid Track Candidate entries
      Int_t aTofinoMult[MAX_SECTOR];    	        // TOFINO cal multiplicity
      Int_t aSelectedPidTrackCandMult[MAX_SECTOR];      // selected Pid Track Candidate entries (flagged kIsUsed)

      // reaction plane information
      Int_t    nFWallMult;      // forward wall hits
      Double_t fFWallVector; 	// not yet implemented: vector size of all FW positions 
      Double_t fRPlanePhi; 	// not yet implemented: phi of reaction plane
  
   public:
  
      HPidEvtInfo(void);
      ~HPidEvtInfo(void) {}


      void setRichMult(const Int_t m[MAX_SECTOR]) {
	 for (Int_t s = 0; s < MAX_SECTOR; ++s)
	    aRichMult[s] = m[s];
      }
      void setRichCorrMult(const Int_t m[MAX_SECTOR]) {
	 for (Int_t s = 0; s < MAX_SECTOR; ++s)
	    aRichCorrMult[s] = m[s];
      }
      void setRichClusMult(const Int_t m[MAX_SECTOR]) {
	 for (Int_t s = 0; s < MAX_SECTOR; ++s)
	    aRichClusMult[s] = m[s];
      }
      void setTofMult(const Int_t m[MAX_SECTOR]) {
	 for (Int_t s = 0; s < MAX_SECTOR; ++s)
	    aTofMult[s] = m[s];
      }
      void setTofinoMult(const Int_t m[MAX_SECTOR]) {
	 for (Int_t s = 0; s < MAX_SECTOR; ++s)
	    aTofinoMult[s] = m[s];
      }
      void setShowerMult(const Int_t m[MAX_SECTOR]) {
	 for (Int_t s = 0; s < MAX_SECTOR; ++s)
	    aShowerMult[s] = m[s];
      }
      void setPidTrackCandMult(const Int_t m[MAX_SECTOR]) {
	 for (Int_t s = 0; s < MAX_SECTOR; ++s)
	    aPidTrackCandMult[s] = m[s];
      }
      void setSelectedPidTrackCandMult(const Int_t m[MAX_SECTOR]) {
	 for (Int_t s = 0; s < MAX_SECTOR; ++s)
	    aSelectedPidTrackCandMult[s] = m[s];
      }
      void setMdcClusMult(const Int_t m[MAX_SECTOR][MAX_IOSEG]) { 
	 for (Int_t s = 0; s < MAX_SECTOR; ++s)  
	    for (Int_t io = 0; io < MAX_IOSEG; ++io)
	       aMdcClusMult[s][io] = m[s][io]; 
      }
      void setMdcSegFittedMult(const Int_t m[MAX_SECTOR][MAX_IOSEG]) { 
	 for (Int_t s = 0; s < MAX_SECTOR; ++s)  
	    for (Int_t io = 0; io < MAX_IOSEG; ++io)
	       aMdcSegFittedMult[s][io] = m[s][io]; 
      }
      void setMdcSegUnfittedMult(const Int_t m[MAX_SECTOR][MAX_IOSEG]) { 
	 for (Int_t s = 0; s < MAX_SECTOR; ++s)  
	    for (Int_t io = 0; io < MAX_IOSEG; ++io)
	       aMdcSegUnfittedMult[s][io] = m[s][io]; 
      }
      void setFWallMult(Int_t m)      { nFWallMult   = m; }
      void setFWallVector(Double_t d) { fFWallVector = d; }
      void setRPlanePhi(Double_t d)   { fRPlanePhi   = d; }
	

      Int_t getRichMult(Int_t s) const {
	 return
	    ( s >= 0 && s < MAX_SECTOR )  ?  aRichMult[s]  :  -1;
      }
      Int_t getRichCorrMult(Int_t s) const {
	 return
	    ( s >= 0 && s < MAX_SECTOR )  ?  aRichCorrMult[s]  :  -1;
      }
      Int_t getRichClusMult(Int_t s) const {
	 return
	    ( s >= 0 && s < MAX_SECTOR )  ?  aRichClusMult[s]  :  -1;
      }
      Int_t getTofMult(Int_t s) const {
	 return
	    ( s >= 0 && s < MAX_SECTOR )  ?  aTofMult[s]  :  -1;
      }
      Int_t getTofinoMult(Int_t s) const {
	 return
	    ( s >= 0 && s < MAX_SECTOR )  ?  aTofinoMult[s]  :  -1;
      }
      Int_t getShowerMult(Int_t s) const {
	 return 
	    ( s >= 0 && s < MAX_SECTOR )  ?  aShowerMult[s]  :  -1;
      }
      Int_t getPidTrackCandMult(Int_t s) const {
	 return
	    ( s >= 0 && s < MAX_SECTOR )  ?  aPidTrackCandMult[s]  :  -1;
      }
      Int_t getSelectedPidTrackCandMult(Int_t s) const {
	 return
	    ( s >= 0 && s < MAX_SECTOR )  ?  aSelectedPidTrackCandMult[s]  :  -1;
      }
      Int_t getMdcClusMult(Int_t s, Int_t io) const { 
	 return
	    ( s >= 0 && s < MAX_SECTOR  &&  io >= 0 &&  io < MAX_IOSEG )  ?
	    aMdcClusMult[s][io]  :  -1;
      }
      Int_t getMdcSegFittedMult(Int_t s, Int_t io) const { 
	 return
	    ( s >= 0 && s < MAX_SECTOR  &&  io >= 0 &&  io < MAX_IOSEG )  ?
	    aMdcSegFittedMult[s][io]  :  -1;
      }
      Int_t getMdcSegUnfittedMult(Int_t s, Int_t io) const { 
	 return
	    (s < MAX_SECTOR  &&  io < MAX_IOSEG)  ?
	    aMdcSegUnfittedMult[s][io]  :  -1;
      }

      Int_t getSumRichMult() const {
	  Int_t sum = 0;
	  for (Int_t s = 0; s < MAX_SECTOR; ++s ) sum += aRichMult[s];
	  return sum;
      }
      Int_t getSumRichCorrMult() const {
	  Int_t sum = 0;
	  for (Int_t s = 0; s < MAX_SECTOR; ++s ) sum += aRichCorrMult[s];
	  return sum;
      }
      Int_t getSumRichClusMult() const {
	  Int_t sum = 0;
	  for (Int_t s = 0; s < MAX_SECTOR; ++s ) sum += aRichClusMult[s];
	  return sum;
      }
      Int_t getSumTofMult() const {
	  Int_t sum = 0;
	  for (Int_t s = 0; s < MAX_SECTOR; ++s ) sum += aTofMult[s];
	  return sum;
      }
      Int_t getSumTofinoMult() const {
	  Int_t sum = 0;
	  for (Int_t s = 0; s < MAX_SECTOR; ++s ) sum += aTofinoMult[s];
	  return sum;
      }
      Int_t getSumShowerMult() const {
	  Int_t sum = 0;
	  for (Int_t s = 0; s < MAX_SECTOR; ++s ) sum += aShowerMult[s];
	  return sum;
      }
      Int_t getSumPidTrackCandMult() const {
	  Int_t sum = 0;
	  for (Int_t s = 0; s < MAX_SECTOR; ++s ) sum += aPidTrackCandMult[s];
	  return sum;
      }
      Int_t getSumSelectedPidTrackCandMult() const {
	  Int_t sum = 0;
	  for (Int_t s = 0; s < MAX_SECTOR; ++s ) sum += aSelectedPidTrackCandMult[s];
	  return sum;
      }
      Int_t getSumMdcClusMult(Int_t io) const {
	  Int_t sum = 0;
	  for (Int_t s = 0; s < MAX_SECTOR; ++s ) sum += aMdcClusMult[s][io];
	  return sum;
      }
      Int_t getSumMdcSegFittedMult(Int_t io) const {
	  Int_t sum = 0;
	  for (Int_t s = 0; s < MAX_SECTOR; ++s ) sum += aMdcSegFittedMult[s][io];
	  return sum;
      }
      Int_t getSumMdcSegUnfittedMult(Int_t io) const {
	  Int_t sum = 0;
	  for (Int_t s = 0; s < MAX_SECTOR; ++s ) sum += aMdcSegUnfittedMult[s][io];
	  return sum;
      }



      Int_t    getFWallMult(void)   const { return nFWallMult;   }
      Double_t getFWallVector(void) const { return fFWallVector; }
      Double_t getRPlanePhi(void)   const { return fRPlanePhi;   }




      void clearMembers(void);
   ClassDef(HPidEvtInfo, 3) // Event characteristic info
};
 
#endif //HPIDEVTINFO_H

Last change: Sat May 22 13:07:03 2010
Last generated: 2010-05-22 13:07

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.