]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
code update by Gaute:
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 2 Jun 2009 09:27:53 +0000 (09:27 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 2 Jun 2009 09:27:53 +0000 (09:27 +0000)
SPD an SSD:
- Remove AliITSCalibration. Get this from AliITSDetTypeRec.
- Initialize using AliITSDetTypsRec instead og the  Calibration object
- Getting equipment ID the right way.

macros:
    Change to match the equipment ID <-> spec.

HLT/ITS/AliHLTITSClusterFinderSPDComponent.cxx
HLT/ITS/AliHLTITSClusterFinderSPDComponent.h
HLT/ITS/AliHLTITSClusterFinderSSDComponent.cxx
HLT/ITS/AliHLTITSClusterFinderSSDComponent.h
HLT/ITS/macros/rec-spd-cluster.C
HLT/ITS/macros/rec-ssd-cluster.C

index b1f03d406ec5981e2709eb7067cea78d6699dedd..4e550f7f50c2b1948f5b2abcbac33e97d23e0784 100644 (file)
@@ -1,5 +1,4 @@
-
-
+// $Id$
 //**************************************************************************
 //* This file is property of and copyright by the ALICE HLT Project        * 
 //* ALICE Experiment at CERN, All rights reserved.                         *
@@ -45,26 +44,25 @@ ClassImp(AliHLTITSClusterFinderSPDComponent);
 
 AliHLTITSClusterFinderSPDComponent::AliHLTITSClusterFinderSPDComponent()
   :
-  fNModules(240),
+  fNModules(240/*AliITSDetTypeRec::fgkDefaultNModulesSPD*/),
   fClusterFinder(NULL),
   fRawReader(NULL),
   fDettype(NULL),
   fClusters(NULL),
-  fcal(NULL),
   fgeom(NULL),
-  fgeomInit(NULL){
-  //fRawReaderOff(NULL),
-  //fRawStream(NULL),
-  //fNModules(AliITSgeomTGeo::GetNModules()),
-  //fNModules(AliITSDetTupeRec::fgkDefaultNModulesSPD),
-  
-  
-
+  fgeomInit(NULL),
+  fSeg(NULL)
+{ 
   // see header file for class documentation
   // or
   // refer to README to build package
   // or
   // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
+
+  // AliITSDetTypeRec::fgkDefaultNModulesSPD private for the moment
+//   if (AliITSDetTypeRec::fgkDefaultNModulesSPD!=240) {
+//     HLTWarning("Number of modules has changed (AliITSDetTypeRec::fgkDefaultNModulesSPD)");
+//   }
 }
 
 AliHLTITSClusterFinderSPDComponent::~AliHLTITSClusterFinderSPDComponent() {
@@ -116,7 +114,6 @@ Int_t AliHLTITSClusterFinderSPDComponent::DoInit( int /*argc*/, const char** /*a
     fClusters[iModule] = NULL;
   }
 
-  fcal = new AliITSCalibrationSPD();
   //fgeomInit = new AliITSInitGeometry(kvSPD02,2);
   fgeomInit = new AliITSInitGeometry(kvPPRasymmFMD,2);
   fgeom = fgeomInit->CreateAliITSgeom();
@@ -124,11 +121,14 @@ Int_t AliHLTITSClusterFinderSPDComponent::DoInit( int /*argc*/, const char** /*a
   //set dettype
   fDettype = new AliITSDetTypeRec();
   fDettype->SetITSgeom(fgeom);
-  for (Int_t iModule = 0; iModule < fNModules; iModule++) {
-    fDettype->SetCalibrationModel(iModule,fcal);
-  }
+  fDettype->SetReconstructionModel(0,fClusterFinder);
+  fDettype->SetDefaultClusterFindersV2(kTRUE);
+  fDettype->GetCalibration();
+  fSeg = new AliITSsegmentationSSD();
+  fDettype->SetSegmentationModel(0,fSeg);
   
   fClusterFinder = new AliITSClusterFinderV2SPD(fDettype); 
+  fClusterFinder->InitGeometry();
 
   if ( fRawReader )
     return EINPROGRESS;
@@ -149,6 +149,19 @@ Int_t AliHLTITSClusterFinderSPDComponent::DoDeinit() {
     delete fClusterFinder;
   fClusterFinder = NULL;
 
+  if ( fDettype )
+    delete fDettype;
+  fDettype = NULL;
+
+  for (Int_t iModule = 0; iModule < fNModules; iModule++) {
+    if (fClusters[iModule]) delete fClusters[iModule];
+    fClusters[iModule] = NULL;
+  }
+  
+  if ( fgeomInit )
+    delete fgeomInit;
+  fgeomInit = NULL;
+
   return 0;
 }
 
@@ -180,12 +193,9 @@ Int_t AliHLTITSClusterFinderSPDComponent::DoEvent( const AliHLTComponentEventDat
               DataType2Text(kAliHLTDataTypeDDLRaw | kAliHLTDataOriginITSSPD).c_str());
     
     // -- Check for the correct data type
-    if ( iter->fDataType != (kAliHLTDataTypeDDLRaw | kAliHLTDataOriginITSSPD) )   //Add SPD to data origin????????
+    if ( iter->fDataType != (kAliHLTDataTypeDDLRaw | kAliHLTDataOriginITSSPD) )  
       continue;
     
-    // -- Set RawReader
-    //fRawReader->SetMemory( (UChar_t*) iter->fPtr, iter->fSize );
-    
     // -- Get equipment ID out of specification
     AliHLTUInt32_t spec = iter->fSpecification;
   
@@ -194,7 +204,7 @@ Int_t AliHLTITSClusterFinderSPDComponent::DoEvent( const AliHLTComponentEventDat
     }
 
     Int_t id = 0;
-    for ( Int_t ii = 1; ii < 20 ; ii++ ) {   //number of ddl's
+    for ( Int_t ii = 0; ii < 20 ; ii++ ) {   //number of ddl's
       if ( spec & 0x00000001 ) {
        id += ii;
        break;
@@ -203,7 +213,7 @@ Int_t AliHLTITSClusterFinderSPDComponent::DoEvent( const AliHLTComponentEventDat
     }
     
     // -- Set equipment ID to the raw reader
-    
+
     if(!fRawReader->AddBuffer((UChar_t*) iter->fPtr, iter->fSize, id)){
       HLTWarning("Could not add buffer");
     }
@@ -211,31 +221,55 @@ Int_t AliHLTITSClusterFinderSPDComponent::DoEvent( const AliHLTComponentEventDat
     fClusterFinder->RawdataToClusters(fRawReader,fClusters);
     
     /*
+    Float_t xyz[3];
+    filebuf fb;
+    fb.open ("test.txt",ios::out | ios::app);
+    ostream os(&fb);
     for(int i=0;i<fNModules;i++){
       if(fClusters[i] != NULL){
-      for(int j=0;j<fClusters[i]->GetEntries();j++){
+       for(int j=0;j<fClusters[i]->GetEntries();j++){
          AliITSRecPoint *recpoint = (AliITSRecPoint*) fClusters[i]->At(j);
-         cout<<"Cluster: X: "<<recpoint->GetX()<<" Y: "<<recpoint->GetY()<<" Z: "<<recpoint->GetZ()<<endl;
+         recpoint->GetGlobalXYZ(xyz);
+         os<<xyz[0]<<" "<<xyz[1]<<" "<<xyz[2]<<endl;
        }
       }
     }
     */
 
     PushBack(*fClusters,kAliHLTDataTypeTObjArray|kAliHLTDataOriginITSSPD,iter->fSpecification);
-    
-    /*  
+
+    /*
+    TClonesArray *clustersOut = new TClonesArray();
+          
     for(int i=0;i<fNModules;i++){
       if(fClusters[i] != NULL){
-       PushBack(fClusters[i],kAliHLTDataTypeTObjArray|kAliHLTDataOriginITSSPD,iter->fSpecification);
+       for(int j=0;j<fClusters[i]->GetEntriesFast();j++) {
+         clustersOut->Add(&fClusters[i][j]);
+         //PushBack(fClusters[i],kAliHLTDataTypeTObjArray|kAliHLTDataOriginITSSPD,iter->fSpecification);
        }
+      }
+    }
+    
+    PushBack(clustersOut,kAliHLTDataTypeTObjArray|kAliHLTDataOriginITSSPD,iter->fSpecification);
+
+    Float_t xyz2[3];
+    filebuf fb2;
+    fb2.open ("test2.txt",ios::out | ios::app);
+    ostream os2(&fb2);
+    for(int j=0;j<clustersOut->GetEntriesFast();j++){
+      AliITSRecPoint *recpoint = (AliITSRecPoint*) clustersOut->At(j);
+      recpoint->GetGlobalXYZ(xyz2);
+      os2<<xyz2[0]<<" "<<xyz2[1]<<" "<<xyz2[2]<<endl;
     }
-    */
 
-    /*
-    for (Int_t iModule = 0; iModule < fNModules; iModule++) {           
+    clustersOut->Clear();
+    delete clustersOut;
+    */
+    for (Int_t iModule = 0; iModule < fNModules; iModule++) {  
+      if(fClusters[iModule]){delete fClusters[iModule];}
       fClusters[iModule] = NULL;
     }
-    */
+    
     fRawReader->ClearBuffers();
     
   } //  for ( ndx = 0; ndx < evtData.fBlockCnt; ndx++ ) {    
index b75f9b461bf87d85257ea326c85fe26229081a4d..e5c39641aeb7abe6024a213f9ddbb1428dd7fe07 100644 (file)
@@ -1,4 +1,5 @@
-
+//-*- Mode: C++ -*-
+// $Id$
 #ifndef ALIHLTITSCLUSTERFINDERSPDCOMPONENT_H
 #define ALIHLTITSCLUSTERFINDERSPDCOMPONENT_H
 
@@ -20,6 +21,7 @@
 #include "AliITSCalibrationSPD.h"
 #include "AliITSgeom.h"
 #include "AliITSInitGeometry.h"
+#include "AliITSsegmentationSSD.h"
 
 /**
  * @class AliHLTITSClusterFinderSPDComponent
@@ -118,13 +120,13 @@ class AliHLTITSClusterFinderSPDComponent : public AliHLTProcessor
 
   TClonesArray** fClusters;                                   //!transient
 
-  AliITSCalibrationSPD* fcal;                                 //!transient
-
   AliITSgeom* fgeom;                                          //!transient
 
   AliITSInitGeometry* fgeomInit;                              //!transient
+
+  AliITSsegmentationSSD* fSeg;                                //!transient
   
-  ClassDef(AliHLTITSClusterFinderSPDComponent, 0)
+  ClassDef(AliHLTITSClusterFinderSPDComponent, 1)
     
     };
 #endif
index b26baaeed380905872694c2f481cecc6d0bad7ca..cae1bc9df66dc1389424c2f14c616504313a7bfc 100644 (file)
@@ -1,5 +1,4 @@
-
-
+// $Id$
 //**************************************************************************
 //* This file is property of and copyright by the ALICE HLT Project        * 
 //* ALICE Experiment at CERN, All rights reserved.                         *
@@ -45,26 +44,26 @@ ClassImp(AliHLTITSClusterFinderSSDComponent);
 
 AliHLTITSClusterFinderSSDComponent::AliHLTITSClusterFinderSSDComponent()
   :
-  fNModules(1698),
+  fNModules(1698/*AliITSDetTypeRec::fgkDefaultNModulesSSD*/),
   fClusterFinder(NULL),
   fRawReader(NULL),
   fDettype(NULL),
   fClusters(NULL),
-  fcal(NULL),
   fgeom(NULL),
-  fgeomInit(NULL){
-  //fRawReaderOff(NULL),
-  //fRawStream(NULL),
-  //fNModules(AliITSgeomTGeo::GetNModules()),
-  //fNModules(AliITSDetTupeRec::fgkDefaultNModulesSSD),
-  
-  
-
+  fgeomInit(NULL),
+  fSeg(NULL)
+{
   // see header file for class documentation
   // or
   // refer to README to build package
   // or
   // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
+
+  // AliITSDetTypeRec::fgkDefaultNModulesSPD private for the moment
+//   if (AliITSDetTypeRec::fgkDefaultNModulesSSD!=1698) {
+//     HLTWarning("Number of modules has changed (AliITSDetTypeRec::fgkDefaultNModulesSSD)");
+//   }
 }
 
 AliHLTITSClusterFinderSSDComponent::~AliHLTITSClusterFinderSSDComponent() {
@@ -116,7 +115,6 @@ Int_t AliHLTITSClusterFinderSSDComponent::DoInit( int /*argc*/, const char** /*a
     fClusters[iModule] = NULL;
   }
 
-  fcal = new AliITSCalibrationSSD();
   //fgeomInit = new AliITSInitGeometry(kvSSD02,2);
   fgeomInit = new AliITSInitGeometry(kvPPRasymmFMD,2);
   fgeom = fgeomInit->CreateAliITSgeom();
@@ -124,12 +122,16 @@ Int_t AliHLTITSClusterFinderSSDComponent::DoInit( int /*argc*/, const char** /*a
   //set dettype
   fDettype = new AliITSDetTypeRec();
   fDettype->SetITSgeom(fgeom);
-  for (Int_t iModule = 0; iModule < fNModules; iModule++) {
-    fDettype->SetCalibrationModel(iModule,fcal);
-  }
-  
+  fDettype->SetReconstructionModel(2,fClusterFinder);
+  fDettype->SetDefaultClusterFindersV2(kTRUE);
+  fSeg = new AliITSsegmentationSSD();
+  fSeg->Init();
+  fDettype->SetSegmentationModel(2,fSeg);
+  fDettype->GetCalibration();
+    
   fClusterFinder = new AliITSClusterFinderV2SSD(fDettype); 
-
+  fClusterFinder->InitGeometry();
+  
   if ( fRawReader )
     return EINPROGRESS;
 
@@ -140,14 +142,27 @@ Int_t AliHLTITSClusterFinderSSDComponent::DoInit( int /*argc*/, const char** /*a
 
 Int_t AliHLTITSClusterFinderSSDComponent::DoDeinit() {
   // see header file for class documentation
-
+    
   if ( fRawReader )
     delete fRawReader;
   fRawReader = NULL;
-
+  
+  if ( fDettype )
+    delete fDettype;
+  fDettype = NULL;
+  
   if ( fClusterFinder )
     delete fClusterFinder;
   fClusterFinder = NULL;
+  
+  for (Int_t iModule = 0; iModule < fNModules; iModule++) {
+    delete fClusters[iModule];
+    fClusters[iModule] = NULL;
+  }
+  
+  if ( fgeomInit )
+    delete fgeomInit;
+  fgeomInit = NULL;
 
   return 0;
 }
@@ -180,12 +195,9 @@ Int_t AliHLTITSClusterFinderSSDComponent::DoEvent( const AliHLTComponentEventDat
               DataType2Text(kAliHLTDataTypeDDLRaw | kAliHLTDataOriginITSSSD).c_str());
     
     // -- Check for the correct data type
-    if ( iter->fDataType != (kAliHLTDataTypeDDLRaw | kAliHLTDataOriginITSSSD) )   //Add SSD to data origin????????
+    if ( iter->fDataType != (kAliHLTDataTypeDDLRaw | kAliHLTDataOriginITSSSD) )  
       continue;
     
-    // -- Set RawReader
-    //fRawReader->SetMemory( (UChar_t*) iter->fPtr, iter->fSize );
-    
     // -- Get equipment ID out of specification
     AliHLTUInt32_t spec = iter->fSpecification;
   
@@ -193,15 +205,15 @@ Int_t AliHLTITSClusterFinderSSDComponent::DoEvent( const AliHLTComponentEventDat
       HLTDebug("The Spec is to high for ITS SSD");
     }
 
-    Int_t id = 0;                  //what should be here, 512???
-    for ( Int_t ii = 1; ii < 16 ; ii++ ) {   //number of ddl's
+    Int_t id = 512;                  
+    for ( Int_t ii = 0; ii < 16 ; ii++ ) {
       if ( spec & 0x00000001 ) {
        id += ii;
        break;
       }
       spec = spec >> 1 ;
     }
-    
+
     // -- Set equipment ID to the raw reader
     
     if(!fRawReader->AddBuffer((UChar_t*) iter->fPtr, iter->fSize, id)){
@@ -210,17 +222,20 @@ Int_t AliHLTITSClusterFinderSSDComponent::DoEvent( const AliHLTComponentEventDat
     
     fClusterFinder->RawdataToClusters(fRawReader,fClusters);
     
-    /*
+    Float_t xyz[3];
+    filebuf fb;
+    fb.open ("test.txt",ios::out | ios::app);
+    ostream os(&fb);
     for(int i=0;i<fNModules;i++){
       if(fClusters[i] != NULL){
-      for(int j=0;j<fClusters[i]->GetEntries();j++){
+       for(int j=0;j<fClusters[i]->GetEntries();j++){
          AliITSRecPoint *recpoint = (AliITSRecPoint*) fClusters[i]->At(j);
-         cout<<"Cluster: X: "<<recpoint->GetX()<<" Y: "<<recpoint->GetY()<<" Z: "<<recpoint->GetZ()<<endl;
+         recpoint->GetGlobalXYZ(xyz);
+         os<<xyz[0]<<" "<<xyz[1]<<" "<<xyz[2]<<endl;
        }
       }
     }
-    */
-
+   
     PushBack(*fClusters,kAliHLTDataTypeTObjArray|kAliHLTDataOriginITSSSD,iter->fSpecification);
     
     /*  
@@ -230,12 +245,12 @@ Int_t AliHLTITSClusterFinderSSDComponent::DoEvent( const AliHLTComponentEventDat
        }
     }
     */
-
-    /*
-    for (Int_t iModule = 0; iModule < fNModules; iModule++) {           
+    
+    for (Int_t iModule = 0; iModule < fNModules; iModule++) {       
+      if(fClusters[iModule]){delete fClusters[iModule];}
       fClusters[iModule] = NULL;
     }
-    */
+    
     fRawReader->ClearBuffers();
     
   } //  for ( ndx = 0; ndx < evtData.fBlockCnt; ndx++ ) {    
index 1f5e782baae28a3f801fb84ccd89d85a01b812f7..f5be370c3615407f1eee8dcddfe6ec516843086e 100644 (file)
@@ -1,4 +1,5 @@
-
+//-*- Mode: C++ -*-
+// $Id$
 #ifndef ALIHLTITSCLUSTERFINDERSSDCOMPONENT_H
 #define ALIHLTITSCLUSTERFINDERSSDCOMPONENT_H
 
@@ -20,6 +21,7 @@
 #include "AliITSCalibrationSSD.h"
 #include "AliITSgeom.h"
 #include "AliITSInitGeometry.h"
+#include "AliITSsegmentationSSD.h"
 
 /**
  * @class AliHLTITSClusterFinderSSDComponent
@@ -118,13 +120,13 @@ class AliHLTITSClusterFinderSSDComponent : public AliHLTProcessor
 
   TClonesArray** fClusters;                                   //!transient
 
-  AliITSCalibrationSSD* fcal;                                 //!transient
-
   AliITSgeom* fgeom;                                          //!transient
 
   AliITSInitGeometry* fgeomInit;                              //!transient
+
+  AliITSsegmentationSSD* fSeg;                                //!transient
   
-  ClassDef(AliHLTITSClusterFinderSSDComponent, 0)
+  ClassDef(AliHLTITSClusterFinderSSDComponent, 1)
     
     };
 #endif
index 2feca880ef316c37304ca44c9c45d8512692b78d..348cc25d33de84267513da04022942b7170d999b 100644 (file)
@@ -1,4 +1,4 @@
-
+// $Id$
 //aliroot -b -q rec-spd-cluster.C | tee rec-spd-cluster.log
 
 void rec_spd_cluster(const char* input="./", char* opt="")
@@ -30,33 +30,27 @@ void rec_spd_cluster(const char* input="./", char* opt="")
   //
   // define the analysis chain to be run
   //
-  
-  int minddl=0x00000000;
-  int maxddl=0x00040000;
-
-  int ddl=0;
+    
+  int minddl=0;
+  int maxddl=19;
+  int spec=0x1;
   int ddlno=0;
 
   TString dummyInput="";
-  for(int ddl=minddl;ddl<=maxddl;){
+  for(ddlno=minddl;ddlno<=maxddl;ddlno++){  
     TString arg, publisher, cf;
-    //arg.Form("-minid %d -datatype 'DDL_RAW ' 'ITS '  -dataspec 0x%02x%02x%02x%02x -verbose", ddl, 00, 00, 00, 00);   
-    //arg.Form("-detector ITSSPD -skipempty -datatype 'DDL_RAW ' 'ITS ' -verbose");
-    //arg.Form("-minid %d -datatype 'DDL_RAW ' 'TPC '  -dataspec 0x%02x%02x%02x%02x -verbose", ddlno, slice, slice, part, part);
-    //arg.Form("-minid %d -datatype 'DDL_RAW ' 'ISPD ' -dataspec 0x%08x -verbose",ddlno, ddl);
-    //arg.Form("-detector ITSSPD -datatype 'DDL_RAW ' 'ISPD ' -skipempty -dataspec 0x%08x -verbose",ddl);
-    arg.Form("-minid %d -datatype 'DDL_RAW ' 'ISPD ' -dataspec 0x%08x -verbose",ddlno, ddl);
-    publisher.Form("DP_%d", ddl);
+  
+    arg.Form("-minid %d -datatype 'DDL_RAW ' 'ISPD ' -dataspec 0x%08x -verbose",ddlno, spec);
+    publisher.Form("DP_%d", ddlno);
     AliHLTConfiguration pubconf(publisher.Data(), "AliRawReaderPublisher", NULL , arg.Data());
     
-    cf.Form("CF_%d",ddl);
+    cf.Form("CF_%d",ddlno);
     AliHLTConfiguration cfconf(cf.Data(), "ITSClusterFinderSPD", publisher.Data(), "");
 
     if (dummyInput.Length()>0) dummyInput+=" ";
     dummyInput+=cf;
 
-    ddlno++;
-    if(ddl==0x0000000){ddl++;}else{ddl = ddl << 1;}
+    spec=spec<<1;
   }
 
   //add dummy
index 75df6a19ad64b45569622135b8512b6e0a5ecb8d..873c0e89a71342ff04e28d5aad22cf1f69028fea 100644 (file)
@@ -1,4 +1,4 @@
-
+// $Id$
 //aliroot -b -q rec-spd-cluster.C | tee rec-spd-cluster.log
 
 void rec_ssd_cluster(const char* input="./", char* opt="")
@@ -31,32 +31,26 @@ void rec_ssd_cluster(const char* input="./", char* opt="")
   // define the analysis chain to be run
   //
   
-  int minddl=0x00000000;
-  int maxddl=0x00004000;
-
-  int ddl=0;
+  int minddl=512;
+  int maxddl=527;
+  int spec=0x1;
   int ddlno=0;
 
   TString dummyInput="";
-  for(int ddl=minddl;ddl<=maxddl;){
+  for(ddlno=minddl;ddlno<=maxddl;ddlno++){  
     TString arg, publisher, cf;
-    //arg.Form("-minid %d -datatype 'DDL_RAW ' 'ITS '  -dataspec 0x%02x%02x%02x%02x -verbose", ddl, 00, 00, 00, 00);   
-    //arg.Form("-detector ITSSPD -skipempty -datatype 'DDL_RAW ' 'ITS ' -verbose");
-    //arg.Form("-minid %d -datatype 'DDL_RAW ' 'TPC '  -dataspec 0x%02x%02x%02x%02x -verbose", ddlno, slice, slice, part, part);
-    //arg.Form("-minid %d -datatype 'DDL_RAW ' 'ISPD ' -dataspec 0x%08x -verbose",ddlno, ddl);
-    //arg.Form("-detector ITSSPD -datatype 'DDL_RAW ' 'ISPD ' -skipempty -dataspec 0x%08x -verbose",ddl);
-    arg.Form("-minid %d -datatype 'DDL_RAW ' 'ISSD ' -dataspec 0x%08x -verbose",ddlno, ddl);
-    publisher.Form("DP_%d", ddl);
+    
+    arg.Form("-minid %d -datatype 'DDL_RAW ' 'ISSD ' -dataspec 0x%08x -verbose",ddlno, spec);
+    publisher.Form("DP_%d", ddlno);
     AliHLTConfiguration pubconf(publisher.Data(), "AliRawReaderPublisher", NULL , arg.Data());
     
-    cf.Form("CF_%d",ddl);
+    cf.Form("CF_%d",ddlno);
     AliHLTConfiguration cfconf(cf.Data(), "ITSClusterFinderSSD", publisher.Data(), "");
 
     if (dummyInput.Length()>0) dummyInput+=" ";
     dummyInput+=cf;
 
-    ddlno++;
-    if(ddl==0x0000000){ddl++;}else{ddl = ddl << 1;}
+    spec=spec<<1;
   }
 
   //add dummy