Modifications to eliminate the simulation parameters from
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 29 Aug 2008 17:12:00 +0000 (17:12 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 29 Aug 2008 17:12:00 +0000 (17:12 +0000)
AliITSCalibrationSPD. As a consequence also AliITSresponseSPD can now be
eliminated as previuosly suggested by Francesco.
Henrik has modified the streamer in the AliITSCalibrationSPD in order to make
the code back-compatible with the old OCDB calibration files

- AliITSOnlineCalibrationSPDhandler.cxx
- AliITSOnlineCalibrationSPDhandler.h
here also some minor fixes and mods to eliminate writing of the sim params
in the OCDB files.  (D. Elia)
Obsolete methods removed from AliITSCalibrationSDD and SSD (M.M.)

20 files changed:
ITS/AliITS.cxx
ITS/AliITSCalibration.cxx
ITS/AliITSCalibration.h
ITS/AliITSCalibrationSDD.h
ITS/AliITSCalibrationSPD.cxx
ITS/AliITSCalibrationSPD.h
ITS/AliITSCalibrationSSD.h
ITS/AliITSDetTypeRec.cxx
ITS/AliITSDetTypeSim.cxx
ITS/AliITSDetTypeSim.h
ITS/AliITSOnlineCalibrationSPDhandler.cxx
ITS/AliITSOnlineCalibrationSPDhandler.h
ITS/AliITSresponse.cxx [deleted file]
ITS/AliITSresponse.h [deleted file]
ITS/AliITSresponseSPD.cxx [deleted file]
ITS/AliITSresponseSPD.h [deleted file]
ITS/AliITSsimulationSPD.h
ITS/AliITSsimulationSPDgeom.h
ITS/ITSbaseLinkDef.h
ITS/libITSbase.pkg

index 40be112..2adae89 100644 (file)
@@ -1173,7 +1173,7 @@ Bool_t AliITS::Raw2SDigits(AliRawReader* rawReader)
  
        last = (modA[module])->GetEntries();
        TClonesArray& dum = *modA[module];
-       fDetTypeSim->GetCalibrationModel(module)->Thresholds(thr,sigma);
+       fDetTypeSim->GetSimuParam()->SPDThresholds(module,thr,sigma);
        thr += 1.;
        new (dum[last]) AliITSpListItem(-1, -1, module, index, thr);
     }
index 3d24a18..5699336 100644 (file)
@@ -35,18 +35,18 @@ ClassImp(AliITSCalibration)
 AliITSCalibration::AliITSCalibration():
 TObject(),
 fDataType(),
