FO signals are propagated from SDigits to Digits (A.MAstroserio)
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 18 Mar 2011 14:41:25 +0000 (14:41 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 18 Mar 2011 14:41:25 +0000 (14:41 +0000)
ITS/AliITS.cxx
ITS/AliITS.h
ITS/AliITSDetTypeSim.cxx
ITS/AliITSDigitizer.cxx

index 3e096c0..b109d66 100644 (file)
@@ -748,16 +748,10 @@ void AliITS::HitsToDigits(Int_t evNumber,Int_t bgrev,Int_t size,
   
   ClearModules();
  
-  // Add random noise to FO signals
-  if (all || det[0]) { // SPD present
-    fDetTypeSim->ProcessNoiseForFastOr();
-  }
-
   // Add Fast-OR signals to event (only one object per event)
   if (all || det[0]) { // SPD present
-    fDetTypeSim->WriteFOSignals();
+    WriteFOSignals();
   }
-
   
   fLoader->TreeD()->GetEntries();
   fLoader->TreeD()->AutoSave();
@@ -1010,7 +1004,6 @@ void AliITS::SDigitsToDigits(Option_t *opt){
     AliError("fDetTypeSim is 0!");
     return;
   }
-
   const char *all = strstr(opt,"All");
   const char *det[3] ={strstr(opt,"SPD"),strstr(opt,"SDD"),
                       strstr(opt,"SSD")};
@@ -1023,13 +1016,9 @@ void AliITS::SDigitsToDigits(Option_t *opt){
   if(fSimuParam) fDetTypeSim->SetSimuParam(fSimuParam);
   fDetTypeSim->SDigitsToDigits(opt,(Char_t*)GetName());
 
-  // Add random noise to FO signals
-  if (all || det[0]) { // SPD present
-    fDetTypeSim->ProcessNoiseForFastOr();
-  }
   // Add Fast-OR signals to event (only one object per event)
   if (all || det[0]) { // SPD present
-    fDetTypeSim->WriteFOSignals();
+   WriteFOSignals();
   }
 }
 
@@ -1393,3 +1382,11 @@ AliTriggerDetector* AliITS::CreateTriggerDetector() const {
   // create an AliITSTrigger object (and set trigger conditions as input)
   return new AliITSTrigger(fDetTypeSim->GetTriggerConditions());
 }
+//______________________________________________________________________
+void AliITS::WriteFOSignals(){
+// This method write FO signals in Digits tree both in Hits2Digits
+// or SDigits2Digits
+
+  fDetTypeSim->ProcessNoiseForFastOr();
+  fDetTypeSim->WriteFOSignals();
+}
index d48c46a..76bdca5 100644 (file)
@@ -146,6 +146,9 @@ class AliITS : public AliDetector {
     virtual void   Digits2Raw();
     virtual Bool_t Raw2SDigits(AliRawReader*);
     
+    //===================== FO signals ================================
+    // Write FO signals in UserInfo of SDigits/Digits tree
+    void WriteFOSignals();
 
  protected:
     static const Int_t fgkNTYPES=3; //number of detector types
index ba09e78..724b948 100644 (file)
@@ -891,6 +891,8 @@ void AliITSDetTypeSim::SDigitsToDigits(Option_t* opt, Char_t* name){
     fLoader->TreeD()->Fill();
     ResetDigits();
   }
+
+  WriteFOSignals(); 
   fLoader->TreeD()->GetEntries();
   fLoader->TreeD()->AutoSave();
   fLoader->TreeD()->Reset();
@@ -1058,5 +1060,6 @@ void AliITSDetTypeSim::WriteFOSignals() {
   TTree *tree = fLoader->TreeD();
   AliITSFOSignalsSPD *foSignals = new AliITSFOSignalsSPD(*GetFOSignals()); 
   tree->GetUserInfo()->Add(foSignals);
+  fFOGenerator.ResetSignals();
 }
 
index a2b3dfb..014f4a7 100644 (file)
@@ -269,7 +269,7 @@ void AliITSDigitizer::Exec(Option_t* opt){
         outgime->TreeD()->Fill();
        fITS->ResetDigits();
     } // end for module
-    
+    fITS->WriteFOSignals(); 
     outgime->TreeD()->AutoSave();
     outgime->WriteDigits("OVERWRITE");
     outgime->UnloadDigits();