]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSresponseSDD.cxx
Add protection on time stamp in macro to monitor SDD calibration
[u/mrichter/AliRoot.git] / ITS / AliITSresponseSDD.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /* $Id$ */
17
18 //////////////////////////////////////////////////////
19 //  Base response class forITS                      //
20 //  It is used to set static data members           //
21 //  connected to parameters equal for all           //
22 //  the modules                                     //
23 //                                                  //
24 //                                                  //
25 //////////////////////////////////////////////////////
26
27 #include <TMath.h>
28
29 #include "AliITSresponseSDD.h"
30 #include <AliITSgeomTGeo.h>
31
32 const Float_t AliITSresponseSDD::fgkTimeOffsetDefault = 54.30;
33 const Float_t AliITSresponseSDD::fgkADC2keVDefault = 3.34;
34 const Float_t AliITSresponseSDD::fgkChargevsTimeDefault = 0.00355;
35 const Float_t AliITSresponseSDD::fgkCarlosRXClockPeriod = 25.;
36 ClassImp(AliITSresponseSDD)
37
38 //_________________________________________________________________________
39 AliITSresponseSDD::AliITSresponseSDD():
40 TObject(),
41   fTimeOffset(fgkTimeOffsetDefault),
42   fADC2keV(fgkADC2keVDefault),
43   fChargevsTime(fgkChargevsTimeDefault){
44   // default constructor
45   for(Int_t i=0; i<kNSDDmods;i++){
46     fTimeZero[i]=fgkTimeOffsetDefault;
47     fDeltaVDrift[i] = fDeltaVDrift[i+kNSDDmods] = 0.;
48     fADCtokeV[i]=fgkADC2keVDefault;
49   }  
50   SetVDCorr2Side(kTRUE); // default for new objects will be separate corrections for 2 sides (bwd compatible)
51 }
52 //_________________________________________________________________________
53 void AliITSresponseSDD::SetHalfLadderATimeZero(Int_t lay, Int_t lad, Float_t tzero){
54   // Sets time Zero for all modules of a ladder on side A (Z>0)
55   Int_t minMod,maxMod;
56   if(lay==3){
57     minMod=1; 
58     maxMod=3;
59     if(lad>kNLaddersLay3){
60       AliError(Form("Ladder number %d out of range",lad));
61       return;
62     }
63   }else if(lay==4){
64     minMod=1; 
65     maxMod=4;
66     if(lad>kNLaddersLay4){
67       AliError(Form("Ladder number %d out of range",lad));
68       return;
69     }
70   }else{
71     AliError(Form("Layer number %d out of range",lay));
72     return;
73   }
74   for(Int_t iMod=minMod; iMod<=maxMod; iMod++){
75     Int_t modIndex=AliITSgeomTGeo::GetModuleIndex(lay,lad,iMod);
76     SetModuleTimeZero(modIndex,tzero);
77   }
78 }
79 //_________________________________________________________________________
80 void AliITSresponseSDD::SetHalfLadderCTimeZero(Int_t lay, Int_t lad, Float_t tzero){
81   // Sets time Zero for all modules of a ladder on side C (Z<0)
82   Int_t minMod,maxMod;
83   if(lay==3){
84     minMod=4; 
85     maxMod=6;
86     if(lad>kNLaddersLay3){
87       AliError(Form("Ladder number %d out of range",lad));
88       return;
89     }
90   }else if(lay==4){
91     minMod=5; 
92     maxMod=8;
93     if(lad>kNLaddersLay4){
94       AliError(Form("Ladder number %d out of range",lad));
95       return;
96     }
97   }else{
98     AliError(Form("Layer number %d out of range",lay));
99     return;
100   }
101   for(Int_t iMod=minMod; iMod<=maxMod; iMod++){
102     Int_t modIndex=AliITSgeomTGeo::GetModuleIndex(lay,lad,iMod);
103     SetModuleTimeZero(modIndex,tzero);
104   }
105 }