1. Adding a possibility to read and reconstruct an old rcu formatted raw data. This...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 1 Aug 2006 12:20:17 +0000 (12:20 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 1 Aug 2006 12:20:17 +0000 (12:20 +0000)
PHOS/AliPHOSClusterizerv1.cxx
PHOS/AliPHOSClusterizerv1.h
PHOS/AliPHOSGetter.cxx
PHOS/AliPHOSGetter.h
PHOS/AliPHOSReconstructor.cxx

index 8b24344..c0bbb70 100644 (file)
@@ -18,6 +18,9 @@
 /* History of cvs commits:
  *
  * $Log$
+ * Revision 1.92  2006/04/29 20:26:46  hristov
+ * Separate EMC and CPV calibration (Yu.Kharlov)
+ *
  * Revision 1.91  2006/04/22 10:30:17  hristov
  * Add fEnergy to AliPHOSDigit and operate with EMC amplitude in energy units (Yu.Kharlov)
  *
@@ -231,8 +234,9 @@ void AliPHOSClusterizerv1::Exec(Option_t *option)
   for (ievent = fFirstEvent; ievent <= fLastEvent; ievent++) {
     if (fRawReader == 0)
       gime->Event(ievent    ,"D"); // Read digits from simulated data
-    else
-      gime->Event(fRawReader,"W"); // Read digits from raw data
+    else {
+      gime->Event(fRawReader,"W",fIsOldRCUFormat); // Read digits from raw data
+    }
     fNumberOfEmcClusters  = fNumberOfCpvClusters  = 0 ;
     
     MakeClusters() ;
@@ -399,6 +403,10 @@ void AliPHOSClusterizerv1::Init()
     gime = AliPHOSGetter::Instance(GetTitle(), fEventFolderName.Data());
 
   AliPHOSGeometry * geom = gime->PHOSGeometry();
+  if (!geom) {
+    AliError("Could not find PHOS geometry! Loading the default one !");
+    geom = AliPHOSGeometry::GetInstance("IHEP","");
+  }
 
   fEmcCrystals = geom->GetNModules() *  geom->GetNCristalsInModule() ;
 
@@ -440,6 +448,8 @@ void AliPHOSClusterizerv1::InitParameters()
   fCalibData               = 0 ;
 
   SetEventRange(0,-1) ;
+
+  fIsOldRCUFormat          = kFALSE;
 }
 
 //____________________________________________________________________________
index 9f9a191..80a3a9e 100644 (file)
@@ -8,6 +8,9 @@
 /* History of cvs commits:
  *
  * $Log$
+ * Revision 1.45  2006/04/29 20:26:46  hristov
+ * Separate EMC and CPV calibration (Yu.Kharlov)
+ *
  * Revision 1.44  2005/09/02 14:32:07  kharlov
  * Calibration of raw data
  *
@@ -93,6 +96,9 @@ public:
   void Unload() ; 
   virtual const char * Version() const { return "clu-v1"; }  
 
+  virtual void SetOldRCUFormat(Bool_t rcuFormat = kFALSE)
+    { fIsOldRCUFormat = rcuFormat; };
+
 protected:
 
   void           WriteRecPoints() ;
@@ -145,8 +151,10 @@ private:
   Float_t fW0CPV ;                   // logarithmic weight for the CPV cluster center of gravity calculation
   Int_t fRecPointsInRun ;            //! Total number of recpoints in one run
   Float_t fEmcTimeGate ;             // Maximum time difference between the digits in ont EMC cluster
+
+  Bool_t  fIsOldRCUFormat;           // assume old RCU raw data format
     
-  ClassDef(AliPHOSClusterizerv1,3)   // Clusterizer implementation version 1
+  ClassDef(AliPHOSClusterizerv1,4)   // Clusterizer implementation version 1
 
 };
 
index c007ccf..1d7b0da 100644 (file)
@@ -336,9 +336,11 @@ void AliPHOSGetter::Event(Int_t event, const char* opt)
 
 
 //____________________________________________________________________________ 
-void AliPHOSGetter::Event(AliRawReader *rawReader, const char* opt) 
+void AliPHOSGetter::Event(AliRawReader *rawReader, const char* opt, Bool_t isOldRCUFormat) 
 {
   // Reads the raw event from rawReader
+  // isOldRCUFormat defines whenever to assume
+  // the old RCU format or not
 
   AliRunLoader * rl = AliRunLoader::GetRunLoader(PhosLoader()->GetTitle());
   
@@ -346,7 +348,7 @@ void AliPHOSGetter::Event(AliRawReader *rawReader, const char* opt)
     rawReader->NextEvent(); 
     Int_t iEvent = rl->GetEventNumber();
     rl->GetEvent(iEvent);
-    ReadRaw(rawReader) ;
+    ReadRaw(rawReader,isOldRCUFormat) ;
   }    
  
 }
@@ -658,12 +660,15 @@ Int_t AliPHOSGetter::CalibrateRaw(Double_t energy, Int_t *relId)
   return amp;
 }
 //____________________________________________________________________________ 
-Int_t AliPHOSGetter::ReadRaw(AliRawReader *rawReader)
+Int_t AliPHOSGetter::ReadRaw(AliRawReader *rawReader,Bool_t isOldRCUFormat)
 {
   // reads the raw format data, converts it into digits format and store digits in Digits()
   // container.
+  // isOldRCUFormat = kTRUE in case of the old RCU
+  // format used in the raw data readout
 
   AliPHOSRawStream in(rawReader);
+  in.SetOldRCUFormat(isOldRCUFormat);
  
   Bool_t first = kTRUE ;
   
index 746afd6..865b297 100644 (file)
@@ -92,7 +92,7 @@ public:
   
   //========== Methods to read something from file ==========
   virtual void   Event(Int_t event, const char * opt = "HSDRTP") ;    
-  void   Event(AliRawReader *rawReader, const char * opt = "W") ;    
+  void   Event(AliRawReader *rawReader, const char * opt = "W",Bool_t isOldRCUFormat = kFALSE) ;    
   virtual void   Track(Int_t itrack) ;
  
   
@@ -187,7 +187,7 @@ public:
     return  PhosLoader()->WritePID(opt) ; }
 
   //========== Raw ===========
-  virtual Int_t ReadRaw(AliRawReader *rawReader) ; 
+  virtual Int_t ReadRaw(AliRawReader *rawReader,Bool_t isOldRCUFormat) ; 
 
   void SetDebug(Int_t level) {fgDebug = level;} // Set debug level 
   virtual void PostClusterizer(AliPHOSClusterizer * clu) 
index 726aa99..c898524 100644 (file)
@@ -90,6 +90,11 @@ void AliPHOSReconstructor::Reconstruct(AliRunLoader* runLoader, AliRawReader* ra
   AliPHOSClusterizerv1 clu(headerFile, branchName);
   clu.SetEventRange(0, -1) ; // do all the events
   clu.SetRawReader(rawreader);
+
+  TString option = GetOption();
+  if (option.Contains("OldRCUFormat"))
+    clu.SetOldRCUFormat(kTRUE);
+
   if ( Debug() ) 
     clu.ExecuteTask("deb all") ; 
   else