]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSSimuParam.cxx
Separating well and badly reconstructed pileup vertices. Adding statistics of associa...
[u/mrichter/AliRoot.git] / ITS / AliITSSimuParam.cxx
index a18184f8809a2ab030047158cb207325d33bd164..f409113222d0cca57c6a096e111633432d9e397d 100644 (file)
@@ -33,6 +33,7 @@ const TString  AliITSSimuParam::fgkSPDCouplingOptDefault = "old";
 const Double_t AliITSSimuParam::fgkSPDCouplColDefault = 0.;
 const Double_t AliITSSimuParam::fgkSPDCouplRowDefault = 0.055;
 const Float_t  AliITSSimuParam::fgkSPDEccDiffDefault = 0.85;
+const Float_t  AliITSSimuParam::fgkSPDLorentzHoleWeightDefault = 1.0;
 const Float_t  AliITSSimuParam::fgkSDDDiffCoeffDefault = 3.23;
 const Float_t  AliITSSimuParam::fgkSDDDiffCoeff1Default = 30.;
 const Float_t  AliITSSimuParam::fgkSDDJitterErrorDefault = 20.; // 20 um from beam test 2001
@@ -40,6 +41,8 @@ const Float_t  AliITSSimuParam::fgkSDDDynamicRangeDefault = 1400./2.5; // mV/MOh
 const Int_t    AliITSSimuParam::fgkSDDMaxAdcDefault = 1024;
 const Float_t  AliITSSimuParam::fgkSDDChargeLossDefault = 0.;
 const Float_t  AliITSSimuParam::fgkSDDTrigDelayDefault = 54.3;
+const Float_t  AliITSSimuParam::fgkSDDMapPrecDefault = 20.; // 20 um from laser tests
+const Float_t  AliITSSimuParam::fgkSDDkeVtoADCDefault = 3.42;
 const Double_t AliITSSimuParam::fgkSSDCouplingPRDefault = 0.01;
 const Double_t AliITSSimuParam::fgkSSDCouplingPLDefault = 0.01;
 const Double_t AliITSSimuParam::fgkSSDCouplingNRDefault = 0.01;
@@ -54,36 +57,41 @@ ClassImp(AliITSSimuParam)
 //______________________________________________________________________
 AliITSSimuParam::AliITSSimuParam():
   TObject(),
-fGeVcharge(0.),
-fDOverV(0.),
+  fGeVcharge(0.),
+  fDOverV(0.),
 //fSPDBiasVoltage(fgkSPDBiasVoltageDefault),
 //fSPDThresh(fgkSPDThreshDefault),
 //fSPDSigma(fgkSPDSigmaDefault),
-fSPDCouplOpt(0),
-fSPDCouplCol(fgkSPDCouplColDefault),
-fSPDCouplRow(fgkSPDCouplRowDefault),
-fSPDEccDiff(0.),
-fSPDAddNoisyFlag(kFALSE),
-fSPDRemoveDeadFlag(kFALSE),
-fSDDElectronics(0),
-fSDDDiffCoeff(0.),
-fSDDDiffCoeff1(0.),
-fSDDJitterError(fgkSDDJitterErrorDefault),
-fSDDDynamicRange(fgkSDDDynamicRangeDefault),
-fSDDMaxAdc(0.),
-fSDDChargeLoss(fgkSDDChargeLossDefault),
-fSDDTrigDelay(fgkSDDTrigDelayDefault),
-fSDDRawFormat(7),
-fSSDCouplingPR(0),
-fSSDCouplingPL(0),
-fSSDCouplingNR(0),
-fSSDCouplingNL(0),
-fSSDZSThreshold(fgkSSDZSThresholdDefault),
-fNsigmas(fgkNsigmasDefault),
-fNcomps(fgkNcompsDefault),
-fGaus(),
-fN(0.),
-fT(300.)
+  fSPDCouplOpt(0),
+  fSPDCouplCol(fgkSPDCouplColDefault),
+  fSPDCouplRow(fgkSPDCouplRowDefault),
+  fSPDEccDiff(0.),
+  fSPDLorentzDrift(kTRUE),
+  fSPDLorentzHoleWeight(fgkSPDLorentzHoleWeightDefault),
+  fSPDAddNoisyFlag(kFALSE),
+  fSPDRemoveDeadFlag(kFALSE),
+  fSDDElectronics(0),
+  fSDDDiffCoeff(0.),
+  fSDDDiffCoeff1(0.),
+  fSDDJitterError(fgkSDDJitterErrorDefault),
+  fSDDDynamicRange(fgkSDDDynamicRangeDefault),
+  fSDDMaxAdc(0.),
+  fSDDChargeLoss(fgkSDDChargeLossDefault),
+  fSDDTrigDelay(fgkSDDTrigDelayDefault),
+  fSDDMapPrec(fgkSDDMapPrecDefault),
+  fSDDkeVtoADC(fgkSDDkeVtoADCDefault),
+  fSDDRawFormat(7),
+  fSSDLorentzDrift(kTRUE),
+  fSSDCouplingPR(0),
+  fSSDCouplingPL(0),
+  fSSDCouplingNR(0),
+  fSSDCouplingNL(0),
+  fSSDZSThreshold(fgkSSDZSThresholdDefault),
+  fNsigmas(fgkNsigmasDefault),
+  fNcomps(fgkNcompsDefault),
+  fGaus(),
+  fN(0.),
+  fT(300.)
 {  
   // default constructor
   SetSPDBiasVoltageAll(fgkSPDBiasVoltageDefault);
@@ -100,37 +108,42 @@ fT(300.)
 }
 //______________________________________________________________________
 AliITSSimuParam::AliITSSimuParam(const AliITSSimuParam &simpar):