-fT(300.),
-fResponse(){
+fT(300.)
+{
     // Default Constructor (300 microns and 80 volts)
-    fResponse = 0;
+
 }
 
 //______________________________________________________________________
 AliITSCalibration::AliITSCalibration(const AliITSCalibration &ob):
 TObject(ob),
 fDataType(ob.fDataType),
-fT(ob.fT),
-fResponse(ob.fResponse)
+fT(ob.fT)
+
 {
   // Copy constructor
 
index 53b6a08..a07ac38 100644 (file)
@@ -49,8 +49,6 @@ class AliITSCalibration : public TObject {
     virtual const char  *DataType() const {return fDataType.Data();}
     // Type of data - real or simulated
     virtual void    SetDataType(const char *data="simulated") {fDataType=data;}
-    // Set noise parameters 
-    virtual void   SetNoiseParam(Double_t, Double_t) = 0;
     // Number of parameters to be set
     virtual  void   SetNDetParam(Int_t) = 0;
     // Set detector parameters: gain, coupling ...
@@ -58,9 +56,6 @@ class AliITSCalibration : public TObject {
 
     virtual Int_t  NDetParam() const = 0;
     virtual void   GetDetParam(Double_t *) const = 0;
-    virtual void   GetNoiseParam(Double_t&, Double_t&) const = 0;
-    virtual void   SetThresholds(Double_t, Double_t) = 0;
-    virtual void   Thresholds(Double_t &, Double_t &) const = 0;
     virtual void   SetMapA(Int_t, AliITSMapSDD*) {AliError("This method must be implemented in a derived class");}
     virtual void   SetMapT(Int_t, AliITSMapSDD*) {AliError("This method must be implemented in a derived class");}
     virtual void   SetDriftSpeed(Int_t, AliITSDriftSpeedArraySDD*) {AliError("This method must be implemented in a derived class");}
@@ -78,11 +73,6 @@ class AliITSCalibration : public TObject {
     virtual void Print(Option_t *option="") const {TObject::Print(option);}
     virtual Int_t Read(const char *name) {return TObject::Read(name);}
 
-    void SetResponse(AliITSresponse* response) {fResponse=response;}
-    AliITSresponse* GetResponse() const {return fResponse;}
-
-    virtual void SetDiffCoeff(Float_t p1, Float_t p2) {fResponse->SetDiffCoeff(p1,p2);}
-    virtual void DiffCoeff(Float_t &diff,Float_t &diff1) const {fResponse->DiffCoeff(diff,diff1);} 
 
  protected:
     AliITSCalibration(const AliITSCalibration &ob); // copy constructor
@@ -93,10 +83,9 @@ class AliITSCalibration : public TObject {
     TString  fDataType;   // data type - real or simulated
     
     Float_t fT;   // The temperature of the Si in Degree K.
-    AliITSresponse* fResponse; //! ptr to base response obj. It is not
                  // deleted here but in AliITSDetTypeSim and AliITSDetTypeRec
 
-    ClassDef(AliITSCalibration,2) // Detector type response virtual base class 
+    ClassDef(AliITSCalibration,3) // Detector type response virtual base class 
 };
 // Input and output function for standard C++ input/output.
 ostream& operator<<(ostream &os,AliITSCalibration &source);
index 31ad7a3..95be2b1 100644 (file)
@@ -25,21 +25,12 @@ class AliITSCalibrationSDD : public AliITSCalibration {
     AliITSCalibrationSDD();
     AliITSCalibrationSDD(const char *dataType);
     virtual ~AliITSCalibrationSDD();
-    virtual void  SetNoiseParam(Double_t /*n*/, Double_t /*b*/){
-      NotImplemented("SetNoiseParam");}
-    virtual void  GetNoiseParam(Double_t &/*n*/, Double_t &/*b*/) const {
-      NotImplemented("GetNoiseParam");}
 
     virtual Float_t GetBaseline(Int_t anode) const {return fBaseline[anode];}
     virtual void SetBaseline(Int_t anode,Double_t bas) {fBaseline[anode]=bas;}
     virtual Float_t GetNoise(Int_t anode) const {return fNoise[anode];}
     virtual void SetNoise(Int_t anode, Double_t noise) {fNoise[anode]=noise;}
 
-    virtual void   SetThresholds(Double_t  /* mv */, Double_t /* b */) {
-      NotImplemented("SetThresholds");}
-    virtual void   Thresholds(Double_t &  /* mv */, Double_t & /* b */) const {
-      NotImplemented("Thresholds");}
     virtual void  GiveCompressParam(Int_t *x) const;
 
     void SetZSLowThreshold(Int_t iWing, Int_t thr=25){fZSTL[iWing]=thr;}
index d247fd7..087be9c 100644 (file)
 //  Silicon pixels                                  
 //
 //  Modified by D. Elia, G.E. Bruno, H. Tydesjo
-//  March-April 2006
-//  Last mod:  H. Tydesjo  Aug 2008
-//  September   2007: CouplingRowDefault = 0.055 (was 0.047)
-//
 ///////////////////////////////////////////////////////////////////////////
-const Double_t AliITSCalibrationSPD::fgkThreshDefault = 3000.;
-const Double_t AliITSCalibrationSPD::fgkSigmaDefault = 250.;
-const Double_t AliITSCalibrationSPD::fgkCouplColDefault = 0.;
-const Double_t AliITSCalibrationSPD::fgkCouplRowDefault = 0.055;
-const Double_t AliITSCalibrationSPD::fgkBiasVoltageDefault = 18.182;
 
 ClassImp(AliITSCalibrationSPD)
 
 //______________________________________________________________________
 AliITSCalibrationSPD::AliITSCalibrationSPD():
 AliITSCalibration(),
-fBaseline(0.0),
-fNoise(0.0),
-fThresh(fgkThreshDefault),
-fSigma(fgkSigmaDefault),
-fCouplCol(fgkCouplColDefault),
-fCouplRow(fgkCouplRowDefault),
-fBiasVoltage(fgkBiasVoltageDefault),
 fNrBad(0),
 fBadChannels(0){
   // constructor
 
-   SetThresholds(fgkThreshDefault,fgkSigmaDefault);
-   SetCouplingParam(fgkCouplColDefault,fgkCouplRowDefault);
-   SetBiasVoltage(fgkBiasVoltageDefault);
-   SetNoiseParam(0.,0.);
    SetDataType("simulated");
    ClearBad();
 }
@@ -242,32 +222,40 @@ void AliITSCalibrationSPD::Streamer(TBuffer &R__b) {
   if (R__b.IsReading()) {
     Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { }
     AliITSCalibration::Streamer(R__b);
-    R__b >> fBaseline;
-    R__b >> fNoise;
-    R__b >> fThresh;
-    R__b >> fSigma;
-    R__b >> fCouplCol;
-    R__b >> fCouplRow;
-    R__b >> fBiasVoltage;
-    R__b >> fNrBad;
-    if (R__v >= 7) {
+    if (R__v >= 8) {
+      R__b >> fNrBad;
       fBadChannels.Streamer(R__b);
       R__b.ReadStaticArray((bool*)fBadChip);
     }
     else {
-      if (R__v == 6) {
+      Double_t dummy;
+      R__b >> dummy;
+      R__b >> dummy;
+      R__b >> dummy;
+      R__b >> dummy;
+      R__b >> dummy;
+      R__b >> dummy;
+      R__b >> dummy;
+      R__b >> fNrBad;
+      if (R__v == 7) {
        fBadChannels.Streamer(R__b);
+       R__b.ReadStaticArray((bool*)fBadChip);
       }
       else {
-       TArrayI fBadChannelsV1;
-       fBadChannelsV1.Streamer(R__b);
-       fBadChannels.Set(fNrBad*2);
-       for (UInt_t i=0; i<fNrBad*2; i++) {
-         fBadChannels[i] = fBadChannelsV1[i];
+       if (R__v == 6) {
+         fBadChannels.Streamer(R__b);
+       }
+       else {
+         TArrayI fBadChannelsV1;
+         fBadChannelsV1.Streamer(R__b);
+         fBadChannels.Set(fNrBad*2);
+         for (UInt_t i=0; i<fNrBad*2; i++) {
+           fBadChannels[i] = fBadChannelsV1[i];
+         }
+       }
+       for (UInt_t i=0; i<5; i++) {
+         fBadChip[i]=kFALSE;
        }
-      }
-      for (UInt_t i=0; i<5; i++) {
-       fBadChip[i]=kFALSE;
       }
     }
     R__b.CheckByteCount(R__s, R__c, AliITSCalibrationSPD::IsA());
@@ -275,13 +263,6 @@ void AliITSCalibrationSPD::Streamer(TBuffer &R__b) {
   else {
     R__c = R__b.WriteVersion(AliITSCalibrationSPD::IsA(), kTRUE);
     AliITSCalibration::Streamer(R__b);
-    R__b << fBaseline;
-    R__b << fNoise;
-    R__b << fThresh;
-    R__b << fSigma;
-    R__b << fCouplCol;
-    R__b << fCouplRow;
-    R__b << fBiasVoltage;
     R__b << fNrBad;
     fBadChannels.Streamer(R__b);
     R__b.WriteArray(fBadChip, 5);
index 43628fd..3ce02f1 100644 (file)
@@ -7,8 +7,6 @@
 #include "TRandom.h"
 #include "AliITSCalibration.h"
 #include "TArrayS.h"
-#include "AliITSresponseSPD.h"
-
 
 ////////////////////////////////////////////////////
 //                                                //
@@ -47,38 +45,6 @@ class AliITSCalibrationSPD :  public AliITSCalibration {
     virtual Int_t  GetChipIndexFromCol(UInt_t col) const;
     //    virtual Int_t  GetChipFromChipIndex(UInt_t index) const;
 
-
-    // Set Threshold and noise + threshold fluctuations parameter values
-    virtual  void   SetThresholds(Double_t thresh, Double_t sigma)
-       {fThresh=thresh; fSigma=sigma;}
-    // Get Threshold and noise + threshold fluctuations parameter values
-    virtual  void   Thresholds(Double_t &thresh, Double_t &sigma) const
-       {thresh=fThresh; sigma=fSigma;}
-    // Set Bias Voltage parameter
-    virtual void    SetBiasVoltage(Double_t bias=18.182) {fBiasVoltage=bias;}
-    Double_t  GetBiasVoltage() const {return fBiasVoltage;}
-    //Returns just baseline value
-    Double_t GetBaseline() const {return fBaseline;}
-    // Set noise and baseline in one (abstract method of AliITSCalibration)
-    virtual void SetNoiseParam(Double_t n,Double_t b)
-        {fNoise = n;fBaseline = b;}
-    // Get noise and baseline in one (abstract method of AliITSCalibration)
-    virtual void GetNoiseParam(Double_t &n,Double_t &b) const
-        {n =fNoise;b = fBaseline;}
-    // Returns just noise value
-    Double_t GetNoise() const {return fNoise;} 
-    //Declaration of member functions peculiar to this class
-    // Applies a random noise and addes the baseline
-    Double_t ApplyBaselineAndNoise() const {return fBaseline+
-                                               fNoise*gRandom->Gaus();}
-    // Set coupling parameters 
-    virtual void SetCouplingParam(Double_t col, Double_t row)
-        {fCouplCol = col; fCouplRow = row;}
-    // Get coupling parameters 
-    virtual void GetCouplingParam(Double_t &col, Double_t &row) const
-        {col = fCouplCol; row = fCouplRow;}
-
-
     virtual void    GiveCompressParam(Int_t *) const
       {NotImplemented("GiveCompressParam");}
     virtual  void   SetDetParam(Double_t *)
@@ -94,28 +60,12 @@ class AliITSCalibrationSPD :  public AliITSCalibration {
     virtual void    SigmaSpread(Double_t & /* p1 */,Double_t & /* p2 */) const 
       {NotImplemented("SigmaSpread");}
 
-    
-
-
  protected:
-    // static const Double_t fgkDiffCoeffDefault; //default for fDiffCoeff
-    static const Double_t fgkThreshDefault; //default for fThresh
-    static const Double_t fgkSigmaDefault; //default for fSigma
-    static const Double_t fgkCouplColDefault; //default for fCouplCol
-    static const Double_t fgkCouplRowDefault; //default for fCouplRow
-    static const Double_t fgkBiasVoltageDefault; //default for fBiasVoltage
-    Double_t fBaseline;        // Base-line value
-    Double_t fNoise;           // Gaussian noise scale
-    Double_t fThresh;          // Threshold value
-    Double_t fSigma;           // Noise + threshold fluctuations value
-    Double_t fCouplCol;        // Coupling parameter along the cols
-    Double_t fCouplRow;        // Coupling parameter along the rows
-    Double_t fBiasVoltage;     // Bias Voltage for the SPD (used to compute DistanceOverVoltage)
     UInt_t   fNrBad;           // Nr of SINGLE bad pixels
     TArrayS  fBadChannels;     // Array with bad channels info (col0,row0,col1...rowN) N = fNrBad
-    Bool_t   fBadChip[5];     // Is chip completely dead?
+    Bool_t   fBadChip[5];      // Is chip completely dead?
 
-    ClassDef(AliITSCalibrationSPD,7) // SPD response
+    ClassDef(AliITSCalibrationSPD,8) // SPD response
 };
 
 #endif
index 704e3d9..a7b3941 100644 (file)
@@ -22,12 +22,6 @@ class AliITSCalibrationSSD : public AliITSCalibration {
     AliITSCalibrationSSD(const char *dataType);
     virtual ~AliITSCalibrationSSD();
 
-    virtual  void   SetNoiseParam(Double_t , Double_t ) {
-      NotImplemented("SetNoiseParam");}
-    
-    virtual void    GetNoiseParam(Double_t &, Double_t &) const {
-      NotImplemented("SetNoiseParam");}
-
     Float_t GetNoiseP(Int_t n) {return fNoise->GetNoiseP(fModule,n); }
     Float_t GetNoiseN(Int_t n) {return fNoise->GetNoiseN(fModule,n); }
     void SetNoise( AliITSNoiseSSDv2* noise) {fNoise=noise;}
@@ -88,21 +82,15 @@ class AliITSCalibrationSSD : public AliITSCalibration {
     virtual void    SigmaSpread(Double_t &, Double_t &) const {
       NotImplemented("SetSigmaSpread");}
     
-    
-    virtual void   SetThresholds(Double_t /* a */, Double_t /* b */)
-      {NotImplemented("SetThresholds");}
-    virtual void   Thresholds(Double_t & /* a */, Double_t & /* b */) const 
-      {NotImplemented("Thresholds");}
-  
- void SetModule(Int_t mod){fModule = mod;}
-
-  void SetKeVperADC(Double_t a=86.4/120.){fKeVperADC = a;}
-  Double_t ADCToKeV(Double_t adc) const {return adc*fKeVperADC;}
-
-  void SetSSDADCpereV(Double_t a=120./24888.9){fSSDADCpereV = a;}
-  Double_t GetSSDDEvToADC(Double_t eV) const {return eV*fSSDADCpereV;}
-  Int_t GetSSDIEvToADC(Double_t eV) const { 
-      return ((Int_t) GetSSDDEvToADC(eV)); }
+    void SetModule(Int_t mod){fModule = mod;}
+
+    void SetKeVperADC(Double_t a=86.4/120.){fKeVperADC = a;}
+    Double_t ADCToKeV(Double_t adc) const {return adc*fKeVperADC;}
+
+    void SetSSDADCpereV(Double_t a=120./24888.9){fSSDADCpereV = a;}
+    Double_t GetSSDDEvToADC(Double_t eV) const {return eV*fSSDADCpereV;}
+    Int_t GetSSDIEvToADC(Double_t eV) const { 
+                                  return ((Int_t) GetSSDDEvToADC(eV)); }
 
 
  protected:
index 0898ce5..34b511e 100644 (file)
@@ -175,17 +175,6 @@ AliITSDetTypeRec::~AliITSDetTypeRec(){
   }
   if(fCalibration){
     if(!(AliCDBManager::Instance()->GetCacheFlag())) {
-      AliITSCalibration * calSPD = (AliITSCalibration*)fCalibration->At(GetITSgeom()->GetStartSPD()); 
-      if (calSPD) {
-       AliITSresponse* rspd = calSPD->GetResponse();    
-       if(rspd) delete rspd;
-      }
-
-      AliITSCalibration * calSSD = (AliITSCalibration*)fCalibration->At(GetITSgeom()->GetStartSSD());
-      if (calSSD) {
-       AliITSresponse* rssd = calSSD->GetResponse();
-       if(rssd) delete rssd;
-      }
       fCalibration->Delete();
       delete fCalibration;
       fCalibration = 0;
@@ -459,7 +448,6 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
   AliCDBEntry *entryNoiseSSD = AliCDBManager::Instance()->Get("ITS/Calib/NoiseSSD");
   AliCDBEntry *entryGainSSD = AliCDBManager::Instance()->Get("ITS/Calib/GainSSD");
   AliCDBEntry *entryBadChannelsSSD = AliCDBManager::Instance()->Get("ITS/Calib/BadChannelsSSD");
-  AliCDBEntry *entry2SPD = AliCDBManager::Instance()->Get("ITS/Calib/RespSPD");
   AliCDBEntry *entry2SDD = AliCDBManager::Instance()->Get("ITS/Calib/RespSDD");
   AliCDBEntry *drSpSDD = AliCDBManager::Instance()->Get("ITS/Calib/DriftSpeedSDD");
   AliCDBEntry *ddlMapSDD = AliCDBManager::Instance()->Get("ITS/Calib/DDLMapSDD");
@@ -468,7 +456,7 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
 
   if(!entrySPD || !deadSPD || !entrySDD || !entryNoiseSSD || !entryGainSSD || 
      !entryBadChannelsSSD || 
-     !entry2SPD || !entry2SDD || !drSpSDD || !ddlMapSDD || !mapTSDD ){
+     !entry2SDD || !drSpSDD || !ddlMapSDD || !mapTSDD ){
     AliFatal("Calibration object retrieval failed! ");
     return kFALSE;
   }    
@@ -481,9 +469,6 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
   if(!cacheStatus)deadSPD->SetObject(NULL);
   deadSPD->SetOwner(kTRUE);
 
-  AliITSresponseSPD *pSPD = (AliITSresponseSPD*)entry2SPD->GetObject();
-  if(!cacheStatus)entry2SPD->SetObject(NULL);
-  entry2SPD->SetOwner(kTRUE);
     
   TObjArray *calSDD = (TObjArray *)entrySDD->GetObject();
   if(!cacheStatus)entrySDD->SetObject(NULL);
@@ -554,7 +539,6 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
     delete entryNoiseSSD;
     delete entryGainSSD;
     delete entryBadChannelsSSD;
-    delete entry2SPD;
     delete entry2SDD;
     //delete mapASDD;
     delete mapTSDD;
@@ -562,7 +546,7 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
     delete ddlMapSDD;
   }
 
-  if ((!pSPD)||(!pSDD)|| (!calSPD) || (!caldeadSPD) ||(!calSDD) || (!drSp) || (!ddlsdd)
+  if ((!pSDD)|| (!calSPD) || (!caldeadSPD) ||(!calSDD) || (!drSp) || (!ddlsdd)
       || (!mapT) || (!noiseSSD)|| (!gainSSD)|| (!badChannelsSSD)) {
     AliWarning("Can not get calibration from calibration database !");
     return kFALSE;
@@ -570,13 +554,11 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
 
   fNMod[0] = calSPD->GetEntries();
   fNMod[1] = calSDD->GetEntries();
-  //fNMod[2] = noiseSSD->GetEntries();
   AliInfo(Form("%i SPD, %i SDD and %i SSD in calibration database",
               fNMod[0], fNMod[1], fNMod[2]));
   AliITSCalibration* cal;
   for (Int_t i=0; i<fNMod[0]; i++) {
     cal = (AliITSCalibration*) calSPD->At(i);
-    cal->SetResponse((AliITSresponse*)pSPD);
     SetCalibrationModel(i, cal);
     cal = (AliITSCalibration*) caldeadSPD->At(i);
     SetSPDDeadModel(i, cal);
@@ -614,26 +596,6 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
   //fSSDCalibration->FillBadChipMap();
 
 
-  /*
-  for (Int_t i=0; i<fNMod[2]; i++) {
-
-    AliITSCalibrationSSD *calibSSD = new AliITSCalibrationSSD();
-    calibSSD->SetResponse((AliITSresponse*)pSSD);
-    
-    AliITSNoiseSSD *noise = (AliITSNoiseSSD*) (noiseSSD->At(i));
-    calibSSD->SetNoise(noise);
-    AliITSPedestalSSD *pedestal = (AliITSPedestalSSD*) (pedestalSSD->At(i));
-    calibSSD->SetPedestal(pedestal);
-    AliITSGainSSD *gain = (AliITSGainSSD*) (gainSSD->At(i));
-    calibSSD->SetGain(gain);
-    AliITSBadChannelsSSD *bad = (AliITSBadChannelsSSD*) (badchannelsSSD->At(i));
-    calibSSD->SetBadChannels(bad);
-    calibSSD->FillBadChipMap();
-
-    Int_t iMod = i + fgkDefaultNModulesSPD + fgkDefaultNModulesSDD;
-    SetCalibrationModel(iMod, calibSSD);
- }
-  */
 
   return kTRUE;
 }
index 27813a2..15d3084 100644 (file)
@@ -133,12 +133,7 @@ AliITSDetTypeSim::~AliITSDetTypeSim(){
     }
     fSegmentation = 0;
     if(fCalibration && fRunNumber<0){
-       AliITSresponse* rspd = ((AliITSCalibration*)fCalibration->At(
-                               GetITSgeom()->GetStartSPD()))->GetResponse();
-       AliITSresponse* rssd = ((AliITSCalibration*)fCalibration->At(
-                               GetITSgeom()->GetStartSSD()))->GetResponse();
-       if(rspd) delete rspd;
-       if(rssd) delete rssd;
+
        fCalibration->Delete();
        delete fCalibration;
     }
@@ -352,12 +347,14 @@ void AliITSDetTypeSim::SetCalibrationModel(Int_t iMod, AliITSCalibration *resp){
 void AliITSDetTypeSim::ResetCalibrationArray(){
     //resets response array
     if(fCalibration && fRunNumber<0){  // if fRunNumber<0 fCalibration is owner
+      /*
        AliITSresponse* rspd = ((AliITSCalibration*)fCalibration->At(
                                 GetITSgeom()->GetStartSPD()))->GetResponse();
        AliITSresponse* rssd = ((AliITSCalibration*)fCalibration->At(
                                 GetITSgeom()->GetStartSSD()))->GetResponse();
        if(rspd) delete rspd;
        if(rssd) delete rssd;
+      */
        fCalibration->Clear();
     }else if (fCalibration && fRunNumber>=0){
        fCalibration->Clear();
@@ -446,27 +443,17 @@ Bool_t AliITSDetTypeSim::GetCalibration() {
   AliCDBEntry *entryGainSSD = AliCDBManager::Instance()->Get("ITS/Calib/GainSSD");
   AliCDBEntry *entryBadChannelsSSD = AliCDBManager::Instance()->Get("ITS/Calib/BadChannelsSSD");
 
-  AliCDBEntry *entry2SPD = AliCDBManager::Instance()->Get("ITS/Calib/RespSPD", run);
-
   if(!entrySPD || !entrySDD || !entryNoiseSSD || !entryGainSSD || !entryBadChannelsSSD || 
-     !entry2SPD || !drSpSDD || !ddlMapSDD || !mapTSDD){
+      !drSpSDD || !ddlMapSDD || !mapTSDD){
     AliFatal("Calibration object retrieval failed! ");
     return kFALSE;
   }    
-
-//   if(!entrySPD || !entrySDD || !entryNoiseSSD || !entryGainSSD || !entryBadChannelsSSD || 
-//      !entry2SPD || !entry2SSD){
-//     AliFatal("Calibration object retrieval failed! ");
-//     return kFALSE;
-//   }         
+       
 
   TObjArray *calSPD = (TObjArray *)entrySPD->GetObject();
   if(!isCacheActive)entrySPD->SetObject(NULL);
   entrySPD->SetOwner(kTRUE);
 
-  AliITSresponseSPD *pSPD = (AliITSresponseSPD*)entry2SPD->GetObject();
-  if(!isCacheActive)entry2SPD->SetObject(NULL);
-  entry2SPD->SetOwner(kTRUE);
    
   TObjArray *calSDD = (TObjArray *)entrySDD->GetObject();
   if(!isCacheActive)entrySDD->SetObject(NULL);
@@ -551,7 +538,6 @@ Bool_t AliITSDetTypeSim::GetCalibration() {
     delete entryNoiseSSD;
     delete entryGainSSD;
     delete entryBadChannelsSSD;
-    delete entry2SPD;
 //    delete mapASDD;   
     delete mapTSDD;
     delete drSpSDD;
@@ -560,7 +546,7 @@ Bool_t AliITSDetTypeSim::GetCalibration() {
   
   AliCDBManager::Instance()->SetCacheFlag(origCacheStatus);
 
-  if ((!pSPD)|| (!calSPD) || (!calSDD) || (!drSp) || (!ddlsdd)
+  if ((!calSPD) || (!calSDD) || (!drSp) || (!ddlsdd)
       || (!mapT) || (!noiseSSD)|| (!gainSSD)|| (!badChannelsSSD)) {
     AliWarning("Can not get calibration from calibration database !");
     return kFALSE;
@@ -574,7 +560,6 @@ Bool_t AliITSDetTypeSim::GetCalibration() {
   AliITSCalibration* cal;
   for (Int_t i=0; i<fNMod[0]; i++) {
     cal = (AliITSCalibration*) calSPD->At(i);
-    cal->SetResponse(pSPD);
     SetCalibrationModel(i, cal);
   }
 
@@ -620,24 +605,6 @@ Bool_t AliITSDetTypeSim::GetCalibration() {
   //fSSDCalibration->FillBadChipMap();
 
 
-  /*
-  for (Int_t i=0; i<fNMod[2]; i++) {
-    AliITSCalibrationSSD *calibSSD = new AliITSCalibrationSSD();
-    calibSSD->SetResponse((AliITSresponse*)pSSD);
-    
-    AliITSNoiseSSD *noise = (AliITSNoiseSSD*) (noiseSSD->At(i));
-    calibSSD->SetNoise(noise);
-    AliITSGainSSD *gain = (AliITSGainSSD*) (gainSSD->At(i));
-    calibSSD->SetGain(gain);
-    AliITSBadChannelsSSD *bad = (AliITSBadChannelsSSD*) (badchannelsSSD->At(i));
-    calibSSD->SetBadChannels(bad);
-
-    Int_t iMod = i + fgkDefaultNModulesSPD + fgkDefaultNModulesSDD;
-    SetCalibrationModel(iMod, calibSSD);
-
-    }
-  */
-
 
   return kTRUE;
 }
index d9285f9..2471747 100644 (file)
@@ -56,10 +56,11 @@ class AliITSDetTypeSim : public TObject {
 
     virtual void SetCalibrationModel(Int_t iMod,AliITSCalibration *resp);
     virtual AliITSCalibration* GetCalibrationModel(Int_t iMod);
-    virtual AliITSresponse* GetResponse(Int_t dettype) {
+    /* 
+   virtual AliITSresponse* GetResponse(Int_t dettype) {
        return GetCalibrationModel(
            GetITSgeom()->GetStartDet(dettype))->GetResponse();}
-
+    */
     virtual void SetSimuParam(AliITSSimuParam* spar){
       if(fSimuPar) delete fSimuPar;
       fSimuPar = new AliITSSimuParam(*spar);
index c50f221..e9c97ed 100644 (file)
@@ -611,7 +611,7 @@ Bool_t AliITSOnlineCalibrationSPDhandler::ReadDeadFromDB(Int_t runNr, Bool_t tre
   for (UInt_t module=0; module<240; module++) {
     calibSPD = (AliITSCalibrationSPD*) spdEntry->At(module);
     UInt_t nrDead = calibSPD->GetNrBadSingle();
-    if (nrDead>0) {    
+    if (nrDead>0) {
       if (!treeSerial) RecursiveInsertDead(calibSPD,module,0,nrDead-1);
       else {
        for (UInt_t index=0; index<nrDead; index++) {
@@ -656,7 +656,6 @@ Bool_t AliITSOnlineCalibrationSPDhandler::ReadNoisyFromDB(Int_t runNr, Bool_t tr
   }
   AliITSCalibrationSPD* calibSPD;
   for (UInt_t module=0; module<240; module++) {
-    //    printf("Reading module %d\n",module);
     calibSPD = (AliITSCalibrationSPD*) spdEntry->At(module);
     UInt_t nrNoisy = calibSPD->GetNrBadSingle();
     if (nrNoisy>0) {    
@@ -730,21 +729,11 @@ Bool_t AliITSOnlineCalibrationSPDhandler::WriteDeadToDB(Int_t runNrStart, Int_t
   spdEntry->SetOwner(kTRUE);
   for(UInt_t module=0; module<240; module++){
     AliITSCalibrationSPD* calibSPD = new AliITSCalibrationSPD();
-
-    // *** this is temporarily hard coded here ********************
-    // (later these parameters will be separated from the cal.obj.)
-    calibSPD->SetThresholds(3000, 250);
-    calibSPD->SetBiasVoltage(18.182);
-    calibSPD->SetNoiseParam(0,0);
-    calibSPD->SetCouplingParam(0.,0.055);
-    // *** remove later...
-    // ************************************************************
-
     spdEntry->Add(calibSPD);
   }
   for(UInt_t module=0; module<240; module++){
     AliITSCalibrationSPD* calibSPD = (AliITSCalibrationSPD*) spdEntry->At(module);
-    calibSPD->SetNrBadSingle( GetNrDead(module) );
+    calibSPD->SetNrBadSingle( GetNrDeadSingle(module) );
     calibSPD->SetBadList( GetDeadArray(module) );
     for (UInt_t chipIndex=0; chipIndex<5; chipIndex++) {
       UInt_t eq,hs,chip,col,row;
@@ -780,21 +769,11 @@ Bool_t AliITSOnlineCalibrationSPDhandler::WriteNoisyToDB(Int_t runNrStart, Int_t
   spdEntry->SetOwner(kTRUE);
   for(UInt_t module=0; module<240; module++){
     AliITSCalibrationSPD* calibSPD = new AliITSCalibrationSPD();
-
-    // *** this is temporarily hard coded here ********************
-    // (later these parameters will be separated from the cal.obj.)
-    calibSPD->SetThresholds(3000, 250);
-    calibSPD->SetBiasVoltage(18.182);
-    calibSPD->SetNoiseParam(0,0);
-    calibSPD->SetCouplingParam(0.,0.055);
-    // *** remove later...
-    // ************************************************************
-
     spdEntry->Add(calibSPD);
   }
   for(UInt_t module=0; module<240; module++){
     AliITSCalibrationSPD* calibSPD = (AliITSCalibrationSPD*) spdEntry->At(module);
-    calibSPD->SetNrBadSingle( GetNrNoisy(module) );
+    calibSPD->SetNrBadSingle( GetNrNoisySingle(module) );
     calibSPD->SetBadList( GetNoisyArray(module) );
   }
   AliCDBEntry* cdbEntry = new AliCDBEntry((TObject*)spdEntry,idCalSPD,metaData);
@@ -922,11 +901,7 @@ TArrayS AliITSOnlineCalibrationSPDhandler::GetDeadArray(UInt_t module, Bool_t tr
 
   UInt_t eq = GetEqIdFromOffline(module);
   UInt_t hs = GetHSFromOffline(module);
-  UInt_t size=0;
-  for (UInt_t ch=0; ch<5; ch++) {
-    UInt_t gloChip = GetGloChip(eq,hs,GetChipFromOffline(module,ch*32));
-    size += fNrDead[gloChip];
-  }
+  UInt_t size=GetNrDeadSingle(module);
   returnArray.Set(size*2);
   UInt_t gloIndex=0;
   for (UInt_t ch=0; ch<5; ch++) {
@@ -954,11 +929,7 @@ TArrayS AliITSOnlineCalibrationSPDhandler::GetNoisyArray(UInt_t module, Bool_t t
 
   UInt_t eq = GetEqIdFromOffline(module);
   UInt_t hs = GetHSFromOffline(module);
-  UInt_t size=0;
-  for (UInt_t ch=0; ch<5; ch++) {
-    UInt_t gloChip = GetGloChip(eq,hs,GetChipFromOffline(module,ch*32));
-    size += fNrNoisy[gloChip];
-  }
+  UInt_t size=GetNrNoisySingle(module);
   returnArray.Set(size*2);
   UInt_t gloIndex=0;
   for (UInt_t ch=0; ch<5; ch++) {
@@ -1566,6 +1537,30 @@ UInt_t AliITSOnlineCalibrationSPDhandler::GetNrSilent(UInt_t module) const {
   return nrSilent;
 }
 //____________________________________________________________________________________________
+UInt_t AliITSOnlineCalibrationSPDhandler::GetNrDeadSingle(UInt_t module) const {
+  // returns the number of single dead pixels (excluding the ones on silent chips) for a certain module
+  if (module>=240) {
+    Error("AliITSOnlineCalibrationSPDhandler::GetNrDeadSingle", "module nr (%d) out of bounds.",module);
+    return 0;
+  }
+  UInt_t nrDead = 0;
+  UInt_t eq = GetEqIdFromOffline(module);
+  UInt_t hs = GetHSFromOffline(module);
+  for (UInt_t ch=0; ch<5; ch++) {
+    UInt_t chip = GetChipFromOffline(module,ch*32);
+    if (!IsSilentChip(eq,hs,chip)) {
+      UInt_t gloChip = GetGloChip(eq,hs,chip);
+      nrDead+=fNrDead[gloChip];
+    }
+  }
+  return nrDead;
+}
+//____________________________________________________________________________________________
+UInt_t AliITSOnlineCalibrationSPDhandler::GetNrNoisySingle(UInt_t module) const {
+  // returns the number of noisy pixels for a certain module
+  return GetNrNoisy(module);
+}
+//____________________________________________________________________________________________
 UInt_t AliITSOnlineCalibrationSPDhandler::GetNrDead(UInt_t module) const {
   // returns the number of dead pixels for a certain module
   if (module>=240) {
index 2f4ff17..60f5dc7 100644 (file)
@@ -131,12 +131,14 @@ class AliITSOnlineCalibrationSPDhandler {
   UInt_t  GetNrBad(UInt_t module) const; // bad = silent or noisy
   UInt_t  GetNrSilent(UInt_t module) const; // silent = dead or inactive
   UInt_t  GetNrDead(UInt_t module) const;
+  UInt_t  GetNrDeadSingle(UInt_t module) const;
   UInt_t  GetDeadEqIdAt(UInt_t module,UInt_t index) const;
   UInt_t  GetDeadHSAt(UInt_t module,UInt_t index) const;
   UInt_t  GetDeadChipAt(UInt_t module,UInt_t index) const;
   UInt_t  GetDeadColAt(UInt_t module,UInt_t index) const;
   UInt_t  GetDeadRowAt(UInt_t module,UInt_t index) const;
   UInt_t  GetNrNoisy(UInt_t module) const;
+  UInt_t  GetNrNoisySingle(UInt_t module) const;
   UInt_t  GetNoisyEqIdAt(UInt_t module, UInt_t index) const;
   UInt_t  GetNoisyHSAt(UInt_t module, UInt_t index) const;
   UInt_t  GetNoisyChipAt(UInt_t module, UInt_t index) const;
diff --git a/ITS/AliITSresponse.cxx b/ITS/AliITSresponse.cxx
deleted file mode 100644 (file)
index 4288161..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-
-//////////////////////////////////////////////////////
-//  Base Response class for ITS                     //
-//  Specific subdetector implementation is done in  //
-//  AliITSresponseSPD                               //
-//  AliITSresponseSDD                               //
-//  AliITSresponseSSD                               //
-//////////////////////////////////////////////////////
-
-#include "AliITSresponse.h"
-
-ClassImp(AliITSresponse)
-
-//______________________________________________________________________
-AliITSresponse::AliITSresponse():
-TObject(),
-fDiffCoeff(0.),
-fDiffCoeff1(0.){
-  
-  // Default Constructor
-
-}
-
diff --git a/ITS/AliITSresponse.h b/ITS/AliITSresponse.h
deleted file mode 100644 (file)
index 448bd3e..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef ALIITSRESPONSE_H
-#define ALIITSRESPONSE_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
-
-/* $Id$ */
-
-#include <TObject.h>
-#include <TString.h>
-
-class AliITSsegmentation;
-class TF1;
-class AliITSgeom;
-
-////////////////////////////////////////////////////
-//                                                //
-// ITS base response virtual base class           //
-//                                                //
-////////////////////////////////////////////////////
-class AliITSresponse : public TObject {
- public:
-    AliITSresponse();
-    virtual ~AliITSresponse() {;}
-    
-    virtual void  SetDiffCoeff(Float_t p1, Float_t p2) {
-      fDiffCoeff=p1; fDiffCoeff1=p2;}
-    virtual void  DiffCoeff(Float_t &diff,Float_t &diff1) const {
-      diff=fDiffCoeff; diff1=fDiffCoeff1;}
-
-
- protected:
-
-    void NotImplemented(const char *method) const {if(gDebug>0)
-         Warning(method,"This method is not implemented for this sub-class");}
-   
- private:
-    Float_t  fDiffCoeff;      // Diffusion Coefficient (scaling the time)
-    Float_t  fDiffCoeff1;     // Diffusion Coefficient (constant term)
-    
-
-    ClassDef(AliITSresponse,5) // Detector type response virtual base class 
-};
-
-#endif
diff --git a/ITS/AliITSresponseSPD.cxx b/ITS/AliITSresponseSPD.cxx
deleted file mode 100644 (file)
index 2dcebe7..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-///////////////////////////////////////////////////////////////////////////
-//  Base Response class forITS                      
-//  It is used to set static data members           
-//  connected to parameters equal for all           
-//  the SPD modules                                 
-//
-//  Modified by D. Elia, G.E. Bruno
-//  March-April 2006
-//  September   2007: Coupling params taken out
-//                    left in AliITSCalibrationSPD only
-//
-///////////////////////////////////////////////////////////////////////////
-
-#include "AliITSresponseSPD.h"
-
-const Float_t AliITSresponseSPD::fgkDiffCoeffDefault = 0.; //change this
-const TString AliITSresponseSPD::fgkCouplingOptDefault = "old";
-const Float_t AliITSresponseSPD::fgkEccentricityDiffDefault = 0.85;
-
-ClassImp(AliITSresponseSPD)    
-//______________________________________________________________________
-AliITSresponseSPD::AliITSresponseSPD():
-  AliITSresponse(),
-fCouplOpt(0),
-fEccDiff(0){
-
-  // constructor
-  SetCouplingOption(fgkCouplingOptDefault);
-  SetDiffCoeff(fgkDiffCoeffDefault,0.);
-  SetSigmaDiffusionAsymmetry(fgkEccentricityDiffDefault);
-
-}
diff --git a/ITS/AliITSresponseSPD.h b/ITS/AliITSresponseSPD.h
deleted file mode 100644 (file)
index b28e1e2..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef ALIITSRESPONSESPD_H
-#define ALIITSRESPONSESPD_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
-
-
-#include "AliITSresponse.h"
-///////////////////////////////////////////
-//                                       //
-// ITS response class for SPD            //
-///////////////////////////////////////////
-  
-class AliITSresponseSPD :  public AliITSresponse {
- public:
-    AliITSresponseSPD(); // default constructor
-    virtual ~AliITSresponseSPD() {;} // destructror
-
-    virtual void SetCouplingOption(const char *opt) {   // Options: "old" or "new"
-        fCouplOpt=opt;}
-    virtual void CouplingOption(char *opt) const {
-        strcpy(opt,fCouplOpt.Data());}
-    virtual  void   SetSigmaDiffusionAsymmetry(Double_t ecc)
-        {fEccDiff=ecc;}   
-    virtual  void   GetSigmaDiffusionAsymmetry(Double_t &ecc) const 
-        {ecc=fEccDiff;}
-
- protected:
-
-    static const Float_t fgkDiffCoeffDefault;  //default for fDiffCoeff
-    static const TString fgkCouplingOptDefault;  // type of pixel Coupling (old or new)
-    static const Float_t fgkEccentricityDiffDefault;//default for fCouplRow 
-
-    TString fCouplOpt;        // Coupling Option
-    Float_t fEccDiff;         // Eccentricity (i.e. asymmetry parameter) in the Gaussian Diffusion
-
-
-    ClassDef(AliITSresponseSPD,6) // SPD base response class
-};
-
-#endif
index b6bda07..23e0f97 100644 (file)
@@ -12,7 +12,6 @@
 
 #include "TObjArray.h"
 #include "AliITSsimulation.h"
-#include "AliITSCalibrationSPD.h"
 #include "AliITSsegmentationSPD.h"
 
 class TH1F;
@@ -103,12 +102,12 @@ class AliITSsimulationSPD : public AliITSsimulation {
     // Getters for data kept in fSegmentation and fResponse.
     // Returns the Threshold in electrons
     Double_t GetThreshold(){
-      Double_t th,sig;AliITSCalibrationSPD* res=(AliITSCalibrationSPD*)GetCalibrationModel(GetModuleNumber()); 
-       res->Thresholds(th,sig);return th;};
+      Double_t th,sig;AliITSSimuParam* simpar = fDetType->GetSimuParam(); 
+        simpar->SPDThresholds(GetModuleNumber(),th,sig);return th;}; 
     // Returns the couplings Columb and Row.
     void GetCouplings(Double_t &cc,Double_t &cr){
-      AliITSCalibrationSPD* res = (AliITSCalibrationSPD*)GetCalibrationModel(GetModuleNumber());
-      res->GetCouplingParam(cc,cr);};
+      AliITSSimuParam* simpar = fDetType->GetSimuParam();
+      simpar->GetSPDCouplingParam(cc,cr);};
     // Returns the number of pixels in x
     Int_t GetNPixelsX(){return GetSegmentationModel(0)->Npx();};
     // Returns the number of pixels in z
index 516dc8f..121d6d9 100644 (file)
@@ -18,7 +18,7 @@ $Id$
 #include "AliITSCalibrationSPD.h"
 #include "AliITSsegmentationSPD.h"
 #include "AliITSsimulation.h"
-#include "AliITSresponseSPD.h"
+//#include "AliITSresponseSPD.h"
 
 class AliITSMapA2;
 class AliITSpList;
index eed1f4c..f0003ad 100644 (file)
@@ -45,9 +45,7 @@
 #pragma link C++ class  AliITSsegmentationSPD+;
 #pragma link C++ class  AliITSsegmentationSDD+;
 #pragma link C++ class  AliITSsegmentationSSD+;
-#pragma link C++ class  AliITSresponse+;
 #pragma link C++ class  AliITSCalibration+;
-#pragma link C++ class  AliITSresponseSPD+;
 #pragma link C++ class  AliITSresponseSDD+;
 #pragma link C++ class  AliITSCalibrationSPD-;
 #pragma link C++ class  AliITSCalibrationSDD+;
index d13ca46..1004264 100644 (file)
@@ -24,9 +24,7 @@ SRCS =        AliITSgeom.cxx \
                AliITSsegmentationSPD.cxx \
                AliITSsegmentationSDD.cxx \
                AliITSsegmentationSSD.cxx \
-               AliITSresponse.cxx \
                AliITSCalibration.cxx \
-               AliITSresponseSPD.cxx \
                AliITSresponseSDD.cxx \
                AliITSCalibrationSPD.cxx \
                AliITSCalibrationSDD.cxx \