1 /////////////////////////////////////////
2 // Class for SSD raw2digits conv //
4 // Author: Enrico Fragiacomo //
5 // Date: October 2004 //
6 ////////////////////////////////////////
8 #include "AliITSgeom.h"
9 #include "AliITSdigitSSD.h"
10 #include "AliRawReader.h"
11 #include "AliITSRawStreamSSDv1.h"
12 #include "AliITSBeamTestDigSSD.h"
16 ClassImp(AliITSBeamTestDigSSD)
18 //_____________________________________________________________
19 AliITSBeamTestDigSSD::AliITSBeamTestDigSSD(): AliITSBeamTestDig(),
27 //_____________________________________________________________
28 AliITSBeamTestDigSSD::AliITSBeamTestDigSSD(const Text_t* name, const Text_t* title): AliITSBeamTestDig(name,title),
35 //__________________________________________________________________
36 AliITSBeamTestDigSSD::~AliITSBeamTestDigSSD() {
42 //_______________________________________________________________________
43 void AliITSBeamTestDigSSD::Exec(Option_t* /*opt*/) {
44 //Reads raw data for SSD, fill SSD digits tree, returns 1 if real data,
45 //returns 2 if calibration (injector) data, returns 3 if calibration (test pul //se) event
47 TBranch* branch = fTreeD->GetBranch("ITSDigitsSSD");
49 Error("Exec","fITSgeom is null!");
56 for(Int_t nlay=1;nlay<=fITSgeom->GetNlayers();nlay++){
57 for(Int_t nlad=1;nlad<=fITSgeom->GetNladders(nlay);nlad++){
58 for(Int_t ndet=1;ndet<=fITSgeom->GetNdetectors(nlay);ndet++){
59 Int_t index=fITSgeom->GetModuleIndex(nlay,nlad,ndet);
60 TString dtype(fITSgeom->GetModuleTypeName(index));
61 if(dtype.Contains("SPD")) nspd++;
62 if(dtype.Contains("SDD")) nsdd++;
63 if(dtype.Contains("SSD")) nssd++;
67 Int_t maxn=nspd+nsdd+nssd;
69 TClonesArray** newdigits = new TClonesArray*[maxn];
71 Int_t* idig = new Int_t[maxn];
73 for (Int_t idet =0; idet <maxn;idet++) {
74 newdigits[idet] = new TClonesArray("AliITSdigitSSD");
78 // this constructor sets the flag to select SSD data only
79 // the Next method below will then jump to SSD data for this event
80 AliITSRawStreamSSDv1 str(fReader);
82 // no selection of equipment
83 //fReader->SelectEquipment(-1);
84 //fReader->SelectEquipment(17,102,102);
88 //if((str.GetADModule()!=2)&&(str.GetADModule()!=6)) continue;
90 Int_t side = str.GetSideFlag();
91 Int_t strip = str.GetStrip();
92 Int_t signal = str.GetSignal();
93 Int_t module = str.GetModuleID();
94 Int_t module1= module-10+nsdd+nspd;
95 if( (module<10) || (module>13) ) continue;
96 if(module1>7) continue;
97 const Int_t kdgt[3]={side,strip,signal};
98 // SSD modules 10, 11, 12 and 13
99 new ( (*newdigits[module1])[idig[module1]] ) AliITSdigitSSD(kdgt);
103 for(Int_t n=0;n<maxn;n++){
104 branch->SetAddress(&newdigits[n]);
108 fTreeD->SetEntries(maxn);
114 for(Int_t n=0;n<maxn;n++){