// Stream an object of class AliFMaker.
if (R__b.IsReading()) {
- R__b.ReadVersion(); // Version_t R__v = R__b.ReadVersion();
- TNamed::Streamer(R__b);
- R__b >> fSave;
- R__b >> fFruits;
- fBranchName.Streamer(R__b);
- R__b >> fHistograms;
+ UInt_t R__s, R__c;
+ Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
+
+ AliFMaker::Class()->ReadBuffer(R__b, this, R__v, R__s, R__c);
//this is an addition to the standard rootcint version of Streamer
//branch address for this maker is set automatically
TTree *tree = gAliFast->Tree();
TBranch *branch = tree->GetBranch(fBranchName.Data());
if (branch) branch->SetAddress(&fFruits);
} else {
- R__b.WriteVersion(AliFMaker::IsA());
- TNamed::Streamer(R__b);
- R__b << fSave;
- R__b << fFruits;
- fBranchName.Streamer(R__b);
- R__b << fHistograms;
+ AliFMaker::Class()->WriteBuffer(R__b,this);
}
}
// Stream an object of class AliFast.
if (R__b.IsReading()) {
- R__b.ReadVersion(); // Version_t R__v = R__b.ReadVersion();
- TNamed::Streamer(R__b);
+ UInt_t R__s, R__c;
if (!gAliFast) gAliFast = this;
gROOT->GetListOfBrowsables()->Add(this,"AliFast");
- R__b >> fVersion;
- R__b >> fVersionDate;
- R__b >> fRun;
- R__b >> fEvent;
- R__b >> fMode;
+
+ Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
+
+ AliFast::Class()->ReadBuffer(R__b, this, R__v, R__s, R__c);
+
fTree = (TTree*)gDirectory->Get("T");
- R__b >> fMakers;
- // R__b >> fMCMaker;
- R__b >> fTrackMaker;
- R__b >> fLuminosity;
- R__b >> fBfield;
- R__b >> fSmearing;
- R__b >> fSUSYcodeLSP;
- R__b >> fTrackFinding;
- // fca
- fHistBrowser.Streamer(R__b);
- // fca
} else {
- R__b.WriteVersion(AliFast::IsA());
- TNamed::Streamer(R__b);
- R__b << fVersion;
- R__b << fVersionDate;
- R__b << fRun;
- R__b << fEvent;
- R__b << fMode;
- fTree->Write();
- R__b << fMakers;
- //R__b << fMCMaker;
- R__b << fTrackMaker;
- R__b << fLuminosity;
- R__b << fBfield;
- R__b << fSmearing;
- R__b << fSUSYcodeLSP;
- R__b << fTrackFinding;
- // fca
- fHistBrowser.Streamer(R__b);
- // fca
+ AliFast::Class()->WriteBuffer(R__b,this);
}
}
Int_t fVersionDate; //AliFast version date
Int_t fMode; //Run mode
Int_t fTestTrack; //Test mode for TrackMaker
- TTree *fTree; //Pointer to the Root tree
+ TTree *fTree; //!Pointer to the Root tree
TList *fMakers; //List of Makers
// pointers to standard Makers
- AliFMCMaker *fMCMaker; //Pointer to MCMaker
- AliFTrackMaker *fTrackMaker; //Pointer to TrackMaker
- AliFDet *fDet; //Pointer to Detector
+ AliFMCMaker *fMCMaker; //!Pointer to MCMaker
+ AliFTrackMaker *fTrackMaker; //!Pointer to TrackMaker
+ AliFDet *fDet; //!Pointer to Detector
// flags and switches
Int_t fLuminosity; //Luminosity option (low=1, high=2)
Bool_t fBfield; //B-field (on=1,off=0)
/*
$Log$
+Revision 1.1 2000/11/01 15:57:13 kowal2
+Moved from the TPC directory
+
Revision 1.2 2000/04/17 09:37:33 kowal2
removed obsolete AliTPCDigitsDisplay.C
fArray = (Int_t*) TStorage::ReAlloc(fArray, n * sizeof(Int_t),fN * sizeof(Int_t));
if (fArray!=0) fN= n;
}
-/*
-void AliArrayI::Streamer(TBuffer &R__b)
-{
- // Stream an object of class AliTPC.
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- TObject::Streamer(R__b);
- //read pad parameters
- R__b >> fN;
- if (fArray!=0) {
- delete [] fArray;
- fArray = 0;
- }
- if (fN>0){
- fArray = new Int_t[fN];
- R__b.ReadFastArray(fArray,fN);
- }
- } else {
- R__b.WriteVersion(AliArrayI::IsA());
- TObject::Streamer(R__b);
- R__b << fN;
- if (fN>0) R__b.WriteFastArray(fArray,fN);
- }
-}
-*/
/*
$Log$
+Revision 1.1 2000/11/01 15:57:13 kowal2
+Moved from the TPC directory
+
Revision 1.2 2000/04/17 09:37:33 kowal2
removed obsolete AliTPCDigitsDisplay.C
if (fArray!=0) fN= n;
else fN =0;
}
-
-
-/*
-void AliArrayS::Streamer(TBuffer &R__b)
-{
- // Stream an object of class AliTPC.
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- TObject::Streamer(R__b);
- //read pad parameters
- R__b >> fN;
- if (fArray!=0){
- delete [] fArray;
- fArray =0;
- }
- if (fN>0){
- fArray = new Short_t[fN];
- R__b.ReadFastArray(fArray,fN);
- }
- } else {
- R__b.WriteVersion(AliArrayS::IsA());
- TObject::Streamer(R__b);
- R__b << fN;
- if (fN>0) R__b.WriteFastArray(fArray,fN);
- }
-}
- */
/*
$Log$
+Revision 1.3 2000/12/21 16:24:06 morsch
+Coding convention clean-up
+
Revision 1.2 2000/09/12 13:58:45 morsch
SetForceDcay(..) sets the member data storing the forced decay information.
ForceDecay() executes the change of the decay table.
return fBraPart[kc];
}
+#ifdef never
void AliDecayerPythia::Streamer(TBuffer &R__b)
{
// Stream an object of class AliDecayerPythia.
R__b.WriteArray(fBraPart, 501);
}
}
-
+#endif
void AliDecayerPythia::Copy(AliDecayerPythia &decayer) const
{
private:
- AliPythia* fPythia; // ! Pointer to AliPythia
+ AliPythia* fPythia; // Pointer to AliPythia
Decay_t fDecay; // Forced decay mode
Float_t fBraPart[501]; // Branching ratios
/*
$Log$
+Revision 1.10 2001/01/26 19:55:49 hristov
+Major upgrade of AliRoot code
+
Revision 1.9 2000/12/21 16:24:06 morsch
Coding convention clean-up
}
}
-/*
-void AliGenCocktail::Streamer(TBuffer &R__b)
-{
- // Stream an object of class AliGenCocktail.
-
- AliGenCocktailEntry *entry;
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- AliGenerator::Streamer(R__b);
- R__b >> fNGenerators;
- R__b >> fEntries;
- TIter next(fEntries);
-// Stream generation related information
- while((entry = (AliGenCocktailEntry*)next())) {
- entry->Streamer(R__b);
- }
- } else {
- R__b.WriteVersion(AliGenCocktail::IsA());
- AliGenerator::Streamer(R__b);
- R__b << fNGenerators;
- R__b << fEntries;
- TIter next(fEntries);
-// Stream generation related information
- while((entry = (AliGenCocktailEntry*)next())) {
- entry->Streamer(R__b);
- }
- }
-}
-*/
-
AliGenCocktail& AliGenCocktail::operator=(const AliGenCocktail& rhs)
{
// Assignment operator
/*
$Log$
+Revision 1.32 2001/01/26 19:55:51 hristov
+Major upgrade of AliRoot code
+
Revision 1.31 2001/01/17 10:54:31 hristov
Better protection against FPE
+#ifdef never
void AliGenPythia::Streamer(TBuffer &R__b)
{
// Stream an object of class AliGenPythia.
// fDecayer->Streamer(R__b);
}
}
-
+#endif
TArrayI fParentSelect; // Parent particles to be selected
TArrayI fChildSelect; // Decay products to be selected
Float_t fXsection; // Cross-section
- AliPythia *fPythia; // Pythia
+ AliPythia *fPythia; //! Pythia
Float_t fPtHardMin; // lower pT-hard cut
Float_t fPtHardMax; // higher pT-hard cut
Int_t fNucA1; // mass number nucleus side 1
#pragma link C++ class AliGenFixed+;
#pragma link C++ class AliGenBox+;
#pragma link C++ class AliGenParam+;
-#pragma link C++ class AliGenPythia-;
+#pragma link C++ class AliGenPythia+;
#pragma link C++ class AliGenCocktail+;
#pragma link C++ class AliGenCocktailEntry+;
#pragma link C++ class AliGenExtFile+;
#pragma link C++ class AliGenHijingEventHeader+;
#pragma link C++ class AliGenHijing+;
#pragma link C++ class AliDecayer+;
-#pragma link C++ class AliDecayerPythia-;
+#pragma link C++ class AliDecayerPythia+;
#pragma link C++ class AliGenMuonHits+;
#endif
/*
$Log$
+Revision 1.2 1999/09/29 09:24:19 fca
+Introduction of the Copyright and cvs Log
+
*/
// -*- C++ -*-
return this;
}
-
-//-------------------------------------------------------------------------
-
-void AliGMaterial::Streamer(TBuffer &R__b)
-{
- // Stream an object of class AliGMaterial.
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- TNamed::Streamer(R__b);
- R__b >> fImat;
- R__b >> fIsvol;
- R__b >> fIfield;
- R__b >> fFieldm;
- R__b >> fTmaxfd;
- R__b >> fStemax;
- R__b >> fDeemax;
- R__b >> fEpsil;
- R__b >> fStmin;
- R__b.ReadArray(fUbuf); //
- R__b >> fNbuf;
- R__b >> fA;
- R__b >> fZ;
- R__b >> fDens;
- R__b >> fRadl;
- R__b >> fAbsl;
- R__b.ReadArray(fBuf); //
- R__b >> fNwbuf;
- R__b >> fRho;
- } else {
- R__b.WriteVersion(AliGMaterial::IsA());
- TNamed::Streamer(R__b);
- R__b << fImat;
- R__b << fIsvol;
- R__b << fIfield;
- R__b << fFieldm;
- R__b << fTmaxfd;
- R__b << fStemax;
- R__b << fDeemax;
- R__b << fEpsil;
- R__b << fStmin;
- R__b.WriteArray(fUbuf, fNbuf); //
- R__b << fNbuf;
- R__b << fA;
- R__b << fZ;
- R__b << fDens;
- R__b << fRadl;
- R__b << fAbsl;
- R__b.WriteArray(fBuf, fNbuf); //
- R__b << fNwbuf;
- R__b << fRho;
- }
-}
-
-//-------------------------------------------------------------------------
-
Float_t fDeemax;
Float_t fEpsil;
Float_t fStmin;
+ Int_t fNbuf;
- Float_t* fUbuf;
+ Float_t* fUbuf; //[fNbuf]
- Int_t fNbuf;
Float_t fA;
Float_t fZ;
Float_t fDens;
Float_t* fBuf;
- Int_t fNwbuf;
+ Int_t fNwbuf; //[fNbuf]
Float_t fRho; /* Density of material */
public:
#pragma link C++ class AliGBox+;
#pragma link C++ class AliGSphere-;
#pragma link C++ class AliGTransform+;
-#pragma link C++ class AliGMaterial-;
+#pragma link C++ class AliGMaterial+;
#pragma link C++ class AliGSuperShape+;
#pragma link C++ class AliGConfig+;
#pragma link C++ class AliGNode+;
/*
$Log$
+Revision 1.29 2001/01/26 20:01:09 hristov
+Major upgrade of AliRoot code
+
Revision 1.28 2000/12/18 14:02:00 barbera
new version of the ITS tracking to take into account the new TPC track parametrization
#include "../TPC/AliTPC.h"
#include "../TPC/AliTPCParam.h"
-const Int_t AliITS::fgkNTYPES=3;
ClassImp(AliITS)
fIshunt = 0;
fEuclidOut = 0;
- //fNDetTypes = fgkNTYPES;
+ fNDetTypes = kNTYPES;
fIdN = 0;
fIdName = 0;
fIdSens = 0;
fHits = new TClonesArray("AliITShit", 1560);
gAlice->AddHitList(fHits);
- //fNDetTypes = fgkNTYPES;
+ fNDetTypes = kNTYPES;
- fNdtype = new Int_t[fgkNTYPES];
- fDtype = new TObjArray(fgkNTYPES);
+ fNdtype = new Int_t[kNTYPES];
+ fDtype = new TObjArray(kNTYPES);
- fNctype = new Int_t[fgkNTYPES];
- fCtype = new TObjArray(fgkNTYPES);
+ fNctype = new Int_t[kNTYPES];
+ fCtype = new TObjArray(kNTYPES);
fRecPoints = 0;
fIdName = 0;
fIdSens = 0;
- fDetTypes = new TObjArray(fgkNTYPES);
+ fDetTypes = new TObjArray(kNTYPES);
Int_t i;
- for(i=0;i<fgkNTYPES;i++) {
+ for(i=0;i<kNTYPES;i++) {
(*fDetTypes)[i]=new AliITSDetType();
fNdtype[i]=0;
fNctype[i]=0;
if (!fDtype) return;
Int_t i;
- for (i=0;i<fgkNTYPES;i++ ) {
+ for (i=0;i<kNTYPES;i++ ) {
if ((*fDtype)[i]) ((TClonesArray*)(*fDtype)[i])->Clear();
if (fNdtype) fNdtype[i]=0;
}
//
Int_t i;
- for (i=0;i<fgkNTYPES;i++ ) {
+ for (i=0;i<kNTYPES;i++ ) {
if ((*fCtype)[i]) ((TClonesArray*)(*fCtype)[i])->Clear();
if (fNctype) fNctype[i]=0;
}
iDetType->ClassNames("AliITSdigit","AliITSRawClusterSSD");
} else iDetType->ClassNames("AliITSdigitSSD","AliITSRawClusterSSD");
- if (fgkNTYPES>3) {
+ if (kNTYPES>3) {
Warning("SetDefaults","Only the three basic detector types are initialised!");
}
// one branch for Clusters per type of detector
Int_t i;
- for (i=0; i<fgkNTYPES ;i++) {
- if (fgkNTYPES==3) sprintf(branchname,"%sClusters%s",GetName(),det[i]);
+ for (i=0; i<kNTYPES ;i++) {
+ if (kNTYPES==3) sprintf(branchname,"%sClusters%s",GetName(),det[i]);
else sprintf(branchname,"%sClusters%d",GetName(),i+1);
if (fCtype && fTreeC) {
TreeC()->Branch(branchname,&((*fCtype)[i]), buffersize);
TBranch *branch;
if (fTreeC) {
Int_t i;
- for (i=0; i<fgkNTYPES; i++) {
- if (fgkNTYPES==3) sprintf(branchname,"%sClusters%s",GetName(),det[i]);
+ for (i=0; i<kNTYPES; i++) {
+ if (kNTYPES==3) sprintf(branchname,"%sClusters%s",GetName(),det[i]);
else sprintf(branchname,"%sClusters%d",GetName(),i+1);
if (fCtype) {
branch = fTreeC->GetBranch(branchname);
char clclass[40];
Int_t i;
- for (i=0; i<fgkNTYPES ;i++) {
+ for (i=0; i<kNTYPES ;i++) {
AliITSDetType *iDetType=DetType(i);
iDetType->GetClassNames(digclass,clclass);
//printf("i, digclass, recclass %d %s %s\n",i,digclass,clclass);
(*fCtype)[i] = new TClonesArray(clclass,10000);
}
- for (i=0; i<fgkNTYPES ;i++) {
- if (fgkNTYPES==3) sprintf(branchname,"%sDigits%s",GetName(),det[i]);
+ for (i=0; i<kNTYPES ;i++) {
+ if (kNTYPES==3) sprintf(branchname,"%sDigits%s",GetName(),det[i]);
else sprintf(branchname,"%sDigits%d",GetName(),i+1);
if (fDtype && gAlice->TreeD()) {
gAlice->MakeBranchInTree(gAlice->TreeD(),
Int_t i;
if (treeD) {
- for (i=0; i<fgkNTYPES; i++) {
- if (fgkNTYPES==3) sprintf(branchname,"%sDigits%s",GetName(),det[i]);
+ for (i=0; i<kNTYPES; i++) {
+ if (kNTYPES==3) sprintf(branchname,"%sDigits%s",GetName(),det[i]);
else sprintf(branchname,"%sDigits%d",GetName(),i+1);
if (fDtype) {
branch = treeD->GetBranch(branchname);
Int_t id,module;
Int_t first,last;
- for (id=0;id<fgkNTYPES;id++) {
+ for (id=0;id<kNTYPES;id++) {
if (!all && !det[id]) continue;
//branch = (TBranch*)branches->UncheckedAt(id);
AliITSDetType *iDetType=DetType(id);
AliITSgeom *geom = GetITSgeom();
Int_t id,module;
- for (id=0;id<fgkNTYPES;id++) {
+ for (id=0;id<kNTYPES;id++) {
if (!all && !det[id]) continue;
//branch = (TBranch*)branches->UncheckedAt(id);
AliITSDetType *iDetType=DetType(id);
Int_t id,module;
- for (id=0;id<fgkNTYPES;id++) {
+ for (id=0;id<kNTYPES;id++) {
if (!all && !det[id]) continue;
AliITSDetType *iDetType=DetType(id);
sim = (AliITSsimulation*)iDetType->GetSimulationModel();
}
-
-//____________________________________________________________________________
-void AliITS::Streamer(TBuffer &R__b){
- // Stream an object of class AliITS.
-
- Int_t i;
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion();
- if (R__v) {
- AliDetector::Streamer(R__b);
- R__b >> fIdN;
- R__b.ReadArray(fIdSens);
- if(fIdName!=0) delete[] fIdName; // Array of TStrings
- fIdName = new TString[fIdN];
- for(i=0;i<fIdN;i++) fIdName[i].Streamer(R__b);
- R__b >> fITSgeom;
- R__b >> fITSmodules;
- R__b >> fEuclidOut;
- R__b >> fMajorVersion;
- R__b >> fMinorVersion;
- R__b >> fDetTypes;
- R__b >> fDtype;
- delete []fNdtype;
- fNdtype = new Int_t[fgkNTYPES];
- R__b.ReadFastArray(fNdtype,fgkNTYPES);
- R__b >> fCtype;
- delete []fNctype;
- fNctype = new Int_t[fgkNTYPES];
- R__b.ReadFastArray(fNctype,fgkNTYPES);
- R__b >> fRecPoints;
- R__b >> fNRecPoints;
- R__b >> fTreeC;
- } // end if R__v
- } else { // writing
- R__b.WriteVersion(AliITS::IsA());
- AliDetector::Streamer(R__b);
- R__b << fIdN;
- R__b.WriteArray(fIdSens,fIdN);
- for(i=0;i<fIdN;i++) fIdName[i].Streamer(R__b);
- R__b << fITSgeom;
- R__b << fITSmodules;
- R__b << fEuclidOut;
- R__b << fMajorVersion;
- R__b << fMinorVersion;
- R__b << fDetTypes;
- R__b << fDtype;
- R__b.WriteFastArray(fNdtype,fgkNTYPES);
- R__b << fCtype;
- R__b.WriteFastArray(fNctype,fgkNTYPES);
- R__b << fRecPoints;
- R__b << fNRecPoints;
- R__b << fTreeC;
- } // end if
-
-}
-
//________________________________________________________________
AliITStrack AliITS::Tracking(AliITStrack &track, AliITStrack *reference,TObjArray *fastpoints, Int_t
class AliITSmodule;
class AliITStrack;
+const Int_t kNTYPES=3;
class AliITS : public AliDetector {
protected:
- static const Int_t fgkNTYPES; // Number of detector types
AliITSgeom *fITSgeom; // Pointer to ITS geometry
- TObjArray *fITSmodules; //! Pointer to ITS modules
+ TObjArray *fITSmodules; // Pointer to ITS modules
Bool_t fEuclidOut; // Flag to write geometry in euclid format
Int_t fIdN; // the number of layers
Int_t *fIdSens; //[fIdN] layer identifier
Int_t fMajorVersion; // detailed and coarse(minor) versions
Int_t fMinorVersion; // detailed and coarse(minor) versions
//
- // Int_t fNDetTypes; // Number of detector types
+ Int_t fNDetTypes; // Number of detector types
TObjArray *fDetTypes; // List of detector types
- TObjArray *fDtype; //[fgkNTYPES] List of digits
- Int_t *fNdtype; //[fgkNTYPES] Num. of digits per type of det.
- TObjArray *fCtype; //[fgkNTYPES] List of clusters
- Int_t *fNctype; //[fgkNTYPES] Num. of clust. per type of det.
+ TObjArray *fDtype; // List of digits
+ Int_t *fNdtype; //[fNDetTypes] Num. of digits per type of det.
+ TObjArray *fCtype; // List of clusters
+ Int_t *fNctype; //[fNDetTypes] Num. of clust. per type of det.
TClonesArray *fRecPoints; // List of reconstructed points
Int_t fNRecPoints; // Number of rec points
}
//_____________________________________________________________________________
-AliITSInStream::AliITSInStream(ULong_t length)
+AliITSInStream::AliITSInStream(UInt_t length)
{
//
// Creates a stream of unsigned chars
//_____________________________________________________________________________
-Bool_t AliITSInStream::CheckCount(ULong_t count) {
+Bool_t AliITSInStream::CheckCount(UInt_t count) {
//check boundaries
- if (count <= (ULong_t)fStreamLen) return kTRUE;
+ if (count <= (UInt_t)fStreamLen) return kTRUE;
else {
Error("CheckCount", "actual size is %d, the necessary size is %d",fStreamLen,count);
return kFALSE;
}
}
-//____________________________________________________________________________
-void AliITSInStream::Streamer(TBuffer &R__b){
- // Stream an object of class AliITSInStream.
-
- static unsigned char *array;
- static Bool_t make=kTRUE;
-
- if (R__b.IsReading()) {
- R__b >> fStreamLen;
- //printf("Streamer: fStreamLen %d\n",fStreamLen);
- if (make) array=new unsigned char[fStreamLen];
- make=kFALSE;
- memset(array,0,sizeof(UChar_t)*fStreamLen);
- fInStream=array;
- R__b.ReadFastArray(fInStream,fStreamLen);
-
- } else {
- R__b << fStreamLen;
- R__b.WriteFastArray(fInStream,fStreamLen);
- }
-}
-
-
ClassImp(AliITSOutStream)
//__________________________________________________________________________
-AliITSOutStream::AliITSOutStream(ULong_t length) {
+AliITSOutStream::AliITSOutStream(UInt_t length) {
//
// Creates a stream of unsigned chars
//
fStreamLen = length;
- fOutStream = new ULong_t[length];
+ fOutStream = new UInt_t[length];
ClearStream();
}
void AliITSOutStream::ClearStream()
{
// clear stream
- memset(fOutStream,0,sizeof(ULong_t)*fStreamLen);
+ memset(fOutStream,0,sizeof(UInt_t)*fStreamLen);
}
//_____________________________________________________________________________
-Bool_t AliITSOutStream::CheckCount(ULong_t count)
+Bool_t AliITSOutStream::CheckCount(UInt_t count)
{
//check boundaries
if (count < fStreamLen) return kTRUE;
return kFALSE;
}
}
-
-//____________________________________________________________________________
-void AliITSOutStream::Streamer(TBuffer &R__b){
-
- // Stream an object of class AliITSOutStream.
-
- static unsigned long *array;
- static Bool_t make=kTRUE;
-
- if (R__b.IsReading()) {
- R__b >> fStreamLen;
- //printf("Streamer: fStreamLen %d\n",fStreamLen);
- if (make) array=new unsigned long[fStreamLen];
- make=kFALSE;
- memset(array,0,sizeof(ULong_t)*fStreamLen);
- fOutStream=array;
- R__b.ReadFastArray(fOutStream,fStreamLen);
-
- } else {
- R__b << fStreamLen;
- R__b.WriteFastArray(fOutStream,fStreamLen);
- }
-}
-
public:
AliITSInStream();
- AliITSInStream(ULong_t length);
+ AliITSInStream(UInt_t length);
virtual ~AliITSInStream();
AliITSInStream(const AliITSInStream &source); // copy constructor
AliITSInStream& operator=(const AliITSInStream &source); // ass. operator
void ClearStream();
- Bool_t CheckCount(ULong_t count);
- ULong_t StreamLength() {
+ Bool_t CheckCount(UInt_t count);
+ UInt_t StreamLength() {
// stream length
return fStreamLen;
}
// input stream of unsigned chars
- ULong_t fStreamLen; // Length of the array
- UChar_t *fInStream; // Pointer to an array of input unsigned chararacters
+ UInt_t fStreamLen; // Length of the array
+ UChar_t *fInStream; //[fStreamLen] Pointer to an array of input unsigned chararacters
public:
AliITSOutStream();
- AliITSOutStream(ULong_t length);
+ AliITSOutStream(UInt_t length);
virtual ~AliITSOutStream();
AliITSOutStream(const AliITSOutStream &source); // copy constructor
AliITSOutStream& operator=(const AliITSOutStream &source); // assignment operator
void ClearStream();
- Bool_t CheckCount(ULong_t count);
- ULong_t StreamLength() {
+ Bool_t CheckCount(UInt_t count);
+ UInt_t StreamLength() {
// stream length
return fStreamLen;
}
- ULong_t *Stream() {
+ UInt_t *Stream() {
// stream
return fOutStream;
}
// output stream of unsigned chars
- ULong_t fStreamLen; // Length of the array
- ULong_t *fOutStream; // Pointer to an array of unsigned long
+ UInt_t fStreamLen; // Length of the array
+ UInt_t *fOutStream; //[fStreamLen] Pointer to an array of unsigned long
/*
$Log$
+Revision 1.12 2001/01/17 15:41:27 barbera
+Some corrections suggested by Peter Hristov added
+
Revision 1.11 2000/10/02 16:32:35 barbera
Forward declaration added
} // end for i
return R__b;
}
-//___________________________________________________________________________
-void AliITSgeom::Streamer(TBuffer &R__b){
-////////////////////////////////////////////////////////////////////////
-// The default Streamer function "written by ROOT" doesn't write out
-// the arrays referenced by pointers. Therefore, a specific Streamer function
-// has to be written. This function should not be modified but instead added
-// on to so that older versions can still be read. The proper handling of
-// the version dependent streamer function hasn't been written do to the lack
-// of finding an example at the time of writing.
-////////////////////////////////////////////////////////////////////////
- // Stream an object of class AliITSgeom.
- Int_t i,j,k,l;
- UInt_t R__s=0, R__c=0;
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion();
- if (R__v==1) {
- if(fNlad!=0) delete[] fNlad;
- if(fNdet!=0) delete[] fNdet;
- if(fGm!=0){
- for(i=0;i<fNlayers;i++) delete[] fGm[i];
- delete[] fGm;
- } // end if fGm!=0
- Int_t idt,id[3],inmax;
- Double_t t[3],r[3],m[9],s[3][3];
- TObject::Streamer(R__b);
- fTrans = 0;
- R__b >> fNlayers;
- fNlad = new Int_t[fNlayers];
- fNdet = new Int_t[fNlayers];
- for(i=0;i<fNlayers;i++) R__b >> fNlad[i];
- for(i=0;i<fNlayers;i++) R__b >> fNdet[i];
- fNmodules = GetModuleIndex(fNlayers,fNlad[fNlayers-1],
- fNdet[fNlayers-1]);
- fGm = new AliITSgeomMatrix*[fNmodules];
- inmax = 0;
- for(i=0;i<fNlayers;i++){
- for(j=0;j<fNlad[i]*fNdet[i];j++){
- R__b >> idt;
- R__b >> t[0];
- R__b >> t[1];
- R__b >> t[2];
- R__b >> r[0];
- R__b >> r[1];
- R__b >> r[2];
- for(k=0;k<9;k++) R__b >> m[k];
- for(k=0;k<3;k++)for(l=0;l<3;l++) s[k][l] = m[3*k+l];
- GetModuleId(inmax,id[0],id[1],id[2]);
- fGm[inmax++] = new AliITSgeomMatrix(idt,id,s,t);
- } // end for j
- } // end for i
- R__b >> fShape;
- } else if(R__v==2){
- if(fNlad!=0) delete[] fNlad;
- if(fNdet!=0) delete[] fNdet;
- if(fGm!=0){for(i=0;i<fNmodules;i++) delete fGm[i];delete[] fGm;}
- TObject::Streamer(R__b);
- R__b >> fTrans;
- R__b >> fNlayers;
- R__b.ReadArray(fNlad);
- R__b.ReadArray(fNdet);
- R__b >> fShape;
- R__b >> fNmodules;
- fGm = new AliITSgeomMatrix*[fNmodules];
- for(i=0;i<fNmodules;i++){
- fGm[i] = new AliITSgeomMatrix;
- fGm[i]->Streamer(R__b);
- } // end for i
- //R__b.ReadArray(fGm);
- R__b.CheckByteCount(R__s, R__c, AliITSgeom::IsA());
- } // end if R__v==?
- } else { // Writing.
- R__c = R__b.WriteVersion(AliITSgeom::IsA(), kTRUE);
- TObject::Streamer(R__b);
- R__b << fTrans;
- R__b << fNlayers;
- R__b.WriteArray(fNlad, fNlayers);
- R__b.WriteArray(fNdet, fNlayers);
- R__b << fShape;
- R__b << fNmodules;
- //R__b.WriteArray(fGm, __COUNTER__);
- for(i=0;i<fNmodules;i++){
- fGm[i]->Streamer(R__b);
- } // end for i
- R__b.SetByteCount(R__c, kTRUE);
- } // end if reading/writing.
-}
+
//______________________________________________________________________
// The following routines modify the transformation of "this"
// geometry transformations in a number of different ways.
Int_t fTrans; //Flag to keep track of which transformation
Int_t fNlayers; //The number of layers.
Int_t fNmodules;//The total number of modules
- Int_t *fNlad; //!Array of the number of ladders/layer(layer)
- Int_t *fNdet; //!Array of the number of detectors/ladder(layer)
+ Int_t *fNlad; //[fNlayers] Array of the number of ladders/layer(layer)
+ Int_t *fNdet; //[fNlayers] Array of the number of detectors/ladder(layer)
AliITSgeomMatrix **fGm; //[fNmodules] Structure of trans. and rotation.
TObjArray *fShape; //Array of shapes and detector information.
/*
$Log$
+Revision 1.5 2000/10/02 16:32:35 barbera
+Forward declaration added
+
Revision 1.1.2.6 2000/10/02 15:52:05 barbera
Forward declaration added
r.read(&is);
return is;
}
-//----------------------------------------------------------------------
-void AliITSgeomMatrix::Streamer(TBuffer &R__b){
-////////////////////////////////////////////////////////////////////////
-// Stream an object of class AliITSgeomMatrix.
-////////////////////////////////////////////////////////////////////////
-
- UInt_t R__s, R__c;
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
- if (R__v==1) {
- R__b >> fDetectorIndex;
- R__b.ReadStaticArray(fid);
- R__b.ReadStaticArray(frot);
- R__b.ReadStaticArray(ftran);
- R__b.ReadStaticArray((double*)fm);
- R__b.CheckByteCount(R__s, R__c, AliITSgeomMatrix::IsA());
- } // end if R__v
- } else { // R__b.IsWriting()
- R__c = R__b.WriteVersion(AliITSgeomMatrix::IsA(), kTRUE);
- R__b << fDetectorIndex;
- R__b.WriteArray(fid, 3);
- R__b.WriteArray(frot, 3);
- R__b.WriteArray(ftran, 3);
- R__b.WriteArray((double*)fm, 9);
- R__b.SetByteCount(R__c, kTRUE);
- } // end if R__b.IsReading()||IsWriting()
-}
-//______________________________________________________________________
/*
$Log$
+Revision 1.7 2000/10/02 16:32:35 barbera
+Forward declaration added
+
Revision 1.1.2.8 2000/10/02 15:52:05 barbera
Forward declaration added
fShapeSPD = new TBRIK("ActiveSPD","Active volume of SPD","SPD SI DET",
fDx,fDy,fDz);
}
-/*
-//----------------------------------------------------------------------
-void AliITSgeomSPD300::Streamer(TBuffer &R__b){
- // Streamer function for the class AliItSgeomSPD300.
- Int_t i;
- UInt_t R__s, R__c;
-
- if(R__b.IsReading()){
- Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
- if(R__v==1){
- TObject::Streamer(R__b);
- fShapeSPD->Streamer(R__b);
- R__b >> fDx;
- R__b >> fDy;
- R__b >> fDz;
- }else if (R__v==2){
- AliITSgeomSPD::Streamer(R__b);
- fShapeSPD->Streamer(R__b);
- R__b >> fDx;
- R__b >> fDy;
- R__b >> fDz;
- R__b >> fNbinx;
- if(fBinSizeX!=0) delete[] fBinSizeX;
- fBinSizeX = new Float_t[fNbinx];
- for(i=0;i<fNbinx;i++) R__b >> fBinSizeX[i];
- R__b >> fNbinz;
- if(fBinSizeZ!=0) delete[] fBinSizeZ;
- fBinSizeZ = new Float_t[fNbinz];
- for(i=0;i<fNbinz;i++) R__b >> fBinSizeZ[i];
- R__b.CheckByteCount(R__s, R__c, AliITSgeomSPD300::IsA());
- } // end if R__v==1
- } else { // IsWriting.
- R__c = R__b.WriteVersion(AliITSgeomSPD300::IsA(), kTRUE);
- AliITSgeomSPD::Streamer(R__b);
- fShapeSPD->Streamer(R__b);
- R__b << fDx;
- R__b << fDy;
- R__b << fDz;
- R__b << fNbinx;
- for(i=0;i<fNbinx;i++) R__b << fBinSizeX[i];
- R__b << fNbinz;
- for(i=0;i<fNbinz;i++) R__b << fBinSizeZ[i];
- R__b.SetByteCount(R__c, kTRUE);
- } // end if R__b.IsReading()
-}
-//----------------------------------------------------------------------
-*/
/*
$Log$
+Revision 1.7 2000/10/02 16:32:35 barbera
+Forward declaration added
+
Revision 1.1.2.8 2000/10/02 15:52:05 barbera
Forward declaration added
fShapeSPD = new TBRIK("ActiveSPD","Active volume of SPD","SPD SI DET",
fDx,fDy,fDz);
}
-/*
-//----------------------------------------------------------------------
-void AliITSgeomSPD425::Streamer(TBuffer &R__b){
- // Streamer function for the class AliITSgeomSPD425.
- Int_t i;
- UInt_t R__s, R__c;
-
- if(R__b.IsReading()){
- Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
- if(R__v==1){
- TObject::Streamer(R__b);
- fShapeSPD->Streamer(R__b);
- R__b >> fDx;
- R__b >> fDy;
- R__b >> fDz;
- }else if (R__v==2){
- AliITSgeomSPD::Streamer(R__b);
- fShapeSPD->Streamer(R__b);
- R__b >> fDx;
- R__b >> fDy;
- R__b >> fDz;
- R__b >> fNbinx;
- if(fBinSizeX!=0) delete[] fBinSizeX;
- fBinSizeX = new Float_t[fNbinx];
- for(i=0;i<fNbinx;i++) R__b >> fBinSizeX[i];
- R__b >> fNbinz;
- if(fBinSizeZ!=0) delete[] fBinSizeZ;
- fBinSizeZ = new Float_t[fNbinz];
- for(i=0;i<fNbinz;i++) R__b >> fBinSizeZ[i];
- R__b.CheckByteCount(R__s, R__c, AliITSgeomSPD425::IsA());
- } // end if R__v==1
- } else { // IsWriting.
- R__c = R__b.WriteVersion(AliITSgeomSPD425::IsA(), kTRUE);
- AliITSgeomSPD::Streamer(R__b);
- fShapeSPD->Streamer(R__b);
- R__b << fDx;
- R__b << fDy;
- R__b << fDz;
- R__b << fNbinx;
- for(i=0;i<fNbinx;i++) R__b << fBinSizeX[i];
- R__b << fNbinz;
- for(i=0;i<fNbinz;i++) R__b << fBinSizeZ[i];
- R__b.SetByteCount(R__c, kTRUE);
- } // end if R__b.IsReading()
-}
-//----------------------------------------------------------------------
-*/
/*
$Log$
+Revision 1.10 2001/01/26 20:01:19 hristov
+Major upgrade of AliRoot code
+
Revision 1.9 2000/10/02 16:32:51 barbera
Automatic streamer used and forward declarations added
////////////////////////////////////////////////////////////////////////
return gAlice->Particle(GetTrack());
}
-/*
-//___________________________________________________________________________
-void AliITShit::Streamer(TBuffer &R__b){
-////////////////////////////////////////////////////////////////////////
-// The streamer function for this AliITShit class. This has been set
-// up so that future changes to this class can be easly incorporated.
-////////////////////////////////////////////////////////////////////////
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion();
- if (R__v==1) {
- AliHit::Streamer(R__b);
- R__b >> fStatus;
- R__b >> fLayer;
- R__b >> fLadder;
- R__b >> fDet;
- R__b >> fPx;
- R__b >> fPy;
- R__b >> fPz;
- R__b >> fDestep;
- R__b >> fTof;
- }else{ // for futrue changes to this class.
- } // end if R__v==1
- } else {
- R__b.WriteVersion(AliITShit::IsA());
- AliHit::Streamer(R__b);
- R__b << fStatus;
- R__b << fLayer;
- R__b << fLadder;
- R__b << fDet;
- R__b << fPx;
- R__b << fPy;
- R__b << fPz;
- R__b << fDestep;
- R__b << fTof;
- } // end if R__b.IsReading()
-}
-*/
s = (m4-(n-3.)*m2*m2/(n-1.))/n;
return TMath::Sqrt(s);
}
-/*
-//_______________________________________________________________________
-void AliITSstatistics::Streamer(TBuffer &R__b){
- // Stream an object of class AliITSstatistics.
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- TObject::Streamer(R__b);
- R__b >> fN;
- R__b >> fOrder;
- R__b.ReadArray(fX);
- R__b.ReadArray(fW);
- } else {
- R__b.WriteVersion(AliITSstatistics::IsA());
- TObject::Streamer(R__b);
- R__b << fN;
- R__b << fOrder;
- R__b.WriteArray(fX,fOrder);
- R__b.WriteArray(fW,fOrder);
- }
-}
-*/
h /= (Double_t)fN - 2.0;
return h;
}
-/*
-//_______________________________________________________________________
-void AliITSstatistics2::Streamer(TBuffer &R__b){
- // Stream an object of class AliITSstatistics2.
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- TObject::Streamer(R__b);
- R__b >> fN;
- R__b >> fOrder;
- R__b.ReadArray(fY);
- R__b.ReadArray(fX);
- R__b.ReadArray(fYx);
- R__b.ReadArray(fW);
- } else {
- R__b.WriteVersion(AliITSstatistics2::IsA());
- TObject::Streamer(R__b);
- R__b << fN;
- R__b << fOrder;
- R__b.WriteArray(fY,fOrder);
- R__b.WriteArray(fX,fOrder);
- R__b.WriteArray(fYx,fOrder);
- R__b.WriteArray(fW,fOrder);
- }
-}
-*/
/*
$Log$
+Revision 1.22 2000/10/05 20:49:59 nilsen
+Now using root generated streamers.
+
Revision 1.14.2.9 2000/10/05 07:49:27 nilsen
Removed hit generation from step manager.
new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->CurrentTrack(),vol,hits);
*/
}
-/*
-//____________________________________________________________________________
-void AliITSv1::Streamer(TBuffer &R__b){
-////////////////////////////////////////////////////////////////////////
-// A dummy Streamer function for this class AliITSv1. By default it
-// only streams the AliITS class as it is required. Since this class
-// dosen't contain any "real" data to be saved, it doesn't.
-////////////////////////////////////////////////////////////////////////
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- AliITS::Streamer(R__b);
- } else {
- R__b.WriteVersion(AliITSv1::IsA());
- AliITS::Streamer(R__b);
- } // end if R__b.IsReading()
-}
-*/
\ No newline at end of file
/*
$Log$
+Revision 1.21 2000/11/30 11:13:11 barbera
+ Added changes suggested by Federico Carminati on nov, 30, 2000
+
Revision 1.20 2000/10/07 17:29:51 nilsen
Blank Line added at end of file to remove a warning for hp compilers
(Give me a Break!).
} // end if printit[layer][ladder][detector]
#endif
}
-/*
-//____________________________________________________________________________
-void AliITSv3::Streamer(TBuffer &R__b){
-////////////////////////////////////////////////////////////////////////
-// A dummy Streamer function for this class AliITSv3. By default it
-// only streams the AliITS class as it is required. Since this class
-// dosen't contain any "real" data to be saved, it doesn't.
-////////////////////////////////////////////////////////////////////////
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion();
- if (R__v==1) {
- AliITS::Streamer(R__b);
- }else{
- AliITS::Streamer(R__b);
- } // end if
- } else {
- R__b.WriteVersion(AliITSv3::IsA());
- AliITS::Streamer(R__b);
- } // end if R__b.IsReading()
-}
-*/
/*
$Log$
+Revision 1.26 2000/11/30 11:13:11 barbera
+ Added changes suggested by Federico Carminati on nov, 30, 2000
+
Revision 1.25 2000/10/05 20:50:00 nilsen
Now using root generated streamers.
#endif
return;
}
-/*
-//____________________________________________________________________________
-void AliITSv5::Streamer(TBuffer &R__b){
-////////////////////////////////////////////////////////////////////////
-// A dummy Streamer function for this class AliITSv5. By default it
-// only streams the AliITS class as it is required. Since this class
-// dosen't contain any "real" data to be saved, it doesn't.
-////////////////////////////////////////////////////////////////////////
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion();
- if (R__v==1) {
- AliITS::Streamer(R__b);
- }else{
- AliITS::Streamer(R__b);
- } // end if R__v==1
- } else {
- R__b.WriteVersion(AliITSv5::IsA());
- AliITS::Streamer(R__b);
- } // end if R__b.IsReading()
-}
-*/
/*
$Log$
+Revision 1.2 2000/11/30 11:13:11 barbera
+ Added changes suggested by Federico Carminati on nov, 30, 2000
+
Revision 1.1 2000/10/07 15:46:38 barbera
Version 5 of the geometry with asymmetric services
#endif
return;
}
-/*
-//____________________________________________________________________________
-void AliITSv5asymm::Streamer(TBuffer &R__b){
-////////////////////////////////////////////////////////////////////////
-// A dummy Streamer function for this class AliITSv5asymm. By default it
-// only streams the AliITS class as it is required. Since this class
-// dosen't contain any "real" data to be saved, it doesn't.
-////////////////////////////////////////////////////////////////////////
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion();
- if (R__v==1) {
- AliITS::Streamer(R__b);
- }else{
- AliITS::Streamer(R__b);
- } // end if R__v==1
- } else {
- R__b.WriteVersion(AliITSv5asymm::IsA());
- AliITS::Streamer(R__b);
- } // end if R__b.IsReading()
-}
-*/
/*
$Log$
+Revision 1.2 2000/11/30 11:13:11 barbera
+ Added changes suggested by Federico Carminati on nov, 30, 2000
+
Revision 1.1 2000/10/07 15:46:29 barbera
Version 5 of the geometry with symmetric services
#endif
return;
}
-/*
-//____________________________________________________________________________
-void AliITSv5symm::Streamer(TBuffer &R__b){
-////////////////////////////////////////////////////////////////////////
-// A dummy Streamer function for this class AliITSv5symm. By default it
-// only streams the AliITS class as it is required. Since this class
-// dosen't contain any "real" data to be saved, it doesn't.
-////////////////////////////////////////////////////////////////////////
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion();
- if (R__v==1) {
- AliITS::Streamer(R__b);
- }else{
- AliITS::Streamer(R__b);
- } // end if R__v==1
- } else {
- R__b.WriteVersion(AliITSv5symm::IsA());
- AliITS::Streamer(R__b);
- } // end if R__b.IsReading()
-}
-*/
/*
$Log$
+Revision 1.4 2001/01/23 20:08:03 barbera
+Option B for pixels implemented and set as default
+
Revision 1.3 2001/01/17 08:08:20 barbera
Some media parameters modified
return;
}
-/*
-//____________________________________________________________________________
-void AliITSvPPRasymm::Streamer(TBuffer &R__b){
-////////////////////////////////////////////////////////////////////////
-// A dummy Streamer function for this class AliITSvPPRasymm. By default it
-// only streams the AliITS class as it is required. Since this class
-// dosen't contain any "real" data to be saved, it doesn't.
-////////////////////////////////////////////////////////////////////////
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- AliITS::Streamer(R__b);
- } else {
- R__b.WriteVersion(AliITSvPPRasymm::IsA());
- AliITS::Streamer(R__b);
- } // end if R__b.IsReading()
-}
-*/
/*
$Log$
+Revision 1.15 2001/01/17 07:41:29 barbera
+Some media parameters modified
+
Revision 1.14 2001/01/15 13:13:53 barbera
Some comments added
//
*/
}
-/*
-//____________________________________________________________________________
-void AliITSvPPRcoarseasymm::Streamer(TBuffer &R__b){
-////////////////////////////////////////////////////////////////////////
-// A dummy Streamer function for this class AliITSvPPRcoarseasymm. By default it
-// only streams the AliITS class as it is required. Since this class
-// dosen't contain any "real" data to be saved, it doesn't.
-////////////////////////////////////////////////////////////////////////
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- AliITS::Streamer(R__b);
- } else {
- R__b.WriteVersion(AliITSvPPRcoarseasymm::IsA());
- AliITS::Streamer(R__b);
- } // end if R__b.IsReading()
-}
-*/
/*
$Log$
+Revision 1.14 2001/01/17 07:41:29 barbera
+Some media parameters modified
+
Revision 1.13 2001/01/15 13:13:52 barbera
Some comments added
//
*/
}
-/*
-//____________________________________________________________________________
-void AliITSvPPRcoarsesymm::Streamer(TBuffer &R__b){
-////////////////////////////////////////////////////////////////////////
-// A dummy Streamer function for this class AliITSvPPRcoarsesymm. By default it
-// only streams the AliITS class as it is required. Since this class
-// dosen't contain any "real" data to be saved, it doesn't.
-////////////////////////////////////////////////////////////////////////
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- AliITS::Streamer(R__b);
- } else {
- R__b.WriteVersion(AliITSvPPRcoarsesymm::IsA());
- AliITS::Streamer(R__b);
- } // end if R__b.IsReading()
-}
-*/
/*
$Log$
+Revision 1.2 2001/01/26 20:01:19 hristov
+Major upgrade of AliRoot code
+
Revision 1.1.2.1 2001/01/15 13:38:32 barbera
New ITS detailed geometry to be used for the PPR
//
*/
}
-/*
-//____________________________________________________________________________
-void AliITSvPPRsymm::Streamer(TBuffer &R__b){
-////////////////////////////////////////////////////////////////////////
-// A dummy Streamer function for this class AliITSvPPRsymm. By default it
-// only streams the AliITS class as it is required. Since this class
-// dosen't contain any "real" data to be saved, it doesn't.
-////////////////////////////////////////////////////////////////////////
-
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- AliITS::Streamer(R__b);
- } else {
- R__b.WriteVersion(AliITSvPPRsymm::IsA());
- AliITS::Streamer(R__b);
- } // end if R__b.IsReading()
-}
-*/
/*
$Log$
+Revision 1.4 2001/01/18 06:25:09 barbera
+ITS geometry using test Euclid files
+
Revision 1.1.2.8 2000/10/05 20:28:18 nilsen
Now using root generated streamer function.
new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->CurrentTrack(),vol,hits);
return;
}
-/*
-//____________________________________________________________________________
-void AliITSvtest::Streamer(TBuffer &R__b)
-{
- // Stream an object of class AliITSvtest.
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- AliITS::Streamer(R__b);
- } else {
- R__b.WriteVersion(AliITSvtest::IsA());
- AliITS::Streamer(R__b);
- }
-}
-*/
// Standard ITS classes
-#pragma link C++ class AliITS-;
+#pragma link C++ class AliITS+;
#pragma link C++ class AliITSv1+;
#pragma link C++ class AliITSv3+;
#pragma link C++ class AliITSv5+;
#pragma link C++ class AliITSdigitSDD+;
#pragma link C++ class AliITSdigitSSD+;
#pragma link C++ class AliITSTransientDigit+;
-#pragma link C++ class AliITSgeom-;
-#pragma link C++ class AliITSgeomMatrix-;
+#pragma link C++ class AliITSgeom+;
+#pragma link C++ class AliITSgeomMatrix+;
#pragma link C++ class AliITSgeomSPD+;
#pragma link C++ class AliITSgeomSDD+;
#pragma link C++ class AliITSgeomSSD+;
// SDD simulation
#pragma link C++ class AliITSRawData+;
// These streamers must be formatted according to the raw data fromat
-#pragma link C++ class AliITSInStream-;
-#pragma link C++ class AliITSOutStream-;
+#pragma link C++ class AliITSInStream+;
+#pragma link C++ class AliITSOutStream+;
//
#pragma link C++ class AliITSHNode+;
#pragma link C++ class AliITSHTable+;
/*
$Log$
+Revision 1.15 2001/01/26 21:25:48 morsch
+Empty default constructors and.
+
Revision 1.14 2000/12/21 22:12:41 morsch
Clean-up of coding rule violations,
printf("\n Calling Default Constructor");
fRSec = 0;
fNDiv = 0;
- fDpxD = 0;
+ fDpxD = 0;
+ fCorrA = 0;
}
AliMUONSegmentationV01::AliMUONSegmentationV01(Int_t nsec)
/*
$Log$
+Revision 1.6 2000/09/07 11:23:27 kowal2
+Improved algoritms, coding convensions applied.
+
Revision 1.5 2000/06/30 12:07:50 kowal2
Updated from the TPC-PreRelease branch
// Stream an object of class AliTPCPRF2D
if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- TObject::Streamer(R__b);
- //read chewron parameters
- R__b >> fHeightFull;
- R__b >> fHeightS;
- R__b >> fShiftY;
- R__b >> fWidth;
- R__b >> fK;
- R__b >> fSigmaX;
- R__b >> fSigmaY;
- R__b >> fMeanX;
- R__b >> fMeanY;
- //read charge parameters
- R__b.ReadFastArray(fType,5);
- R__b >> fOrigSigmaX;
- R__b >> fOrigSigmaY;
- R__b >> fKNorm;
- R__b >> fK3X;
- R__b >> fK3Y;
- R__b >> fPadDistance;
- R__b >> fInteg;
- //read angle parameters
- R__b >> fChargeAngle;
- R__b >> fPadAngle;
+ UInt_t R__s, R__c;
+ Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
+ AliTPCPRF2D::Class()->ReadBuffer(R__b, this, R__v, R__s, R__c);
//read functions
- if (fGRF!=0) {
- fGRF->Delete();
- fGRF=0;
- }
- if (strncmp(fType,"User",3)==0){
- fGRF= new TF2;
- R__b>>fGRF;
- }
- if (strncmp(fType,"Gauss",3)==0)
- fGRF = new TF2("fun",funGauss2D,-5.,5.,-5.,5.,4);
- if (strncmp(fType,"Cosh",3)==0)
- fGRF = new TF2("fun",funCosh2D,-5.,5.,-5.,5.,4);
- if (strncmp(fType,"Gati",3)==0)
- fGRF = new TF2("fun",funGati2D,-5.,5.,-5.,5.,5);
- //read interpolation parameters
- R__b >>fY1;
- R__b >>fY2;
- R__b >>fNYdiv;
- R__b >>fDStep;
- R__b >>fNPRF;
- R__b >>fNChargeArray;
- if (fChargeArray!=0) delete [] fChargeArray;
- if (fNChargeArray>0) {
- fChargeArray = new Float_t[fNChargeArray];
- R__b.ReadFastArray(fChargeArray,fNChargeArray);
+ if (strncmp(fType,"User",3)!=0){
+ delete fGRF;
+ if (strncmp(fType,"Gauss",3)==0)
+ fGRF = new TF2("fun",funGauss2D,-5.,5.,-5.,5.,4);
+ if (strncmp(fType,"Cosh",3)==0)
+ fGRF = new TF2("fun",funCosh2D,-5.,5.,-5.,5.,4);
+ if (strncmp(fType,"Gati",3)==0)
+ fGRF = new TF2("fun",funGati2D,-5.,5.,-5.,5.,5);
+ if (fGRF!=0) fGRF->SetParameters(funParam);
}
- //
- R__b.ReadFastArray(funParam,5);
- if (fGRF!=0) fGRF->SetParameters(funParam);
//calculate conversion coefitient to convert position to virtual wire
fDYtoWire=Float_t(fNYdiv-1)/(fY2-fY1);
fDStepM1=1/fDStep;
} else {
- R__b.WriteVersion(AliTPCPRF2D::IsA());
- TObject::Streamer(R__b);
- //write chewron parameters
- R__b << fHeightFull;
- R__b << fHeightS;
- R__b << fShiftY;
- R__b << fWidth;
- R__b << fK;
- R__b << fSigmaX;
- R__b << fSigmaY;
- R__b << fMeanX;
- R__b << fMeanY;
- //write charge parameters
- R__b.WriteFastArray(fType,5);
- R__b << fOrigSigmaX;
- R__b << fOrigSigmaY;
- R__b << fKNorm;
- R__b << fK3X;
- R__b << fK3Y;
- R__b << fPadDistance;
- R__b << fInteg;
- //angle parameters
- R__b << fChargeAngle;
- R__b << fPadAngle;
- if (strncmp(fType,"User",3)==0) R__b <<fGRF;
- //write interpolation parameters
- R__b <<fY1;
- R__b <<fY2;
- R__b <<fNYdiv;
- R__b <<fDStep;
- R__b <<fNPRF;
- R__b <<fNChargeArray;
- if (fNChargeArray>0)
- R__b.WriteFastArray(fChargeArray,fNPRF*fNYdiv);
- R__b.WriteFastArray(funParam,5);
+ AliTPCPRF2D::Class()->WriteBuffer(R__b,this);
}
}
void Update1();
virtual void UpdateSigma(); //recalculate sigma of PRF
Float_t GetPRFActiv(Float_t xin); //return PRF in point xin and actual y
- Float_t * fcharge; //field with PRF
+ Float_t * fcharge; //!field with PRF
Float_t fY1; //position of first "virtual" vire
Float_t fY2; //position of last virtual vire
Int_t fNYdiv; //number of wires
- Float_t * fChargeArray; //pointer to array of arrays
Int_t fNChargeArray; //number of charge interpolation points
+ Float_t * fChargeArray; //[fNChargeArray]pointer to array of arrays
void DrawComment(TPaveText * comment); //draw comments to picture
//chevron parameters
if(iFMD) {
//=================== FMD parameters ============================
- AliFMD *FMD = new AliFMDv1("FMD","normal FMD");
+ AliFMD *FMD = new AliFMDv0("FMD","normal FMD");
}
if(iMUON) {
//=================== MUON parameters ===========================
- AliMUON *MUON = new AliMUONv1("MUON","normal MUON");
- MUON->SetIshunt(0);
- MUON->SetMaxStepGas(0.1);
- MUON->SetMaxStepAlu(0.1);
- //
- // Version 0
- //
- // First define the number of planes that are segmented (1 or 2) by a call
- // to SetNsec.
- // Then chose for each chamber (chamber plane) the segmentation
- // and response model.
- // They should be equal for the two chambers of each station. In a future
- // version this will be enforced.
- //
- //
- Int_t chamber;
- Int_t station;
- // Default response
- AliMUONResponseV0* response0 = new AliMUONResponseV0;
- response0->SetSqrtKx3(0.7131);
- response0->SetKx2(1.0107);
- response0->SetKx4(0.4036);
- response0->SetSqrtKy3(0.7642);
- response0->SetKy2(0.9706);
- response0->SetKy4(0.3831);
- response0->SetPitch(0.25);
- response0->SetSigmaIntegration(10.);
- response0->SetChargeSlope(50);
- response0->SetChargeSpread(0.18, 0.18);
- response0->SetMaxAdc(4096);
- response0->SetZeroSuppression(6);
- //--------------------------------------------------------
- // Configuration for Chamber TC1/2 (Station 1) ----------
- //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Float_t rseg1[4]={17.5, 55.2, 71.3, 95.5};
- Int_t nseg1[4]={4, 4, 2, 1};
- //
- chamber=1;
- //^^^^^^^^^
- MUON->SetNsec(chamber-1,2);
- //
- AliMUONSegmentationV01 *seg11=new AliMUONSegmentationV01;
-
- seg11->SetSegRadii(rseg1);
- seg11->SetPadSize(3, 0.5);
- seg11->SetDAnod(3.0/3./4);
- seg11->SetPadDivision(nseg1);
-
- MUON->SetSegmentationModel(chamber-1, 1, seg11);
- //
- AliMUONSegmentationV02 *seg12=new AliMUONSegmentationV02;
- seg12->SetSegRadii(rseg1);
- seg12->SetPadSize(0.75, 2.0);
- seg12->SetDAnod(3.0/3./4);
- seg12->SetPadDivision(nseg1);
-
- MUON->SetSegmentationModel(chamber-1, 2, seg12);
-
- MUON->SetResponseModel(chamber-1, response0);
-
- chamber=2;
- //^^^^^^^^^
- //
- MUON->SetNsec(chamber-1,2);
- //
- AliMUONSegmentationV01 *seg21=new AliMUONSegmentationV01;
- seg21->SetSegRadii(rseg1);
- seg21->SetPadSize(3, 0.5);
- seg21->SetDAnod(3.0/3./4);
- seg21->SetPadDivision(nseg1);
- MUON->SetSegmentationModel(chamber-1, 1, seg21);
- //
- AliMUONSegmentationV02 *seg22=new AliMUONSegmentationV02;
- seg22->SetSegRadii(rseg1);
- seg22->SetPadSize(0.75, 2.);
- seg22->SetDAnod(3.0/3./4);
- seg22->SetPadDivision(nseg1);
- MUON->SetSegmentationModel(chamber-1, 2, seg22);
-
- MUON->SetResponseModel(chamber-1, response0);
- //
- //--------------------------------------------------------
- // Configuration for Chamber TC3/4 -----------------------
- ///^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- // Float_t rseg2[4]={23.5, 87.7, 122.4, 122.5};
- Float_t rseg2[4]={23.5, 47.1, 87.7, 122.5};
- Int_t nseg2[4]={4, 4, 2, 1};
- //
- chamber=3;
- //^^^^^^^^^
- MUON->SetNsec(chamber-1,2);
- //
- AliMUONSegmentationV01 *seg31=new AliMUONSegmentationV01;
- seg31->SetSegRadii(rseg2);
- seg31->SetPadSize(6, 0.5);
- seg31->SetDAnod(3.0/3./4);
- seg31->SetPadDivision(nseg2);
- MUON->SetSegmentationModel(chamber-1, 1, seg31);
- //
- AliMUONSegmentationV02 *seg32=new AliMUONSegmentationV02;
- seg32->SetSegRadii(rseg2);
- seg32->SetPadSize(0.75, 4.);
- seg32->SetPadDivision(nseg2);
- seg32->SetDAnod(3.0/3./4);
-
- MUON->SetSegmentationModel(chamber-1, 2, seg32);
-
- MUON->SetResponseModel(chamber-1, response0);
-
- chamber=4;
- //^^^^^^^^^
- //
- MUON->SetNsec(chamber-1,2);
- //
- AliMUONSegmentationV01 *seg41=new AliMUONSegmentationV01;
- seg41->SetSegRadii(rseg2);
- seg41->SetPadSize(6, 0.5);
- seg41->SetDAnod(3.0/3./4);
- seg41->SetPadDivision(nseg2);
- MUON->SetSegmentationModel(chamber-1, 1, seg41);
- //
- AliMUONSegmentationV02 *seg42=new AliMUONSegmentationV02;
- seg42->SetSegRadii(rseg2);
- seg42->SetPadSize(0.75, 4.);
- seg42->SetPadDivision(nseg2);
- seg42->SetDAnod(3.0/3./4);
-
- MUON->SetSegmentationModel(chamber-1, 2, seg42);
-
- MUON->SetResponseModel(chamber-1, response0);
-
-
- //--------------------------------------------------------
- // Configuration for Chamber TC5/6 -----------------------
- //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- seg5 = new AliMUONSegmentationV1;
- AliMUONResponseV0* response5 = new AliMUONResponseV0;
- // K3 = 0.62
- response5->SetSqrtKx3(0.78740079);
- response5->SetKx2(0.95237319); // 0.5 * kPI * (1- 0.5*sqrtky3 )
- response5->SetKx4(0.37480633); // 0.25/TMath::ATan(sqrtkx3)
- // K3 = 0.55
- response5->SetSqrtKy3(0.74161985);
- response5->SetKy2(0.98832946);
- response5->SetKy4(0.39177817);
- response5->SetPitch(0.325);
- response5->SetSigmaIntegration(10.);
- response5->SetChargeSlope(50);
- response5->SetChargeSpread(0.4, 0.4);
- response5->SetMaxAdc(4096);
- response5->SetZeroSuppression(6);
-
-
- chamber=5;
- MUON->SetNsec(chamber-1,1);
- MUON->SetSegmentationModel(chamber-1, 1, seg5);
- MUON->SetResponseModel(chamber-1, response5);
-
- chamber=6;
- MUON->SetNsec(chamber-1,1);
- MUON->SetSegmentationModel(chamber-1, 1, seg5);
- MUON->SetResponseModel(chamber-1, response5);
- //
- // Station 3
- station=3;
- MUON->SetPadSize(station, 1, 0.975, 0.55);
-
- //--------------------------------------------------------
- // Configuration for Chamber TC7/8 (Station 4) ----------
- //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- Int_t nseg4[4]={4, 4, 2, 1};
-
- chamber=7;
- //^^^^^^^^^
- MUON->SetNsec(chamber-1,2);
- //
- AliMUONSegmentationV04 *seg71=new AliMUONSegmentationV04;
- seg71->SetPadSize(10.,0.5);
- seg71->SetDAnod(0.25);
- seg71->SetPadDivision(nseg4);
- MUON->SetSegmentationModel(chamber-1, 1, seg71);
- AliMUONSegmentationV05 *seg72=new AliMUONSegmentationV05;
- seg72->SetPadSize(1,10);
- seg72->SetDAnod(0.25);
- seg72->SetPadDivision(nseg4);
- MUON->SetSegmentationModel(chamber-1, 2, seg72);
-
- MUON->SetResponseModel(chamber-1, response0);
-
- chamber=8;
- //^^^^^^^^^
- MUON->SetNsec(chamber-1,2);
- AliMUONSegmentationV04 *seg81=new AliMUONSegmentationV04;
- seg81->SetPadSize(10., 0.5);
- seg81->SetPadDivision(nseg4);
- seg81->SetDAnod(0.25);
- MUON->SetSegmentationModel(chamber-1, 1, seg81);
-
- AliMUONSegmentationV05 *seg82=new AliMUONSegmentationV05;
- seg82->SetPadSize(1, 10);
- seg82->SetPadDivision(nseg4);
- seg82->SetDAnod(0.25);
- MUON->SetSegmentationModel(chamber-1, 2, seg82);
-
- MUON->SetResponseModel(chamber-1, response0);
- //--------------------------------------------------------
- // Configuration for Chamber TC9/10 (Station 5) ---------
- //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- chamber=9;
- //^^^^^^^^^
- MUON->SetNsec(chamber-1,2);
- //
- AliMUONSegmentationV04 *seg91=new AliMUONSegmentationV04;
- seg91->SetPadSize(10.,0.5);
- seg91->SetDAnod(0.25);
- seg91->SetPadDivision(nseg4);
- MUON->SetSegmentationModel(chamber-1, 1, seg91);
-
- AliMUONSegmentationV05 *seg92=new AliMUONSegmentationV05;
- seg92->SetPadSize(1,10);
- seg92->SetDAnod(0.25);
- seg92->SetPadDivision(nseg4);
-
- MUON->SetSegmentationModel(chamber-1, 2, seg92);
-
- MUON->SetResponseModel(chamber-1, response0);
-
- chamber=10;
- //^^^^^^^^^
- MUON->SetNsec(chamber-1,2);
- AliMUONSegmentationV04 *seg101=new AliMUONSegmentationV04;
- seg101->SetPadSize(10., 0.5);
- seg101->SetPadDivision(nseg4);
- seg101->SetDAnod(0.25);
- MUON->SetSegmentationModel(chamber-1, 1, seg101);
-
- AliMUONSegmentationV05 *seg102=new AliMUONSegmentationV05;
- seg102->SetPadSize(1,10);
- seg102->SetPadDivision(nseg4);
- seg102->SetDAnod(0.25);
- MUON->SetSegmentationModel(chamber-1, 2, seg102);
-
- MUON->SetResponseModel(chamber-1, response0);
-
- //--------------------------------------------------------
- // Configuration for Trigger staions ---------------------
- //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- AliMUONResponseTrigger* responseTrigger0 = new AliMUONResponseTrigger;
-
- chamber=11;
- MUON->SetNsec(chamber-1,2);
- AliMUONSegmentationTriggerX *seg111=new AliMUONSegmentationTriggerX;
- MUON->SetSegmentationModel(chamber-1, 1, seg111);
- AliMUONSegmentationTriggerY *seg112=new AliMUONSegmentationTriggerY;
- MUON->SetSegmentationModel(chamber-1, 2, seg112);
-
- MUON->SetResponseModel(chamber-1, responseTrigger0);
-
- chamber=12;
- MUON->SetNsec(chamber-1,2);
- AliMUONSegmentationTriggerX *seg121=new AliMUONSegmentationTriggerX;
- MUON->SetSegmentationModel(chamber-1, 1, seg121);
- AliMUONSegmentationTriggerY *seg122=new AliMUONSegmentationTriggerY;
- MUON->SetSegmentationModel(chamber-1, 2, seg122);
-
- MUON->SetResponseModel(chamber-1, responseTrigger0);
-
- chamber=13;
- MUON->SetNsec(chamber-1,2);
- AliMUONSegmentationTriggerX *seg131=new AliMUONSegmentationTriggerX;
- MUON->SetSegmentationModel(chamber-1, 1, seg131);
- AliMUONSegmentationTriggerY *seg132=new AliMUONSegmentationTriggerY;
- MUON->SetSegmentationModel(chamber-1, 2, seg132);
- MUON->SetResponseModel(chamber-1, responseTrigger0);
-
- chamber=14;
- MUON->SetNsec(chamber-1,2);
- AliMUONSegmentationTriggerX *seg141=new AliMUONSegmentationTriggerX;
- MUON->SetSegmentationModel(chamber-1, 1, seg141);
- AliMUONSegmentationTriggerY *seg142=new AliMUONSegmentationTriggerY;
- MUON->SetSegmentationModel(chamber-1, 2, seg142);
-
- MUON->SetResponseModel(chamber-1, responseTrigger0);
+ AliMUON *MUON = new AliMUONv0("MUON","normal MUON");
}
//=================== PHOS parameters ===========================