]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDInput.h
Add Shuttle utilities class
[u/mrichter/AliRoot.git] / FMD / AliFMDInput.h
index a3828c92392a5c15ff07f89fd2f711fb9313fc6d..be78f6067e95afd9a74b86eae7d98309c19c596e 100644 (file)
@@ -107,7 +107,8 @@ public:
     kRecPoints,       // Reconstructed points
     kESD,             // Load ESD's
     kRaw,             // Read raw data 
-    kGeometry         // Not really a tree 
+    kGeometry,        // Not really a tree 
+    kTracks          // Hits and tracs - for BG study  
   };
   /** CTOR  */
   AliFMDInput();
@@ -155,6 +156,10 @@ public:
       optionally the corresponding kinematics track. 
       @return @c false on error  */
   virtual Bool_t ProcessHits();
+  /** Loop over all tracks, and call ProcessTrack with each hit for
+      that track
+      @return @c false on error  */
+  virtual Bool_t ProcessTracks();
   /** Loop over all digits, and call ProcessDigit for each digit.
       @return @c false on error  */
   virtual Bool_t ProcessDigits();
@@ -170,35 +175,86 @@ public:
       each reconstructed point. 
       @return @c false on error  */
   virtual Bool_t ProcessRecPoints();
+  /** Loop over all ESD data, and call ProcessESD for each entry.
+      @return  @c false on error  */
+  virtual Bool_t ProcessESDs();
 
   /** Process one hit, and optionally it's corresponding kinematics
       track.  Users should over this to process each hit. 
+      @param h Hit 
+      @param p Associated track
       @return  @c false on error   */
-  virtual Bool_t ProcessHit(AliFMDHit*, TParticle*)  { return kTRUE; }
-  /** Process one digit.  Users should over this to process each digit. 
+  virtual Bool_t ProcessHit(AliFMDHit* h, TParticle* p);
+  /** Process one hit per track. Users should over this to process
+      each hit. 
+      @param i Track number 
+      @param p Track  
+      @param h Associated Hit
       @return  @c false on error   */
-  virtual Bool_t ProcessDigit(AliFMDDigit*)          { return kTRUE; }
+  virtual Bool_t ProcessTrack(Int_t i, TParticle* p, AliFMDHit* h);
+  /** Process one digit.  Users should over this to process each
+      digit. 
+      @param digit Digit
+      @return  @c false on error   */
+  virtual Bool_t ProcessDigit(AliFMDDigit* digit);
   /** Process one summable digit.  Users should over this to process
       each summable digit.  
+      @param sdigit Summable digit
       @return  @c false on error   */
-  virtual Bool_t ProcessSDigit(AliFMDSDigit*)        { return kTRUE; }
+  virtual Bool_t ProcessSDigit(AliFMDSDigit* sdigit);
   /** Process one digit from raw data files.  Users should over this
       to process each raw digit.  
+      @param digit Raw digit
       @return  @c false on error   */
-  virtual Bool_t ProcessRawDigit(AliFMDDigit*)       { return kTRUE; }
+  virtual Bool_t ProcessRawDigit(AliFMDDigit* digit);
   /** Process one reconstructed point.  Users should over this to
       process each reconstructed point.  
+      @param point Reconstructed point 
       @return  @c false on error   */
-  virtual Bool_t ProcessRecPoint(AliFMDRecPoint*)    { return kTRUE; }
+  virtual Bool_t ProcessRecPoint(AliFMDRecPoint* point);
   /** Process ESD data for the FMD.  Users should overload this to
       deal with ESD data. 
+      @param d    Detector number (1-3)
+      @param r    Ring identifier ('I' or 'O')
+      @param s    Sector number (0-19, or 0-39)
+      @param t    Strip number (0-511, or 0-255)
+      @param eta  Psuedo-rapidity 
+      @param mult Psuedo-multiplicity 
       @return  @c false on error  */
-  virtual Bool_t ProcessESD(AliESDFMD*)              { return kTRUE; }
+  virtual Bool_t ProcessESD(UShort_t, Char_t, UShort_t, UShort_t, 
+                           Float_t, Float_t);
   
 protected:
   /** Copy ctor 
       @param o Object to copy from  */
-  AliFMDInput(const AliFMDInput& o) : TObject(o) {}
+  AliFMDInput(const AliFMDInput& o) 
+    : TObject(o),
+      fGAliceFile(""),
+      fLoader(0),
+      fRun(0),
+      fStack(0),
+      fFMDLoader(0),
+      fReader(0),
+      fFMD(0),
+      fMainESD(0),
+      fESD(0),
+      fTreeE(0),
+      fTreeH(0),
+      fTreeD(0),
+      fTreeS(0),
+      fTreeR(0),
+      fTreeA(0),
+      fChainE(0),
+      fArrayE(0),
+      fArrayH(0),
+      fArrayD(0),
+      fArrayS(0),
+      fArrayR(0),
+      fArrayA(0),
+      fGeoManager(0),
+      fTreeMask(0),
+      fIsInit(kFALSE)
+  {}
   /** Assignement operator 
       @return  REference to this */
   AliFMDInput& operator=(const AliFMDInput&) { return *this; }
@@ -231,6 +287,16 @@ protected:
   ClassDef(AliFMDInput,0)  //Hits for detector FMD
 };
 
+inline Bool_t AliFMDInput::ProcessHit(AliFMDHit*,TParticle*) { return kTRUE; }
+inline Bool_t AliFMDInput::ProcessTrack(Int_t,TParticle*,
+                                       AliFMDHit*) { return kTRUE; }
+inline Bool_t AliFMDInput::ProcessDigit(AliFMDDigit*) { return kTRUE; }
+inline Bool_t AliFMDInput::ProcessSDigit(AliFMDSDigit*) { return kTRUE; }
+inline Bool_t AliFMDInput::ProcessRawDigit(AliFMDDigit*) { return kTRUE; }
+inline Bool_t AliFMDInput::ProcessRecPoint(AliFMDRecPoint*) { return kTRUE; }
+inline Bool_t AliFMDInput::ProcessESD(UShort_t,Char_t,UShort_t,UShort_t,
+                                     Float_t,Float_t) { return kTRUE; }
+
 
 #endif
 //____________________________________________________________________