-TObject(),
-fGeVcharge(simpar.fGeVcharge),
-fDOverV(simpar.fDOverV),
-//fSPDBiasVoltage(simpar.fSPDBiasVoltage),
-//fSPDThresh(simpar.fSPDThresh),
-//fSPDSigma(simpar.fSPDSigma),
-fSPDCouplOpt(simpar.fSPDCouplOpt),
-fSPDCouplCol(simpar.fSPDCouplCol),
-fSPDCouplRow(simpar.fSPDCouplRow),
-fSPDEccDiff(simpar.fSPDEccDiff),
-fSPDAddNoisyFlag(simpar.fSPDAddNoisyFlag),
-fSPDRemoveDeadFlag(simpar.fSPDRemoveDeadFlag),
-fSDDElectronics(simpar.fSDDElectronics),
-fSDDDiffCoeff(simpar.fSDDDiffCoeff),
-fSDDDiffCoeff1(simpar.fSDDDiffCoeff1),
-fSDDJitterError(simpar.fSDDJitterError),
-fSDDDynamicRange(simpar.fSDDDynamicRange),
-fSDDMaxAdc(simpar.fSDDMaxAdc),
-fSDDChargeLoss(simpar.fSDDChargeLoss),
-fSDDTrigDelay(simpar.fSDDTrigDelay),
-fSDDRawFormat(simpar.fSDDRawFormat),
-fSSDCouplingPR(simpar.fSSDCouplingPR),
-fSSDCouplingPL(simpar.fSSDCouplingPL),
-fSSDCouplingNR(simpar.fSSDCouplingNR),
-fSSDCouplingNL(simpar.fSSDCouplingNL),
-fSSDZSThreshold(simpar.fSSDZSThreshold),
-fNsigmas(simpar.fNsigmas),
-fNcomps(simpar.fNcomps),
-fGaus(),
-fN(simpar.fN),
-fT(simpar.fT){
+  TObject(),
+  fGeVcharge(simpar.fGeVcharge),
+  fDOverV(simpar.fDOverV),
+  //fSPDBiasVoltage(simpar.fSPDBiasVoltage),
+  //fSPDThresh(simpar.fSPDThresh),
+  //fSPDSigma(simpar.fSPDSigma),
+  fSPDCouplOpt(simpar.fSPDCouplOpt),
+  fSPDCouplCol(simpar.fSPDCouplCol),
+  fSPDCouplRow(simpar.fSPDCouplRow),
+  fSPDEccDiff(simpar.fSPDEccDiff),
+  fSPDLorentzDrift(simpar.fSPDLorentzDrift),
+  fSPDLorentzHoleWeight(simpar.fSPDLorentzHoleWeight),
+  fSPDAddNoisyFlag(simpar.fSPDAddNoisyFlag),
+  fSPDRemoveDeadFlag(simpar.fSPDRemoveDeadFlag),
+  fSDDElectronics(simpar.fSDDElectronics),
+  fSDDDiffCoeff(simpar.fSDDDiffCoeff),
+  fSDDDiffCoeff1(simpar.fSDDDiffCoeff1),
+  fSDDJitterError(simpar.fSDDJitterError),
+  fSDDDynamicRange(simpar.fSDDDynamicRange),
+  fSDDMaxAdc(simpar.fSDDMaxAdc),
+  fSDDChargeLoss(simpar.fSDDChargeLoss),
+  fSDDTrigDelay(simpar.fSDDTrigDelay),
+  fSDDMapPrec(simpar.fSDDMapPrec),
+  fSDDkeVtoADC(simpar.fSDDkeVtoADC),
+  fSDDRawFormat(simpar.fSDDRawFormat),
+  fSSDLorentzDrift(simpar.fSSDLorentzDrift),
+  fSSDCouplingPR(simpar.fSSDCouplingPR),
+  fSSDCouplingPL(simpar.fSSDCouplingPL),
+  fSSDCouplingNR(simpar.fSSDCouplingNR),
+  fSSDCouplingNL(simpar.fSSDCouplingNL),
+  fSSDZSThreshold(simpar.fSSDZSThreshold),
+  fNsigmas(simpar.fNsigmas),
+  fNcomps(simpar.fNcomps),
+  fGaus(),
+  fN(simpar.fN),
+  fT(simpar.fT){
   // copy constructor
   for (Int_t i=0;i<240;i++) {
     fSPDBiasVoltage[i]=simpar.fSPDBiasVoltage[i];
@@ -143,11 +156,11 @@ fT(simpar.fT){
 
 //______________________________________________________________________
 AliITSSimuParam& AliITSSimuParam::operator=(const AliITSSimuParam& source){
-    // Assignment operator. 
-    this->~AliITSSimuParam();
-    new(this) AliITSSimuParam(source);
-    return *this;
-
+  // Assignment operator. 
+  this->~AliITSSimuParam();
+  new(this) AliITSSimuParam(source);
+  return *this;
+  
 }
 
 
@@ -169,6 +182,7 @@ void AliITSSimuParam::SetNLookUp(Int_t p1){
 }
 //________________________________________________________________________
 void AliITSSimuParam::PrintParameters() const{
+  // Dump all parameters
   printf("GeVToCharge               = %G\n",fGeVcharge);
   printf("DistanveOverVoltage       = %f \n",fDOverV);
   printf("\n");
@@ -179,6 +193,8 @@ void AliITSSimuParam::PrintParameters() const{
   printf("Coupling value (column)   = %f\n",fSPDCouplCol);
   printf("Coupling value (row)      = %f\n",fSPDCouplRow);
   printf("Eccentricity in diffusion = %f\n",fSPDEccDiff);
+  printf("Flag to add Lorentz Drift = %d\n",fSPDLorentzDrift);
+  printf("Weight of Holes in Lor.Drift = %f\n",fSPDLorentzHoleWeight);
   printf("Flag to add noisy         = %d\n",fSPDAddNoisyFlag);
   printf("Flag to remove dead       = %d\n",fSPDRemoveDeadFlag);
   printf("\n");
@@ -190,9 +206,12 @@ void AliITSSimuParam::PrintParameters() const{
   printf("Max. ADC                  = %f\n",fSDDMaxAdc);
   printf("Charge Loss               = %f\n",fSDDChargeLoss);  
   printf("Trigger Delay (ns)        = %f\n",fSDDTrigDelay);  
+  printf("Smear from map (um)       = %f\n",fSDDMapPrec);
+  printf("keV->ADC conv. fact.        = %f\n",fSDDkeVtoADC);
   printf("Raw Data Format           = %d\n",fSDDRawFormat);  
   printf("\n");
   printf("=====  SSD parameters  =====\n");
+  printf("Flag to add Lorentz Drift = %d\n",fSSDLorentzDrift);
   printf("Coupling PR               = %f\n",fSSDCouplingPR);
   printf("Coupling PL               = %f\n",fSSDCouplingPL);
   printf("Coupling NR               = %f\n",fSSDCouplingNR);
@@ -531,6 +550,7 @@ Double_t AliITSSimuParam::ReverseBiasCurrent(Double_t temp,
 }
 //______________________________________________________________________
  void   AliITSSimuParam::SPDThresholds(const Int_t mod, Double_t& thresh, Double_t& sigma) const {
+   // Get SPD threshold values
     if(mod<0 || mod>239) {
        thresh=0;
        sigma=0; 
@@ -542,6 +562,7 @@ Double_t AliITSSimuParam::ReverseBiasCurrent(Double_t temp,
 }
 //_______________________________________________________________________
  void   AliITSSimuParam::SPDNoise(const Int_t mod,Double_t &noise, Double_t &baseline) const {
+   //Get SPD noise and baseline values
      if(mod<0 || mod>239) {
        noise=0;
        baseline=0;