42 dbe_->showDirStructure();
75 dbe_->setCurrentFolder(
"EcalRecHitsV/EcalTBValidationTask" );
77 hname =
"xtal in beam position";
78 meETBxib_ = dbe_->book2D( hname, hname, 85, 0., 85., 20,0., 20. );
79 hname =
"Max Amplitude vs TDC offset";
80 meETBampltdc_ = dbe_->book2D( hname, hname, 100, 0., 1., 1000, 0., 4000. );
81 hname =
"Beam Profile X";
82 meETBhodoX_ = dbe_->book1D( hname, hname, 100, -20., 20. );
83 hname =
"Beam Profile Y";
84 meETBhodoY_ = dbe_->book1D( hname, hname, 100, -20., 20. );
85 hname =
"E1x1 energy";
86 meETBe1x1_ = dbe_->book1D( hname, hname, 1000, 0., 4000. );
87 hname =
"E3x3 energy";
88 meETBe3x3_ = dbe_->book1D( hname, hname, 1000, 0., 4000. );
89 hname =
"E5x5 energy";
90 meETBe5x5_ = dbe_->book1D( hname, hname, 1000, 0., 4000. );
91 hname =
"E1x1 energy center";
93 hname =
"E3x3 energy center";
95 hname =
"E5x5 energy center";
97 hname =
"E1 over E9 ratio";
98 meETBe1e9_ = dbe_->book1D( hname, hname, 600, 0., 1.2 );
99 hname =
"E1 over E25 ratio";
100 meETBe1e25_ = dbe_->book1D( hname, hname, 600, 0., 1.2 );
101 hname =
"E9 over E25 ratio";
102 meETBe9e25_ = dbe_->book1D( hname, hname, 600, 0., 1.2 );
104 meETBe1vsX_ = dbe_->book2D( hname, hname, 80, -20, 20, 1000, 0., 4000. );
106 meETBe1vsY_ = dbe_->book2D( hname, hname, 80, -20, 20, 1000, 0., 4000. );
107 hname =
"E1 over E9 vs X";
108 meETBe1e9vsX_ = dbe_->book2D( hname, hname, 80, -20, 20, 600, 0., 1.2 );
109 hname =
"E1 over E9 vs Y";
110 meETBe1e9vsY_ = dbe_->book2D( hname, hname, 80, -20, 20, 600, 0., 1.2 );
111 hname =
"E1 over E25 vs X";
112 meETBe1e25vsX_ = dbe_->book2D( hname, hname, 80, -20, 20, 600, 0., 1.2 );
113 hname =
"E1 over E25 vs Y";
114 meETBe1e25vsY_ = dbe_->book2D( hname, hname, 80, -20, 20, 600, 0., 1.2 );
115 hname =
"E9 over E25 vs X";
116 meETBe9e25vsX_ = dbe_->book2D( hname, hname, 80, -20, 20, 600, 0., 1.2 );
117 hname =
"E9 over E25 vs Y";
118 meETBe9e25vsY_ = dbe_->book2D( hname, hname, 80, -20, 20, 600, 0., 1.2 );
119 hname =
"Xtal in Beam Shape";
120 meETBShape_ = dbe_->book2D( hname, hname, 250, 0, 10, 350, 0, 3500 );
141 if(pdigis.isValid()){
189 if(pEventHeader.isValid()){
190 evtHeader = pEventHeader.
product();
201 if (xtalInBeamId==
EBDetId(0)){
return; }
202 int xibEta = xtalInBeamId.
ieta();
203 int xibPhi = xtalInBeamId.
iphi();
206 if (
data_ && (evtHeader->tableIsMoving()))
return;
210 for (
unsigned int icry=0;icry<25;icry++){
211 unsigned int row = icry/5;
212 unsigned int column = icry%5;
213 int ieta = xtalInBeamId.
ieta()+column-2;
214 int iphi = xtalInBeamId.
iphi()+row-2;
218 Xtals5x5[icry] = tempId;
230 for (
unsigned int icry=0;icry<25;icry++) {
231 if (!Xtals5x5[icry].null()){
232 double theAmpl = (theHits->find(Xtals5x5[icry]))->amplitude();
234 if (icry==12){ampl1x1 = theAmpl;}
235 if (icry==6 || icry==7 || icry==8 || icry==11 || icry==12 || icry==13 || icry==16 || icry==17 || icry==18){ampl3x3 += theAmpl;}
240 double sampleSave[10];
241 for(
int ii=0; ii < 10; ++ii){ sampleSave[ii] = 0.0; }
245 if (thisDigi != theDigis->end()){
249 sampleSave[
sample] = analogSample;
250 if (
eMax < analogSample ) {
258 double xBeam = theHodo->posX();
259 double yBeam = theHodo->posY();
281 for(
int ii=0; ii < 10; ++ii){
meETBShape_->
Fill(
double(ii)+theTDC->offset(),sampleSave[ii]); }
283 if ( (fabs(xBeam)<2.5) && (fabs(yBeam)<2.5) ){
MonitorElement * meETBShape_
static bool validDetId(int i, int j)
check if a valid index combination
T getParameter(std::string const &) const
MonitorElement * meETBampltdc_
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meETBe5x5_
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
MonitorElement * meETBe1e25_
MonitorElement * meETBe3x3_
MonitorElement * meETBe9e25vsX_
EcalMGPASample sample(int i) const
MonitorElement * meETBe1e25vsX_
std::string eventHeaderProducer_
int ism() const
get the ECAL/SM id
MonitorElement * meETBxib_
int iphi() const
get the crystal iphi
EcalTBValidation(const edm::ParameterSet &)
MonitorElement * meETBe9e25_
MonitorElement * meETBe9e25vsY_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::string eventHeaderCollection_
MonitorElement * meETBe1vsX_
std::string hodoRecInfoProducer_
std::string digiProducer_
int ieta() const
get the crystal ieta
MonitorElement * meETBe5x5_center_
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
static const int ETAPHIMODE
std::string hitCollection_
MonitorElement * meETBe1e9vsX_
T const * product() const
MonitorElement * meETBe1e25vsY_
MonitorElement * meETBe1x1_
std::string tdcRecInfoCollection_
std::string tdcRecInfoProducer_
MonitorElement * meETBe1e9_
virtual void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * meETBe3x3_center_
static const int SMCRYSTALMODE
MonitorElement * meETBe1e9vsY_
std::string digiCollection_
MonitorElement * meETBhodoY_
MonitorElement * meETBe1vsY_
std::string hodoRecInfoCollection_
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
MonitorElement * meETBe1x1_center_
MonitorElement * meETBhodoX_
int adc() const
get the ADC sample (12 bits)