]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ZDC/AliZDC.cxx
Bug in array initialization corrected
[u/mrichter/AliRoot.git] / ZDC / AliZDC.cxx
index cf11533ec72aff7ed9e299158ae2f26b8b8e6942..11005a6a3f8af791c44282e49ed7f7d9b57089fb 100644 (file)
@@ -59,7 +59,8 @@ AliZDC::AliZDC() :
   fNoShower(0),
   fPedCalib(0),
   fCalibData(0),
-  fZDCCalibFName("")
+  fZDCCalibFName(""),
+  fSpectatorTracked(1)
 {
   //
   // Default constructor for the Zero Degree Calorimeter base class
@@ -79,7 +80,8 @@ AliZDC::AliZDC(const char *name, const char *title) :
   fNoShower  (0),
   fPedCalib(0),
   fCalibData(0),
-  fZDCCalibFName("")
+  fZDCCalibFName(""),
+  fSpectatorTracked(1)
 {
   //
   // Standard constructor for the Zero Degree Calorimeter base class
@@ -119,7 +121,8 @@ AliDetector("ZDC","ZDC"),
 fNoShower(ZDC.fNoShower),
 fPedCalib(ZDC.fPedCalib),
 fCalibData(ZDC.fCalibData),
-fZDCCalibFName(ZDC.fZDCCalibFName)
+fZDCCalibFName(ZDC.fZDCCalibFName),
+fSpectatorTracked(ZDC.fSpectatorTracked)
 {
   // copy constructor
 }
@@ -258,7 +261,7 @@ void AliZDC::Hits2SDigits()
   // Event loop
   for(Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) {
     Float_t pmZNC[5], pmZPC[5], pmZNA[5], pmZPA[5], pmZEM1=0., pmZEM2=0.;
-    for(Int_t i=0; i<4; i++) pmZNC[i] = pmZPC[i] =  pmZNA[i] = pmZPA[i] = 0;
+    for(Int_t i=0; i<5; i++) pmZNC[i] = pmZPC[i] =  pmZNA[i] = pmZPA[i] = 0;
 
     runLoader->GetEvent(iEvent);
     TTree* treeH = fLoader->TreeH();
@@ -266,7 +269,7 @@ void AliZDC::Hits2SDigits()
     ResetHits();
 
     // Tracks loop
-    Int_t sector[2]; Float_t trackTime;
+    Int_t sector[2]; Float_t trackTime = 0.;
     for(Int_t itrack = 0; itrack < ntracks; itrack++) {
       treeH->GetEntry(itrack);
       for(AliZDCHit* zdcHit = (AliZDCHit*)FirstHit(-1); zdcHit;
@@ -281,6 +284,8 @@ void AliZDC::Hits2SDigits()
        Float_t lightQ = zdcHit->GetLightPMQ();
        Float_t lightC = zdcHit->GetLightPMC();
        trackTime = zdcHit->GetTrackTOF();
+       // Signals from ZEM are delayed to arrive in time with ZDC signals
+       if(sector[0] == 3)  trackTime += 320;
        // Ch. debug
        //printf("\t det %d vol %d trackTOF %f lightQ %1.0f lightC %1.0f\n",
        //      sector[0], sector[1], trackTime, lightQ, lightC);
@@ -398,8 +403,10 @@ void AliZDC::Hits2SDigits()
 AliDigitizer* AliZDC::CreateDigitizer(AliRunDigitizer* manager) const
 {
   // Create the digitizer for ZDC
-
-  return new AliZDCDigitizer(manager);
+  AliZDCDigitizer *zdcDigitizer = new AliZDCDigitizer(manager);
+  if(fSpectatorTracked==0) zdcDigitizer->SetSpectators2Track();
+  //printf("\n**************************ZDC digitizer created with Spectators2Track = %d\n\n", fSpectatorTracked);
+  return zdcDigitizer;
 }
 
 //_____________________________________________________________________________