Bug fix in call of TRAP simulation and correction of thresholds
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 7 Apr 2009 18:45:33 +0000 (18:45 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 7 Apr 2009 18:45:33 +0000 (18:45 +0000)
TRD/AliTRDdigitizer.cxx
TRD/AliTRDmcmSim.cxx
TRD/AliTRDtrapConfig.cxx

index dd75f25..d2c1562 100644 (file)
@@ -1789,7 +1789,7 @@ void AliTRDdigitizer::RunDigitalProcessing(AliTRDarrayADC *digits, Int_t det)
   AliTRDmcmSim* mcmfast = new AliTRDmcmSim(); 
 
   //Call the methods in the mcm class using the temporary array as input  
-  for(Int_t rob = 0; rob < digits->GetNrow() / 4; rob++)
+  for(Int_t rob = 0; rob < digits->GetNrow() / 2; rob++)
   {
     for(Int_t mcm = 0; mcm < 16; mcm++)
     {
index 8ec0ac7..dd74c76 100644 (file)
@@ -200,8 +200,7 @@ Bool_t AliTRDmcmSim::LoadMCM(AliRunLoader* const runloader, Int_t det, Int_t rob
 {
   // loads the ADC data as obtained from the digitsManager for the specified MCM
 
-  if (!CheckInitialized())
-    Init(det, rob, mcm);
+  Init(det, rob, mcm);
 
   if (!runloader) {
     AliError("No Runloader given");
@@ -428,9 +427,7 @@ void AliTRDmcmSim::Draw(Option_t* const option)
 
   if (opt.Contains("T")) {
     TLine *trklLines = new TLine[4];
-    for (Int_t iTrkl = 0; iTrkl < 4; iTrkl++) {
-      if (fMCMT[iTrkl] == 0x10001000)
-        break;
+    for (Int_t iTrkl = 0; iTrkl < fTrackletArray->GetEntries(); iTrkl++) {
       AliTRDpadPlane *pp = fGeo->GetPadPlane(fDetector);
       AliTRDtrackletMCM *trkl = (AliTRDtrackletMCM*) (*fTrackletArray)[iTrkl];
       Float_t offset = pp->GetColPos(fFeeParam->GetPadColFromADC(fRobPos, fMcmPos, 19)) + 19 * pp->GetWidthIPad();
@@ -1104,7 +1101,7 @@ void AliTRDmcmSim::CalcFitreg()
     26, 26, 26, 25, 25, 25, 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, 19, 18, 18, 17, 17, 16, 15, 14, 13, 12, 11, 10,  9,  8,  7,  7};
   
   //??? to be clarified:
-  UInt_t adcMask = 0xfffff;
+  UInt_t adcMask = 0xffffffff;
   
   UShort_t timebin, adcch, adcLeft, adcCentral, adcRight, hitQual, timebin1, timebin2, qtotTemp;
   Short_t ypos, fromLeft, fromRight, found;
@@ -1440,7 +1437,7 @@ void AliTRDmcmSim::FitTracklet()
           AliWarning("Overflow in slope");
         slope   = slope  &   0x7F; // 7 bit
 
-        if (offset > 0xfff || offset < 0xfff)
+        if (offset > 0xfff || offset < -0xfff)
           AliWarning("Overflow in offset");
         offset  = offset & 0x1FFF; // 13 bit
 
index 3f0d121..1891126 100644 (file)
@@ -457,8 +457,11 @@ AliTRDtrapConfig* AliTRDtrapConfig::Instance()
 {\r
   // return a pointer to an instance of this class\r
 \r
-  if (!fgInstance)\r
+  if (!fgInstance) {\r
     fgInstance = new AliTRDtrapConfig();\r
+    fgInstance->LoadConfig();\r
+  }\r
+\r
   return fgInstance;\r
 }\r
 \r
@@ -538,7 +541,7 @@ Bool_t AliTRDtrapConfig::LoadConfig()
   // pedestal filter\r
   SetTrapReg(kFPNP, 4*10);\r
   SetTrapReg(kFPTC, 0);\r
-  SetTrapReg(kFPBY, 1);\r
+  SetTrapReg(kFPBY, 0); // bypassed!\r
   \r
   // gain filter\r
   for (Int_t adc = 0; adc < 20; adc++) {\r
@@ -550,9 +553,9 @@ Bool_t AliTRDtrapConfig::LoadConfig()
   SetTrapReg(kFGBY, 0);  // bypassed!\r
 \r
   // tail cancellation\r
-  SetTrapReg(kFTAL, 270);\r
-  SetTrapReg(kFTLL, 348);\r
-  SetTrapReg(kFTLS, 449);\r
+  SetTrapReg(kFTAL, 267);\r
+  SetTrapReg(kFTLL, 356);\r
+  SetTrapReg(kFTLS, 387);\r
   SetTrapReg(kFTBY, 1);\r
 \r
   // tracklet calculation\r
@@ -564,18 +567,21 @@ Bool_t AliTRDtrapConfig::LoadConfig()
   SetTrapReg(kTPFE, 20);\r
   SetTrapReg(kTPVBY, 0);\r
   SetTrapReg(kTPVT, 10);\r
-  SetTrapReg(kTPHT, 100);\r
-  SetTrapReg(kTPFP, 40);\r
-  SetTrapReg(kTPCL, 3);\r
-  SetTrapReg(kTPCT, 5);\r
+  SetTrapReg(kTPHT, 30);\r
+  SetTrapReg(kTPFP, 0);\r
+  SetTrapReg(kTPCL, 1);\r
+  SetTrapReg(kTPCT, 8);\r
   \r
   // event buffer\r
   SetTrapReg(kEBSF, 1);  // 0: store filtered; 1: store unfiltered\r
   // zs applied to data stored in event buffer (sel. by EBSF)\r
   SetTrapReg(kEBIS, 5 << 2); // single indicator threshold (plus two digits)\r
-  SetTrapReg(kEBIT, 5 << 2); // sum indicator threshold (plus two digits)\r
+  SetTrapReg(kEBIT, 20 << 2); // sum indicator threshold (plus two digits)\r
   SetTrapReg(kEBIL, 0xf0);   // lookup table\r
-  SetTrapReg(kEBIN, 1);      // no neighbour sensitivity\r
+  SetTrapReg(kEBIN, 0);      // neighbour sensitivity\r
+\r
+  // raw data\r
+  SetTrapReg(kNES, (0x0000 << 16) | 0x1000);\r
 \r
   return kTRUE;\r
 }\r
@@ -607,5 +613,3 @@ void AliTRDtrapConfig::PrintTrapReg(TrapReg_t reg, Int_t det, Int_t rob, Int_t m
     }\r
   }\r
 }\r
-\r
-\r